{ "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": {} } }