Created
December 7, 2021 10:10
-
-
Save Cerwyn/a0ca76beb39a91ecad0df37656af6dea to your computer and use it in GitHub Desktop.
PHP Web3 - Interact with smart contract
This file has been truncated, but you can view the full file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"contractName": "BPool", | |
"abi": [ | |
{ | |
"inputs": [], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "constructor" | |
}, | |
{ | |
"anonymous": false, | |
"inputs": [ | |
{ | |
"indexed": true, | |
"internalType": "address", | |
"name": "src", | |
"type": "address" | |
}, | |
{ | |
"indexed": true, | |
"internalType": "address", | |
"name": "dst", | |
"type": "address" | |
}, | |
{ | |
"indexed": false, | |
"internalType": "uint256", | |
"name": "amt", | |
"type": "uint256" | |
} | |
], | |
"name": "Approval", | |
"type": "event" | |
}, | |
{ | |
"anonymous": true, | |
"inputs": [ | |
{ | |
"indexed": true, | |
"internalType": "bytes4", | |
"name": "sig", | |
"type": "bytes4" | |
}, | |
{ | |
"indexed": true, | |
"internalType": "address", | |
"name": "caller", | |
"type": "address" | |
}, | |
{ | |
"indexed": false, | |
"internalType": "bytes", | |
"name": "data", | |
"type": "bytes" | |
} | |
], | |
"name": "LOG_CALL", | |
"type": "event" | |
}, | |
{ | |
"anonymous": false, | |
"inputs": [ | |
{ | |
"indexed": true, | |
"internalType": "address", | |
"name": "caller", | |
"type": "address" | |
}, | |
{ | |
"indexed": true, | |
"internalType": "address", | |
"name": "tokenOut", | |
"type": "address" | |
}, | |
{ | |
"indexed": false, | |
"internalType": "uint256", | |
"name": "tokenAmountOut", | |
"type": "uint256" | |
} | |
], | |
"name": "LOG_EXIT", | |
"type": "event" | |
}, | |
{ | |
"anonymous": false, | |
"inputs": [ | |
{ | |
"indexed": true, | |
"internalType": "address", | |
"name": "caller", | |
"type": "address" | |
}, | |
{ | |
"indexed": true, | |
"internalType": "address", | |
"name": "tokenIn", | |
"type": "address" | |
}, | |
{ | |
"indexed": false, | |
"internalType": "uint256", | |
"name": "tokenAmountIn", | |
"type": "uint256" | |
} | |
], | |
"name": "LOG_JOIN", | |
"type": "event" | |
}, | |
{ | |
"anonymous": false, | |
"inputs": [ | |
{ | |
"indexed": true, | |
"internalType": "address", | |
"name": "caller", | |
"type": "address" | |
}, | |
{ | |
"indexed": true, | |
"internalType": "address", | |
"name": "tokenIn", | |
"type": "address" | |
}, | |
{ | |
"indexed": true, | |
"internalType": "address", | |
"name": "tokenOut", | |
"type": "address" | |
}, | |
{ | |
"indexed": false, | |
"internalType": "uint256", | |
"name": "tokenAmountIn", | |
"type": "uint256" | |
}, | |
{ | |
"indexed": false, | |
"internalType": "uint256", | |
"name": "tokenAmountOut", | |
"type": "uint256" | |
} | |
], | |
"name": "LOG_SWAP", | |
"type": "event" | |
}, | |
{ | |
"anonymous": false, | |
"inputs": [ | |
{ | |
"indexed": true, | |
"internalType": "address", | |
"name": "src", | |
"type": "address" | |
}, | |
{ | |
"indexed": true, | |
"internalType": "address", | |
"name": "dst", | |
"type": "address" | |
}, | |
{ | |
"indexed": false, | |
"internalType": "uint256", | |
"name": "amt", | |
"type": "uint256" | |
} | |
], | |
"name": "Transfer", | |
"type": "event" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "BONE", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "BPOW_PRECISION", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "EXIT_FEE", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "INIT_POOL_SUPPLY", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "MAX_BOUND_TOKENS", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "MAX_BPOW_BASE", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "MAX_FEE", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "MAX_IN_RATIO", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "MAX_OUT_RATIO", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "MAX_TOTAL_WEIGHT", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "MAX_WEIGHT", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "MIN_BALANCE", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "MIN_BOUND_TOKENS", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "MIN_BPOW_BASE", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "MIN_FEE", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "MIN_WEIGHT", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "src", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "dst", | |
"type": "address" | |
} | |
], | |
"name": "allowance", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "dst", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "amt", | |
"type": "uint256" | |
} | |
], | |
"name": "approve", | |
"outputs": [ | |
{ | |
"internalType": "bool", | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "whom", | |
"type": "address" | |
} | |
], | |
"name": "balanceOf", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "tokenBalanceIn", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "tokenWeightIn", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "tokenBalanceOut", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "tokenWeightOut", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "tokenAmountOut", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "swapFee", | |
"type": "uint256" | |
} | |
], | |
"name": "calcInGivenOut", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "tokenAmountIn", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "pure", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "tokenBalanceIn", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "tokenWeightIn", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "tokenBalanceOut", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "tokenWeightOut", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "tokenAmountIn", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "swapFee", | |
"type": "uint256" | |
} | |
], | |
"name": "calcOutGivenIn", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "tokenAmountOut", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "pure", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "tokenBalanceOut", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "tokenWeightOut", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "poolSupply", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "totalWeight", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "tokenAmountOut", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "swapFee", | |
"type": "uint256" | |
} | |
], | |
"name": "calcPoolInGivenSingleOut", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "poolAmountIn", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "pure", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "tokenBalanceIn", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "tokenWeightIn", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "poolSupply", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "totalWeight", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "tokenAmountIn", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "swapFee", | |
"type": "uint256" | |
} | |
], | |
"name": "calcPoolOutGivenSingleIn", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "poolAmountOut", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "pure", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "tokenBalanceIn", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "tokenWeightIn", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "poolSupply", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "totalWeight", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "poolAmountOut", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "swapFee", | |
"type": "uint256" | |
} | |
], | |
"name": "calcSingleInGivenPoolOut", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "tokenAmountIn", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "pure", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "tokenBalanceOut", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "tokenWeightOut", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "poolSupply", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "totalWeight", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "poolAmountIn", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "swapFee", | |
"type": "uint256" | |
} | |
], | |
"name": "calcSingleOutGivenPoolIn", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "tokenAmountOut", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "pure", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "tokenBalanceIn", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "tokenWeightIn", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "tokenBalanceOut", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "tokenWeightOut", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "swapFee", | |
"type": "uint256" | |
} | |
], | |
"name": "calcSpotPrice", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "spotPrice", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "pure", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "decimals", | |
"outputs": [ | |
{ | |
"internalType": "uint8", | |
"name": "", | |
"type": "uint8" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "dst", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "amt", | |
"type": "uint256" | |
} | |
], | |
"name": "decreaseApproval", | |
"outputs": [ | |
{ | |
"internalType": "bool", | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "getColor", | |
"outputs": [ | |
{ | |
"internalType": "bytes32", | |
"name": "", | |
"type": "bytes32" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "dst", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "amt", | |
"type": "uint256" | |
} | |
], | |
"name": "increaseApproval", | |
"outputs": [ | |
{ | |
"internalType": "bool", | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "name", | |
"outputs": [ | |
{ | |
"internalType": "string", | |
"name": "", | |
"type": "string" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "symbol", | |
"outputs": [ | |
{ | |
"internalType": "string", | |
"name": "", | |
"type": "string" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "totalSupply", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "dst", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "amt", | |
"type": "uint256" | |
} | |
], | |
"name": "transfer", | |
"outputs": [ | |
{ | |
"internalType": "bool", | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "src", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "dst", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "amt", | |
"type": "uint256" | |
} | |
], | |
"name": "transferFrom", | |
"outputs": [ | |
{ | |
"internalType": "bool", | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "isPublicSwap", | |
"outputs": [ | |
{ | |
"internalType": "bool", | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "isFinalized", | |
"outputs": [ | |
{ | |
"internalType": "bool", | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "t", | |
"type": "address" | |
} | |
], | |
"name": "isBound", | |
"outputs": [ | |
{ | |
"internalType": "bool", | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "getNumTokens", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "getCurrentTokens", | |
"outputs": [ | |
{ | |
"internalType": "address[]", | |
"name": "tokens", | |
"type": "address[]" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "getFinalTokens", | |
"outputs": [ | |
{ | |
"internalType": "address[]", | |
"name": "tokens", | |
"type": "address[]" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "token", | |
"type": "address" | |
} | |
], | |
"name": "getDenormalizedWeight", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "getTotalDenormalizedWeight", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "token", | |
"type": "address" | |
} | |
], | |
"name": "getNormalizedWeight", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "token", | |
"type": "address" | |
} | |
], | |
"name": "getBalance", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "getSwapFee", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "getController", | |
"outputs": [ | |
{ | |
"internalType": "address", | |
"name": "", | |
"type": "address" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "swapFee", | |
"type": "uint256" | |
} | |
], | |
"name": "setSwapFee", | |
"outputs": [], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "manager", | |
"type": "address" | |
} | |
], | |
"name": "setController", | |
"outputs": [], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"internalType": "bool", | |
"name": "public_", | |
"type": "bool" | |
} | |
], | |
"name": "setPublicSwap", | |
"outputs": [], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [], | |
"name": "finalize", | |
"outputs": [], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "token", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "balance", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "denorm", | |
"type": "uint256" | |
} | |
], | |
"name": "bind", | |
"outputs": [], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "token", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "balance", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "denorm", | |
"type": "uint256" | |
} | |
], | |
"name": "rebind", | |
"outputs": [], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "token", | |
"type": "address" | |
} | |
], | |
"name": "unbind", | |
"outputs": [], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "token", | |
"type": "address" | |
} | |
], | |
"name": "gulp", | |
"outputs": [], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "tokenIn", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "tokenOut", | |
"type": "address" | |
} | |
], | |
"name": "getSpotPrice", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "spotPrice", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "tokenIn", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "tokenOut", | |
"type": "address" | |
} | |
], | |
"name": "getSpotPriceSansFee", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "spotPrice", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "poolAmountOut", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256[]", | |
"name": "maxAmountsIn", | |
"type": "uint256[]" | |
} | |
], | |
"name": "joinPool", | |
"outputs": [], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "poolAmountIn", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256[]", | |
"name": "minAmountsOut", | |
"type": "uint256[]" | |
} | |
], | |
"name": "exitPool", | |
"outputs": [], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "tokenIn", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "tokenAmountIn", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "address", | |
"name": "tokenOut", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "minAmountOut", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "maxPrice", | |
"type": "uint256" | |
} | |
], | |
"name": "swapExactAmountIn", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "tokenAmountOut", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "spotPriceAfter", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "tokenIn", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "maxAmountIn", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "address", | |
"name": "tokenOut", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "tokenAmountOut", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "maxPrice", | |
"type": "uint256" | |
} | |
], | |
"name": "swapExactAmountOut", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "tokenAmountIn", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "spotPriceAfter", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "tokenIn", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "tokenAmountIn", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "minPoolAmountOut", | |
"type": "uint256" | |
} | |
], | |
"name": "joinswapExternAmountIn", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "poolAmountOut", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "tokenIn", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "poolAmountOut", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "maxAmountIn", | |
"type": "uint256" | |
} | |
], | |
"name": "joinswapPoolAmountOut", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "tokenAmountIn", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "tokenOut", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "poolAmountIn", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "minAmountOut", | |
"type": "uint256" | |
} | |
], | |
"name": "exitswapPoolAmountIn", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "tokenAmountOut", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "tokenOut", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "tokenAmountOut", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "maxPoolAmountIn", | |
"type": "uint256" | |
} | |
], | |
"name": "exitswapExternAmountOut", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "poolAmountIn", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
} | |
], | |
"metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amt\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":true,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"sig\",\"type\":\"bytes4\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"LOG_CALL\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenAmountOut\",\"type\":\"uint256\"}],\"name\":\"LOG_EXIT\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenAmountIn\",\"type\":\"uint256\"}],\"name\":\"LOG_JOIN\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenAmountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenAmountOut\",\"type\":\"uint256\"}],\"name\":\"LOG_SWAP\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amt\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"BONE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"BPOW_PRECISION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"EXIT_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"INIT_POOL_SUPPLY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_BOUND_TOKENS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_BPOW_BASE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_IN_RATIO\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_OUT_RATIO\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_TOTAL_WEIGHT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_WEIGHT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_BALANCE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_BOUND_TOKENS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_BPOW_BASE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_WEIGHT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amt\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"whom\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denorm\",\"type\":\"uint256\"}],\"name\":\"bind\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenBalanceIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenWeightIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenBalanceOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenWeightOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"}],\"name\":\"calcInGivenOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenAmountIn\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenBalanceIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenWeightIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenBalanceOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenWeightOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenAmountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"}],\"name\":\"calcOutGivenIn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenAmountOut\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenBalanceOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenWeightOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"poolSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalWeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"}],\"name\":\"calcPoolInGivenSingleOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolAmountIn\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenBalanceIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenWeightIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"poolSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalWeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenAmountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"}],\"name\":\"calcPoolOutGivenSingleIn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolAmountOut\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenBalanceIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenWeightIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"poolSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalWeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"poolAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"}],\"name\":\"calcSingleInGivenPoolOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenAmountIn\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenBalanceOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenWeightOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"poolSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalWeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"poolAmountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"}],\"name\":\"calcSingleOutGivenPoolIn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenAmountOut\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenBalanceIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenWeightIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenBalanceOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenWeightOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"}],\"name\":\"calcSpotPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"spotPrice\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amt\",\"type\":\"uint256\"}],\"name\":\"decreaseApproval\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolAmountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"minAmountsOut\",\"type\":\"uint256[]\"}],\"name\":\"exitPool\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPoolAmountIn\",\"type\":\"uint256\"}],\"name\":\"exitswapExternAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolAmountIn\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"poolAmountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"}],\"name\":\"exitswapPoolAmountIn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenAmountOut\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"finalize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getColor\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getController\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCurrentTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getDenormalizedWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getFinalTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getNormalizedWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getNumTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"}],\"name\":\"getSpotPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"spotPrice\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"}],\"name\":\"getSpotPriceSansFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"spotPrice\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getSwapFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getTotalDenormalizedWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"gulp\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amt\",\"type\":\"uint256\"}],\"name\":\"increaseApproval\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"t\",\"type\":\"address\"}],\"name\":\"isBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isPublicSwap\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"maxAmountsIn\",\"type\":\"uint256[]\"}],\"name\":\"joinPool\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenAmountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minPoolAmountOut\",\"type\":\"uint256\"}],\"name\":\"joinswapExternAmountIn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolAmountOut\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"poolAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAmountIn\",\"type\":\"uint256\"}],\"name\":\"joinswapPoolAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenAmountIn\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denorm\",\"type\":\"uint256\"}],\"name\":\"rebind\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"}],\"name\":\"setController\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bool\",\"name\":\"public_\",\"type\":\"bool\"}],\"name\":\"setPublicSwap\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"}],\"name\":\"setSwapFee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenAmountIn\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPrice\",\"type\":\"uint256\"}],\"name\":\"swapExactAmountIn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"spotPriceAfter\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxAmountIn\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPrice\",\"type\":\"uint256\"}],\"name\":\"swapExactAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenAmountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"spotPriceAfter\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amt\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amt\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"unbind\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{\"calcInGivenOut(uint256,uint256,uint256,uint256,uint256,uint256)\":{\"notice\":\"******************************************************************************************** // calcInGivenOut // // aI = tokenAmountIn // // bO = tokenBalanceOut / / bO \\\\ (wO / wI) \\\\ // // bI = tokenBalanceIn bI * | | ------------ | ^ - 1 | // // aO = tokenAmountOut aI = \\\\ \\\\ ( bO - aO ) / / // // wI = tokenWeightIn -------------------------------------------- // // wO = tokenWeightOut ( 1 - sF ) // // sF = swapFee //*********************************************************************************************\"},\"calcOutGivenIn(uint256,uint256,uint256,uint256,uint256,uint256)\":{\"notice\":\"******************************************************************************************** // calcOutGivenIn // // aO = tokenAmountOut // // bO = tokenBalanceOut // // bI = tokenBalanceIn / / bI \\\\ (wI / wO) \\\\ // // aI = tokenAmountIn aO = bO * | 1 - | -------------------------- | ^ | // // wI = tokenWeightIn \\\\ \\\\ ( bI + ( aI * ( 1 - sF )) / / // // wO = tokenWeightOut // // sF = swapFee //*********************************************************************************************\"},\"calcPoolInGivenSingleOut(uint256,uint256,uint256,uint256,uint256,uint256)\":{\"notice\":\"******************************************************************************************** // calcPoolInGivenSingleOut // // pAi = poolAmountIn // / tAo \\\\\\\\ / wO \\\\ \\\\ // // bO = tokenBalanceOut // | bO - -------------------------- |\\\\ | ---- | \\\\ // // tAo = tokenAmountOut pS - || \\\\ 1 - ((1 - (tO / tW)) * sF)/ | ^ \\\\ tW / * pS | // // ps = poolSupply \\\\\\\\ -----------------------------------/ / // // wO = tokenWeightOut pAi = \\\\\\\\ bO / / // // tW = totalWeight ------------------------------------------------------------- // // sF = swapFee ( 1 - eF ) // // eF = exitFee //*********************************************************************************************\"},\"calcPoolOutGivenSingleIn(uint256,uint256,uint256,uint256,uint256,uint256)\":{\"notice\":\"******************************************************************************************** // calcPoolOutGivenSingleIn // // pAo = poolAmountOut / \\\\ // // tAi = tokenAmountIn /// / // wI \\\\ \\\\\\\\ \\\\ wI \\\\ // // wI = tokenWeightIn //| tAi *| 1 - || 1 - -- | * sF || + tBi \\\\ -- \\\\ // // tW = totalWeight pAo=|| \\\\ \\\\ \\\\\\\\ tW / // | ^ tW | * pS - pS // // tBi = tokenBalanceIn \\\\\\\\ ------------------------------------- / / // // pS = poolSupply \\\\\\\\ tBi / / // // sF = swapFee \\\\ / //*********************************************************************************************\"},\"calcSingleInGivenPoolOut(uint256,uint256,uint256,uint256,uint256,uint256)\":{\"notice\":\"******************************************************************************************** // calcSingleInGivenPoolOut // // tAi = tokenAmountIn //(pS + pAo)\\\\ / 1 \\\\\\\\ // // pS = poolSupply || --------- | ^ | --------- || * bI - bI // // pAo = poolAmountOut \\\\\\\\ pS / \\\\(wI / tW)// // // bI = balanceIn tAi = -------------------------------------------- // // wI = weightIn / wI \\\\ // // tW = totalWeight | 1 - ---- | * sF // // sF = swapFee \\\\ tW / //*********************************************************************************************\"},\"calcSingleOutGivenPoolIn(uint256,uint256,uint256,uint256,uint256,uint256)\":{\"notice\":\"******************************************************************************************** // calcSingleOutGivenPoolIn // // tAo = tokenAmountOut / / \\\\\\\\ // // bO = tokenBalanceOut / // pS - (pAi * (1 - eF)) \\\\ / 1 \\\\ \\\\\\\\ // // pAi = poolAmountIn | bO - || ----------------------- | ^ | --------- | * b0 || // // ps = poolSupply \\\\ \\\\\\\\ pS / \\\\(wO / tW)/ // // // wI = tokenWeightIn tAo = \\\\ \\\\ // // // tW = totalWeight / / wO \\\\ \\\\ // // sF = swapFee * | 1 - | 1 - ---- | * sF | // // eF = exitFee \\\\ \\\\ tW / / //*********************************************************************************************\"},\"calcSpotPrice(uint256,uint256,uint256,uint256,uint256)\":{\"notice\":\"******************************************************************************************** // calcSpotPrice // // sP = spotPrice // // bI = tokenBalanceIn ( bI / wI ) 1 // // bO = tokenBalanceOut sP = ----------- * ---------- // // wI = tokenWeightIn ( bO / wO ) ( 1 - sF ) // // wO = tokenWeightOut // // sF = swapFee //*********************************************************************************************\"}}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/BPool.sol\":\"BPool\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"project:/contracts/BColor.sol\":{\"keccak256\":\"0x861763643a4c198b682bd8283079c9acbaeb3920e6e3466dd51a026335364ffe\",\"urls\":[\"bzz-raw://dd3f74e1bcea284bf9cef8cf2a188be0949af4721e241238be7fc831e0dafe56\",\"dweb:/ipfs/QmeYct7REbmMReHoze3dwPgv7XfgZ9nFYm9nWhWdvL1QNG\"]},\"project:/contracts/BConst.sol\":{\"keccak256\":\"0x746532c59ec7faf02f4fb8abcde7bfd18fb9cb5aaac3b3bc3243dd762e606d40\",\"urls\":[\"bzz-raw://89f134cb08817b2d3241225e25594be0f880fc5400b7a2d64e2bce4f4e637877\",\"dweb:/ipfs/QmXYU8U4YPawTgN38uGAVSCALbqUSwJBChLKy7KTrHywuk\"]},\"project:/contracts/BMath.sol\":{\"keccak256\":\"0x24444d299b64a9fe3bc916d2638fb727b92275e46c47a3204dc26410baf06fb5\",\"urls\":[\"bzz-raw://71ea334a52d68158b2fd7d137a901816a875b7812c9e884cb944c46749451514\",\"dweb:/ipfs/QmcLieKwpp1eNdxiQBNumNbNksvoZijWJNnd2UdcaAT3kQ\"]},\"project:/contracts/BNum.sol\":{\"keccak256\":\"0x6eb672c585a84af7634d623d45faf02bcd46568ce344dd212247ce4282cdc489\",\"urls\":[\"bzz-raw://52fe12a2de6160164fd060564eb666582ad43f91fc7d49438bfc527a004fdd32\",\"dweb:/ipfs/QmVzmRQDmDkBBa6kjjYv6bYaC8pUb4RtDSZcZY6g3NFTTv\"]},\"project:/contracts/BPool.sol\":{\"keccak256\":\"0x83355adeb3ab78a32f1ac23adcee4f2059b1f3c1cfd13db75e7f63052e78381d\",\"urls\":[\"bzz-raw://0e67491e2cb4f76511e82451a983ff7d97e4404970e32292f3f20c9a11791fc5\",\"dweb:/ipfs/QmaL56C1ew5CQDtkNjeas1LoxfcduGBBZjvNeapGbQXKuJ\"]},\"project:/contracts/BToken.sol\":{\"keccak256\":\"0xd9799786ddd1274712f1992f88561f53f2cddff682907f3ca7c9887ca179c988\",\"urls\":[\"bzz-raw://2dcd2ef976fa12e4b17fff94a98c03db997462afd9a16f136f9a09dbcf9c6c5b\",\"dweb:/ipfs/QmSENTe7qUMXsUnXDsvCrMiQAhvRvGoQ3ynf2urAJ6374v\"]}},\"version\":1}", | |
"bytecode": "0x60c0604052601360808190527f42616c616e63657220506f6f6c20546f6b656e0000000000000000000000000060a0908152620000409160039190620000f7565b506040805180820190915260038082527f425054000000000000000000000000000000000000000000000000000000000060209092019182526200008791600491620000f7565b506005805460ff19166012179055348015620000a257600080fd5b5060068054600580546201000060b060020a031916336201000081029190911790915564e8d4a51000600755600160a060020a03199091161760a060020a60ff02191690556008805460ff191690556200019c565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200013a57805160ff19168380011785556200016a565b828001600101855582156200016a579182015b828111156200016a5782518255916020019190600101906200014d565b50620001789291506200017c565b5090565b6200019991905b8082111562000178576000815560010162000183565b90565b61587480620001ac6000396000f3fe608060405234801561001057600080fd5b5060043610610378576000357c0100000000000000000000000000000000000000000000000000000000900480638d4e4083116101e7578063bc694ea211610122578063d73dd623116100c5578063d73dd62314610b7f578063dd62ed3e14610bab578063e4a28a521461047e578063e4e1e53814610bd9578063ec09302114610c0b578063f1b8a9b714610c13578063f8b2cb4f14610c39578063f8d6aed414610c5f578063fde924f714610c9a57610378565b8063bc694ea214610ad9578063be3bbd2e14610ae1578063c36596a6146104f2578063c6580d1214610b39578063cc77828d14610b41578063cd2ed8fb14610b49578063cf5e7bd314610b51578063d4cadf6814610b7757610378565b8063a221ee491161018a578063a221ee49146109a6578063a9059cbb146109db578063b02f0b7314610a07578063b0e0d13614610a7e578063b7b800a414610a86578063ba019dab14610a8e578063ba9530a614610a96578063bc063e1a14610ad157610378565b80638d4e40831461092a57806392eefe9b14610932578063936c3477146109585780639381cd2b14610960578063948d8ce61461096857806395d89b411461098e578063992e2a92146109965780639a86139b1461099e57610378565b806349b59552116102b757806376c7a3c71161025a57806376c7a3c7146107aa5780637c5e9ea4146107b25780638201aa3f1461080b57806382f652ad1461084b5780638656b65314610886578063867378c5146108c157806389298012146108c95780638c28cbe81461090457610378565b806349b595521461061b5780634bb278f31461063a5780634f69c0d4146106425780635c1bbaf7146106b95780635db34277146106f457806366188463146107265780636d06dfa01461075257806370a082311461078457610378565b8063218b53821161031f578063218b5382146104f257806323b872dd146104fa5780632f37b624146105305780633018205f14610556578063313ce5671461057a57806334e19907146105985780633fdddaa2146105b757806346ab38f1146105e957610378565b806302c967481461037d57806306fdde03146103c1578063095ea7b31461043e57806309a3bbe41461047e5780631446a7ff1461048657806315e84af9146104b457806318160ddd146104e2578063189d00ca146104ea575b600080fd5b6103af6004803603606081101561039357600080fd5b50600160a060020a038135169060208101359060400135610ca2565b60408051918252519081900360200190f35b6103c9610fef565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104035781810151838201526020016103eb565b50505050905090810190601f1680156104305780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61046a6004803603604081101561045457600080fd5b50600160a060020a038135169060200135611085565b604080519115158252519081900360200190f35b6103af6110da565b6103af6004803603604081101561049c57600080fd5b50600160a060020a03813581169160200135166110e7565b6103af600480360360408110156104ca57600080fd5b50600160a060020a0381358116916020013516611241565b6103af611392565b6103af611398565b6103af6113ac565b61046a6004803603606081101561051057600080fd5b50600160a060020a038135811691602081013590911690604001356113b8565b61046a6004803603602081101561054657600080fd5b5035600160a060020a031661151d565b61055e61153b565b60408051600160a060020a039092168252519081900360200190f35b61058261159c565b6040805160ff9092168252519081900360200190f35b6105b5600480360360208110156105ae57600080fd5b50356115a5565b005b6105b5600480360360608110156105cd57600080fd5b50600160a060020a0381351690602081013590604001356117c9565b6103af600480360360608110156105ff57600080fd5b50600160a060020a038135169060208101359060400135611c15565b6105b56004803603602081101561063157600080fd5b50351515611f01565b6105b5612092565b6105b56004803603604081101561065857600080fd5b8135919081019060408101602082013564010000000081111561067a57600080fd5b82018360208201111561068c57600080fd5b803590602001918460208302840111640100000000831117156106ae57600080fd5b5090925090506122a9565b6103af600480360360c08110156106cf57600080fd5b5080359060208101359060408101359060608101359060808101359060a00135612590565b6103af6004803603606081101561070a57600080fd5b50600160a060020a038135169060208101359060400135612648565b61046a6004803603604081101561073c57600080fd5b50600160a060020a038135169060200135612919565b6103af6004803603606081101561076857600080fd5b50600160a060020a0381351690602081013590604001356129f1565b6103af6004803603602081101561079a57600080fd5b5035600160a060020a0316612cf0565b6103af612d0b565b6107f2600480360360a08110156107c857600080fd5b50600160a060020a0381358116916020810135916040820135169060608101359060800135612d1d565b6040805192835260208301919091528051918290030190f35b6107f2600480360360a081101561082157600080fd5b50600160a060020a038135811691602081013591604082013516906060810135906080013561320d565b6103af600480360360c081101561086157600080fd5b5080359060208101359060408101359060608101359060808101359060a001356136e4565b6103af600480360360c081101561089c57600080fd5b5080359060208101359060408101359060608101359060808101359060a001356137a3565b6103af613844565b6103af600480360360c08110156108df57600080fd5b5080359060208101359060408101359060608101359060808101359060a00135613858565b6105b56004803603602081101561091a57600080fd5b5035600160a060020a0316613908565b61046a613ad9565b6105b56004803603602081101561094857600080fd5b5035600160a060020a0316613ae2565b6103af613c2c565b6103af613c84565b6103af6004803603602081101561097e57600080fd5b5035600160a060020a0316613c91565b6103c9613d5f565b6103af613dc0565b6103af613dcc565b6103af600480360360a08110156109bc57600080fd5b5080359060208101359060408101359060608101359060800135613df0565b61046a600480360360408110156109f157600080fd5b50600160a060020a038135169060200135613e55565b6105b560048036036040811015610a1d57600080fd5b81359190810190604081016020820135640100000000811115610a3f57600080fd5b820183602082011115610a5157600080fd5b80359060200191846020830284011164010000000083111715610a7357600080fd5b509092509050613e6b565b6103af61419f565b6103af6141a4565b6103af6141a9565b6103af600480360360c0811015610aac57600080fd5b5080359060208101359060408101359060608101359060808101359060a001356141ae565b6103af61422f565b6103af61423f565b610ae961424b565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610b25578181015183820152602001610b0d565b505050509050019250505060405180910390f35b6103af614343565b610ae9614348565b6103af614399565b6105b560048036036020811015610b6757600080fd5b5035600160a060020a031661439f565b6103af61472c565b61046a60048036036040811015610b9557600080fd5b50600160a060020a038135169060200135614784565b6103af60048036036040811015610bc157600080fd5b50600160a060020a0381358116916020013516614805565b6105b560048036036060811015610bef57600080fd5b50600160a060020a038135169060208101359060400135614830565b6103af614ab4565b6103af60048036036020811015610c2957600080fd5b5035600160a060020a0316614ac4565b6103af60048036036020811015610c4f57600080fd5b5035600160a060020a0316614ba4565b6103af600480360360c0811015610c7557600080fd5b5080359060208101359060408101359060608101359060808101359060a00135614c72565b61046a614cf5565b600033600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff1615610d53576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff00191661010017905560085460ff16610daa576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615680833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600a602052604090205460ff16610e08576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600a60205260409020600390810154610e3d91670de0b6b3a76400005b04600101614d05565b831115610e82576040805160e560020a62461bcd02815260206004820152601160248201526000805160206156e0833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600a6020526040902060038101546002808301549054600b54600754610ebc949392919089906136e4565b915081610f01576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020615820833981519152604482015290519081900360640190fd5b82821115610f47576040805160e560020a62461bcd02815260206004820152600c60248201526000805160206156c0833981519152604482015290519081900360640190fd5b610f55816003015485614dee565b60038201556000610f668382614d05565b604080518781529051919250600160a060020a0388169133916000805160206157a0833981519152919081900360200190a3610fa23384614e5f565b610fb4610faf8483614dee565b614e6d565b600554610fd090620100009004600160a060020a031682614e79565b610fdb863387614e83565b50506005805461ff00191690559392505050565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561107b5780601f106110505761010080835404028352916020019161107b565b820191906000526020600020905b81548152906001019060200180831161105e57829003601f168201915b5050505050905090565b336000818152600160209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390926000805160206157c0833981519152928290030190a35060015b92915050565b6802b5e3af16b188000081565b600554600090610100900460ff1615611138576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b600160a060020a0383166000908152600a602052604090205460ff16611196576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b600160a060020a0382166000908152600a602052604090205460ff166111f4576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b600160a060020a038084166000908152600a602052604080822092851682528120600380840154600280860154928401549084015493946112389492939290613df0565b95945050505050565b600554600090610100900460ff1615611292576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b600160a060020a0383166000908152600a602052604090205460ff166112f0576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b600160a060020a0382166000908152600a602052604090205460ff1661134e576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b600160a060020a038084166000908152600a602052604080822092851682529020600380830154600280850154928401549084015460075461123894929190613df0565b60025490565b6402540be400670de0b6b3a76400005b0481565b670de0b6b3a764000081565b600033600160a060020a03851614806113f45750600160a060020a03841660009081526001602090815260408083203384529091529020548211155b611448576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f42544f4b454e5f4241445f43414c4c45520000000000000000000000604482015290519081900360640190fd5b611453848484614f78565b33600160a060020a038516148015906114915750600160a060020a038416600090815260016020908152604080832033845290915290205460001914155b1561151357600160a060020a03841660009081526001602090815260408083203384529091529020546114c49083614dee565b600160a060020a03858116600090815260016020908152604080832033808552908352928190208590558051948552519287169391926000805160206157c08339815191529281900390910190a35b5060019392505050565b600160a060020a03166000908152600a602052604090205460ff1690565b600554600090610100900460ff161561158c576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b50600654600160a060020a031690565b60055460ff1690565b33600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff1615611654576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff00191661010017905560085460ff16156116ac576040805160e560020a62461bcd02815260206004820152601060248201526000805160206157e0833981519152604482015290519081900360640190fd5b600654600160a060020a031633146116fc576040805160e560020a62461bcd0281526020600482015260126024820152600080516020615720833981519152604482015290519081900360640190fd5b64e8d4a51000811015611759576040805160e560020a62461bcd02815260206004820152600b60248201527f4552525f4d494e5f464545000000000000000000000000000000000000000000604482015290519081900360640190fd5b67016345785d8a00008111156117b9576040805160e560020a62461bcd02815260206004820152600b60248201527f4552525f4d41585f464545000000000000000000000000000000000000000000604482015290519081900360640190fd5b6007556005805461ff0019169055565b33600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff1615611878576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff00191661010017905560065433600160a060020a03909116146118d9576040805160e560020a62461bcd0281526020600482015260126024820152600080516020615720833981519152604482015290519081900360640190fd5b600160a060020a0383166000908152600a602052604090205460ff16611937576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b60085460ff1615611980576040805160e560020a62461bcd02815260206004820152601060248201526000805160206157e0833981519152604482015290519081900360640190fd5b670de0b6b3a76400008110156119e0576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f4d494e5f574549474854000000000000000000000000000000000000604482015290519081900360640190fd5b6802b5e3af16b1880000811115611a41576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f4d41585f574549474854000000000000000000000000000000000000604482015290519081900360640190fd5b620f4240821015611a9c576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f4d494e5f42414c414e43450000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383166000908152600a602052604090206002015480821115611b3f57611ad5600b54611ad08484614dee565b615082565b600b8190556802b5e3af16b18800001015611b3a576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f4d41585f544f54414c5f574549474854000000000000000000000000604482015290519081900360640190fd5b611b60565b80821015611b6057611b5c600b54611b578385614dee565b614dee565b600b555b600160a060020a0384166000908152600a602052604090206002810183905560030180549084905580841115611ba957611ba48533611b9f8785614dee565b6150df565b611c03565b80841015611c03576000611bbd8286614dee565b90506000611bcc826000614d05565b9050611be28733611bdd8585614dee565b614e83565b600554611c00908890620100009004600160a060020a031683614e83565b50505b50506005805461ff0019169055505050565b600033600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff1615611cc6576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff00191661010017905560085460ff16611d1d576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615680833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600a602052604090205460ff16611d7b576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600a6020526040902060038101546002808301549054600b54600754611db594939291908990613858565b915082821015611dfd576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615800833981519152604482015290519081900360640190fd5b600160a060020a0385166000908152600a60205260409020600390810154611e2d91670de0b6b3a7640000610e34565b821115611e72576040805160e560020a62461bcd02815260206004820152601160248201526000805160206156e0833981519152604482015290519081900360640190fd5b611e80816003015483614dee565b60038201556000611e918582614d05565b604080518581529051919250600160a060020a0388169133916000805160206157a0833981519152919081900360200190a3611ecd3386614e5f565b611eda610faf8683614dee565b600554611ef690620100009004600160a060020a031682614e79565b610fdb863385614e83565b33600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff1615611fb0576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff00191661010017905560085460ff1615612008576040805160e560020a62461bcd02815260206004820152601060248201526000805160206157e0833981519152604482015290519081900360640190fd5b600654600160a060020a03163314612058576040805160e560020a62461bcd0281526020600482015260126024820152600080516020615720833981519152604482015290519081900360640190fd5b6006805491151560a060020a0274ff0000000000000000000000000000000000000000199092169190911790556005805461ff0019169055565b33600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff1615612141576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff00191661010017905560065433600160a060020a03909116146121a2576040805160e560020a62461bcd0281526020600482015260126024820152600080516020615720833981519152604482015290519081900360640190fd5b60085460ff16156121eb576040805160e560020a62461bcd02815260206004820152601060248201526000805160206157e0833981519152604482015290519081900360640190fd5b60095460021115612246576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f4d494e5f544f4b454e53000000000000000000000000000000000000604482015290519081900360640190fd5b6008805460ff191660011790556006805474ff0000000000000000000000000000000000000000191660a060020a17905561228968056bc75e2d63100000615151565b61229c3368056bc75e2d63100000614e79565b6005805461ff0019169055565b33600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff1615612358576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff00191661010017905560085460ff166123af576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615680833981519152604482015290519081900360640190fd5b60006123b9611392565b905060006123c7858361515a565b90508061240c576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020615820833981519152604482015290519081900360640190fd5b60005b60095481101561257c5760006009828154811061242857fe5b6000918252602080832090910154600160a060020a0316808352600a90915260408220600301549092509061245d8583614d05565b9050806124a2576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020615820833981519152604482015290519081900360640190fd5b8787858181106124ae57fe5b905060200201358111156124fa576040805160e560020a62461bcd02815260206004820152600c60248201526000805160206156c0833981519152604482015290519081900360640190fd5b600160a060020a0383166000908152600a60205260409020600301546125209082615082565b600160a060020a0384166000818152600a60209081526040918290206003019390935580518481529051919233926000805160206157008339815191529281900390910190a36125718333836150df565b50505060010161240f565b5061258685615151565b611c033386614e79565b60008061259d878661515a565b905060006125ab8786615082565b905060006125b9828961515a565b905060006125cf670de0b6b3a76400008561515a565b905060006125dd8383615296565b905060006125eb828e614d05565b905060006125f9828f614dee565b90506000612618612612670de0b6b3a76400008a614dee565b8b614d05565b905061263582612630670de0b6b3a764000084614dee565b61515a565b9f9e505050505050505050505050505050565b600033600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff16156126f9576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff00191661010017905560085460ff16612750576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615680833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600a602052604090205460ff166127ae576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600a60205260409020600301546127e0906002670de0b6b3a76400005b04614d05565b831115612825576040805160e560020a62461bcd0281526020600482015260106024820152600080516020615740833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600a6020526040902060038101546002808301549054600b5460075461285f949392919089906137a3565b9150828210156128a7576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615800833981519152604482015290519081900360640190fd5b6128b5816003015485615082565b6003820155604080518581529051600160a060020a0387169133916000805160206157008339815191529181900360200190a36128f182615151565b6128fb3383614e79565b6129068533866150df565b506005805461ff00191690559392505050565b336000908152600160209081526040808320600160a060020a03861684529091528120548083111561296e57336000908152600160209081526040808320600160a060020a038816845290915281205561299d565b6129788184614dee565b336000908152600160209081526040808320600160a060020a03891684529091529020555b336000818152600160209081526040808320600160a060020a0389168085529083529281902054815190815290519293926000805160206157c0833981519152929181900390910190a35060019392505050565b600033600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff1615612aa2576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff00191661010017905560085460ff16612af9576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615680833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600a602052604090205460ff16612b57576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600a6020526040902060038101546002808301549054600b54600754612b9194939291908990612590565b915081612bd6576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020615820833981519152604482015290519081900360640190fd5b82821115612c1c576040805160e560020a62461bcd02815260206004820152600c60248201526000805160206156c0833981519152604482015290519081900360640190fd5b600160a060020a0385166000908152600a6020526040902060030154612c4c906002670de0b6b3a76400006127da565b821115612c91576040805160e560020a62461bcd0281526020600482015260106024820152600080516020615740833981519152604482015290519081900360640190fd5b612c9f816003015483615082565b6003820155604080518381529051600160a060020a0387169133916000805160206157008339815191529181900360200190a3612cdb84615151565b612ce53385614e79565b6129068533846150df565b600160a060020a031660009081526020819052604090205490565b620f4240670de0b6b3a76400006113a8565b6040805160208082523690820181905260009283923392600160e060020a03198535169285929081908101848480828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff1615612dbd576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff001916610100179055600160a060020a0387166000908152600a602052604090205460ff16612e2a576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b600160a060020a0385166000908152600a602052604090205460ff16612e88576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b60065460a060020a900460ff16612ee9576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f535741505f4e4f545f5055424c494300000000000000000000000000604482015290519081900360640190fd5b600160a060020a038088166000908152600a602052604080822092881682529020600380820154612f2291670de0b6b3a7640000610e34565b861115612f67576040805160e560020a62461bcd02815260206004820152601160248201526000805160206156e0833981519152604482015290519081900360640190fd5b6000612f888360030154846002015484600301548560020154600754613df0565b905085811115612fe2576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4241445f4c494d49545f505249434500000000000000000000000000604482015290519081900360640190fd5b61300283600301548460020154846003015485600201548b600754614c72565b94508885111561304a576040805160e560020a62461bcd02815260206004820152600c60248201526000805160206156c0833981519152604482015290519081900360640190fd5b613058836003015486615082565b836003018190555061306e826003015488614dee565b600380840182905584015460028086015490850154600754613091949190613df0565b9350808410156130d9576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020615820833981519152604482015290519081900360640190fd5b85841115613131576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f4c494d49545f50524943450000000000000000000000000000000000604482015290519081900360640190fd5b61313b858861515a565b811115613180576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020615820833981519152604482015290519081900360640190fd5b87600160a060020a03168a600160a060020a031633600160a060020a03167f908fb5ee8f16c6bc9bc3690973819f32a4d4b10188134543c88706e0e1d43378888b604051808381526020018281526020019250505060405180910390a46131e88a33876150df565b6131f3883389614e83565b5050506005805461ff001916905590969095509350505050565b6040805160208082523690820181905260009283923392600160e060020a03198535169285929081908101848480828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff16156132ad576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff001916610100179055600160a060020a0387166000908152600a602052604090205460ff1661331a576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b600160a060020a0385166000908152600a602052604090205460ff16613378576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b60065460a060020a900460ff166133d9576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f535741505f4e4f545f5055424c494300000000000000000000000000604482015290519081900360640190fd5b600160a060020a038088166000908152600a6020526040808220928816825290206003820154613413906002670de0b6b3a76400006127da565b881115613458576040805160e560020a62461bcd0281526020600482015260106024820152600080516020615740833981519152604482015290519081900360640190fd5b60006134798360030154846002015484600301548560020154600754613df0565b9050858111156134d3576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4241445f4c494d49545f505249434500000000000000000000000000604482015290519081900360640190fd5b6134f383600301548460020154846003015485600201548d6007546141ae565b94508685101561353b576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615800833981519152604482015290519081900360640190fd5b61354983600301548a615082565b836003018190555061355f826003015486614dee565b600380840182905584015460028086015490850154600754613582949190613df0565b9350808410156135ca576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020615820833981519152604482015290519081900360640190fd5b85841115613622576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f4c494d49545f50524943450000000000000000000000000000000000604482015290519081900360640190fd5b61362c898661515a565b811115613671576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020615820833981519152604482015290519081900360640190fd5b87600160a060020a03168a600160a060020a031633600160a060020a03167f908fb5ee8f16c6bc9bc3690973819f32a4d4b10188134543c88706e0e1d433788c89604051808381526020018281526020019250505060405180910390a46136d98a338b6150df565b6131f3883387614e83565b6000806136f1878661515a565b90506000613707670de0b6b3a764000083614dee565b905060006137158286614d05565b9050600061372f87612630670de0b6b3a764000085614dee565b9050600061373d8c83614dee565b9050600061374b828e61515a565b905060006137598288615296565b90506000613767828e614d05565b905060006137758e83614dee565b905061378e81612630670de0b6b3a76400006000614dee565b99505050505050505050509695505050505050565b6000806137b0878661515a565b905060006137cf6137c9670de0b6b3a764000084614dee565b85614d05565b905060006137ee866137e9670de0b6b3a764000085614dee565b614d05565b905060006137fc8b83615082565b9050600061380a828d61515a565b905060006138188287615296565b90506000613826828d614d05565b9050613832818d614dee565b9e9d5050505050505050505050505050565b64e8d4a51000670de0b6b3a76400006113a8565b600080613865878661515a565b90506000613880856137e9670de0b6b3a76400006000614dee565b9050600061388e8883614dee565b9050600061389c828a61515a565b905060006138bb826138b6670de0b6b3a76400008861515a565b615296565b905060006138c9828e614d05565b905060006138d78e83614dee565b905060006138f0612612670de0b6b3a76400008a614dee565b9050612635826137e9670de0b6b3a764000084614dee565b33600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff16156139b7576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff001916610100179055600160a060020a0381166000908152600a602052604090205460ff16613a24576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038316916370a08231916024808301926020929190829003018186803b158015613a8357600080fd5b505afa158015613a97573d6000803e3d6000fd5b505050506040513d6020811015613aad57600080fd5b5051600160a060020a039091166000908152600a60205260409020600301556005805461ff0019169055565b60085460ff1690565b33600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff1615613b91576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff00191661010017905560065433600160a060020a0390911614613bf2576040805160e560020a62461bcd0281526020600482015260126024820152600080516020615720833981519152604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790556005805461ff0019169055565b600554600090610100900460ff1615613c7d576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b50600b5490565b68056bc75e2d6310000081565b600554600090610100900460ff1615613ce2576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b600160a060020a0382166000908152600a602052604090205460ff16613d40576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b50600160a060020a03166000908152600a602052604090206002015490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561107b5780601f106110505761010080835404028352916020019161107b565b6704a03ce68d21555681565b7f42524f4e5a45000000000000000000000000000000000000000000000000000090565b600080613dfd878761515a565b90506000613e0b868661515a565b90506000613e19838361515a565b90506000613e3b670de0b6b3a7640000612630670de0b6b3a764000089614dee565b9050613e478282614d05565b9a9950505050505050505050565b6000613e62338484614f78565b50600192915050565b33600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff1615613f1a576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff00191661010017905560085460ff16613f71576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615680833981519152604482015290519081900360640190fd5b6000613f7b611392565b90506000613f8a856000614d05565b90506000613f988683614dee565b90506000613fa6828561515a565b905080613feb576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020615820833981519152604482015290519081900360640190fd5b613ff53388614e5f565b60055461401190620100009004600160a060020a031684614e79565b61401a82614e6d565b60005b60095481101561418a5760006009828154811061403657fe5b6000918252602080832090910154600160a060020a0316808352600a90915260408220600301549092509061406b8583614d05565b9050806140b0576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020615820833981519152604482015290519081900360640190fd5b8989858181106140bc57fe5b90506020020135811015614108576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615800833981519152604482015290519081900360640190fd5b600160a060020a0383166000908152600a602052604090206003015461412e9082614dee565b600160a060020a0384166000818152600a60209081526040918290206003019390935580518481529051919233926000805160206157a08339815191529281900390910190a361417f833383614e83565b50505060010161401d565b50506005805461ff0019169055505050505050565b600881565b600281565b600181565b6000806141bb878661515a565b905060006141d1670de0b6b3a764000085614dee565b90506141dd8582614d05565b905060006141ef8a6126308c85615082565b905060006141fd8285615296565b90506000614213670de0b6b3a764000083614dee565b905061421f8a82614d05565b9c9b505050505050505050505050565b600a670de0b6b3a76400006113a8565b671bc16d674ec7ffff81565b600554606090610100900460ff161561429c576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b60085460ff166142e4576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615680833981519152604482015290519081900360640190fd5b600980548060200260200160405190810160405280929190818152602001828054801561107b57602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831161431c575050505050905090565b600081565b600554606090610100900460ff16156142e4576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b60095490565b33600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff161561444e576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff00191661010017905560065433600160a060020a03909116146144af576040805160e560020a62461bcd0281526020600482015260126024820152600080516020615720833981519152604482015290519081900360640190fd5b600160a060020a0381166000908152600a602052604090205460ff1661450d576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b60085460ff1615614556576040805160e560020a62461bcd02815260206004820152601060248201526000805160206157e0833981519152604482015290519081900360640190fd5b600160a060020a0381166000908152600a60205260408120600301549061457d8282614d05565b600b54600160a060020a0385166000908152600a60205260409020600201549192506145a891614dee565b600b55600160a060020a0383166000908152600a60205260409020600101546009805460001981019190829081106145dc57fe5b60009182526020909120015460098054600160a060020a03909216918490811061460257fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a0316021790555081600a60006009858154811061464257fe5b6000918252602080832090910154600160a060020a03168352820192909252604001902060010155600980548061467557fe5b600082815260208082206000199084018101805473ffffffffffffffffffffffffffffffffffffffff191690559092019092556040805160808101825283815280830184815281830185815260608301868152600160a060020a038c168752600a909552929094209051815460ff1916901515178155925160018401555160028301555160039091015561470e8533611bdd8787614dee565b600554611c03908690620100009004600160a060020a031685614e83565b600554600090610100900460ff161561477d576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b5060075490565b336000908152600160209081526040808320600160a060020a03861684529091528120546147b29083615082565b336000818152600160209081526040808320600160a060020a0389168085529083529281902085905580519485525191936000805160206157c0833981519152929081900390910190a350600192915050565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b33600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600654600160a060020a031633146148e1576040805160e560020a62461bcd0281526020600482015260126024820152600080516020615720833981519152604482015290519081900360640190fd5b600160a060020a0383166000908152600a602052604090205460ff1615614952576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f49535f424f554e440000000000000000000000000000000000000000604482015290519081900360640190fd5b60085460ff161561499b576040805160e560020a62461bcd02815260206004820152601060248201526000805160206157e0833981519152604482015290519081900360640190fd5b6009546008116149f5576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f4d41585f544f4b454e53000000000000000000000000000000000000604482015290519081900360640190fd5b604080516080810182526001808252600980546020808501918252600085870181815260608701828152600160a060020a038c16808452600a9094529782209651875460ff1916901515178755925186860155915160028601559451600390940193909355805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af01805473ffffffffffffffffffffffffffffffffffffffff19169091179055614aaf8383836117c9565b505050565b6002670de0b6b3a76400006113a8565b600554600090610100900460ff1615614b15576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b600160a060020a0382166000908152600a602052604090205460ff16614b73576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b600160a060020a0382166000908152600a6020526040902060020154600b54614b9d90829061515a565b9392505050565b600554600090610100900460ff1615614bf5576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b600160a060020a0382166000908152600a602052604090205460ff16614c53576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b50600160a060020a03166000908152600a602052604090206003015490565b600080614c7f858861515a565b90506000614c8d8786614dee565b90506000614c9b888361515a565b90506000614ca98285615296565b9050614cbd81670de0b6b3a7640000614dee565b9050614cd1670de0b6b3a764000087614dee565b9450614ce6614ce08c83614d05565b8661515a565b9b9a5050505050505050505050565b60065460a060020a900460ff1690565b6000828202831580614d1f575082848281614d1c57fe5b04145b614d73576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f4d554c5f4f564552464c4f5700000000000000000000000000000000604482015290519081900360640190fd5b6706f05b59d3b20000810181811015614dd6576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f4d554c5f4f564552464c4f5700000000000000000000000000000000604482015290519081900360640190fd5b6000670de0b6b3a7640000825b049695505050505050565b6000806000614dfd85856153b9565b915091508015614e57576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f5355425f554e444552464c4f57000000000000000000000000000000604482015290519081900360640190fd5b509392505050565b614e6982826153de565b5050565b614e76816153e9565b50565b614e6982826154b3565b604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03848116600483015260248201849052915160009286169163a9059cbb91604480830192602092919082900301818787803b158015614eef57600080fd5b505af1158015614f03573d6000803e3d6000fd5b505050506040513d6020811015614f1957600080fd5b5051905080614f72576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f45524332305f46414c53450000000000000000000000000000000000604482015290519081900360640190fd5b50505050565b600160a060020a038316600090815260208190526040902054811115614fe8576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e53554646494349454e545f42414c000000000000000000000000604482015290519081900360640190fd5b600160a060020a03831660009081526020819052604090205461500b9082614dee565b600160a060020a03808516600090815260208190526040808220939093559084168152205461503a9082615082565b600160a060020a0380841660008181526020818152604091829020949094558051858152905191939287169260008051602061576083398151915292918290030190a3505050565b600082820183811015614b9d576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f4144445f4f564552464c4f5700000000000000000000000000000000604482015290519081900360640190fd5b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301523060248301526044820184905291516000928616916323b872dd91606480830192602092919082900301818787803b158015614eef57600080fd5b614e76816154be565b6000816151b1576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4449565f5a45524f0000000000000000000000000000000000000000604482015290519081900360640190fd5b670de0b6b3a764000083028315806151d95750670de0b6b3a76400008482816151d657fe5b04145b61522d576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f4449565f494e5445524e414c00000000000000000000000000000000604482015290519081900360640190fd5b6002830481018181101561528b576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f4449565f494e5445524e414c00000000000000000000000000000000604482015290519081900360640190fd5b6000848281614de357fe5b600060018310156152f1576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f42504f575f424153455f544f4f5f4c4f570000000000000000000000604482015290519081900360640190fd5b671bc16d674ec7ffff831115615351576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f42504f575f424153455f544f4f5f4849474800000000000000000000604482015290519081900360640190fd5b600061535c83615521565b9050600061536a8483614dee565b905060006153808661537b8561553c565b61554a565b9050816153915792506110d4915050565b60006153a287846305f5e1006155a1565b90506153ae8282614d05565b979650505050505050565b6000808284106153cf57505080820360006153d7565b505081810360015b9250929050565b614e69823083614f78565b30600090815260208190526040902054811115615450576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e53554646494349454e545f42414c000000000000000000000000604482015290519081900360640190fd5b3060009081526020819052604090205461546a9082614dee565b306000908152602081905260409020556002546154879082614dee565b60025560408051828152905160009130916000805160206157608339815191529181900360200190a350565b614e69308383614f78565b306000908152602081905260409020546154d89082615082565b306000908152602081905260409020556002546154f59082615082565b60025560408051828152905130916000916000805160206157608339815191529181900360200190a350565b6000670de0b6b3a76400006155358361553c565b0292915050565b670de0b6b3a7640000900490565b6000806002830661556357670de0b6b3a7640000615565565b835b90506002830492505b8215614b9d5761557e8485614d05565b93506002830615615596576155938185614d05565b90505b60028304925061556e565b60008281806155b887670de0b6b3a76400006153b9565b9092509050670de0b6b3a764000080600060015b888410615670576000670de0b6b3a7640000820290506000806156008a6155fb85670de0b6b3a7640000614dee565b6153b9565b91509150615612876137e9848c614d05565b965061561e878461515a565b96508661562d57505050615670565b8715615637579315935b8015615641579315935b8415615658576156518688614dee565b9550615665565b6156628688615082565b95505b5050506001016155cc565b5090999850505050505050505056fe4552525f4e4f545f46494e414c495a45440000000000000000000000000000004552525f5245454e5452590000000000000000000000000000000000000000004552525f4c494d49545f494e00000000000000000000000000000000000000004552525f4d41585f4f55545f524154494f00000000000000000000000000000063982df10efd8dfaaaa0fcc7f50b2d93b7cba26ccc48adee2873220d485dc39a4552525f4e4f545f434f4e54524f4c4c455200000000000000000000000000004552525f4d41585f494e5f524154494f00000000000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef4552525f4e4f545f424f554e4400000000000000000000000000000000000000e74c91552b64c2e2e7bd255639e004e693bd3e1d01cc33e65610b86afcc1ffed8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9254552525f49535f46494e414c495a4544000000000000000000000000000000004552525f4c494d49545f4f5554000000000000000000000000000000000000004552525f4d4154485f415050524f580000000000000000000000000000000000a265627a7a723158202b5a60166bb5b113e86d3e715d8d891e57428121f0c4ed3916bb69f71e21311d64736f6c634300050c0032", | |
"deployedBytecode": "0x608060405234801561001057600080fd5b5060043610610378576000357c0100000000000000000000000000000000000000000000000000000000900480638d4e4083116101e7578063bc694ea211610122578063d73dd623116100c5578063d73dd62314610b7f578063dd62ed3e14610bab578063e4a28a521461047e578063e4e1e53814610bd9578063ec09302114610c0b578063f1b8a9b714610c13578063f8b2cb4f14610c39578063f8d6aed414610c5f578063fde924f714610c9a57610378565b8063bc694ea214610ad9578063be3bbd2e14610ae1578063c36596a6146104f2578063c6580d1214610b39578063cc77828d14610b41578063cd2ed8fb14610b49578063cf5e7bd314610b51578063d4cadf6814610b7757610378565b8063a221ee491161018a578063a221ee49146109a6578063a9059cbb146109db578063b02f0b7314610a07578063b0e0d13614610a7e578063b7b800a414610a86578063ba019dab14610a8e578063ba9530a614610a96578063bc063e1a14610ad157610378565b80638d4e40831461092a57806392eefe9b14610932578063936c3477146109585780639381cd2b14610960578063948d8ce61461096857806395d89b411461098e578063992e2a92146109965780639a86139b1461099e57610378565b806349b59552116102b757806376c7a3c71161025a57806376c7a3c7146107aa5780637c5e9ea4146107b25780638201aa3f1461080b57806382f652ad1461084b5780638656b65314610886578063867378c5146108c157806389298012146108c95780638c28cbe81461090457610378565b806349b595521461061b5780634bb278f31461063a5780634f69c0d4146106425780635c1bbaf7146106b95780635db34277146106f457806366188463146107265780636d06dfa01461075257806370a082311461078457610378565b8063218b53821161031f578063218b5382146104f257806323b872dd146104fa5780632f37b624146105305780633018205f14610556578063313ce5671461057a57806334e19907146105985780633fdddaa2146105b757806346ab38f1146105e957610378565b806302c967481461037d57806306fdde03146103c1578063095ea7b31461043e57806309a3bbe41461047e5780631446a7ff1461048657806315e84af9146104b457806318160ddd146104e2578063189d00ca146104ea575b600080fd5b6103af6004803603606081101561039357600080fd5b50600160a060020a038135169060208101359060400135610ca2565b60408051918252519081900360200190f35b6103c9610fef565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104035781810151838201526020016103eb565b50505050905090810190601f1680156104305780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61046a6004803603604081101561045457600080fd5b50600160a060020a038135169060200135611085565b604080519115158252519081900360200190f35b6103af6110da565b6103af6004803603604081101561049c57600080fd5b50600160a060020a03813581169160200135166110e7565b6103af600480360360408110156104ca57600080fd5b50600160a060020a0381358116916020013516611241565b6103af611392565b6103af611398565b6103af6113ac565b61046a6004803603606081101561051057600080fd5b50600160a060020a038135811691602081013590911690604001356113b8565b61046a6004803603602081101561054657600080fd5b5035600160a060020a031661151d565b61055e61153b565b60408051600160a060020a039092168252519081900360200190f35b61058261159c565b6040805160ff9092168252519081900360200190f35b6105b5600480360360208110156105ae57600080fd5b50356115a5565b005b6105b5600480360360608110156105cd57600080fd5b50600160a060020a0381351690602081013590604001356117c9565b6103af600480360360608110156105ff57600080fd5b50600160a060020a038135169060208101359060400135611c15565b6105b56004803603602081101561063157600080fd5b50351515611f01565b6105b5612092565b6105b56004803603604081101561065857600080fd5b8135919081019060408101602082013564010000000081111561067a57600080fd5b82018360208201111561068c57600080fd5b803590602001918460208302840111640100000000831117156106ae57600080fd5b5090925090506122a9565b6103af600480360360c08110156106cf57600080fd5b5080359060208101359060408101359060608101359060808101359060a00135612590565b6103af6004803603606081101561070a57600080fd5b50600160a060020a038135169060208101359060400135612648565b61046a6004803603604081101561073c57600080fd5b50600160a060020a038135169060200135612919565b6103af6004803603606081101561076857600080fd5b50600160a060020a0381351690602081013590604001356129f1565b6103af6004803603602081101561079a57600080fd5b5035600160a060020a0316612cf0565b6103af612d0b565b6107f2600480360360a08110156107c857600080fd5b50600160a060020a0381358116916020810135916040820135169060608101359060800135612d1d565b6040805192835260208301919091528051918290030190f35b6107f2600480360360a081101561082157600080fd5b50600160a060020a038135811691602081013591604082013516906060810135906080013561320d565b6103af600480360360c081101561086157600080fd5b5080359060208101359060408101359060608101359060808101359060a001356136e4565b6103af600480360360c081101561089c57600080fd5b5080359060208101359060408101359060608101359060808101359060a001356137a3565b6103af613844565b6103af600480360360c08110156108df57600080fd5b5080359060208101359060408101359060608101359060808101359060a00135613858565b6105b56004803603602081101561091a57600080fd5b5035600160a060020a0316613908565b61046a613ad9565b6105b56004803603602081101561094857600080fd5b5035600160a060020a0316613ae2565b6103af613c2c565b6103af613c84565b6103af6004803603602081101561097e57600080fd5b5035600160a060020a0316613c91565b6103c9613d5f565b6103af613dc0565b6103af613dcc565b6103af600480360360a08110156109bc57600080fd5b5080359060208101359060408101359060608101359060800135613df0565b61046a600480360360408110156109f157600080fd5b50600160a060020a038135169060200135613e55565b6105b560048036036040811015610a1d57600080fd5b81359190810190604081016020820135640100000000811115610a3f57600080fd5b820183602082011115610a5157600080fd5b80359060200191846020830284011164010000000083111715610a7357600080fd5b509092509050613e6b565b6103af61419f565b6103af6141a4565b6103af6141a9565b6103af600480360360c0811015610aac57600080fd5b5080359060208101359060408101359060608101359060808101359060a001356141ae565b6103af61422f565b6103af61423f565b610ae961424b565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610b25578181015183820152602001610b0d565b505050509050019250505060405180910390f35b6103af614343565b610ae9614348565b6103af614399565b6105b560048036036020811015610b6757600080fd5b5035600160a060020a031661439f565b6103af61472c565b61046a60048036036040811015610b9557600080fd5b50600160a060020a038135169060200135614784565b6103af60048036036040811015610bc157600080fd5b50600160a060020a0381358116916020013516614805565b6105b560048036036060811015610bef57600080fd5b50600160a060020a038135169060208101359060400135614830565b6103af614ab4565b6103af60048036036020811015610c2957600080fd5b5035600160a060020a0316614ac4565b6103af60048036036020811015610c4f57600080fd5b5035600160a060020a0316614ba4565b6103af600480360360c0811015610c7557600080fd5b5080359060208101359060408101359060608101359060808101359060a00135614c72565b61046a614cf5565b600033600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff1615610d53576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff00191661010017905560085460ff16610daa576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615680833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600a602052604090205460ff16610e08576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600a60205260409020600390810154610e3d91670de0b6b3a76400005b04600101614d05565b831115610e82576040805160e560020a62461bcd02815260206004820152601160248201526000805160206156e0833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600a6020526040902060038101546002808301549054600b54600754610ebc949392919089906136e4565b915081610f01576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020615820833981519152604482015290519081900360640190fd5b82821115610f47576040805160e560020a62461bcd02815260206004820152600c60248201526000805160206156c0833981519152604482015290519081900360640190fd5b610f55816003015485614dee565b60038201556000610f668382614d05565b604080518781529051919250600160a060020a0388169133916000805160206157a0833981519152919081900360200190a3610fa23384614e5f565b610fb4610faf8483614dee565b614e6d565b600554610fd090620100009004600160a060020a031682614e79565b610fdb863387614e83565b50506005805461ff00191690559392505050565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561107b5780601f106110505761010080835404028352916020019161107b565b820191906000526020600020905b81548152906001019060200180831161105e57829003601f168201915b5050505050905090565b336000818152600160209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390926000805160206157c0833981519152928290030190a35060015b92915050565b6802b5e3af16b188000081565b600554600090610100900460ff1615611138576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b600160a060020a0383166000908152600a602052604090205460ff16611196576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b600160a060020a0382166000908152600a602052604090205460ff166111f4576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b600160a060020a038084166000908152600a602052604080822092851682528120600380840154600280860154928401549084015493946112389492939290613df0565b95945050505050565b600554600090610100900460ff1615611292576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b600160a060020a0383166000908152600a602052604090205460ff166112f0576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b600160a060020a0382166000908152600a602052604090205460ff1661134e576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b600160a060020a038084166000908152600a602052604080822092851682529020600380830154600280850154928401549084015460075461123894929190613df0565b60025490565b6402540be400670de0b6b3a76400005b0481565b670de0b6b3a764000081565b600033600160a060020a03851614806113f45750600160a060020a03841660009081526001602090815260408083203384529091529020548211155b611448576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f42544f4b454e5f4241445f43414c4c45520000000000000000000000604482015290519081900360640190fd5b611453848484614f78565b33600160a060020a038516148015906114915750600160a060020a038416600090815260016020908152604080832033845290915290205460001914155b1561151357600160a060020a03841660009081526001602090815260408083203384529091529020546114c49083614dee565b600160a060020a03858116600090815260016020908152604080832033808552908352928190208590558051948552519287169391926000805160206157c08339815191529281900390910190a35b5060019392505050565b600160a060020a03166000908152600a602052604090205460ff1690565b600554600090610100900460ff161561158c576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b50600654600160a060020a031690565b60055460ff1690565b33600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff1615611654576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff00191661010017905560085460ff16156116ac576040805160e560020a62461bcd02815260206004820152601060248201526000805160206157e0833981519152604482015290519081900360640190fd5b600654600160a060020a031633146116fc576040805160e560020a62461bcd0281526020600482015260126024820152600080516020615720833981519152604482015290519081900360640190fd5b64e8d4a51000811015611759576040805160e560020a62461bcd02815260206004820152600b60248201527f4552525f4d494e5f464545000000000000000000000000000000000000000000604482015290519081900360640190fd5b67016345785d8a00008111156117b9576040805160e560020a62461bcd02815260206004820152600b60248201527f4552525f4d41585f464545000000000000000000000000000000000000000000604482015290519081900360640190fd5b6007556005805461ff0019169055565b33600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff1615611878576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff00191661010017905560065433600160a060020a03909116146118d9576040805160e560020a62461bcd0281526020600482015260126024820152600080516020615720833981519152604482015290519081900360640190fd5b600160a060020a0383166000908152600a602052604090205460ff16611937576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b60085460ff1615611980576040805160e560020a62461bcd02815260206004820152601060248201526000805160206157e0833981519152604482015290519081900360640190fd5b670de0b6b3a76400008110156119e0576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f4d494e5f574549474854000000000000000000000000000000000000604482015290519081900360640190fd5b6802b5e3af16b1880000811115611a41576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f4d41585f574549474854000000000000000000000000000000000000604482015290519081900360640190fd5b620f4240821015611a9c576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f4d494e5f42414c414e43450000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383166000908152600a602052604090206002015480821115611b3f57611ad5600b54611ad08484614dee565b615082565b600b8190556802b5e3af16b18800001015611b3a576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f4d41585f544f54414c5f574549474854000000000000000000000000604482015290519081900360640190fd5b611b60565b80821015611b6057611b5c600b54611b578385614dee565b614dee565b600b555b600160a060020a0384166000908152600a602052604090206002810183905560030180549084905580841115611ba957611ba48533611b9f8785614dee565b6150df565b611c03565b80841015611c03576000611bbd8286614dee565b90506000611bcc826000614d05565b9050611be28733611bdd8585614dee565b614e83565b600554611c00908890620100009004600160a060020a031683614e83565b50505b50506005805461ff0019169055505050565b600033600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff1615611cc6576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff00191661010017905560085460ff16611d1d576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615680833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600a602052604090205460ff16611d7b576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600a6020526040902060038101546002808301549054600b54600754611db594939291908990613858565b915082821015611dfd576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615800833981519152604482015290519081900360640190fd5b600160a060020a0385166000908152600a60205260409020600390810154611e2d91670de0b6b3a7640000610e34565b821115611e72576040805160e560020a62461bcd02815260206004820152601160248201526000805160206156e0833981519152604482015290519081900360640190fd5b611e80816003015483614dee565b60038201556000611e918582614d05565b604080518581529051919250600160a060020a0388169133916000805160206157a0833981519152919081900360200190a3611ecd3386614e5f565b611eda610faf8683614dee565b600554611ef690620100009004600160a060020a031682614e79565b610fdb863385614e83565b33600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff1615611fb0576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff00191661010017905560085460ff1615612008576040805160e560020a62461bcd02815260206004820152601060248201526000805160206157e0833981519152604482015290519081900360640190fd5b600654600160a060020a03163314612058576040805160e560020a62461bcd0281526020600482015260126024820152600080516020615720833981519152604482015290519081900360640190fd5b6006805491151560a060020a0274ff0000000000000000000000000000000000000000199092169190911790556005805461ff0019169055565b33600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff1615612141576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff00191661010017905560065433600160a060020a03909116146121a2576040805160e560020a62461bcd0281526020600482015260126024820152600080516020615720833981519152604482015290519081900360640190fd5b60085460ff16156121eb576040805160e560020a62461bcd02815260206004820152601060248201526000805160206157e0833981519152604482015290519081900360640190fd5b60095460021115612246576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f4d494e5f544f4b454e53000000000000000000000000000000000000604482015290519081900360640190fd5b6008805460ff191660011790556006805474ff0000000000000000000000000000000000000000191660a060020a17905561228968056bc75e2d63100000615151565b61229c3368056bc75e2d63100000614e79565b6005805461ff0019169055565b33600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff1615612358576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff00191661010017905560085460ff166123af576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615680833981519152604482015290519081900360640190fd5b60006123b9611392565b905060006123c7858361515a565b90508061240c576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020615820833981519152604482015290519081900360640190fd5b60005b60095481101561257c5760006009828154811061242857fe5b6000918252602080832090910154600160a060020a0316808352600a90915260408220600301549092509061245d8583614d05565b9050806124a2576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020615820833981519152604482015290519081900360640190fd5b8787858181106124ae57fe5b905060200201358111156124fa576040805160e560020a62461bcd02815260206004820152600c60248201526000805160206156c0833981519152604482015290519081900360640190fd5b600160a060020a0383166000908152600a60205260409020600301546125209082615082565b600160a060020a0384166000818152600a60209081526040918290206003019390935580518481529051919233926000805160206157008339815191529281900390910190a36125718333836150df565b50505060010161240f565b5061258685615151565b611c033386614e79565b60008061259d878661515a565b905060006125ab8786615082565b905060006125b9828961515a565b905060006125cf670de0b6b3a76400008561515a565b905060006125dd8383615296565b905060006125eb828e614d05565b905060006125f9828f614dee565b90506000612618612612670de0b6b3a76400008a614dee565b8b614d05565b905061263582612630670de0b6b3a764000084614dee565b61515a565b9f9e505050505050505050505050505050565b600033600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff16156126f9576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff00191661010017905560085460ff16612750576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615680833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600a602052604090205460ff166127ae576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600a60205260409020600301546127e0906002670de0b6b3a76400005b04614d05565b831115612825576040805160e560020a62461bcd0281526020600482015260106024820152600080516020615740833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600a6020526040902060038101546002808301549054600b5460075461285f949392919089906137a3565b9150828210156128a7576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615800833981519152604482015290519081900360640190fd5b6128b5816003015485615082565b6003820155604080518581529051600160a060020a0387169133916000805160206157008339815191529181900360200190a36128f182615151565b6128fb3383614e79565b6129068533866150df565b506005805461ff00191690559392505050565b336000908152600160209081526040808320600160a060020a03861684529091528120548083111561296e57336000908152600160209081526040808320600160a060020a038816845290915281205561299d565b6129788184614dee565b336000908152600160209081526040808320600160a060020a03891684529091529020555b336000818152600160209081526040808320600160a060020a0389168085529083529281902054815190815290519293926000805160206157c0833981519152929181900390910190a35060019392505050565b600033600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff1615612aa2576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff00191661010017905560085460ff16612af9576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615680833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600a602052604090205460ff16612b57576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600a6020526040902060038101546002808301549054600b54600754612b9194939291908990612590565b915081612bd6576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020615820833981519152604482015290519081900360640190fd5b82821115612c1c576040805160e560020a62461bcd02815260206004820152600c60248201526000805160206156c0833981519152604482015290519081900360640190fd5b600160a060020a0385166000908152600a6020526040902060030154612c4c906002670de0b6b3a76400006127da565b821115612c91576040805160e560020a62461bcd0281526020600482015260106024820152600080516020615740833981519152604482015290519081900360640190fd5b612c9f816003015483615082565b6003820155604080518381529051600160a060020a0387169133916000805160206157008339815191529181900360200190a3612cdb84615151565b612ce53385614e79565b6129068533846150df565b600160a060020a031660009081526020819052604090205490565b620f4240670de0b6b3a76400006113a8565b6040805160208082523690820181905260009283923392600160e060020a03198535169285929081908101848480828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff1615612dbd576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff001916610100179055600160a060020a0387166000908152600a602052604090205460ff16612e2a576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b600160a060020a0385166000908152600a602052604090205460ff16612e88576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b60065460a060020a900460ff16612ee9576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f535741505f4e4f545f5055424c494300000000000000000000000000604482015290519081900360640190fd5b600160a060020a038088166000908152600a602052604080822092881682529020600380820154612f2291670de0b6b3a7640000610e34565b861115612f67576040805160e560020a62461bcd02815260206004820152601160248201526000805160206156e0833981519152604482015290519081900360640190fd5b6000612f888360030154846002015484600301548560020154600754613df0565b905085811115612fe2576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4241445f4c494d49545f505249434500000000000000000000000000604482015290519081900360640190fd5b61300283600301548460020154846003015485600201548b600754614c72565b94508885111561304a576040805160e560020a62461bcd02815260206004820152600c60248201526000805160206156c0833981519152604482015290519081900360640190fd5b613058836003015486615082565b836003018190555061306e826003015488614dee565b600380840182905584015460028086015490850154600754613091949190613df0565b9350808410156130d9576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020615820833981519152604482015290519081900360640190fd5b85841115613131576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f4c494d49545f50524943450000000000000000000000000000000000604482015290519081900360640190fd5b61313b858861515a565b811115613180576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020615820833981519152604482015290519081900360640190fd5b87600160a060020a03168a600160a060020a031633600160a060020a03167f908fb5ee8f16c6bc9bc3690973819f32a4d4b10188134543c88706e0e1d43378888b604051808381526020018281526020019250505060405180910390a46131e88a33876150df565b6131f3883389614e83565b5050506005805461ff001916905590969095509350505050565b6040805160208082523690820181905260009283923392600160e060020a03198535169285929081908101848480828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff16156132ad576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff001916610100179055600160a060020a0387166000908152600a602052604090205460ff1661331a576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b600160a060020a0385166000908152600a602052604090205460ff16613378576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b60065460a060020a900460ff166133d9576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f535741505f4e4f545f5055424c494300000000000000000000000000604482015290519081900360640190fd5b600160a060020a038088166000908152600a6020526040808220928816825290206003820154613413906002670de0b6b3a76400006127da565b881115613458576040805160e560020a62461bcd0281526020600482015260106024820152600080516020615740833981519152604482015290519081900360640190fd5b60006134798360030154846002015484600301548560020154600754613df0565b9050858111156134d3576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4241445f4c494d49545f505249434500000000000000000000000000604482015290519081900360640190fd5b6134f383600301548460020154846003015485600201548d6007546141ae565b94508685101561353b576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615800833981519152604482015290519081900360640190fd5b61354983600301548a615082565b836003018190555061355f826003015486614dee565b600380840182905584015460028086015490850154600754613582949190613df0565b9350808410156135ca576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020615820833981519152604482015290519081900360640190fd5b85841115613622576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f4c494d49545f50524943450000000000000000000000000000000000604482015290519081900360640190fd5b61362c898661515a565b811115613671576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020615820833981519152604482015290519081900360640190fd5b87600160a060020a03168a600160a060020a031633600160a060020a03167f908fb5ee8f16c6bc9bc3690973819f32a4d4b10188134543c88706e0e1d433788c89604051808381526020018281526020019250505060405180910390a46136d98a338b6150df565b6131f3883387614e83565b6000806136f1878661515a565b90506000613707670de0b6b3a764000083614dee565b905060006137158286614d05565b9050600061372f87612630670de0b6b3a764000085614dee565b9050600061373d8c83614dee565b9050600061374b828e61515a565b905060006137598288615296565b90506000613767828e614d05565b905060006137758e83614dee565b905061378e81612630670de0b6b3a76400006000614dee565b99505050505050505050509695505050505050565b6000806137b0878661515a565b905060006137cf6137c9670de0b6b3a764000084614dee565b85614d05565b905060006137ee866137e9670de0b6b3a764000085614dee565b614d05565b905060006137fc8b83615082565b9050600061380a828d61515a565b905060006138188287615296565b90506000613826828d614d05565b9050613832818d614dee565b9e9d5050505050505050505050505050565b64e8d4a51000670de0b6b3a76400006113a8565b600080613865878661515a565b90506000613880856137e9670de0b6b3a76400006000614dee565b9050600061388e8883614dee565b9050600061389c828a61515a565b905060006138bb826138b6670de0b6b3a76400008861515a565b615296565b905060006138c9828e614d05565b905060006138d78e83614dee565b905060006138f0612612670de0b6b3a76400008a614dee565b9050612635826137e9670de0b6b3a764000084614dee565b33600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff16156139b7576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff001916610100179055600160a060020a0381166000908152600a602052604090205460ff16613a24576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038316916370a08231916024808301926020929190829003018186803b158015613a8357600080fd5b505afa158015613a97573d6000803e3d6000fd5b505050506040513d6020811015613aad57600080fd5b5051600160a060020a039091166000908152600a60205260409020600301556005805461ff0019169055565b60085460ff1690565b33600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff1615613b91576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff00191661010017905560065433600160a060020a0390911614613bf2576040805160e560020a62461bcd0281526020600482015260126024820152600080516020615720833981519152604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790556005805461ff0019169055565b600554600090610100900460ff1615613c7d576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b50600b5490565b68056bc75e2d6310000081565b600554600090610100900460ff1615613ce2576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b600160a060020a0382166000908152600a602052604090205460ff16613d40576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b50600160a060020a03166000908152600a602052604090206002015490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561107b5780601f106110505761010080835404028352916020019161107b565b6704a03ce68d21555681565b7f42524f4e5a45000000000000000000000000000000000000000000000000000090565b600080613dfd878761515a565b90506000613e0b868661515a565b90506000613e19838361515a565b90506000613e3b670de0b6b3a7640000612630670de0b6b3a764000089614dee565b9050613e478282614d05565b9a9950505050505050505050565b6000613e62338484614f78565b50600192915050565b33600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff1615613f1a576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff00191661010017905560085460ff16613f71576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615680833981519152604482015290519081900360640190fd5b6000613f7b611392565b90506000613f8a856000614d05565b90506000613f988683614dee565b90506000613fa6828561515a565b905080613feb576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020615820833981519152604482015290519081900360640190fd5b613ff53388614e5f565b60055461401190620100009004600160a060020a031684614e79565b61401a82614e6d565b60005b60095481101561418a5760006009828154811061403657fe5b6000918252602080832090910154600160a060020a0316808352600a90915260408220600301549092509061406b8583614d05565b9050806140b0576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020615820833981519152604482015290519081900360640190fd5b8989858181106140bc57fe5b90506020020135811015614108576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615800833981519152604482015290519081900360640190fd5b600160a060020a0383166000908152600a602052604090206003015461412e9082614dee565b600160a060020a0384166000818152600a60209081526040918290206003019390935580518481529051919233926000805160206157a08339815191529281900390910190a361417f833383614e83565b50505060010161401d565b50506005805461ff0019169055505050505050565b600881565b600281565b600181565b6000806141bb878661515a565b905060006141d1670de0b6b3a764000085614dee565b90506141dd8582614d05565b905060006141ef8a6126308c85615082565b905060006141fd8285615296565b90506000614213670de0b6b3a764000083614dee565b905061421f8a82614d05565b9c9b505050505050505050505050565b600a670de0b6b3a76400006113a8565b671bc16d674ec7ffff81565b600554606090610100900460ff161561429c576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b60085460ff166142e4576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615680833981519152604482015290519081900360640190fd5b600980548060200260200160405190810160405280929190818152602001828054801561107b57602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831161431c575050505050905090565b600081565b600554606090610100900460ff16156142e4576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b60095490565b33600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600554610100900460ff161561444e576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b6005805461ff00191661010017905560065433600160a060020a03909116146144af576040805160e560020a62461bcd0281526020600482015260126024820152600080516020615720833981519152604482015290519081900360640190fd5b600160a060020a0381166000908152600a602052604090205460ff1661450d576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b60085460ff1615614556576040805160e560020a62461bcd02815260206004820152601060248201526000805160206157e0833981519152604482015290519081900360640190fd5b600160a060020a0381166000908152600a60205260408120600301549061457d8282614d05565b600b54600160a060020a0385166000908152600a60205260409020600201549192506145a891614dee565b600b55600160a060020a0383166000908152600a60205260409020600101546009805460001981019190829081106145dc57fe5b60009182526020909120015460098054600160a060020a03909216918490811061460257fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a0316021790555081600a60006009858154811061464257fe5b6000918252602080832090910154600160a060020a03168352820192909252604001902060010155600980548061467557fe5b600082815260208082206000199084018101805473ffffffffffffffffffffffffffffffffffffffff191690559092019092556040805160808101825283815280830184815281830185815260608301868152600160a060020a038c168752600a909552929094209051815460ff1916901515178155925160018401555160028301555160039091015561470e8533611bdd8787614dee565b600554611c03908690620100009004600160a060020a031685614e83565b600554600090610100900460ff161561477d576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b5060075490565b336000908152600160209081526040808320600160a060020a03861684529091528120546147b29083615082565b336000818152600160209081526040808320600160a060020a0389168085529083529281902085905580519485525191936000805160206157c0833981519152929081900390910190a350600192915050565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b33600160a060020a0316600035600160e060020a031916600160e060020a03191660003660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2600654600160a060020a031633146148e1576040805160e560020a62461bcd0281526020600482015260126024820152600080516020615720833981519152604482015290519081900360640190fd5b600160a060020a0383166000908152600a602052604090205460ff1615614952576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f49535f424f554e440000000000000000000000000000000000000000604482015290519081900360640190fd5b60085460ff161561499b576040805160e560020a62461bcd02815260206004820152601060248201526000805160206157e0833981519152604482015290519081900360640190fd5b6009546008116149f5576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f4d41585f544f4b454e53000000000000000000000000000000000000604482015290519081900360640190fd5b604080516080810182526001808252600980546020808501918252600085870181815260608701828152600160a060020a038c16808452600a9094529782209651875460ff1916901515178755925186860155915160028601559451600390940193909355805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af01805473ffffffffffffffffffffffffffffffffffffffff19169091179055614aaf8383836117c9565b505050565b6002670de0b6b3a76400006113a8565b600554600090610100900460ff1615614b15576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b600160a060020a0382166000908152600a602052604090205460ff16614b73576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b600160a060020a0382166000908152600a6020526040902060020154600b54614b9d90829061515a565b9392505050565b600554600090610100900460ff1615614bf5576040805160e560020a62461bcd02815260206004820152600b60248201526000805160206156a0833981519152604482015290519081900360640190fd5b600160a060020a0382166000908152600a602052604090205460ff16614c53576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020615780833981519152604482015290519081900360640190fd5b50600160a060020a03166000908152600a602052604090206003015490565b600080614c7f858861515a565b90506000614c8d8786614dee565b90506000614c9b888361515a565b90506000614ca98285615296565b9050614cbd81670de0b6b3a7640000614dee565b9050614cd1670de0b6b3a764000087614dee565b9450614ce6614ce08c83614d05565b8661515a565b9b9a5050505050505050505050565b60065460a060020a900460ff1690565b6000828202831580614d1f575082848281614d1c57fe5b04145b614d73576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f4d554c5f4f564552464c4f5700000000000000000000000000000000604482015290519081900360640190fd5b6706f05b59d3b20000810181811015614dd6576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f4d554c5f4f564552464c4f5700000000000000000000000000000000604482015290519081900360640190fd5b6000670de0b6b3a7640000825b049695505050505050565b6000806000614dfd85856153b9565b915091508015614e57576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f5355425f554e444552464c4f57000000000000000000000000000000604482015290519081900360640190fd5b509392505050565b614e6982826153de565b5050565b614e76816153e9565b50565b614e6982826154b3565b604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03848116600483015260248201849052915160009286169163a9059cbb91604480830192602092919082900301818787803b158015614eef57600080fd5b505af1158015614f03573d6000803e3d6000fd5b505050506040513d6020811015614f1957600080fd5b5051905080614f72576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f45524332305f46414c53450000000000000000000000000000000000604482015290519081900360640190fd5b50505050565b600160a060020a038316600090815260208190526040902054811115614fe8576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e53554646494349454e545f42414c000000000000000000000000604482015290519081900360640190fd5b600160a060020a03831660009081526020819052604090205461500b9082614dee565b600160a060020a03808516600090815260208190526040808220939093559084168152205461503a9082615082565b600160a060020a0380841660008181526020818152604091829020949094558051858152905191939287169260008051602061576083398151915292918290030190a3505050565b600082820183811015614b9d576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f4144445f4f564552464c4f5700000000000000000000000000000000604482015290519081900360640190fd5b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301523060248301526044820184905291516000928616916323b872dd91606480830192602092919082900301818787803b158015614eef57600080fd5b614e76816154be565b6000816151b1576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4449565f5a45524f0000000000000000000000000000000000000000604482015290519081900360640190fd5b670de0b6b3a764000083028315806151d95750670de0b6b3a76400008482816151d657fe5b04145b61522d576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f4449565f494e5445524e414c00000000000000000000000000000000604482015290519081900360640190fd5b6002830481018181101561528b576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f4449565f494e5445524e414c00000000000000000000000000000000604482015290519081900360640190fd5b6000848281614de357fe5b600060018310156152f1576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f42504f575f424153455f544f4f5f4c4f570000000000000000000000604482015290519081900360640190fd5b671bc16d674ec7ffff831115615351576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f42504f575f424153455f544f4f5f4849474800000000000000000000604482015290519081900360640190fd5b600061535c83615521565b9050600061536a8483614dee565b905060006153808661537b8561553c565b61554a565b9050816153915792506110d4915050565b60006153a287846305f5e1006155a1565b90506153ae8282614d05565b979650505050505050565b6000808284106153cf57505080820360006153d7565b505081810360015b9250929050565b614e69823083614f78565b30600090815260208190526040902054811115615450576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e53554646494349454e545f42414c000000000000000000000000604482015290519081900360640190fd5b3060009081526020819052604090205461546a9082614dee565b306000908152602081905260409020556002546154879082614dee565b60025560408051828152905160009130916000805160206157608339815191529181900360200190a350565b614e69308383614f78565b306000908152602081905260409020546154d89082615082565b306000908152602081905260409020556002546154f59082615082565b60025560408051828152905130916000916000805160206157608339815191529181900360200190a350565b6000670de0b6b3a76400006155358361553c565b0292915050565b670de0b6b3a7640000900490565b6000806002830661556357670de0b6b3a7640000615565565b835b90506002830492505b8215614b9d5761557e8485614d05565b93506002830615615596576155938185614d05565b90505b60028304925061556e565b60008281806155b887670de0b6b3a76400006153b9565b9092509050670de0b6b3a764000080600060015b888410615670576000670de0b6b3a7640000820290506000806156008a6155fb85670de0b6b3a7640000614dee565b6153b9565b91509150615612876137e9848c614d05565b965061561e878461515a565b96508661562d57505050615670565b8715615637579315935b8015615641579315935b8415615658576156518688614dee565b9550615665565b6156628688615082565b95505b5050506001016155cc565b5090999850505050505050505056fe4552525f4e4f545f46494e414c495a45440000000000000000000000000000004552525f5245454e5452590000000000000000000000000000000000000000004552525f4c494d49545f494e00000000000000000000000000000000000000004552525f4d41585f4f55545f524154494f00000000000000000000000000000063982df10efd8dfaaaa0fcc7f50b2d93b7cba26ccc48adee2873220d485dc39a4552525f4e4f545f434f4e54524f4c4c455200000000000000000000000000004552525f4d41585f494e5f524154494f00000000000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef4552525f4e4f545f424f554e4400000000000000000000000000000000000000e74c91552b64c2e2e7bd255639e004e693bd3e1d01cc33e65610b86afcc1ffed8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9254552525f49535f46494e414c495a4544000000000000000000000000000000004552525f4c494d49545f4f5554000000000000000000000000000000000000004552525f4d4154485f415050524f580000000000000000000000000000000000a265627a7a723158202b5a60166bb5b113e86d3e715d8d891e57428121f0c4ed3916bb69f71e21311d64736f6c634300050c0032", | |
"sourceMap": "2796:49:6:-;732:23252:5;2796:49:6;;732:23252:5;2796:49:6;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2852:33:6;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2892:30:6;;;-1:-1:-1;;2892:30:6;2920:2;2892:30;;;2441:184:5;5:2:-1;;;;30:1;27;20:12;5:2;-1:-1;2473:11:5;:24;;2508:8;:21;;-1:-1:-1;;2508:21:5;-1:-1:-1;2487:10:5;2508:21;;;;;;;;;;940:12:1;2540:8:5;:18;-1:-1:-1;;2473:24:5;;;;-1:-1:-1;;2569:19:5;;;2599:10;:18;;-1:-1:-1;;2599:18:5;;;732:23252;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;732:23252:5;;;-1:-1:-1;732:23252:5;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", | |
"deployedSourceMap": "732:23252:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;732:23252:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21561:1386;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21561:1386:5;;-1:-1:-1;;;;;21561:1386:5;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2931:83:6;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2931:83:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3541:184;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3541:184:6;;-1:-1:-1;;;;;3541:184:6;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1176:50:1;;;:::i;10181:491:5:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10181:491:5;;;;;;;;;;:::i;9682:::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9682:491:5;;;;;;;;;;:::i;3445:88:6:-;;;:::i;1475:54:1:-;;;:::i;1067:45::-;;;:::i;4539:491:6:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4539:491:6;;;;;;;;;;;;;;;;;:::i;2873:123:5:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2873:123:5;-1:-1:-1;;;;;2873:123:5;;:::i;4522:137::-;;;:::i;:::-;;;;-1:-1:-1;;;;;4522:137:5;;;;;;;;;;;;;;3117:82:6;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4667:351:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4667:351:5;;:::i;:::-;;6676:1639;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6676:1639:5;;-1:-1:-1;;;;;6676:1639:5;;;;;;;;;;;:::i;20225:1328::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20225:1328:5;;-1:-1:-1;;;;;20225:1328:5;;;;;;;;;;;:::i;5236:250::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5236:250:5;;;;:::i;5494:432::-;;;:::i;10680:948::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10680:948:5;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;10680:948:5;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;10680:948:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;10680:948:5;;-1:-1:-1;10680:948:5;-1:-1:-1;10680:948:5;:::i;8766:1193:3:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;8766:1193:3;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17752:1206:5:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17752:1206:5;;-1:-1:-1;;;;;17752:1206:5;;;;;;;;;;;:::i;3993:397:6:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3993:397:6;;-1:-1:-1;;;;;3993:397:6;;;;;;:::i;18966:1251:5:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18966:1251:5;;-1:-1:-1;;;;;18966:1251:5;;;;;;;;;;;:::i;3335:102:6:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3335:102:6;-1:-1:-1;;;;;3335:102:6;;:::i;899:53:1:-;;;:::i;15262:2480:5:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;15262:2480:5;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12768:2486;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;12768:2486:5;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13460:1285:3:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;13460:1285:3;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6581:1167::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;6581:1167:3;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1233:54:1:-;;;:::i;11078:1263:3:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;11078:1263:3;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9449:225:5:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9449:225:5;-1:-1:-1;;;;;9449:225:5;;:::i;2754:111::-;;;:::i;5026:202::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5026:202:5;-1:-1:-1;;;;;5026:202:5;;:::i;3723:148::-;;;:::i;1296:51:1:-;;;:::i;3489:226:5:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3489:226:5;-1:-1:-1;;;;;3489:226:5;;:::i;3022:87:6:-;;;:::i;1594:59:1:-;;;:::i;817:121:0:-;;;:::i;1663:509:3:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;1663:509:3;;;;;;;;;;;;;;;;;;;;;;:::i;4398:133:6:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4398:133:6;;-1:-1:-1;;;;;4398:133:6;;;;;;:::i;11636:1122:5:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11636:1122:5;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;11636:1122:5;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;11636:1122:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;11636:1122:5;;-1:-1:-1;11636:1122:5;-1:-1:-1;11636:1122:5;:::i;848:42:1:-;;;:::i;799:::-;;;:::i;1356:46::-;;;:::i;3190:683:3:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;3190:683:3;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;959:50:1:-;;;:::i;1409:59::-;;;:::i;3280:201:5:-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3280:201:5;;;;;;;;;;;;;;;;;1016:42:1;;;:::i;3129:143:5:-;;;:::i;3004:117::-;;;:::i;8323:1041::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8323:1041:5;-1:-1:-1;;;;;8323:1041:5;;:::i;4386:128::-;;;:::i;3733:252:6:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3733:252:6;;-1:-1:-1;;;;;3733:252:6;;;;;;:::i;3207:120::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3207:120:6;;;;;;;;;;:::i;5936:732:5:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5936:732:5;;-1:-1:-1;;;;;5936:732:5;;;;;;;;;;;:::i;1538:49:1:-;;;:::i;3879:275:5:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3879:275:5;-1:-1:-1;;;;;3879:275:5;;:::i;4162:216::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4162:216:5;-1:-1:-1;;;;;4162:216:5;;:::i;4891:672:3:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;4891:672:3;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2633:113:5:-;;;:::i;21561:1386::-;1621:39;;;;;;;1651:8;1621:39;;;;;;21723:17;;1639:10;;-1:-1:-1;;;;;;1630:7:5;;;;21723:17;;1651:8;;1621:39;;;;;21723:17;1651:8;;21723:17;1621:39;1:33:-1;99:1;81:16;;;74:27;1621:39:5;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;1621:39:5;;;;-1:-1:-1;1621:39:5;;-1:-1:-1;;;;1621:39:5;1726:6;;;;;;;1725:7;1717:31;;;;;-1:-1:-1;;;;;1717:31:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1717:31:5;;;;;;;;;;;;;;;1759:6;:13;;-1:-1:-1;;1759:13:5;;;;;21766:10;;1759:13;21766:10;21758:40;;;;;-1:-1:-1;;;;;21758:40:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;21758:40:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;21817:18:5;;;;;;:8;:18;;;;;:24;;;21809:50;;;;;-1:-1:-1;;;;;21809:50:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;21809:50:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;21901:18:5;;;;;;:8;:18;;;;;:26;;;;;21896:47;;784:6:1;1636:8;;1648:5;1635:18;21896:4:5;:47::i;:::-;21878:14;:65;;21870:95;;;;;-1:-1:-1;;;;;21870:95:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;21870:95:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;22005:18:5;;21978:24;22005:18;;;:8;:18;;;;;22106:17;;;;-1:-1:-1;22154:16:5;;;;22201:12;;22244;;22332:8;;22051:316;;22106:17;22154:16;22201:12;22244;22287:14;;22051:24;:316::i;:::-;22036:331;-1:-1:-1;22388:17:5;22380:45;;;;;-1:-1:-1;;;;;22380:45:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;22380:45:5;;;;;;;;;;;;;;;22460:15;22444:12;:31;;22436:56;;;;;-1:-1:-1;;;;;22436:56:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;22436:56:5;;;;;;;;;;;;;;;22525:39;22530:9;:17;;;22549:14;22525:4;:39::i;:::-;22505:17;;;:59;22577:12;22592:28;22597:12;22577;22592:4;:28::i;:::-;22638:46;;;;;;;;-1:-1:-1;;;22577:43:5;;-1:-1:-1;;;;;;22638:46:5;;;22647:10;;22638:46;-1:-1:-1;;;;;;;;;22638:46:5;;;;;;;;;22697:40;22712:10;22724:12;22697:14;:40::i;:::-;22748:43;22763:27;22768:12;22782:7;22763:4;:27::i;:::-;22748:14;:43::i;:::-;22817:8;;22802:33;;22817:8;;;-1:-1:-1;;;;;22817:8:5;22827:7;22802:14;:33::i;:::-;22846:53;22862:8;22872:10;22884:14;22846:15;:53::i;:::-;-1:-1:-1;;1795:6:5;:14;;-1:-1:-1;;1795:14:5;;;21561:1386;;-1:-1:-1;;;21561:1386:5:o;2931:83:6:-;3001:5;2994:12;;;;;;;;;;;;;-1:-1:-1;;2994:12:6;;;;;;;;;;;;;;;;;;;;;;;;;;2968:13;;2994:12;;3001:5;;2994:12;;;3001:5;2994:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2931:83;:::o;3541:184::-;3627:10;3599:4;3616:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;3616:27:6;;;;;;;;;;;:33;;;3665:30;;;;;;;-1:-1:-1;;3599:4:6;;3616:27;;3627:10;;3665:30;;3599:4;;3616:22;-1:-1:-1;3599:4:6;-1:-1:-1;;;;;3665:30:6;;;;;;;-1:-1:-1;3713:4:6;3541:184;;;;;:::o;1176:50:1:-;1217:9;1176:50;:::o;10181:491:5:-;1867:6;;10306:14;;1867:6;;;;;1866:7;1858:31;;;;;-1:-1:-1;;;;;1858:31:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1858:31:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;10346:17:5;;;;;;:8;:17;;;;;:23;;;10338:49;;;;;-1:-1:-1;;;;;10338:49:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;10338:49:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;10406:18:5;;;;;;:8;:18;;;;;:24;;;10398:50;;;;;-1:-1:-1;;;;;10398:50:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;10398:50:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;10485:17:5;;;10459:23;10485:17;;;:8;:17;;;;;;10540:18;;;;;;;10590:16;;;;;-1:-1:-1;10608:15:5;;;;10625:17;;;;10644:16;;;;10540:18;;10576:88;;10590:16;;10608:15;10644:16;10576:13;:88::i;:::-;10569:95;10181:491;-1:-1:-1;;;;;10181:491:5:o;9682:::-;1867:6;;9800:14;;1867:6;;;;;1866:7;1858:31;;;;;-1:-1:-1;;;;;1858:31:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1858:31:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;9840:17:5;;;;;;:8;:17;;;;;:23;;;9832:49;;;;;-1:-1:-1;;;;;9832:49:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;9832:49:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;9900:18:5;;;;;;:8;:18;;;;;:24;;;9892:50;;;;;-1:-1:-1;;;;;9892:50:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;9892:50:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;9979:17:5;;;9953:23;9979:17;;;:8;:17;;;;;;10034:18;;;;;;;10084:16;;;;;-1:-1:-1;10102:15:5;;;;10119:17;;;;10138:16;;;;10156:8;;10070:95;;10102:15;10119:17;10138:16;10070:13;:95::i;3445:88:6:-;3513:12;;3445:88;:::o;1475:54:1:-;1523:6;784;1516:13;;1475:54;:::o;1067:45::-;784:6;1067:45;:::o;4539:491:6:-;4615:4;-1:-1:-1;;;;;4640:17:6;;:10;:17;;:55;;-1:-1:-1;;;;;;4668:15:6;;;;;;-1:-1:-1;4668:15:6;;;;;;;;4684:10;4668:27;;;;;;;;4661:34;;;4640:55;4632:89;;;;;-1:-1:-1;;;;;4632:89:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;4732:20;4738:3;4743;4748;4732:5;:20::i;:::-;-1:-1:-1;;;;;4767:17:6;;:10;:17;;;;:63;;-1:-1:-1;;;;;;4788:15:6;;;;;;-1:-1:-1;4788:15:6;;;;;;;;4804:10;4788:27;;;;;;;;-1:-1:-1;;4788:42:6;;4767:63;4763:238;;;-1:-1:-1;;;;;4882:15:6;;;;;;-1:-1:-1;4882:15:6;;;;;;;;4898:10;4882:27;;;;;;;;4877:38;;4911:3;4877:4;:38::i;:::-;-1:-1:-1;;;;;4847:15:6;;;;;;;-1:-1:-1;4847:15:6;;;;;;;;4863:10;4847:27;;;;;;;;;:68;;;4935:54;;;;;;;-1:-1:-1;;4935:54:6;;;;4863:10;;4935:54;;;;4847:15;-1:-1:-1;4847:15:6;-1:-1:-1;;;;;4935:54:6;;;;;;;;;4763:238;-1:-1:-1;5018:4:6;4539:491;;;;;:::o;2873:123:5:-;-1:-1:-1;;;;;2971:11:5;2942:4;2971:11;;;:8;:11;;;;;:17;;;;2873:123::o;4522:137::-;1867:6;;4608:7;;1867:6;;;;;1866:7;1858:31;;;;;-1:-1:-1;;;;;1858:31:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1858:31:5;;;;;;;;;;;;;;;-1:-1:-1;4640:11:5;;-1:-1:-1;;;;;4640:11:5;;4522:137::o;3117:82:6:-;3182:9;;;;3117:82;:::o;4667:351:5:-;1621:39;;;;;;;1651:8;1621:39;;;;;;1639:10;;-1:-1:-1;1630:7:5;;-1:-1:-1;;;;;;1630:7:5;;-1:-1:-1;;1651:8:5;1621:39;;;;-1:-1:-1;1651:8:5;;-1:-1:-1;1621:39:5;1:33:-1;99:1;81:16;;;74:27;1621:39:5;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;1621:39:5;;;;-1:-1:-1;1621:39:5;;-1:-1:-1;;;;1621:39:5;1726:6;;;;;;;1725:7;1717:31;;;;;-1:-1:-1;;;;;1717:31:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1717:31:5;;;;;;;;;;;;;;;1759:6;:13;;-1:-1:-1;;1759:13:5;;;;;4777:10;;1759:13;4777:10;4776:11;4768:40;;;;;-1:-1:-1;;;;;4768:40:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;4768:40:5;;;;;;;;;;;;;;;4841:11;;-1:-1:-1;;;;;4841:11:5;4827:10;:25;4819:56;;;;;-1:-1:-1;;;;;4819:56:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;4819:56:5;;;;;;;;;;;;;;;940:12:1;4894:18:5;;;4886:42;;;;;-1:-1:-1;;;;;4886:42:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;1000:9:1;4947:18:5;;;4939:42;;;;;-1:-1:-1;;;;;4939:42:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;4992:8;:18;1795:6;:14;;-1:-1:-1;;1795:14:5;;;4667:351::o;6676:1639::-;1621:39;;;;;;;1651:8;1621:39;;;;;;1639:10;;-1:-1:-1;1630:7:5;;-1:-1:-1;;;;;;1630:7:5;;-1:-1:-1;;1651:8:5;1621:39;;;;-1:-1:-1;1651:8:5;;-1:-1:-1;1621:39:5;1:33:-1;99:1;81:16;;;74:27;1621:39:5;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;1621:39:5;;;;-1:-1:-1;1621:39:5;;-1:-1:-1;;;;1621:39:5;1726:6;;;;;;;1725:7;1717:31;;;;;-1:-1:-1;;;;;1717:31:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1717:31:5;;;;;;;;;;;;;;;1759:6;:13;;;-1:-1:-1;;1759:13:5;;;;;;6822:11;;-1:-1:-1;;;;;6822:11:5;6808:10;:25;6800:56;;;;;-1:-1:-1;;;;;6800:56:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;6800:56:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;6875:15:5;;;;;;:8;:15;;;;;:21;;;6867:47;;;;;-1:-1:-1;;;;;6867:47:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;6867:47:5;;;;;;;;;;;;;;;6934:10;;;;6933:11;6925:40;;;;;-1:-1:-1;;;;;6925:40:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;6925:40:5;;;;;;;;;;;;;;;784:6:1;6986::5;:20;;6978:47;;;;;-1:-1:-1;;;;;6978:47:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;1160:9:1;7044:20:5;;;7036:47;;;;;-1:-1:-1;;;;;7036:47:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;1274:13:1;7102:22:5;;;7094:50;;;;;-1:-1:-1;;;;;7094:50:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7220:15:5;;7203:14;7220:15;;;:8;:15;;;;;-1:-1:-1;7220:22:5;;7257:18;;;7253:304;;;7307:43;7312:12;;7326:23;7331:6;7339:9;7326:4;:23::i;:::-;7307:4;:43::i;:::-;7292:12;:58;;;1217:9:1;-1:-1:-1;7373:32:5;7365:65;;;;;-1:-1:-1;;;;;7365:65:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;7253:304;;;7461:9;7452:6;:18;7448:109;;;7502:43;7507:12;;7521:23;7526:9;7537:6;7521:4;:23::i;:::-;7502:4;:43::i;:::-;7487:12;:58;7448:109;-1:-1:-1;;;;;7575:15:5;;;;;;:8;:15;;;;;-1:-1:-1;7575:22:5;;:31;;;7700:23;;;;7734:33;;;;7782:20;;;7778:530;;;7819:61;7835:5;7842:10;7854:25;7859:7;7868:10;7854:4;:25::i;:::-;7819:15;:61::i;:::-;7778:530;;;7912:10;7902:7;:20;7898:410;;;8017:26;8046:25;8051:10;8063:7;8046:4;:25::i;:::-;8017:54;;8086:17;8106:37;8111:21;1057:1:1;8106:4:5;:37::i;:::-;8086:57;;8158:77;8174:5;8181:10;8193:41;8198:21;8221:12;8193:4;:41::i;:::-;8158:15;:77::i;:::-;8273:8;;8250:46;;8266:5;;8273:8;;;-1:-1:-1;;;;;8273:8:5;8283:12;8250:15;:46::i;:::-;7898:410;;;-1:-1:-1;;1795:6:5;:14;;-1:-1:-1;;1795:14:5;;;-1:-1:-1;;;6676:1639:5:o;20225:1328::-;1621:39;;;;;;;1651:8;1621:39;;;;;;20379:19;;1639:10;;-1:-1:-1;;;;;;1630:7:5;;;;20379:19;;1651:8;;1621:39;;;;;20379:19;1651:8;;20379:19;1621:39;1:33:-1;99:1;81:16;;;74:27;1621:39:5;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;1621:39:5;;;;-1:-1:-1;1621:39:5;;-1:-1:-1;;;;1621:39:5;1726:6;;;;;;;1725:7;1717:31;;;;;-1:-1:-1;;;;;1717:31:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1717:31:5;;;;;;;;;;;;;;;1759:6;:13;;-1:-1:-1;;1759:13:5;;;;;20424:10;;1759:13;20424:10;20416:40;;;;;-1:-1:-1;;;;;20416:40:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;20416:40:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;20475:18:5;;;;;;:8;:18;;;;;:24;;;20467:50;;;;;-1:-1:-1;;;;;20467:50:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;20467:50:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;20557:18:5;;20530:24;20557:18;;;:8;:18;;;;;20660:17;;;;-1:-1:-1;20708:16:5;;;;20755:12;;20798;;20884:8;;20605:314;;20660:17;20708:16;20755:12;20798;20841;;20605:24;:314::i;:::-;20588:331;;20958:12;20940:14;:30;;20932:56;;;;;-1:-1:-1;;;;;20932:56:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;20932:56:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;21040:18:5;;;;;;:8;:18;;;;;:26;;;;;21035:47;;784:6:1;1636:8;;21035:47:5;21017:14;:65;;21009:95;;;;;-1:-1:-1;;;;;21009:95:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;21009:95:5;;;;;;;;;;;;;;;21137:39;21142:9;:17;;;21161:14;21137:4;:39::i;:::-;21117:17;;;:59;21189:12;21204:28;21209:12;21189;21204:4;:28::i;:::-;21250:46;;;;;;;;-1:-1:-1;;;21189:43:5;;-1:-1:-1;;;;;;21250:46:5;;;21259:10;;21250:46;-1:-1:-1;;;;;;;;;21250:46:5;;;;;;;;;21309:40;21324:10;21336:12;21309:14;:40::i;:::-;21360:43;21375:27;21380:12;21394:7;21375:4;:27::i;21360:43::-;21429:8;;21414:33;;21429:8;;;-1:-1:-1;;;;;21429:8:5;21439:7;21414:14;:33::i;:::-;21458:53;21474:8;21484:10;21496:14;21458:15;:53::i;5236:250::-;1621:39;;;;;;;1651:8;1621:39;;;;;;1639:10;;-1:-1:-1;1630:7:5;;-1:-1:-1;;;;;;1630:7:5;;-1:-1:-1;;1651:8:5;1621:39;;;;-1:-1:-1;1651:8:5;;-1:-1:-1;1621:39:5;1:33:-1;99:1;81:16;;;74:27;1621:39:5;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;1621:39:5;;;;-1:-1:-1;1621:39:5;;-1:-1:-1;;;;1621:39:5;1726:6;;;;;;;1725:7;1717:31;;;;;-1:-1:-1;;;;;1717:31:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1717:31:5;;;;;;;;;;;;;;;1759:6;:13;;-1:-1:-1;;1759:13:5;;;;;5348:10;;1759:13;5348:10;5347:11;5339:40;;;;;-1:-1:-1;;;;;5339:40:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;5339:40:5;;;;;;;;;;;;;;;5412:11;;-1:-1:-1;;;;;5412:11:5;5398:10;:25;5390:56;;;;;-1:-1:-1;;;;;5390:56:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;5390:56:5;;;;;;;;;;;;;;;5457:11;:21;;;;;-1:-1:-1;;;5457:21:5;-1:-1:-1;;5457:21:5;;;;;;;;;1795:6;:14;;-1:-1:-1;;1795:14:5;;;5236:250::o;5494:432::-;1621:39;;;;;;;1651:8;1621:39;;;;;;1639:10;;-1:-1:-1;1630:7:5;;-1:-1:-1;;;;;;1630:7:5;;-1:-1:-1;;1651:8:5;1621:39;;;;-1:-1:-1;1651:8:5;;-1:-1:-1;1621:39:5;1:33:-1;99:1;81:16;;;74:27;1621:39:5;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;1621:39:5;;;;-1:-1:-1;1621:39:5;;-1:-1:-1;;;;1621:39:5;1726:6;;;;;;;1725:7;1717:31;;;;;-1:-1:-1;;;;;1717:31:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1717:31:5;;;;;;;;;;;;;;;1759:6;:13;;;-1:-1:-1;;1759:13:5;;;;;;5602:11;;-1:-1:-1;;;;;5602:11:5;5588:10;:25;5580:56;;;;;-1:-1:-1;;;;;5580:56:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;5580:56:5;;;;;;;;;;;;;;;5656:10;;;;5655:11;5647:40;;;;;-1:-1:-1;;;;;5647:40:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;5647:40:5;;;;;;;;;;;;;;;5706:7;:14;840:1:1;-1:-1:-1;5706:34:5;5698:61;;;;;-1:-1:-1;;;;;5698:61:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;5772:10;:17;;-1:-1:-1;;5772:17:5;5785:4;5772:17;;;5800:11;:18;;-1:-1:-1;;5800:18:5;-1:-1:-1;;;5800:18:5;;;5831:32;1337:10:1;5831:14:5;:32::i;:::-;5874:44;5889:10;1337::1;5874:14:5;:44::i;:::-;1795:6;:14;;-1:-1:-1;;1795:14:5;;;5494:432::o;10680:948::-;1621:39;;;;;;;1651:8;1621:39;;;;;;1639:10;;-1:-1:-1;1630:7:5;;-1:-1:-1;;;;;;1630:7:5;;-1:-1:-1;;1651:8:5;1621:39;;;;-1:-1:-1;1651:8:5;;-1:-1:-1;1621:39:5;1:33:-1;99:1;81:16;;;74:27;1621:39:5;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;1621:39:5;;;;-1:-1:-1;1621:39:5;;-1:-1:-1;;;;1621:39:5;1726:6;;;;;;;1725:7;1717:31;;;;;-1:-1:-1;;;;;1717:31:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1717:31:5;;;;;;;;;;;;;;;1759:6;:13;;-1:-1:-1;;1759:13:5;;;;;10822:10;;1759:13;10822:10;10814:40;;;;;-1:-1:-1;;;;;10814:40:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;10814:40:5;;;;;;;;;;;;;;;10867:14;10884:13;:11;:13::i;:::-;10867:30;;10908:10;10921:30;10926:13;10941:9;10921:4;:30::i;:::-;10908:43;-1:-1:-1;10970:10:5;10962:38;;;;;-1:-1:-1;;;;;10962:38:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;10962:38:5;;;;;;;;;;;;;;;11018:6;11013:516;11034:7;:14;11030:18;;11013:516;;;11070:9;11082:7;11090:1;11082:10;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11082:10:5;11118:11;;;:8;:11;;;;;;:19;;;11082:10;;-1:-1:-1;11118:19:5;11173:16;11178:5;11118:19;11173:4;:16::i;:::-;11152:37;-1:-1:-1;11212:18:5;11204:46;;;;;-1:-1:-1;;;;;11204:46:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;11204:46:5;;;;;;;;;;;;;;;11290:12;;11303:1;11290:15;;;;;;;;;;;;;11273:13;:32;;11265:57;;;;;-1:-1:-1;;;;;11265:57:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;11265:57:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;11364:11:5;;;;;;:8;:11;;;;;:19;;;11359:40;;11385:13;11359:4;:40::i;:::-;-1:-1:-1;;;;;11337:11:5;;;;;;:8;:11;;;;;;;;:19;;:62;;;;11419:38;;;;;;;-1:-1:-1;;11337:11:5;;11428:10;;11419:38;;11337:11;;-1:-1:-1;11337:11:5;-1:-1:-1;;;;;11419:38:5;;;;;;;;;11472:45;11488:1;11491:10;11503:13;11472:15;:45::i;:::-;-1:-1:-1;;;11050:3:5;;11013:516;;;;11539:29;11554:13;11539:14;:29::i;:::-;11579:41;11594:10;11606:13;11579:14;:41::i;8766:1193:3:-;9010:18;9046:21;9070:32;9075:13;9090:11;9070:4;:32::i;:::-;9046:56;;9113:18;9134:31;9139:10;9151:13;9134:4;:31::i;:::-;9113:52;;9176:14;9193:31;9198:13;9213:10;9193:4;:31::i;:::-;9176:48;;9302:8;9313:28;784:6:1;9324:16:3;9313:4;:28::i;:::-;9302:39;;9353:17;9373:20;9378:9;9389:3;9373:4;:20::i;:::-;9353:40;;9404:22;9429:34;9434:12;9448:14;9429:4;:34::i;:::-;9404:59;;9474:26;9503:39;9508:17;9527:14;9503:4;:39::i;:::-;9474:68;;9795:8;9806:43;9811:28;784:6:1;9822:16:3;9811:4;:28::i;:::-;9841:7;9806:4;:43::i;:::-;9795:54;;9876:44;9881:21;9904:15;784:6:1;9915:3:3;9904:4;:15::i;:::-;9876:4;:44::i;:::-;9860:60;8766:1193;-1:-1:-1;;;;;;;;;;;;;;;8766:1193:3:o;17752:1206:5:-;1621:39;;;;;;;1651:8;1621:39;;;;;;17912:18;;1639:10;;-1:-1:-1;;;;;;1630:7:5;;;;17912:18;;1651:8;;1621:39;;;;;17912:18;1651:8;;17912:18;1621:39;1:33:-1;99:1;81:16;;;74:27;1621:39:5;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;1621:39:5;;;;-1:-1:-1;1621:39:5;;-1:-1:-1;;;;1621:39:5;1726:6;;;;;;;1725:7;1717:31;;;;;-1:-1:-1;;;;;1717:31:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1717:31:5;;;;;;;;;;;;;;;1759:6;:13;;-1:-1:-1;;1759:13:5;;;;;17966:10;;1759:13;17966:10;17958:40;;;;;-1:-1:-1;;;;;17958:40:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;17958:40:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;18017:17:5;;;;;;:8;:17;;;;;:23;;;18009:49;;;;;-1:-1:-1;;;;;18009:49:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;18009:49:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;18099:17:5;;;;;;:8;:17;;;;;:25;;;18094:45;;-1:-1:-1;784:6:1;1579:8;;18094:4:5;:45::i;:::-;18077:13;:62;;18069:91;;;;;-1:-1:-1;;;;;18069:91:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;18069:91:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;18199:17:5;;18173:23;18199:17;;;:8;:17;;;;;18300:16;;;;-1:-1:-1;18347:15:5;;;;18393:12;;18436;;18523:8;;18245:313;;18300:16;18347:15;18393:12;18436;18479:13;;18245:24;:313::i;:::-;18229:329;;18596:16;18579:13;:33;;18571:59;;;;;-1:-1:-1;;;;;18571:59:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;18571:59:5;;;;;;;;;;;;;;;18662:37;18667:8;:16;;;18685:13;18662:4;:37::i;:::-;18643:16;;;:56;18717:44;;;;;;;;-1:-1:-1;;;;;18717:44:5;;;18726:10;;-1:-1:-1;;;;;;;;;;;18717:44:5;;;;;;;;18774:29;18789:13;18774:14;:29::i;:::-;18814:41;18829:10;18841:13;18814:14;:41::i;:::-;18866:51;18882:7;18891:10;18903:13;18866:15;:51::i;:::-;-1:-1:-1;1795:6:5;:14;;-1:-1:-1;;1795:14:5;;;17752:1206;;-1:-1:-1;;;17752:1206:5:o;3993:397:6:-;4104:10;4060:4;4093:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;4093:27:6;;;;;;;;;;4135:14;;;4131:160;;;4177:10;4196:1;4166:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;4166:27:6;;;;;;;;;:31;4131:160;;;4260:19;4265:8;4275:3;4260:4;:19::i;:::-;4241:10;4230:22;;;;:10;:22;;;;;;;;-1:-1:-1;;;;;4230:27:6;;;;;;;;;:49;4131:160;4315:10;4332:22;;;;:10;:22;;;;;;;;-1:-1:-1;;;;;4306:54:6;;4332:27;;;;;;;;;;4306:54;;;;;;;-1:-1:-1;;4306:54:6;;4315:10;4306:54;;4332:22;-1:-1:-1;4332:22:6;-1:-1:-1;;;;;4306:54:6;;;;;;;;;;-1:-1:-1;4378:4:6;;3993:397;-1:-1:-1;;;3993:397:6:o;18966:1251:5:-;1621:39;;;;;;;1651:8;1621:39;;;;;;19120:18;;1639:10;;-1:-1:-1;;;;;;1630:7:5;;;;19120:18;;1651:8;;1621:39;;;;;19120:18;1651:8;;19120:18;1621:39;1:33:-1;99:1;81:16;;;74:27;1621:39:5;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;1621:39:5;;;;-1:-1:-1;1621:39:5;;-1:-1:-1;;;;1621:39:5;1726:6;;;;;;;1725:7;1717:31;;;;;-1:-1:-1;;;;;1717:31:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1717:31:5;;;;;;;;;;;;;;;1759:6;:13;;-1:-1:-1;;1759:13:5;;;;;19164:10;;1759:13;19164:10;19156:40;;;;;-1:-1:-1;;;;;19156:40:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;19156:40:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;19215:17:5;;;;;;:8;:17;;;;;:23;;;19207:49;;;;;-1:-1:-1;;;;;19207:49:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;19207:49:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;19295:17:5;;19269:23;19295:17;;;:8;:17;;;;;19396:16;;;;-1:-1:-1;19443:15:5;;;;19489:12;;19532;;19619:8;;19341:313;;19396:16;19443:15;19489:12;19532;19575:13;;19341:24;:313::i;:::-;19325:329;-1:-1:-1;19675:18:5;19667:46;;;;;-1:-1:-1;;;;;19667:46:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;19667:46:5;;;;;;;;;;;;;;;19749:11;19732:13;:28;;19724:53;;;;;-1:-1:-1;;;;;19724:53:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;19724:53:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;19828:17:5;;;;;;:8;:17;;;;;:25;;;19823:45;;-1:-1:-1;784:6:1;1579:8;;19823:45:5;19806:13;:62;;19798:91;;;;;-1:-1:-1;;;;;19798:91:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;19798:91:5;;;;;;;;;;;;;;;19921:37;19926:8;:16;;;19944:13;19921:4;:37::i;:::-;19902:16;;;:56;19976:44;;;;;;;;-1:-1:-1;;;;;19976:44:5;;;19985:10;;-1:-1:-1;;;;;;;;;;;19976:44:5;;;;;;;;20033:29;20048:13;20033:14;:29::i;:::-;20073:41;20088:10;20100:13;20073:14;:41::i;:::-;20125:51;20141:7;20150:10;20162:13;20125:15;:51::i;3335:102:6:-;-1:-1:-1;;;;;3415:14:6;3391:4;3415:14;;;;;;;;;;;;3335:102::o;899:53:1:-;947:5;784:6;940:12;;15262:2480:5;1621:39;;;;;;;1651:8;1621:39;;;;;;-1:-1:-1;;;;1639:10:5;;1630:7;;-1:-1:-1;;;;;;1630:7:5;;-1:-1:-1;;1621:39:5;;;;;-1:-1:-1;1651:8:5;;-1:-1:-1;1621:39:5;1:33:-1;99:1;81:16;;;74:27;1621:39:5;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;1621:39:5;;;;-1:-1:-1;1621:39:5;;-1:-1:-1;;;;1621:39:5;1726:6;;;;;;;1725:7;1717:31;;;;;-1:-1:-1;;;;;1717:31:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1717:31:5;;;;;;;;;;;;;;;1759:6;:13;;-1:-1:-1;;1759:13:5;;;;;-1:-1:-1;;;;;15565:17:5;;-1:-1:-1;15565:17:5;;;:8;:17;;;;;:23;1759:13;15565:23;15557:49;;;;;-1:-1:-1;;;;;15557:49:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;15557:49:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;15625:18:5;;;;;;:8;:18;;;;;:24;;;15617:50;;;;;-1:-1:-1;;;;;15617:50:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;15617:50:5;;;;;;;;;;;;;;;15686:11;;-1:-1:-1;;;15686:11:5;;;;15678:43;;;;;-1:-1:-1;;;;;15678:43:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15760:26:5;;;15734:23;15760:26;;;:8;:26;;;;;;15824:27;;;;;;;15895:17;;;;;15890:38;;784:6:1;1636:8;;15890:38:5;15872:14;:56;;15864:86;;;;;-1:-1:-1;;;;;15864:86:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;15864:86:5;;;;;;;;;;;;;;;15963:20;15986:315;16038:8;:16;;;16093:8;:15;;;16147:9;:17;;;16203:9;:16;;;16258:8;;15986:13;:315::i;:::-;15963:338;;16339:8;16320:15;:27;;16312:59;;;;;-1:-1:-1;;;;;16312:59:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;16400:313;16445:8;:16;;;16492:8;:15;;;16538:9;:17;;;16586:9;:16;;;16633:14;16678:8;;16400:14;:313::i;:::-;16384:329;;16749:11;16732:13;:28;;16724:53;;;;;-1:-1:-1;;;;;16724:53:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;16724:53:5;;;;;;;;;;;;;;;16809:37;16814:8;:16;;;16832:13;16809:4;:37::i;:::-;16790:8;:16;;:56;;;;16877:39;16882:9;:17;;;16901:14;16877:4;:39::i;:::-;16857:17;;;;:59;;;16994:16;;;17045:15;;;;;17147:16;;;;17198:8;;16946:291;;16857:59;17147:16;16946:13;:291::i;:::-;16929:308;;17274:15;17256:14;:33;;17248:61;;;;;-1:-1:-1;;;;;17248:61:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;17248:61:5;;;;;;;;;;;;;;;17346:8;17328:14;:26;;17320:54;;;;;-1:-1:-1;;;;;17320:54:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;17412:35;17417:13;17432:14;17412:4;:35::i;:::-;17393:15;:54;;17385:82;;;;;-1:-1:-1;;;;;17385:82:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;17385:82:5;;;;;;;;;;;;;;;17485:70;;;;;;;;;;;;;;-1:-1:-1;;;;;17485:70:5;;;;;;;;17494:10;;17485:70;;;;;;;;;;;17568:51;17584:7;17593:10;17605:13;17568:15;:51::i;:::-;17630:53;17646:8;17656:10;17668:14;17630:15;:53::i;:::-;-1:-1:-1;;1795:6:5;:14;;-1:-1:-1;;1795:14:5;;;-1:-1:-1;15262:2480:5;;;;-1:-1:-1;15262:2480:5;-1:-1:-1;;;;15262:2480:5:o;12768:2486::-;1621:39;;;;;;;1651:8;1621:39;;;;;;-1:-1:-1;;;;1639:10:5;;1630:7;;-1:-1:-1;;;;;;1630:7:5;;-1:-1:-1;;1621:39:5;;;;;-1:-1:-1;1651:8:5;;-1:-1:-1;1621:39:5;1:33:-1;99:1;81:16;;;74:27;1621:39:5;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;1621:39:5;;;;-1:-1:-1;1621:39:5;;-1:-1:-1;;;;1621:39:5;1726:6;;;;;;;1725:7;1717:31;;;;;-1:-1:-1;;;;;1717:31:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1717:31:5;;;;;;;;;;;;;;;1759:6;:13;;-1:-1:-1;;1759:13:5;;;;;-1:-1:-1;;;;;13072:17:5;;-1:-1:-1;13072:17:5;;;:8;:17;;;;;:23;1759:13;13072:23;13064:49;;;;;-1:-1:-1;;;;;13064:49:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;13064:49:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;13132:18:5;;;;;;:8;:18;;;;;:24;;;13124:50;;;;;-1:-1:-1;;;;;13124:50:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;13124:50:5;;;;;;;;;;;;;;;13193:11;;-1:-1:-1;;;13193:11:5;;;;13185:43;;;;;-1:-1:-1;;;;;13185:43:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13267:26:5;;;13241:23;13267:26;;;:8;:26;;;;;;13331:27;;;;;;;13401:16;;;;13396:36;;-1:-1:-1;784:6:1;1579:8;;13396:36:5;13379:13;:53;;13371:82;;;;;-1:-1:-1;;;;;13371:82:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;13371:82:5;;;;;;;;;;;;;;;13466:20;13489:315;13541:8;:16;;;13596:8;:15;;;13650:9;:17;;;13706:9;:16;;;13761:8;;13489:13;:315::i;:::-;13466:338;;13842:8;13823:15;:27;;13815:59;;;;;-1:-1:-1;;;;;13815:59:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;13904:312;13949:8;:16;;;13996:8;:15;;;14042:9;:17;;;14090:9;:16;;;14137:13;14181:8;;13904:14;:312::i;:::-;13887:329;;14253:12;14235:14;:30;;14227:56;;;;;-1:-1:-1;;;;;14227:56:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;14227:56:5;;;;;;;;;;;;;;;14315:37;14320:8;:16;;;14338:13;14315:4;:37::i;:::-;14296:8;:16;;:56;;;;14383:39;14388:9;:17;;;14407:14;14383:4;:39::i;:::-;14363:17;;;;:59;;;14500:16;;;14551:15;;;;;14653:16;;;;14704:8;;14452:291;;14363:59;14653:16;14452:13;:291::i;:::-;14435:308;;14780:15;14762:14;:33;;14754:61;;;;;-1:-1:-1;;;;;14754:61:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;14754:61:5;;;;;;;;;;;;;;;14857:8;14839:14;:26;;14831:54;;;;;-1:-1:-1;;;;;14831:54:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;14923:35;14928:13;14943:14;14923:4;:35::i;:::-;14904:15;:54;;14896:82;;;;;-1:-1:-1;;;;;14896:82:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;14896:82:5;;;;;;;;;;;;;;;14996:70;;;;;;;;;;;;;;-1:-1:-1;;;;;14996:70:5;;;;;;;;15005:10;;14996:70;;;;;;;;;;;15079:51;15095:7;15104:10;15116:13;15079:15;:51::i;:::-;15141:53;15157:8;15167:10;15179:14;15141:15;:53::i;13460:1285:3:-;13707:17;13798:21;13822:33;13827:14;13843:11;13822:4;:33::i;:::-;13798:57;;13938:8;13949:28;784:6:1;13960:16:3;13949:4;:28::i;:::-;13938:39;;13988:8;13999:18;14004:3;14009:7;13999:4;:18::i;:::-;13988:29;;14029:32;14064:37;14069:14;14085:15;784:6:1;14096:3:3;14085:4;:15::i;14064:37::-;14029:72;;14114:23;14140:50;14145:15;14162:27;14140:4;:50::i;:::-;14114:76;;14201:18;14222:41;14227:18;14247:15;14222:4;:41::i;:::-;14201:62;;14343:14;14360:37;14365:13;14380:16;14360:4;:37::i;:::-;14343:54;;14408:18;14429:27;14434:9;14445:10;14429:4;:27::i;:::-;14408:48;;14467:29;14499:31;14504:10;14516:13;14499:4;:31::i;:::-;14467:63;;14655:52;14660:24;14686:20;784:6:1;1057:1;14686:4:3;:20::i;14655:52::-;14640:67;-1:-1:-1;;;;;;;;;;13460:1285:3;;;;;;;;:::o;6581:1167::-;6825:18;7109:21;7133:32;7138:13;7153:11;7133:4;:32::i;:::-;7109:56;;7176:8;7187:43;7192:28;784:6:1;7203:16:3;7192:4;:28::i;:::-;7222:7;7187:4;:43::i;:::-;7176:54;;7242:26;7271:36;7276:13;7291:15;784:6:1;7302:3:3;7291:4;:15::i;:::-;7271:4;:36::i;:::-;7242:65;;7320:22;7345:43;7350:14;7366:21;7345:4;:43::i;:::-;7320:68;;7399:17;7419:39;7424:17;7443:14;7419:4;:39::i;:::-;7399:59;;7539:14;7556:36;7561:12;7575:16;7556:4;:36::i;:::-;7539:53;;7603:18;7624:27;7629:9;7640:10;7624:4;:27::i;:::-;7603:48;;7678:31;7683:13;7698:10;7678:4;:31::i;:::-;7662:47;6581:1167;-1:-1:-1;;;;;;;;;;;;;;6581:1167:3:o;1233:54:1:-;1281:6;784;1274:13;;11078:1263:3;11323:19;11360:21;11384:33;11389:14;11405:11;11384:4;:33::i;:::-;11360:57;;11525:29;11557:40;11562:12;11576:20;784:6:1;1057:1;11576:4:3;:20::i;11557:40::-;11525:72;;11608:18;11629:42;11634:10;11646:24;11629:4;:42::i;:::-;11608:63;;11682:14;11699:31;11704:13;11719:10;11699:4;:31::i;:::-;11682:48;;11803:18;11824:45;11829:9;11840:28;784:6:1;11851:16:3;11840:4;:28::i;:::-;11824:4;:45::i;:::-;11803:66;;11880:23;11906:36;11911:13;11926:15;11906:4;:36::i;:::-;11880:62;;11955:32;11990:41;11995:15;12012:18;11990:4;:41::i;:::-;11955:76;;12168:8;12179:43;12184:28;784:6:1;12195:16:3;12184:4;:28::i;12179:43::-;12168:54;;12251:50;12256:27;12285:15;784:6:1;12296:3:3;12285:4;:15::i;9449:225:5:-;1621:39;;;;;;;1651:8;1621:39;;;;;;1639:10;;-1:-1:-1;1630:7:5;;-1:-1:-1;;;;;;1630:7:5;;-1:-1:-1;;1651:8:5;1621:39;;;;-1:-1:-1;1651:8:5;;-1:-1:-1;1621:39:5;1:33:-1;99:1;81:16;;;74:27;1621:39:5;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;1621:39:5;;;;-1:-1:-1;1621:39:5;;-1:-1:-1;;;;1621:39:5;1726:6;;;;;;;1725:7;1717:31;;;;;-1:-1:-1;;;;;1717:31:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1717:31:5;;;;;;;;;;;;;;;1759:6;:13;;-1:-1:-1;;1759:13:5;;;;;-1:-1:-1;;;;;9552:15:5;;-1:-1:-1;9552:15:5;;;:8;:15;;;;;:21;1759:13;9552:21;9544:47;;;;;-1:-1:-1;;;;;9544:47:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;9544:47:5;;;;;;;;;;;;;;;9628:38;;;;;;9660:4;9628:38;;;;;;-1:-1:-1;;;;;9628:23:5;;;;;:38;;;;;;;;;;;;;;:23;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;9628:38:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9628:38:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9628:38:5;-1:-1:-1;;;;;9602:15:5;;;;;;;;:8;9628:38;9602:15;;;;:23;;:64;1795:6;:14;;-1:-1:-1;;1795:14:5;;;9449:225::o;2754:111::-;2847:10;;;;2754:111;:::o;5026:202::-;1621:39;;;;;;;1651:8;1621:39;;;;;;1639:10;;-1:-1:-1;1630:7:5;;-1:-1:-1;;;;;;1630:7:5;;-1:-1:-1;;1651:8:5;1621:39;;;;-1:-1:-1;1651:8:5;;-1:-1:-1;1621:39:5;1:33:-1;99:1;81:16;;;74:27;1621:39:5;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;1621:39:5;;;;-1:-1:-1;1621:39:5;;-1:-1:-1;;;;1621:39:5;1726:6;;;;;;;1725:7;1717:31;;;;;-1:-1:-1;;;;;1717:31:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1717:31:5;;;;;;;;;;;;;;;1759:6;:13;;;-1:-1:-1;;1759:13:5;;;;;;5154:11;;-1:-1:-1;;;;;5154:11:5;5140:10;:25;5132:56;;;;;-1:-1:-1;;;;;5132:56:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;5132:56:5;;;;;;;;;;;;;;;5199:11;:21;;-1:-1:-1;;;;;;5199:21:5;-1:-1:-1;;;;;5199:21:5;;;;;;;;;;1795:6;:14;;-1:-1:-1;;1795:14:5;;;5026:202::o;3723:148::-;1867:6;;3822:4;;1867:6;;;;;1866:7;1858:31;;;;;-1:-1:-1;;;;;1858:31:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1858:31:5;;;;;;;;;;;;;;;-1:-1:-1;3851:12:5;;3723:148;:::o;1296:51:1:-;1337:10;1296:51;:::o;3489:226:5:-;1867:6;;3596:4;;1867:6;;;;;1866:7;1858:31;;;;;-1:-1:-1;;;;;1858:31:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1858:31:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;3628:15:5;;;;;;:8;:15;;;;;:21;;;3620:47;;;;;-1:-1:-1;;;;;3620:47:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;3620:47:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3685:15:5;;;;;:8;:15;;;;;-1:-1:-1;3685:22:5;;;3489:226::o;3022:87:6:-;3094:7;3087:14;;;;;;;;;;;;;-1:-1:-1;;3087:14:6;;;;;;;;;;;;;;;;;;;;;;;;;;3061:13;;3087:14;;3094:7;;3087:14;;;3094:7;3087:14;;;;;;;;;;;;;;;;;;;;;;;;1594:59:1;1635:18;1594:59;:::o;817:121:0:-;909:17;817:121;:::o;1663:509:3:-;1875:14;1907:10;1920:35;1925:14;1941:13;1920:4;:35::i;:::-;1907:48;;1966:10;1979:37;1984:15;2001:14;1979:4;:37::i;:::-;1966:50;;2027:10;2040:18;2045:5;2052;2040:4;:18::i;:::-;2027:31;;2069:10;2082:31;784:6:1;2093:19:3;784:6:1;2104:7:3;2093:4;:19::i;2082:31::-;2069:44;;2145:18;2150:5;2157;2145:4;:18::i;:::-;2133:30;1663:509;-1:-1:-1;;;;;;;;;;1663:509:3:o;4398:133:6:-;4457:4;4474:27;4480:10;4492:3;4497;4474:5;:27::i;:::-;-1:-1:-1;4519:4:6;4398:133;;;;:::o;11636:1122:5:-;1621:39;;;;;;;1651:8;1621:39;;;;;;1639:10;;-1:-1:-1;1630:7:5;;-1:-1:-1;;;;;;1630:7:5;;-1:-1:-1;;1651:8:5;1621:39;;;;-1:-1:-1;1651:8:5;;-1:-1:-1;1621:39:5;1:33:-1;99:1;81:16;;;74:27;1621:39:5;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;1621:39:5;;;;-1:-1:-1;1621:39:5;;-1:-1:-1;;;;1621:39:5;1726:6;;;;;;;1725:7;1717:31;;;;;-1:-1:-1;;;;;1717:31:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1717:31:5;;;;;;;;;;;;;;;1759:6;:13;;-1:-1:-1;;1759:13:5;;;;;11778:10;;1759:13;11778:10;11770:40;;;;;-1:-1:-1;;;;;11770:40:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;11770:40:5;;;;;;;;;;;;;;;11823:14;11840:13;:11;:13::i;:::-;11823:30;;11864:12;11879:28;11884:12;1057:1:1;11879:4:5;:28::i;:::-;11864:43;;11918:20;11941:27;11946:12;11960:7;11941:4;:27::i;:::-;11918:50;;11979:10;11992:32;11997:15;12014:9;11992:4;:32::i;:::-;11979:45;-1:-1:-1;12043:10:5;12035:38;;;;;-1:-1:-1;;;;;12035:38:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;12035:38:5;;;;;;;;;;;;;;;12086:40;12101:10;12113:12;12086:14;:40::i;:::-;12152:8;;12137:33;;12152:8;;;-1:-1:-1;;;;;12152:8:5;12162:7;12137:14;:33::i;:::-;12181:31;12196:15;12181:14;:31::i;:::-;12230:6;12225:524;12246:7;:14;12242:18;;12225:524;;;12282:9;12294:7;12302:1;12294:10;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12294:10:5;12330:11;;;:8;:11;;;;;;:19;;;12294:10;;-1:-1:-1;12330:19:5;12386:16;12391:5;12330:19;12386:4;:16::i;:::-;12364:38;-1:-1:-1;12425:19:5;12417:47;;;;;-1:-1:-1;;;;;12417:47:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;12417:47:5;;;;;;;;;;;;;;;12505:13;;12519:1;12505:16;;;;;;;;;;;;;12487:14;:34;;12479:60;;;;;-1:-1:-1;;;;;12479:60:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;12479:60:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;12581:11:5;;;;;;:8;:11;;;;;:19;;;12576:41;;12602:14;12576:4;:41::i;:::-;-1:-1:-1;;;;;12554:11:5;;;;;;:8;:11;;;;;;;;:19;;:63;;;;12637:39;;;;;;;-1:-1:-1;;12554:11:5;;12646:10;;12637:39;;12554:11;;-1:-1:-1;12554:11:5;-1:-1:-1;;;;;12637:39:5;;;;;;;;;12691:46;12707:1;12710:10;12722:14;12691:15;:46::i;:::-;-1:-1:-1;;;12262:3:5;;12225:524;;;-1:-1:-1;;1795:6:5;:14;;-1:-1:-1;;1795:14:5;;;-1:-1:-1;;;;;;11636:1122:5:o;848:42:1:-;889:1;848:42;:::o;799:::-;840:1;799:42;:::o;1356:46::-;1397:5;1356:46;:::o;3190:683:3:-;3432:19;3469:16;3488:35;3493:13;3508:14;3488:4;:35::i;:::-;3469:54;;3534:15;3552:19;784:6:1;3563:7:3;3552:4;:19::i;:::-;3534:37;;3595:31;3600:13;3615:10;3595:4;:31::i;:::-;3582:44;;3637:6;3646:54;3651:14;3667:32;3672:14;3688:10;3667:4;:32::i;3646:54::-;3637:63;;3711:8;3722:20;3727:1;3730:11;3722:4;:20::i;:::-;3711:31;;3753:8;3764:15;784:6:1;3775:3:3;3764:4;:15::i;:::-;3753:26;;3807;3812:15;3829:3;3807:4;:26::i;:::-;3790:43;3190:683;-1:-1:-1;;;;;;;;;;;;3190:683:3:o;959:50:1:-;1007:2;784:6;1000:9;;1409:59;1450:18;1409:59;:::o;3280:201:5:-;1867:6;;3367:23;;1867:6;;;;;1866:7;1858:31;;;;;-1:-1:-1;;;;;1858:31:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1858:31:5;;;;;;;;;;;;;;;3416:10;;;;3408:40;;;;;-1:-1:-1;;;;;3408:40:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;3408:40:5;;;;;;;;;;;;;;;3466:7;3459:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3459:14:5;;;-1:-1:-1;3459:14:5;;;;;;;;;;;;;;;;;;3280:201;:::o;1016:42:1:-;1057:1;1016:42;:::o;3129:143:5:-;1867:6;;3209:23;;1867:6;;;;;1866:7;1858:31;;;;;-1:-1:-1;;;;;1858:31:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1858:31:5;;;;;;;;;;;;;;3004:117;3099:7;:14;3004:117;:::o;8323:1041::-;1621:39;;;;;;;1651:8;1621:39;;;;;;1639:10;;-1:-1:-1;1630:7:5;;-1:-1:-1;;;;;;1630:7:5;;-1:-1:-1;;1651:8:5;1621:39;;;;-1:-1:-1;1651:8:5;;-1:-1:-1;1621:39:5;1:33:-1;99:1;81:16;;;74:27;1621:39:5;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;1621:39:5;;;;-1:-1:-1;1621:39:5;;-1:-1:-1;;;;1621:39:5;1726:6;;;;;;;1725:7;1717:31;;;;;-1:-1:-1;;;;;1717:31:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1717:31:5;;;;;;;;;;;;;;;1759:6;:13;;;-1:-1:-1;;1759:13:5;;;;;;8444:11;;-1:-1:-1;;;;;8444:11:5;8430:10;:25;8422:56;;;;;-1:-1:-1;;;;;8422:56:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;8422:56:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;8497:15:5;;;;;;:8;:15;;;;;:21;;;8489:47;;;;;-1:-1:-1;;;;;8489:47:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;8489:47:5;;;;;;;;;;;;;;;8556:10;;;;8555:11;8547:40;;;;;-1:-1:-1;;;;;8547:40:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;8547:40:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;8620:15:5;;8600:17;8620:15;;;:8;:15;;;;;:23;;;;8674:28;8620:23;8600:17;8674:4;:28::i;:::-;8735:12;;-1:-1:-1;;;;;8749:15:5;;;;;;:8;:15;;;;;-1:-1:-1;8749:22:5;;8654:48;;-1:-1:-1;8730:42:5;;:4;:42::i;:::-;8715:12;:57;-1:-1:-1;;;;;8895:15:5;;8882:10;8895:15;;;:8;:15;;;;;-1:-1:-1;8895:21:5;;8939:7;:14;;-1:-1:-1;;8939:18:5;;;:7;:18;;8985:13;;;;;;;;;;;;;;;;8968:7;:14;;-1:-1:-1;;;;;8985:13:5;;;;8976:5;;8968:14;;;;;;;;;;;;;;:30;;-1:-1:-1;;;;;;8968:30:5;-1:-1:-1;;;;;8968:30:5;;;;;;;;;;;9018:7;:14;;9042:5;;9009:8;;8968:14;;9042:5;;9018:14;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9018:14:5;9009:24;;;;;;;;;;;;-1:-1:-1;9009:30:5;:38;9058:7;:13;;;;;;;;;;;;;;;-1:-1:-1;;9058:13:5;;;;;;;-1:-1:-1;;;;;;9058:13:5;;;;;;;;;9100:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9082:15:5;;;;:8;:15;;;;;;;:136;;;;-1:-1:-1;;9082:136:5;;;;;;;;;-1:-1:-1;9082:136:5;;;;-1:-1:-1;9082:136:5;;;;;;;;;9231:68;9082:15;9254:10;9266:32;9271:12;9285;9266:4;:32::i;9231:68::-;9333:8;;9310:46;;9326:5;;9333:8;;;-1:-1:-1;;;;;9333:8:5;9343:12;9310:15;:46::i;4386:128::-;1867:6;;4469:4;;1867:6;;;;;1866:7;1858:31;;;;;-1:-1:-1;;;;;1858:31:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1858:31:5;;;;;;;;;;;;;;;-1:-1:-1;4498:8:5;;4386:128;:::o;3733:252:6:-;3863:10;3800:4;3852:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;3852:27:6;;;;;;;;;;3847:38;;3881:3;3847:4;:38::i;:::-;3828:10;3817:22;;;;:10;:22;;;;;;;;-1:-1:-1;;;;;3817:27:6;;;;;;;;;;;:68;;;3901:54;;;;;;;-1:-1:-1;;3817:27:6;;3901:54;;;;3817:22;-1:-1:-1;3817:22:6;-1:-1:-1;;;;;3901:54:6;;;;;;;;;;-1:-1:-1;3973:4:6;3733:252;;;;:::o;3207:120::-;-1:-1:-1;;;;;3299:15:6;;;3275:4;3299:15;;;-1:-1:-1;3299:15:6;;;;;;;;:20;;;;;;;;;;;;;3207:120::o;5936:732:5:-;1621:39;;;;;;;1651:8;1621:39;;;;;;1639:10;;-1:-1:-1;1630:7:5;;-1:-1:-1;;;;;;1630:7:5;;-1:-1:-1;;1651:8:5;1621:39;;;;-1:-1:-1;1651:8:5;;-1:-1:-1;1621:39:5;1:33:-1;99:1;81:16;;;74:27;1621:39:5;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;1621:39:5;;;;-1:-1:-1;1621:39:5;;-1:-1:-1;;;;1621:39:5;6144:11;;-1:-1:-1;;;;;6144:11:5;6130:10;:25;6122:56;;;;;-1:-1:-1;;;;;6122:56:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;6122:56:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;6198:15:5;;;;;;:8;:15;;;;;:21;;;6197:22;6189:47;;;;;-1:-1:-1;;;;;6189:47:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;6256:10;;;;6255:11;6247:40;;;;;-1:-1:-1;;;;;6247:40:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;6247:40:5;;;;;;;;;;;;;;;6308:7;:14;889:1:1;-1:-1:-1;6300:60:5;;;;;-1:-1:-1;;;;;6300:60:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;6391:198;;;;;;;;6420:4;6391:198;;;6446:7;:14;;6391:198;;;;;;;-1:-1:-1;6391:198:5;;;;;;;;;;;;-1:-1:-1;;;;;6373:15:5;;;;;:8;:15;;;;;;:216;;;;-1:-1:-1;;6373:216:5;;;;;;;;;;;;;;;-1:-1:-1;6373:216:5;;;;;;;;;;;;;27:10:-1;;23:18;;;45:23;;6600:19:5;;;;;;;-1:-1:-1;;;;;;6600:19:5;;;;;;6630:30;6373:15;6644:7;6653:6;6630;:30::i;:::-;5936:732;;;:::o;1538:49:1:-;1586:1;784:6;1579:8;;3879:275:5;1867:6;;3984:4;;1867:6;;;;;1866:7;1858:31;;;;;-1:-1:-1;;;;;1858:31:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1858:31:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;4016:15:5;;;;;;:8;:15;;;;;:21;;;4008:47;;;;;-1:-1:-1;;;;;4008:47:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;4008:47:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;4080:15:5;;4066:11;4080:15;;;:8;:15;;;;;-1:-1:-1;4080:22:5;;4133:12;;4120:26;;4080:22;;4120:4;:26::i;:::-;4113:33;3879:275;-1:-1:-1;;;3879:275:5:o;4162:216::-;1867:6;;4258:4;;1867:6;;;;;1866:7;1858:31;;;;;-1:-1:-1;;;;;1858:31:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1858:31:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;4290:15:5;;;;;;:8;:15;;;;;:21;;;4282:47;;;;;-1:-1:-1;;;;;4282:47:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;4282:47:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4347:15:5;;;;;:8;:15;;;;;:23;;;;4162:216::o;4891:672:3:-;5134:18;5170:16;5189:35;5194:14;5210:13;5189:4;:35::i;:::-;5170:54;;5235:9;5247:37;5252:15;5269:14;5247:4;:37::i;:::-;5235:49;;5295:6;5304:27;5309:15;5326:4;5304;:27::i;:::-;5295:36;;5342:8;5353:20;5358:1;5361:11;5353:4;:20::i;:::-;5342:31;;5390:15;5395:3;784:6:1;5390:4:3;:15::i;:::-;5384:21;;5432:19;784:6:1;5443:7:3;5432:4;:19::i;:::-;5416:35;;5478:46;5483:25;5488:14;5504:3;5483:4;:25::i;:::-;5510:13;5478:4;:46::i;:::-;5462:62;4891:672;-1:-1:-1;;;;;;;;;;;4891:672:3:o;2633:113:5:-;2727:11;;-1:-1:-1;;;2727:11:5;;;;;2633:113::o;1612:311:4:-;1683:4;1715:5;;;1739:6;;;:21;;;1759:1;1754;1749:2;:6;;;;;;:11;1739:21;1731:50;;;;;-1:-1:-1;;;;;1731:50:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;1808:8;1802:15;;1836:8;;;;1828:37;;;;;-1:-1:-1;;;;;1828:37:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;1876:7;784:6:1;1886:2:4;:9;;;1612:311;-1:-1:-1;;;;;;1612:311:4:o;1171:202::-;1242:4;1265:6;1273:9;1286:14;1295:1;1298;1286:8;:14::i;:::-;1264:36;;;;1320:4;1319:5;1311:35;;;;;-1:-1:-1;;;;;1311:35:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1364:1:4;1171:202;-1:-1:-1;;;1171:202:4:o;23551:112:5:-;23636:19;23642:4;23648:6;23636:5;:19::i;:::-;23551:112;;:::o;23887:92::-;23958:13;23964:6;23958:5;:13::i;:::-;23887:92;:::o;23671:108::-;23754:17;23760:2;23764:6;23754:5;:17::i;23347:196::-;23458:34;;;;;;-1:-1:-1;;;;;23458:34:5;;;;;;;;;;;;;;;-1:-1:-1;;23458:22:5;;;;;:34;;;;;;;;;;;;;;-1:-1:-1;23458:22:5;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;23458:34:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23458:34:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23458:34:5;;-1:-1:-1;23458:34:5;23503:32;;;;;-1:-1:-1;;;;;23503:32:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;23347:196;;;;:::o;2261:273:6:-;-1:-1:-1;;;;;2340:13:6;;:8;:13;;;;;;;;;;;-1:-1:-1;;2340:20:6;2332:53;;;;;-1:-1:-1;;;;;2332:53:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2417:13:6;;:8;:13;;;;;;;;;;;2412:24;;2432:3;2412:4;:24::i;:::-;-1:-1:-1;;;;;2396:13:6;;;:8;:13;;;;;;;;;;;:40;;;;2468:13;;;;;;;2463:24;;2483:3;2463:4;:24::i;:::-;-1:-1:-1;;;;;2447:13:6;;;:8;:13;;;;;;;;;;;:40;;;;2503:23;;;;;;;-1:-1:-1;;2447:13:6;;2503:23;;;;;;;;2447:8;:13;-1:-1:-1;2447:8:6;-1:-1:-1;;;;;2503:23:6;;;;;;;;2261:273;;;:::o;983:180:4:-;1054:4;1085:5;;;1109:6;;;;1101:35;;;;;-1:-1:-1;;;;;1101:35:4;;;;;;;;;;;;;;;;;;;;;;;;;;;23120:219:5;23233:55;;;;;;-1:-1:-1;;;;;23233:55:5;;;;;;;23274:4;23233:55;;;;;;;;;;;;-1:-1:-1;;23233:26:5;;;;;:55;;;;;;;;;;;;;;-1:-1:-1;23233:26:5;:55;;;5:2:-1;;;;30:1;27;20:12;23787:92:5;23858:13;23864:6;23858:5;:13::i;1931:387:4:-;2002:4;2032:6;2024:31;;;;;-1:-1:-1;;;;;2024:31:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;784:6:1;2076:8:4;;2103:6;;;:24;;;784:6:1;2118:1:4;2113:2;:6;;;;;;:14;2103:24;2095:53;;;;;-1:-1:-1;;;;;2095:53:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;2196:1;2192:5;;2186:12;;2217:8;;;;2209:37;;;;;-1:-1:-1;;;;;2209:37:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;2274:7;2289:1;2284:2;:6;;;;2821:555;2897:4;1397:5:1;2927:4:4;:21;;2919:55;;;;;-1:-1:-1;;;;;2919:55:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;1450:18:1;2993:21:4;;;2985:56;;;;;-1:-1:-1;;;;;2985:56:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;3054:10;3068:11;3075:3;3068:6;:11::i;:::-;3054:25;;3093:11;3107:16;3112:3;3117:5;3107:4;:16::i;:::-;3093:30;;3136:13;3152:24;3158:4;3164:11;3169:5;3164:4;:11::i;:::-;3152:5;:24::i;:::-;3136:40;-1:-1:-1;3193:11:4;3189:59;;3228:8;-1:-1:-1;3221:15:4;;-1:-1:-1;;3221:15:4;3189:59;3260:18;3281:40;3292:4;3298:6;1516:13:1;3281:10:4;:40::i;:::-;3260:61;;3339:29;3344:8;3354:13;3339:4;:29::i;:::-;3332:36;2821:555;-1:-1:-1;;;;;;;2821:555:4:o;1381:223::-;1456:4;1462;1493:1;1488;:6;1484:113;;-1:-1:-1;;1519:5:4;;;1526;1511:21;;1484:113;-1:-1:-1;;1573:5:4;;;1580:4;1484:113;1381:223;;;;;:::o;2644:98:6:-;2703:31;2709:4;2723;2730:3;2703:5;:31::i;1961:292::-;2031:4;2014:8;:23;;;;;;;;;;;:30;-1:-1:-1;2014:30:6;2006:63;;;;;-1:-1:-1;;;;;2006:63:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;2128:4;2111:8;:23;;;;;;;;;;;2106:34;;2136:3;2106:4;:34::i;:::-;2097:4;2080:8;:23;;;;;;;;;;:60;2171:12;;2166:23;;2185:3;2166:4;:23::i;:::-;2151:12;:38;2205:40;;;;;;;;2237:1;;2222:4;;-1:-1:-1;;;;;;;;;;;2205:40:6;;;;;;;;1961:292;:::o;2542:94::-;2599:29;2613:4;2620:2;2624:3;2599:5;:29::i;1735:218::-;1828:4;1811:8;:23;;;;;;;;;;;1806:34;;1836:3;1806:4;:34::i;:::-;1797:4;1780:8;:23;;;;;;;;;;:60;1871:12;;1866:23;;1885:3;1866:4;:23::i;:::-;1851:12;:38;1905:40;;;;;;;;1934:4;;1922:1;;-1:-1:-1;;;;;;;;;;;1905:40:6;;;;;;;;1735:218;:::o;859:116:4:-;924:4;784:6:1;953:7:4;958:1;953:4;:7::i;:::-;:14;;859:116;-1:-1:-1;;859:116:4:o;742:109::-;784:6:1;835:8:4;;;742:109::o;2346:314::-;2418:4;;2453:1;2449;:5;:21;;784:6:1;2449:21:4;;;2462:1;2449:21;2440:30;-1:-1:-1;2493:1:4;2488:6;;;;2483:151;2496:6;;2483:151;;2531:10;2536:1;2539;2531:4;:10::i;:::-;2527:14;-1:-1:-1;2566:1:4;2562;:5;:10;2558:65;;2597:10;2602:1;2605;2597:4;:10::i;:::-;2593:14;;2558:65;2509:1;2504:6;;;;2483:151;;3384:1080;3482:4;3537:3;3482:4;;3574:20;3583:4;784:6:1;3574:8:4;:20::i;:::-;3551:43;;-1:-1:-1;3551:43:4;-1:-1:-1;784:6:1;;3605:9:4;3939:1;3925:509;3950:9;3942:4;:17;3925:509;;3981:9;784:6:1;3993:1:4;:8;3981:20;;4017:6;4025:9;4038:29;4047:1;4050:16;4055:4;784:6:1;4050:4:4;:16::i;:::-;4038:8;:29::i;:::-;4016:51;;;;4089:22;4094:4;4100:10;4105:1;4108;4100:4;:10::i;4089:22::-;4082:29;;4133:16;4138:4;4144;4133;:16::i;:::-;4126:23;-1:-1:-1;4168:9:4;4164:20;;4179:5;;;;;4164:20;4205:4;4201:30;;;4222:9;;;4201:30;4250:4;4246:30;;;4267:9;;;4246:30;4295:8;4291:132;;;4330:15;4335:3;4340:4;4330;:15::i;:::-;4324:21;;4291:132;;;4392:15;4397:3;4402:4;4392;:15::i;:::-;4386:21;;4291:132;-1:-1:-1;;;3961:3:4;;3925:509;;;-1:-1:-1;4453:3:4;;3384:1080;-1:-1:-1;;;;;;;;;3384:1080:4:o", | |
"source": "// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\npragma solidity 0.5.12;\r\n\r\nimport \"./BToken.sol\";\r\nimport \"./BMath.sol\";\r\n\r\ncontract BPool is BBronze, BToken, BMath {\r\n\r\n struct Record {\r\n bool bound; // is token bound to pool\r\n uint index; // private\r\n uint denorm; // denormalized weight\r\n uint balance;\r\n }\r\n\r\n event LOG_SWAP(\r\n address indexed caller,\r\n address indexed tokenIn,\r\n address indexed tokenOut,\r\n uint256 tokenAmountIn,\r\n uint256 tokenAmountOut\r\n );\r\n\r\n event LOG_JOIN(\r\n address indexed caller,\r\n address indexed tokenIn,\r\n uint256 tokenAmountIn\r\n );\r\n\r\n event LOG_EXIT(\r\n address indexed caller,\r\n address indexed tokenOut,\r\n uint256 tokenAmountOut\r\n );\r\n\r\n event LOG_CALL(\r\n bytes4 indexed sig,\r\n address indexed caller,\r\n bytes data\r\n ) anonymous;\r\n\r\n modifier _logs_() {\r\n emit LOG_CALL(msg.sig, msg.sender, msg.data);\r\n _;\r\n }\r\n\r\n modifier _lock_() {\r\n require(!_mutex, \"ERR_REENTRY\");\r\n _mutex = true;\r\n _;\r\n _mutex = false;\r\n }\r\n\r\n modifier _viewlock_() {\r\n require(!_mutex, \"ERR_REENTRY\");\r\n _;\r\n }\r\n\r\n bool private _mutex;\r\n\r\n address private _factory; // BFactory address to push token exitFee to\r\n address private _controller; // has CONTROL role\r\n bool private _publicSwap; // true if PUBLIC can call SWAP functions\r\n\r\n // `setSwapFee` and `finalize` require CONTROL\r\n // `finalize` sets `PUBLIC can SWAP`, `PUBLIC can JOIN`\r\n uint private _swapFee;\r\n bool private _finalized;\r\n\r\n address[] private _tokens;\r\n mapping(address=>Record) private _records;\r\n uint private _totalWeight;\r\n\r\n constructor() public {\r\n _controller = msg.sender;\r\n _factory = msg.sender;\r\n _swapFee = MIN_FEE;\r\n _publicSwap = false;\r\n _finalized = false;\r\n }\r\n\r\n function isPublicSwap()\r\n external view\r\n returns (bool)\r\n {\r\n return _publicSwap;\r\n }\r\n\r\n function isFinalized()\r\n external view\r\n returns (bool)\r\n {\r\n return _finalized;\r\n }\r\n\r\n function isBound(address t)\r\n external view\r\n returns (bool)\r\n {\r\n return _records[t].bound;\r\n }\r\n\r\n function getNumTokens()\r\n external view\r\n returns (uint) \r\n {\r\n return _tokens.length;\r\n }\r\n\r\n function getCurrentTokens()\r\n external view _viewlock_\r\n returns (address[] memory tokens)\r\n {\r\n return _tokens;\r\n }\r\n\r\n function getFinalTokens()\r\n external view\r\n _viewlock_\r\n returns (address[] memory tokens)\r\n {\r\n require(_finalized, \"ERR_NOT_FINALIZED\");\r\n return _tokens;\r\n }\r\n\r\n function getDenormalizedWeight(address token)\r\n external view\r\n _viewlock_\r\n returns (uint)\r\n {\r\n\r\n require(_records[token].bound, \"ERR_NOT_BOUND\");\r\n return _records[token].denorm;\r\n }\r\n\r\n function getTotalDenormalizedWeight()\r\n external view\r\n _viewlock_\r\n returns (uint)\r\n {\r\n return _totalWeight;\r\n }\r\n\r\n function getNormalizedWeight(address token)\r\n external view\r\n _viewlock_\r\n returns (uint)\r\n {\r\n\r\n require(_records[token].bound, \"ERR_NOT_BOUND\");\r\n uint denorm = _records[token].denorm;\r\n return bdiv(denorm, _totalWeight);\r\n }\r\n\r\n function getBalance(address token)\r\n external view\r\n _viewlock_\r\n returns (uint)\r\n {\r\n\r\n require(_records[token].bound, \"ERR_NOT_BOUND\");\r\n return _records[token].balance;\r\n }\r\n\r\n function getSwapFee()\r\n external view\r\n _viewlock_\r\n returns (uint)\r\n {\r\n return _swapFee;\r\n }\r\n\r\n function getController()\r\n external view\r\n _viewlock_\r\n returns (address)\r\n {\r\n return _controller;\r\n }\r\n\r\n function setSwapFee(uint swapFee)\r\n external\r\n _logs_\r\n _lock_\r\n { \r\n require(!_finalized, \"ERR_IS_FINALIZED\");\r\n require(msg.sender == _controller, \"ERR_NOT_CONTROLLER\");\r\n require(swapFee >= MIN_FEE, \"ERR_MIN_FEE\");\r\n require(swapFee <= MAX_FEE, \"ERR_MAX_FEE\");\r\n _swapFee = swapFee;\r\n }\r\n\r\n function setController(address manager)\r\n external\r\n _logs_\r\n _lock_\r\n {\r\n require(msg.sender == _controller, \"ERR_NOT_CONTROLLER\");\r\n _controller = manager;\r\n }\r\n\r\n function setPublicSwap(bool public_)\r\n external\r\n _logs_\r\n _lock_\r\n {\r\n require(!_finalized, \"ERR_IS_FINALIZED\");\r\n require(msg.sender == _controller, \"ERR_NOT_CONTROLLER\");\r\n _publicSwap = public_;\r\n }\r\n\r\n function finalize()\r\n external\r\n _logs_\r\n _lock_\r\n {\r\n require(msg.sender == _controller, \"ERR_NOT_CONTROLLER\");\r\n require(!_finalized, \"ERR_IS_FINALIZED\");\r\n require(_tokens.length >= MIN_BOUND_TOKENS, \"ERR_MIN_TOKENS\");\r\n\r\n _finalized = true;\r\n _publicSwap = true;\r\n\r\n _mintPoolShare(INIT_POOL_SUPPLY);\r\n _pushPoolShare(msg.sender, INIT_POOL_SUPPLY);\r\n }\r\n\r\n\r\n function bind(address token, uint balance, uint denorm)\r\n external\r\n _logs_\r\n // _lock_ Bind does not lock because it jumps to `rebind`, which does\r\n {\r\n require(msg.sender == _controller, \"ERR_NOT_CONTROLLER\");\r\n require(!_records[token].bound, \"ERR_IS_BOUND\");\r\n require(!_finalized, \"ERR_IS_FINALIZED\");\r\n\r\n require(_tokens.length < MAX_BOUND_TOKENS, \"ERR_MAX_TOKENS\");\r\n\r\n _records[token] = Record({\r\n bound: true,\r\n index: _tokens.length,\r\n denorm: 0, // balance and denorm will be validated\r\n balance: 0 // and set by `rebind`\r\n });\r\n _tokens.push(token);\r\n rebind(token, balance, denorm);\r\n }\r\n\r\n function rebind(address token, uint balance, uint denorm)\r\n public\r\n _logs_\r\n _lock_\r\n {\r\n\r\n require(msg.sender == _controller, \"ERR_NOT_CONTROLLER\");\r\n require(_records[token].bound, \"ERR_NOT_BOUND\");\r\n require(!_finalized, \"ERR_IS_FINALIZED\");\r\n\r\n require(denorm >= MIN_WEIGHT, \"ERR_MIN_WEIGHT\");\r\n require(denorm <= MAX_WEIGHT, \"ERR_MAX_WEIGHT\");\r\n require(balance >= MIN_BALANCE, \"ERR_MIN_BALANCE\");\r\n\r\n // Adjust the denorm and totalWeight\r\n uint oldWeight = _records[token].denorm;\r\n if (denorm > oldWeight) {\r\n _totalWeight = badd(_totalWeight, bsub(denorm, oldWeight));\r\n require(_totalWeight <= MAX_TOTAL_WEIGHT, \"ERR_MAX_TOTAL_WEIGHT\");\r\n } else if (denorm < oldWeight) {\r\n _totalWeight = bsub(_totalWeight, bsub(oldWeight, denorm));\r\n } \r\n _records[token].denorm = denorm;\r\n\r\n // Adjust the balance record and actual token balance\r\n uint oldBalance = _records[token].balance;\r\n _records[token].balance = balance;\r\n if (balance > oldBalance) {\r\n _pullUnderlying(token, msg.sender, bsub(balance, oldBalance));\r\n } else if (balance < oldBalance) {\r\n // In this case liquidity is being withdrawn, so charge EXIT_FEE\r\n uint tokenBalanceWithdrawn = bsub(oldBalance, balance);\r\n uint tokenExitFee = bmul(tokenBalanceWithdrawn, EXIT_FEE);\r\n _pushUnderlying(token, msg.sender, bsub(tokenBalanceWithdrawn, tokenExitFee));\r\n _pushUnderlying(token, _factory, tokenExitFee);\r\n }\r\n }\r\n\r\n function unbind(address token)\r\n external\r\n _logs_\r\n _lock_\r\n {\r\n\r\n require(msg.sender == _controller, \"ERR_NOT_CONTROLLER\");\r\n require(_records[token].bound, \"ERR_NOT_BOUND\");\r\n require(!_finalized, \"ERR_IS_FINALIZED\");\r\n\r\n uint tokenBalance = _records[token].balance;\r\n uint tokenExitFee = bmul(tokenBalance, EXIT_FEE);\r\n\r\n _totalWeight = bsub(_totalWeight, _records[token].denorm);\r\n\r\n // Swap the token-to-unbind with the last token,\r\n // then delete the last token\r\n uint index = _records[token].index;\r\n uint last = _tokens.length - 1;\r\n _tokens[index] = _tokens[last];\r\n _records[_tokens[index]].index = index;\r\n _tokens.pop();\r\n _records[token] = Record({\r\n bound: false,\r\n index: 0,\r\n denorm: 0,\r\n balance: 0\r\n });\r\n\r\n _pushUnderlying(token, msg.sender, bsub(tokenBalance, tokenExitFee));\r\n _pushUnderlying(token, _factory, tokenExitFee);\r\n }\r\n\r\n // Absorb any tokens that have been sent to this contract into the pool\r\n function gulp(address token)\r\n external\r\n _logs_\r\n _lock_\r\n {\r\n require(_records[token].bound, \"ERR_NOT_BOUND\");\r\n _records[token].balance = IERC20(token).balanceOf(address(this));\r\n }\r\n\r\n function getSpotPrice(address tokenIn, address tokenOut)\r\n external view\r\n _viewlock_\r\n returns (uint spotPrice)\r\n {\r\n require(_records[tokenIn].bound, \"ERR_NOT_BOUND\");\r\n require(_records[tokenOut].bound, \"ERR_NOT_BOUND\");\r\n Record storage inRecord = _records[tokenIn];\r\n Record storage outRecord = _records[tokenOut];\r\n return calcSpotPrice(inRecord.balance, inRecord.denorm, outRecord.balance, outRecord.denorm, _swapFee);\r\n }\r\n\r\n function getSpotPriceSansFee(address tokenIn, address tokenOut)\r\n external view\r\n _viewlock_\r\n returns (uint spotPrice)\r\n {\r\n require(_records[tokenIn].bound, \"ERR_NOT_BOUND\");\r\n require(_records[tokenOut].bound, \"ERR_NOT_BOUND\");\r\n Record storage inRecord = _records[tokenIn];\r\n Record storage outRecord = _records[tokenOut];\r\n return calcSpotPrice(inRecord.balance, inRecord.denorm, outRecord.balance, outRecord.denorm, 0);\r\n }\r\n\r\n function joinPool(uint poolAmountOut, uint[] calldata maxAmountsIn)\r\n external\r\n _logs_\r\n _lock_\r\n {\r\n require(_finalized, \"ERR_NOT_FINALIZED\");\r\n\r\n uint poolTotal = totalSupply();\r\n uint ratio = bdiv(poolAmountOut, poolTotal);\r\n require(ratio != 0, \"ERR_MATH_APPROX\");\r\n\r\n for (uint i = 0; i < _tokens.length; i++) {\r\n address t = _tokens[i];\r\n uint bal = _records[t].balance;\r\n uint tokenAmountIn = bmul(ratio, bal);\r\n require(tokenAmountIn != 0, \"ERR_MATH_APPROX\");\r\n require(tokenAmountIn <= maxAmountsIn[i], \"ERR_LIMIT_IN\");\r\n _records[t].balance = badd(_records[t].balance, tokenAmountIn);\r\n emit LOG_JOIN(msg.sender, t, tokenAmountIn);\r\n _pullUnderlying(t, msg.sender, tokenAmountIn);\r\n }\r\n _mintPoolShare(poolAmountOut);\r\n _pushPoolShare(msg.sender, poolAmountOut);\r\n }\r\n\r\n function exitPool(uint poolAmountIn, uint[] calldata minAmountsOut)\r\n external\r\n _logs_\r\n _lock_\r\n {\r\n require(_finalized, \"ERR_NOT_FINALIZED\");\r\n\r\n uint poolTotal = totalSupply();\r\n uint exitFee = bmul(poolAmountIn, EXIT_FEE);\r\n uint pAiAfterExitFee = bsub(poolAmountIn, exitFee);\r\n uint ratio = bdiv(pAiAfterExitFee, poolTotal);\r\n require(ratio != 0, \"ERR_MATH_APPROX\");\r\n\r\n _pullPoolShare(msg.sender, poolAmountIn);\r\n _pushPoolShare(_factory, exitFee);\r\n _burnPoolShare(pAiAfterExitFee);\r\n\r\n for (uint i = 0; i < _tokens.length; i++) {\r\n address t = _tokens[i];\r\n uint bal = _records[t].balance;\r\n uint tokenAmountOut = bmul(ratio, bal);\r\n require(tokenAmountOut != 0, \"ERR_MATH_APPROX\");\r\n require(tokenAmountOut >= minAmountsOut[i], \"ERR_LIMIT_OUT\");\r\n _records[t].balance = bsub(_records[t].balance, tokenAmountOut);\r\n emit LOG_EXIT(msg.sender, t, tokenAmountOut);\r\n _pushUnderlying(t, msg.sender, tokenAmountOut);\r\n }\r\n\r\n }\r\n\r\n\r\n function swapExactAmountIn(\r\n address tokenIn,\r\n uint tokenAmountIn,\r\n address tokenOut,\r\n uint minAmountOut,\r\n uint maxPrice\r\n )\r\n external\r\n _logs_\r\n _lock_\r\n returns (uint tokenAmountOut, uint spotPriceAfter)\r\n {\r\n\r\n require(_records[tokenIn].bound, \"ERR_NOT_BOUND\");\r\n require(_records[tokenOut].bound, \"ERR_NOT_BOUND\");\r\n require(_publicSwap, \"ERR_SWAP_NOT_PUBLIC\");\r\n\r\n Record storage inRecord = _records[address(tokenIn)];\r\n Record storage outRecord = _records[address(tokenOut)];\r\n\r\n require(tokenAmountIn <= bmul(inRecord.balance, MAX_IN_RATIO), \"ERR_MAX_IN_RATIO\");\r\n\r\n uint spotPriceBefore = calcSpotPrice(\r\n inRecord.balance,\r\n inRecord.denorm,\r\n outRecord.balance,\r\n outRecord.denorm,\r\n _swapFee\r\n );\r\n require(spotPriceBefore <= maxPrice, \"ERR_BAD_LIMIT_PRICE\");\r\n\r\n tokenAmountOut = calcOutGivenIn(\r\n inRecord.balance,\r\n inRecord.denorm,\r\n outRecord.balance,\r\n outRecord.denorm,\r\n tokenAmountIn,\r\n _swapFee\r\n );\r\n require(tokenAmountOut >= minAmountOut, \"ERR_LIMIT_OUT\");\r\n\r\n inRecord.balance = badd(inRecord.balance, tokenAmountIn);\r\n outRecord.balance = bsub(outRecord.balance, tokenAmountOut);\r\n\r\n spotPriceAfter = calcSpotPrice(\r\n inRecord.balance,\r\n inRecord.denorm,\r\n outRecord.balance,\r\n outRecord.denorm,\r\n _swapFee\r\n );\r\n require(spotPriceAfter >= spotPriceBefore, \"ERR_MATH_APPROX\"); \r\n require(spotPriceAfter <= maxPrice, \"ERR_LIMIT_PRICE\");\r\n require(spotPriceBefore <= bdiv(tokenAmountIn, tokenAmountOut), \"ERR_MATH_APPROX\");\r\n\r\n emit LOG_SWAP(msg.sender, tokenIn, tokenOut, tokenAmountIn, tokenAmountOut);\r\n\r\n _pullUnderlying(tokenIn, msg.sender, tokenAmountIn);\r\n _pushUnderlying(tokenOut, msg.sender, tokenAmountOut);\r\n\r\n return (tokenAmountOut, spotPriceAfter);\r\n }\r\n\r\n function swapExactAmountOut(\r\n address tokenIn,\r\n uint maxAmountIn,\r\n address tokenOut,\r\n uint tokenAmountOut,\r\n uint maxPrice\r\n )\r\n external\r\n _logs_\r\n _lock_ \r\n returns (uint tokenAmountIn, uint spotPriceAfter)\r\n {\r\n require(_records[tokenIn].bound, \"ERR_NOT_BOUND\");\r\n require(_records[tokenOut].bound, \"ERR_NOT_BOUND\");\r\n require(_publicSwap, \"ERR_SWAP_NOT_PUBLIC\");\r\n\r\n Record storage inRecord = _records[address(tokenIn)];\r\n Record storage outRecord = _records[address(tokenOut)];\r\n\r\n require(tokenAmountOut <= bmul(outRecord.balance, MAX_OUT_RATIO), \"ERR_MAX_OUT_RATIO\");\r\n\r\n uint spotPriceBefore = calcSpotPrice(\r\n inRecord.balance,\r\n inRecord.denorm,\r\n outRecord.balance,\r\n outRecord.denorm,\r\n _swapFee\r\n );\r\n require(spotPriceBefore <= maxPrice, \"ERR_BAD_LIMIT_PRICE\");\r\n\r\n tokenAmountIn = calcInGivenOut(\r\n inRecord.balance,\r\n inRecord.denorm,\r\n outRecord.balance,\r\n outRecord.denorm,\r\n tokenAmountOut,\r\n _swapFee\r\n );\r\n require(tokenAmountIn <= maxAmountIn, \"ERR_LIMIT_IN\");\r\n\r\n inRecord.balance = badd(inRecord.balance, tokenAmountIn);\r\n outRecord.balance = bsub(outRecord.balance, tokenAmountOut);\r\n\r\n spotPriceAfter = calcSpotPrice(\r\n inRecord.balance,\r\n inRecord.denorm,\r\n outRecord.balance,\r\n outRecord.denorm,\r\n _swapFee\r\n );\r\n require(spotPriceAfter >= spotPriceBefore, \"ERR_MATH_APPROX\");\r\n require(spotPriceAfter <= maxPrice, \"ERR_LIMIT_PRICE\");\r\n require(spotPriceBefore <= bdiv(tokenAmountIn, tokenAmountOut), \"ERR_MATH_APPROX\");\r\n\r\n emit LOG_SWAP(msg.sender, tokenIn, tokenOut, tokenAmountIn, tokenAmountOut);\r\n\r\n _pullUnderlying(tokenIn, msg.sender, tokenAmountIn);\r\n _pushUnderlying(tokenOut, msg.sender, tokenAmountOut);\r\n\r\n return (tokenAmountIn, spotPriceAfter);\r\n }\r\n\r\n\r\n function joinswapExternAmountIn(address tokenIn, uint tokenAmountIn, uint minPoolAmountOut)\r\n external\r\n _logs_\r\n _lock_\r\n returns (uint poolAmountOut)\r\n\r\n { \r\n require(_finalized, \"ERR_NOT_FINALIZED\");\r\n require(_records[tokenIn].bound, \"ERR_NOT_BOUND\");\r\n require(tokenAmountIn <= bmul(_records[tokenIn].balance, MAX_IN_RATIO), \"ERR_MAX_IN_RATIO\");\r\n\r\n Record storage inRecord = _records[tokenIn];\r\n\r\n poolAmountOut = calcPoolOutGivenSingleIn(\r\n inRecord.balance,\r\n inRecord.denorm,\r\n _totalSupply,\r\n _totalWeight,\r\n tokenAmountIn,\r\n _swapFee\r\n );\r\n\r\n require(poolAmountOut >= minPoolAmountOut, \"ERR_LIMIT_OUT\");\r\n\r\n inRecord.balance = badd(inRecord.balance, tokenAmountIn);\r\n\r\n emit LOG_JOIN(msg.sender, tokenIn, tokenAmountIn);\r\n\r\n _mintPoolShare(poolAmountOut);\r\n _pushPoolShare(msg.sender, poolAmountOut);\r\n _pullUnderlying(tokenIn, msg.sender, tokenAmountIn);\r\n\r\n return poolAmountOut;\r\n }\r\n\r\n function joinswapPoolAmountOut(address tokenIn, uint poolAmountOut, uint maxAmountIn)\r\n external\r\n _logs_\r\n _lock_\r\n returns (uint tokenAmountIn)\r\n {\r\n require(_finalized, \"ERR_NOT_FINALIZED\");\r\n require(_records[tokenIn].bound, \"ERR_NOT_BOUND\");\r\n\r\n Record storage inRecord = _records[tokenIn];\r\n\r\n tokenAmountIn = calcSingleInGivenPoolOut(\r\n inRecord.balance,\r\n inRecord.denorm,\r\n _totalSupply,\r\n _totalWeight,\r\n poolAmountOut,\r\n _swapFee\r\n );\r\n\r\n require(tokenAmountIn != 0, \"ERR_MATH_APPROX\");\r\n require(tokenAmountIn <= maxAmountIn, \"ERR_LIMIT_IN\");\r\n \r\n require(tokenAmountIn <= bmul(_records[tokenIn].balance, MAX_IN_RATIO), \"ERR_MAX_IN_RATIO\");\r\n\r\n inRecord.balance = badd(inRecord.balance, tokenAmountIn);\r\n\r\n emit LOG_JOIN(msg.sender, tokenIn, tokenAmountIn);\r\n\r\n _mintPoolShare(poolAmountOut);\r\n _pushPoolShare(msg.sender, poolAmountOut);\r\n _pullUnderlying(tokenIn, msg.sender, tokenAmountIn);\r\n\r\n return tokenAmountIn;\r\n }\r\n\r\n function exitswapPoolAmountIn(address tokenOut, uint poolAmountIn, uint minAmountOut)\r\n external\r\n _logs_\r\n _lock_\r\n returns (uint tokenAmountOut)\r\n {\r\n require(_finalized, \"ERR_NOT_FINALIZED\");\r\n require(_records[tokenOut].bound, \"ERR_NOT_BOUND\");\r\n\r\n Record storage outRecord = _records[tokenOut];\r\n\r\n tokenAmountOut = calcSingleOutGivenPoolIn(\r\n outRecord.balance,\r\n outRecord.denorm,\r\n _totalSupply,\r\n _totalWeight,\r\n poolAmountIn,\r\n _swapFee\r\n );\r\n\r\n require(tokenAmountOut >= minAmountOut, \"ERR_LIMIT_OUT\");\r\n \r\n require(tokenAmountOut <= bmul(_records[tokenOut].balance, MAX_OUT_RATIO), \"ERR_MAX_OUT_RATIO\");\r\n\r\n outRecord.balance = bsub(outRecord.balance, tokenAmountOut);\r\n\r\n uint exitFee = bmul(poolAmountIn, EXIT_FEE);\r\n\r\n emit LOG_EXIT(msg.sender, tokenOut, tokenAmountOut);\r\n\r\n _pullPoolShare(msg.sender, poolAmountIn);\r\n _burnPoolShare(bsub(poolAmountIn, exitFee));\r\n _pushPoolShare(_factory, exitFee);\r\n _pushUnderlying(tokenOut, msg.sender, tokenAmountOut);\r\n\r\n return tokenAmountOut;\r\n }\r\n\r\n function exitswapExternAmountOut(address tokenOut, uint tokenAmountOut, uint maxPoolAmountIn)\r\n external\r\n _logs_\r\n _lock_\r\n returns (uint poolAmountIn)\r\n {\r\n require(_finalized, \"ERR_NOT_FINALIZED\");\r\n require(_records[tokenOut].bound, \"ERR_NOT_BOUND\");\r\n require(tokenAmountOut <= bmul(_records[tokenOut].balance, MAX_OUT_RATIO), \"ERR_MAX_OUT_RATIO\");\r\n\r\n Record storage outRecord = _records[tokenOut];\r\n\r\n poolAmountIn = calcPoolInGivenSingleOut(\r\n outRecord.balance,\r\n outRecord.denorm,\r\n _totalSupply,\r\n _totalWeight,\r\n tokenAmountOut,\r\n _swapFee\r\n );\r\n\r\n require(poolAmountIn != 0, \"ERR_MATH_APPROX\");\r\n require(poolAmountIn <= maxPoolAmountIn, \"ERR_LIMIT_IN\");\r\n\r\n outRecord.balance = bsub(outRecord.balance, tokenAmountOut);\r\n\r\n uint exitFee = bmul(poolAmountIn, EXIT_FEE);\r\n\r\n emit LOG_EXIT(msg.sender, tokenOut, tokenAmountOut);\r\n\r\n _pullPoolShare(msg.sender, poolAmountIn);\r\n _burnPoolShare(bsub(poolAmountIn, exitFee));\r\n _pushPoolShare(_factory, exitFee);\r\n _pushUnderlying(tokenOut, msg.sender, tokenAmountOut); \r\n\r\n return poolAmountIn;\r\n }\r\n\r\n\r\n // ==\r\n // 'Underlying' token-manipulation functions make external calls but are NOT locked\r\n // You must `_lock_` or otherwise ensure reentry-safety\r\n\r\n function _pullUnderlying(address erc20, address from, uint amount)\r\n internal\r\n {\r\n bool xfer = IERC20(erc20).transferFrom(from, address(this), amount);\r\n require(xfer, \"ERR_ERC20_FALSE\");\r\n }\r\n\r\n function _pushUnderlying(address erc20, address to, uint amount)\r\n internal\r\n {\r\n bool xfer = IERC20(erc20).transfer(to, amount);\r\n require(xfer, \"ERR_ERC20_FALSE\");\r\n }\r\n\r\n function _pullPoolShare(address from, uint amount)\r\n internal\r\n {\r\n _pull(from, amount);\r\n }\r\n\r\n function _pushPoolShare(address to, uint amount)\r\n internal\r\n {\r\n _push(to, amount);\r\n }\r\n\r\n function _mintPoolShare(uint amount)\r\n internal\r\n {\r\n _mint(amount);\r\n }\r\n\r\n function _burnPoolShare(uint amount)\r\n internal\r\n {\r\n _burn(amount);\r\n }\r\n\r\n}\r\n", | |
"sourcePath": "C:\\Users\\ASUS\\Documents\\github\\balancer-core\\contracts\\BPool.sol", | |
"ast": { | |
"absolutePath": "project:/contracts/BPool.sol", | |
"exportedSymbols": { | |
"BPool": [ | |
3473 | |
] | |
}, | |
"id": 3474, | |
"nodeType": "SourceUnit", | |
"nodes": [ | |
{ | |
"id": 1306, | |
"literals": [ | |
"solidity", | |
"0.5", | |
".12" | |
], | |
"nodeType": "PragmaDirective", | |
"src": "656:23:5" | |
}, | |
{ | |
"absolutePath": "project:/contracts/BToken.sol", | |
"file": "./BToken.sol", | |
"id": 1307, | |
"nodeType": "ImportDirective", | |
"scope": 3474, | |
"sourceUnit": 4047, | |
"src": "683:22:5", | |
"symbolAliases": [], | |
"unitAlias": "" | |
}, | |
{ | |
"absolutePath": "project:/contracts/BMath.sol", | |
"file": "./BMath.sol", | |
"id": 1308, | |
"nodeType": "ImportDirective", | |
"scope": 3474, | |
"sourceUnit": 832, | |
"src": "707:21:5", | |
"symbolAliases": [], | |
"unitAlias": "" | |
}, | |
{ | |
"baseContracts": [ | |
{ | |
"arguments": null, | |
"baseName": { | |
"contractScope": null, | |
"id": 1309, | |
"name": "BBronze", | |
"nodeType": "UserDefinedTypeName", | |
"referencedDeclaration": 20, | |
"src": "750:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_contract$_BBronze_$20", | |
"typeString": "contract BBronze" | |
} | |
}, | |
"id": 1310, | |
"nodeType": "InheritanceSpecifier", | |
"src": "750:7:5" | |
}, | |
{ | |
"arguments": null, | |
"baseName": { | |
"contractScope": null, | |
"id": 1311, | |
"name": "BToken", | |
"nodeType": "UserDefinedTypeName", | |
"referencedDeclaration": 4046, | |
"src": "759:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_contract$_BToken_$4046", | |
"typeString": "contract BToken" | |
} | |
}, | |
"id": 1312, | |
"nodeType": "InheritanceSpecifier", | |
"src": "759:6:5" | |
}, | |
{ | |
"arguments": null, | |
"baseName": { | |
"contractScope": null, | |
"id": 1313, | |
"name": "BMath", | |
"nodeType": "UserDefinedTypeName", | |
"referencedDeclaration": 831, | |
"src": "767:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_contract$_BMath_$831", | |
"typeString": "contract BMath" | |
} | |
}, | |
"id": 1314, | |
"nodeType": "InheritanceSpecifier", | |
"src": "767:5:5" | |
} | |
], | |
"contractDependencies": [ | |
7, | |
20, | |
108, | |
831, | |
1304, | |
3543, | |
3740, | |
4046 | |
], | |
"contractKind": "contract", | |
"documentation": null, | |
"fullyImplemented": true, | |
"id": 3473, | |
"linearizedBaseContracts": [ | |
3473, | |
831, | |
4046, | |
3543, | |
3740, | |
1304, | |
108, | |
20, | |
7 | |
], | |
"name": "BPool", | |
"nodeType": "ContractDefinition", | |
"nodes": [ | |
{ | |
"canonicalName": "BPool.Record", | |
"id": 1323, | |
"members": [ | |
{ | |
"constant": false, | |
"id": 1316, | |
"name": "bound", | |
"nodeType": "VariableDeclaration", | |
"scope": 1323, | |
"src": "807:10:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"typeName": { | |
"id": 1315, | |
"name": "bool", | |
"nodeType": "ElementaryTypeName", | |
"src": "807:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 1318, | |
"name": "index", | |
"nodeType": "VariableDeclaration", | |
"scope": 1323, | |
"src": "856:10:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 1317, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "856:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 1320, | |
"name": "denorm", | |
"nodeType": "VariableDeclaration", | |
"scope": 1323, | |
"src": "890:11:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 1319, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "890:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 1322, | |
"name": "balance", | |
"nodeType": "VariableDeclaration", | |
"scope": 1323, | |
"src": "936:12:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 1321, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "936:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"name": "Record", | |
"nodeType": "StructDefinition", | |
"scope": 3473, | |
"src": "782:174:5", | |
"visibility": "public" | |
}, | |
{ | |
"anonymous": false, | |
"documentation": null, | |
"id": 1335, | |
"name": "LOG_SWAP", | |
"nodeType": "EventDefinition", | |
"parameters": { | |
"id": 1334, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 1325, | |
"indexed": true, | |
"name": "caller", | |
"nodeType": "VariableDeclaration", | |
"scope": 1335, | |
"src": "989:22:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 1324, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "989:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 1327, | |
"indexed": true, | |
"name": "tokenIn", | |
"nodeType": "VariableDeclaration", | |
"scope": 1335, | |
"src": "1022:23:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 1326, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "1022:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 1329, | |
"indexed": true, | |
"name": "tokenOut", | |
"nodeType": "VariableDeclaration", | |
"scope": 1335, | |
"src": "1056:24:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 1328, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "1056:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 1331, | |
"indexed": false, | |
"name": "tokenAmountIn", | |
"nodeType": "VariableDeclaration", | |
"scope": 1335, | |
"src": "1091:29:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 1330, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "1091:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 1333, | |
"indexed": false, | |
"name": "tokenAmountOut", | |
"nodeType": "VariableDeclaration", | |
"scope": 1335, | |
"src": "1131:30:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 1332, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "1131:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "978:190:5" | |
}, | |
"src": "964:205:5" | |
}, | |
{ | |
"anonymous": false, | |
"documentation": null, | |
"id": 1343, | |
"name": "LOG_JOIN", | |
"nodeType": "EventDefinition", | |
"parameters": { | |
"id": 1342, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 1337, | |
"indexed": true, | |
"name": "caller", | |
"nodeType": "VariableDeclaration", | |
"scope": 1343, | |
"src": "1202:22:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 1336, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "1202:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 1339, | |
"indexed": true, | |
"name": "tokenIn", | |
"nodeType": "VariableDeclaration", | |
"scope": 1343, | |
"src": "1235:23:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 1338, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "1235:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 1341, | |
"indexed": false, | |
"name": "tokenAmountIn", | |
"nodeType": "VariableDeclaration", | |
"scope": 1343, | |
"src": "1269:29:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 1340, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "1269:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "1191:114:5" | |
}, | |
"src": "1177:129:5" | |
}, | |
{ | |
"anonymous": false, | |
"documentation": null, | |
"id": 1351, | |
"name": "LOG_EXIT", | |
"nodeType": "EventDefinition", | |
"parameters": { | |
"id": 1350, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 1345, | |
"indexed": true, | |
"name": "caller", | |
"nodeType": "VariableDeclaration", | |
"scope": 1351, | |
"src": "1339:22:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 1344, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "1339:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 1347, | |
"indexed": true, | |
"name": "tokenOut", | |
"nodeType": "VariableDeclaration", | |
"scope": 1351, | |
"src": "1372:24:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 1346, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "1372:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 1349, | |
"indexed": false, | |
"name": "tokenAmountOut", | |
"nodeType": "VariableDeclaration", | |
"scope": 1351, | |
"src": "1407:30:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 1348, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "1407:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "1328:116:5" | |
}, | |
"src": "1314:131:5" | |
}, | |
{ | |
"anonymous": true, | |
"documentation": null, | |
"id": 1359, | |
"name": "LOG_CALL", | |
"nodeType": "EventDefinition", | |
"parameters": { | |
"id": 1358, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 1353, | |
"indexed": true, | |
"name": "sig", | |
"nodeType": "VariableDeclaration", | |
"scope": 1359, | |
"src": "1478:19:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes4", | |
"typeString": "bytes4" | |
}, | |
"typeName": { | |
"id": 1352, | |
"name": "bytes4", | |
"nodeType": "ElementaryTypeName", | |
"src": "1478:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes4", | |
"typeString": "bytes4" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 1355, | |
"indexed": true, | |
"name": "caller", | |
"nodeType": "VariableDeclaration", | |
"scope": 1359, | |
"src": "1508:22:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 1354, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "1508:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 1357, | |
"indexed": false, | |
"name": "data", | |
"nodeType": "VariableDeclaration", | |
"scope": 1359, | |
"src": "1541:20:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes_memory_ptr", | |
"typeString": "bytes" | |
}, | |
"typeName": { | |
"id": 1356, | |
"name": "bytes", | |
"nodeType": "ElementaryTypeName", | |
"src": "1541:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes_storage_ptr", | |
"typeString": "bytes" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "1467:101:5" | |
}, | |
"src": "1453:126:5" | |
}, | |
{ | |
"body": { | |
"id": 1371, | |
"nodeType": "Block", | |
"src": "1605:75:5", | |
"statements": [ | |
{ | |
"eventCall": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 1362, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 5250, | |
"src": "1630:3:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 1363, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sig", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "1630:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes4", | |
"typeString": "bytes4" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 1364, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 5250, | |
"src": "1639:3:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 1365, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "1639:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 1366, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 5250, | |
"src": "1651:3:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 1367, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "data", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "1651:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes_calldata_ptr", | |
"typeString": "bytes calldata" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bytes4", | |
"typeString": "bytes4" | |
}, | |
{ | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
}, | |
{ | |
"typeIdentifier": "t_bytes_calldata_ptr", | |
"typeString": "bytes calldata" | |
} | |
], | |
"id": 1361, | |
"name": "LOG_CALL", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1359, | |
"src": "1621:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_event_nonpayable$_t_bytes4_$_t_address_$_t_bytes_memory_ptr_$returns$__$", | |
"typeString": "function (bytes4,address,bytes memory)" | |
} | |
}, | |
"id": 1368, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "1621:39:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1369, | |
"nodeType": "EmitStatement", | |
"src": "1616:44:5" | |
}, | |
{ | |
"id": 1370, | |
"nodeType": "PlaceholderStatement", | |
"src": "1671:1:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 1372, | |
"name": "_logs_", | |
"nodeType": "ModifierDefinition", | |
"parameters": { | |
"id": 1360, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "1602:2:5" | |
}, | |
"src": "1587:93:5", | |
"visibility": "internal" | |
}, | |
{ | |
"body": { | |
"id": 1389, | |
"nodeType": "Block", | |
"src": "1706:111:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 1376, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "UnaryOperation", | |
"operator": "!", | |
"prefix": true, | |
"src": "1725:7:5", | |
"subExpression": { | |
"argumentTypes": null, | |
"id": 1375, | |
"name": "_mutex", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1402, | |
"src": "1726:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f5245454e545259", | |
"id": 1377, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "1734:13:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_8186a91a8af60eddd7d544682e1b6922f650fc04d86fd0e4ee40391168ca67e4", | |
"typeString": "literal_string \"ERR_REENTRY\"" | |
}, | |
"value": "ERR_REENTRY" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_8186a91a8af60eddd7d544682e1b6922f650fc04d86fd0e4ee40391168ca67e4", | |
"typeString": "literal_string \"ERR_REENTRY\"" | |
} | |
], | |
"id": 1374, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "1717:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1378, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "1717:31:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1379, | |
"nodeType": "ExpressionStatement", | |
"src": "1717:31:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 1382, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"id": 1380, | |
"name": "_mutex", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1402, | |
"src": "1759:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"hexValue": "74727565", | |
"id": 1381, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "bool", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "1768:4:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"value": "true" | |
}, | |
"src": "1759:13:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"id": 1383, | |
"nodeType": "ExpressionStatement", | |
"src": "1759:13:5" | |
}, | |
{ | |
"id": 1384, | |
"nodeType": "PlaceholderStatement", | |
"src": "1783:1:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 1387, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"id": 1385, | |
"name": "_mutex", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1402, | |
"src": "1795:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"hexValue": "66616c7365", | |
"id": 1386, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "bool", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "1804:5:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"value": "false" | |
}, | |
"src": "1795:14:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"id": 1388, | |
"nodeType": "ExpressionStatement", | |
"src": "1795:14:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 1390, | |
"name": "_lock_", | |
"nodeType": "ModifierDefinition", | |
"parameters": { | |
"id": 1373, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "1703:2:5" | |
}, | |
"src": "1688:129:5", | |
"visibility": "internal" | |
}, | |
{ | |
"body": { | |
"id": 1399, | |
"nodeType": "Block", | |
"src": "1847:62:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 1394, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "UnaryOperation", | |
"operator": "!", | |
"prefix": true, | |
"src": "1866:7:5", | |
"subExpression": { | |
"argumentTypes": null, | |
"id": 1393, | |
"name": "_mutex", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1402, | |
"src": "1867:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f5245454e545259", | |
"id": 1395, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "1875:13:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_8186a91a8af60eddd7d544682e1b6922f650fc04d86fd0e4ee40391168ca67e4", | |
"typeString": "literal_string \"ERR_REENTRY\"" | |
}, | |
"value": "ERR_REENTRY" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_8186a91a8af60eddd7d544682e1b6922f650fc04d86fd0e4ee40391168ca67e4", | |
"typeString": "literal_string \"ERR_REENTRY\"" | |
} | |
], | |
"id": 1392, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "1858:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1396, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "1858:31:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1397, | |
"nodeType": "ExpressionStatement", | |
"src": "1858:31:5" | |
}, | |
{ | |
"id": 1398, | |
"nodeType": "PlaceholderStatement", | |
"src": "1900:1:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 1400, | |
"name": "_viewlock_", | |
"nodeType": "ModifierDefinition", | |
"parameters": { | |
"id": 1391, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "1844:2:5" | |
}, | |
"src": "1825:84:5", | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 1402, | |
"name": "_mutex", | |
"nodeType": "VariableDeclaration", | |
"scope": 3473, | |
"src": "1917:19:5", | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"typeName": { | |
"id": 1401, | |
"name": "bool", | |
"nodeType": "ElementaryTypeName", | |
"src": "1917:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"value": null, | |
"visibility": "private" | |
}, | |
{ | |
"constant": false, | |
"id": 1404, | |
"name": "_factory", | |
"nodeType": "VariableDeclaration", | |
"scope": 3473, | |
"src": "1945:24:5", | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 1403, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "1945:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "private" | |
}, | |
{ | |
"constant": false, | |
"id": 1406, | |
"name": "_controller", | |
"nodeType": "VariableDeclaration", | |
"scope": 3473, | |
"src": "2024:27:5", | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 1405, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "2024:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "private" | |
}, | |
{ | |
"constant": false, | |
"id": 1408, | |
"name": "_publicSwap", | |
"nodeType": "VariableDeclaration", | |
"scope": 3473, | |
"src": "2078:24:5", | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"typeName": { | |
"id": 1407, | |
"name": "bool", | |
"nodeType": "ElementaryTypeName", | |
"src": "2078:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"value": null, | |
"visibility": "private" | |
}, | |
{ | |
"constant": false, | |
"id": 1410, | |
"name": "_swapFee", | |
"nodeType": "VariableDeclaration", | |
"scope": 3473, | |
"src": "2266:21:5", | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 1409, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "2266:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "private" | |
}, | |
{ | |
"constant": false, | |
"id": 1412, | |
"name": "_finalized", | |
"nodeType": "VariableDeclaration", | |
"scope": 3473, | |
"src": "2294:23:5", | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"typeName": { | |
"id": 1411, | |
"name": "bool", | |
"nodeType": "ElementaryTypeName", | |
"src": "2294:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"value": null, | |
"visibility": "private" | |
}, | |
{ | |
"constant": false, | |
"id": 1415, | |
"name": "_tokens", | |
"nodeType": "VariableDeclaration", | |
"scope": 3473, | |
"src": "2326:25:5", | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_address_$dyn_storage", | |
"typeString": "address[]" | |
}, | |
"typeName": { | |
"baseType": { | |
"id": 1413, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "2326:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"id": 1414, | |
"length": null, | |
"nodeType": "ArrayTypeName", | |
"src": "2326:9:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", | |
"typeString": "address[]" | |
} | |
}, | |
"value": null, | |
"visibility": "private" | |
}, | |
{ | |
"constant": false, | |
"id": 1419, | |
"name": "_records", | |
"nodeType": "VariableDeclaration", | |
"scope": 3473, | |
"src": "2358:42:5", | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record)" | |
}, | |
"typeName": { | |
"id": 1418, | |
"keyType": { | |
"id": 1416, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "2366:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "Mapping", | |
"src": "2358:24:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record)" | |
}, | |
"valueType": { | |
"contractScope": null, | |
"id": 1417, | |
"name": "Record", | |
"nodeType": "UserDefinedTypeName", | |
"referencedDeclaration": 1323, | |
"src": "2375:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage_ptr", | |
"typeString": "struct BPool.Record" | |
} | |
} | |
}, | |
"value": null, | |
"visibility": "private" | |
}, | |
{ | |
"constant": false, | |
"id": 1421, | |
"name": "_totalWeight", | |
"nodeType": "VariableDeclaration", | |
"scope": 3473, | |
"src": "2407:25:5", | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 1420, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "2407:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "private" | |
}, | |
{ | |
"body": { | |
"id": 1446, | |
"nodeType": "Block", | |
"src": "2462:163:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 1427, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"id": 1424, | |
"name": "_controller", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1406, | |
"src": "2473:11:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 1425, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 5250, | |
"src": "2487:3:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 1426, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "2487:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"src": "2473:24:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"id": 1428, | |
"nodeType": "ExpressionStatement", | |
"src": "2473:24:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 1432, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"id": 1429, | |
"name": "_factory", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1404, | |
"src": "2508:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 1430, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 5250, | |
"src": "2519:3:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 1431, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "2519:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"src": "2508:21:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"id": 1433, | |
"nodeType": "ExpressionStatement", | |
"src": "2508:21:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 1436, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"id": 1434, | |
"name": "_swapFee", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1410, | |
"src": "2540:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"id": 1435, | |
"name": "MIN_FEE", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 43, | |
"src": "2551:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "2540:18:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 1437, | |
"nodeType": "ExpressionStatement", | |
"src": "2540:18:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 1440, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"id": 1438, | |
"name": "_publicSwap", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1408, | |
"src": "2569:11:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"hexValue": "66616c7365", | |
"id": 1439, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "bool", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "2583:5:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"value": "false" | |
}, | |
"src": "2569:19:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"id": 1441, | |
"nodeType": "ExpressionStatement", | |
"src": "2569:19:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 1444, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"id": 1442, | |
"name": "_finalized", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1412, | |
"src": "2599:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"hexValue": "66616c7365", | |
"id": 1443, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "bool", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "2612:5:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"value": "false" | |
}, | |
"src": "2599:18:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"id": 1445, | |
"nodeType": "ExpressionStatement", | |
"src": "2599:18:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 1447, | |
"implemented": true, | |
"kind": "constructor", | |
"modifiers": [], | |
"name": "", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 1422, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "2452:2:5" | |
}, | |
"returnParameters": { | |
"id": 1423, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "2462:0:5" | |
}, | |
"scope": 3473, | |
"src": "2441:184:5", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "public" | |
}, | |
{ | |
"body": { | |
"id": 1454, | |
"nodeType": "Block", | |
"src": "2709:37:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 1452, | |
"name": "_publicSwap", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1408, | |
"src": "2727:11:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"functionReturnParameters": 1451, | |
"id": 1453, | |
"nodeType": "Return", | |
"src": "2720:18:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 1455, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "isPublicSwap", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 1448, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "2654:2:5" | |
}, | |
"returnParameters": { | |
"id": 1451, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 1450, | |
"name": "", | |
"nodeType": "VariableDeclaration", | |
"scope": 1455, | |
"src": "2698:4:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"typeName": { | |
"id": 1449, | |
"name": "bool", | |
"nodeType": "ElementaryTypeName", | |
"src": "2698:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "2697:6:5" | |
}, | |
"scope": 3473, | |
"src": "2633:113:5", | |
"stateMutability": "view", | |
"superFunction": null, | |
"visibility": "external" | |
}, | |
{ | |
"body": { | |
"id": 1462, | |
"nodeType": "Block", | |
"src": "2829:36:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 1460, | |
"name": "_finalized", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1412, | |
"src": "2847:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"functionReturnParameters": 1459, | |
"id": 1461, | |
"nodeType": "Return", | |
"src": "2840:17:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 1463, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "isFinalized", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 1456, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "2774:2:5" | |
}, | |
"returnParameters": { | |
"id": 1459, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 1458, | |
"name": "", | |
"nodeType": "VariableDeclaration", | |
"scope": 1463, | |
"src": "2818:4:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"typeName": { | |
"id": 1457, | |
"name": "bool", | |
"nodeType": "ElementaryTypeName", | |
"src": "2818:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "2817:6:5" | |
}, | |
"scope": 3473, | |
"src": "2754:111:5", | |
"stateMutability": "view", | |
"superFunction": null, | |
"visibility": "external" | |
}, | |
{ | |
"body": { | |
"id": 1475, | |
"nodeType": "Block", | |
"src": "2953:43:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 1470, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "2971:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 1472, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 1471, | |
"name": "t", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1465, | |
"src": "2980:1:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "2971:11:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 1473, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "bound", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1316, | |
"src": "2971:17:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"functionReturnParameters": 1469, | |
"id": 1474, | |
"nodeType": "Return", | |
"src": "2964:24:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 1476, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "isBound", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 1466, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 1465, | |
"name": "t", | |
"nodeType": "VariableDeclaration", | |
"scope": 1476, | |
"src": "2890:9:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 1464, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "2890:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "2889:11:5" | |
}, | |
"returnParameters": { | |
"id": 1469, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 1468, | |
"name": "", | |
"nodeType": "VariableDeclaration", | |
"scope": 1476, | |
"src": "2942:4:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"typeName": { | |
"id": 1467, | |
"name": "bool", | |
"nodeType": "ElementaryTypeName", | |
"src": "2942:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "2941:6:5" | |
}, | |
"scope": 3473, | |
"src": "2873:123:5", | |
"stateMutability": "view", | |
"superFunction": null, | |
"visibility": "external" | |
}, | |
{ | |
"body": { | |
"id": 1484, | |
"nodeType": "Block", | |
"src": "3081:40:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 1481, | |
"name": "_tokens", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1415, | |
"src": "3099:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_address_$dyn_storage", | |
"typeString": "address[] storage ref" | |
} | |
}, | |
"id": 1482, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "length", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "3099:14:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"functionReturnParameters": 1480, | |
"id": 1483, | |
"nodeType": "Return", | |
"src": "3092:21:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 1485, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "getNumTokens", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 1477, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "3025:2:5" | |
}, | |
"returnParameters": { | |
"id": 1480, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 1479, | |
"name": "", | |
"nodeType": "VariableDeclaration", | |
"scope": 1485, | |
"src": "3069:4:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 1478, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "3069:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "3068:6:5" | |
}, | |
"scope": 3473, | |
"src": "3004:117:5", | |
"stateMutability": "view", | |
"superFunction": null, | |
"visibility": "external" | |
}, | |
{ | |
"body": { | |
"id": 1495, | |
"nodeType": "Block", | |
"src": "3239:33:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 1493, | |
"name": "_tokens", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1415, | |
"src": "3257:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_address_$dyn_storage", | |
"typeString": "address[] storage ref" | |
} | |
}, | |
"functionReturnParameters": 1492, | |
"id": 1494, | |
"nodeType": "Return", | |
"src": "3250:14:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 1496, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [ | |
{ | |
"arguments": null, | |
"id": 1488, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 1487, | |
"name": "_viewlock_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1400, | |
"src": "3180:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "3180:10:5" | |
} | |
], | |
"name": "getCurrentTokens", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 1486, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "3154:2:5" | |
}, | |
"returnParameters": { | |
"id": 1492, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 1491, | |
"name": "tokens", | |
"nodeType": "VariableDeclaration", | |
"scope": 1496, | |
"src": "3209:23:5", | |
"stateVariable": false, | |
"storageLocation": "memory", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", | |
"typeString": "address[]" | |
}, | |
"typeName": { | |
"baseType": { | |
"id": 1489, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "3209:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"id": 1490, | |
"length": null, | |
"nodeType": "ArrayTypeName", | |
"src": "3209:9:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", | |
"typeString": "address[]" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "3208:25:5" | |
}, | |
"scope": 3473, | |
"src": "3129:143:5", | |
"stateMutability": "view", | |
"superFunction": null, | |
"visibility": "external" | |
}, | |
{ | |
"body": { | |
"id": 1511, | |
"nodeType": "Block", | |
"src": "3397:84:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 1505, | |
"name": "_finalized", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1412, | |
"src": "3416:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4e4f545f46494e414c495a4544", | |
"id": 1506, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "3428:19:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_8e0a50e0802c41001c819a1d72124e98da239dcaeee85bac2236e5d8595f284f", | |
"typeString": "literal_string \"ERR_NOT_FINALIZED\"" | |
}, | |
"value": "ERR_NOT_FINALIZED" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_8e0a50e0802c41001c819a1d72124e98da239dcaeee85bac2236e5d8595f284f", | |
"typeString": "literal_string \"ERR_NOT_FINALIZED\"" | |
} | |
], | |
"id": 1504, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "3408:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1507, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "3408:40:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1508, | |
"nodeType": "ExpressionStatement", | |
"src": "3408:40:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 1509, | |
"name": "_tokens", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1415, | |
"src": "3466:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_address_$dyn_storage", | |
"typeString": "address[] storage ref" | |
} | |
}, | |
"functionReturnParameters": 1503, | |
"id": 1510, | |
"nodeType": "Return", | |
"src": "3459:14:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 1512, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [ | |
{ | |
"arguments": null, | |
"id": 1499, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 1498, | |
"name": "_viewlock_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1400, | |
"src": "3338:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "3338:10:5" | |
} | |
], | |
"name": "getFinalTokens", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 1497, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "3303:2:5" | |
}, | |
"returnParameters": { | |
"id": 1503, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 1502, | |
"name": "tokens", | |
"nodeType": "VariableDeclaration", | |
"scope": 1512, | |
"src": "3367:23:5", | |
"stateVariable": false, | |
"storageLocation": "memory", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", | |
"typeString": "address[]" | |
}, | |
"typeName": { | |
"baseType": { | |
"id": 1500, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "3367:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"id": 1501, | |
"length": null, | |
"nodeType": "ArrayTypeName", | |
"src": "3367:9:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", | |
"typeString": "address[]" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "3366:25:5" | |
}, | |
"scope": 3473, | |
"src": "3280:201:5", | |
"stateMutability": "view", | |
"superFunction": null, | |
"visibility": "external" | |
}, | |
{ | |
"body": { | |
"id": 1534, | |
"nodeType": "Block", | |
"src": "3607:108:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 1522, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "3628:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 1524, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 1523, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1514, | |
"src": "3637:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "3628:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 1525, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "bound", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1316, | |
"src": "3628:21:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4e4f545f424f554e44", | |
"id": 1526, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "3651:15:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_86a01019fb9a24504897a9ddf06d43e29c7ad173d46588f4f7aa1ef14d3c847c", | |
"typeString": "literal_string \"ERR_NOT_BOUND\"" | |
}, | |
"value": "ERR_NOT_BOUND" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_86a01019fb9a24504897a9ddf06d43e29c7ad173d46588f4f7aa1ef14d3c847c", | |
"typeString": "literal_string \"ERR_NOT_BOUND\"" | |
} | |
], | |
"id": 1521, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "3620:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1527, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "3620:47:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1528, | |
"nodeType": "ExpressionStatement", | |
"src": "3620:47:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 1529, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "3685:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 1531, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 1530, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1514, | |
"src": "3694:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "3685:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 1532, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "denorm", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1320, | |
"src": "3685:22:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"functionReturnParameters": 1520, | |
"id": 1533, | |
"nodeType": "Return", | |
"src": "3678:29:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 1535, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [ | |
{ | |
"arguments": null, | |
"id": 1517, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 1516, | |
"name": "_viewlock_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1400, | |
"src": "3567:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "3567:10:5" | |
} | |
], | |
"name": "getDenormalizedWeight", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 1515, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 1514, | |
"name": "token", | |
"nodeType": "VariableDeclaration", | |
"scope": 1535, | |
"src": "3520:13:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 1513, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "3520:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "3519:15:5" | |
}, | |
"returnParameters": { | |
"id": 1520, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 1519, | |
"name": "", | |
"nodeType": "VariableDeclaration", | |
"scope": 1535, | |
"src": "3596:4:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 1518, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "3596:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "3595:6:5" | |
}, | |
"scope": 3473, | |
"src": "3489:226:5", | |
"stateMutability": "view", | |
"superFunction": null, | |
"visibility": "external" | |
}, | |
{ | |
"body": { | |
"id": 1544, | |
"nodeType": "Block", | |
"src": "3833:38:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 1542, | |
"name": "_totalWeight", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1421, | |
"src": "3851:12:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"functionReturnParameters": 1541, | |
"id": 1543, | |
"nodeType": "Return", | |
"src": "3844:19:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 1545, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [ | |
{ | |
"arguments": null, | |
"id": 1538, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 1537, | |
"name": "_viewlock_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1400, | |
"src": "3793:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "3793:10:5" | |
} | |
], | |
"name": "getTotalDenormalizedWeight", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 1536, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "3758:2:5" | |
}, | |
"returnParameters": { | |
"id": 1541, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 1540, | |
"name": "", | |
"nodeType": "VariableDeclaration", | |
"scope": 1545, | |
"src": "3822:4:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 1539, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "3822:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "3821:6:5" | |
}, | |
"scope": 3473, | |
"src": "3723:148:5", | |
"stateMutability": "view", | |
"superFunction": null, | |
"visibility": "external" | |
}, | |
{ | |
"body": { | |
"id": 1574, | |
"nodeType": "Block", | |
"src": "3995:159:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 1555, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "4016:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 1557, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 1556, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1547, | |
"src": "4025:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "4016:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 1558, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "bound", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1316, | |
"src": "4016:21:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4e4f545f424f554e44", | |
"id": 1559, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "4039:15:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_86a01019fb9a24504897a9ddf06d43e29c7ad173d46588f4f7aa1ef14d3c847c", | |
"typeString": "literal_string \"ERR_NOT_BOUND\"" | |
}, | |
"value": "ERR_NOT_BOUND" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_86a01019fb9a24504897a9ddf06d43e29c7ad173d46588f4f7aa1ef14d3c847c", | |
"typeString": "literal_string \"ERR_NOT_BOUND\"" | |
} | |
], | |
"id": 1554, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "4008:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1560, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "4008:47:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1561, | |
"nodeType": "ExpressionStatement", | |
"src": "4008:47:5" | |
}, | |
{ | |
"assignments": [ | |
1563 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 1563, | |
"name": "denorm", | |
"nodeType": "VariableDeclaration", | |
"scope": 1574, | |
"src": "4066:11:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 1562, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "4066:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 1568, | |
"initialValue": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 1564, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "4080:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 1566, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 1565, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1547, | |
"src": "4089:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "4080:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 1567, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "denorm", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1320, | |
"src": "4080:22:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "4066:36:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 1570, | |
"name": "denorm", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1563, | |
"src": "4125:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 1571, | |
"name": "_totalWeight", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1421, | |
"src": "4133:12:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 1569, | |
"name": "bdiv", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1057, | |
"src": "4120:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", | |
"typeString": "function (uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 1572, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "4120:26:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"functionReturnParameters": 1553, | |
"id": 1573, | |
"nodeType": "Return", | |
"src": "4113:33:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 1575, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [ | |
{ | |
"arguments": null, | |
"id": 1550, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 1549, | |
"name": "_viewlock_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1400, | |
"src": "3955:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "3955:10:5" | |
} | |
], | |
"name": "getNormalizedWeight", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 1548, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 1547, | |
"name": "token", | |
"nodeType": "VariableDeclaration", | |
"scope": 1575, | |
"src": "3908:13:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 1546, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "3908:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "3907:15:5" | |
}, | |
"returnParameters": { | |
"id": 1553, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 1552, | |
"name": "", | |
"nodeType": "VariableDeclaration", | |
"scope": 1575, | |
"src": "3984:4:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 1551, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "3984:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "3983:6:5" | |
}, | |
"scope": 3473, | |
"src": "3879:275:5", | |
"stateMutability": "view", | |
"superFunction": null, | |
"visibility": "external" | |
}, | |
{ | |
"body": { | |
"id": 1597, | |
"nodeType": "Block", | |
"src": "4269:109:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 1585, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "4290:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 1587, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 1586, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1577, | |
"src": "4299:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "4290:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 1588, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "bound", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1316, | |
"src": "4290:21:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4e4f545f424f554e44", | |
"id": 1589, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "4313:15:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_86a01019fb9a24504897a9ddf06d43e29c7ad173d46588f4f7aa1ef14d3c847c", | |
"typeString": "literal_string \"ERR_NOT_BOUND\"" | |
}, | |
"value": "ERR_NOT_BOUND" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_86a01019fb9a24504897a9ddf06d43e29c7ad173d46588f4f7aa1ef14d3c847c", | |
"typeString": "literal_string \"ERR_NOT_BOUND\"" | |
} | |
], | |
"id": 1584, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "4282:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1590, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "4282:47:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1591, | |
"nodeType": "ExpressionStatement", | |
"src": "4282:47:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 1592, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "4347:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 1594, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 1593, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1577, | |
"src": "4356:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "4347:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 1595, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "balance", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1322, | |
"src": "4347:23:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"functionReturnParameters": 1583, | |
"id": 1596, | |
"nodeType": "Return", | |
"src": "4340:30:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 1598, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [ | |
{ | |
"arguments": null, | |
"id": 1580, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 1579, | |
"name": "_viewlock_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1400, | |
"src": "4229:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "4229:10:5" | |
} | |
], | |
"name": "getBalance", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 1578, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 1577, | |
"name": "token", | |
"nodeType": "VariableDeclaration", | |
"scope": 1598, | |
"src": "4182:13:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 1576, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "4182:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "4181:15:5" | |
}, | |
"returnParameters": { | |
"id": 1583, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 1582, | |
"name": "", | |
"nodeType": "VariableDeclaration", | |
"scope": 1598, | |
"src": "4258:4:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 1581, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "4258:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "4257:6:5" | |
}, | |
"scope": 3473, | |
"src": "4162:216:5", | |
"stateMutability": "view", | |
"superFunction": null, | |
"visibility": "external" | |
}, | |
{ | |
"body": { | |
"id": 1607, | |
"nodeType": "Block", | |
"src": "4480:34:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 1605, | |
"name": "_swapFee", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1410, | |
"src": "4498:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"functionReturnParameters": 1604, | |
"id": 1606, | |
"nodeType": "Return", | |
"src": "4491:15:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 1608, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [ | |
{ | |
"arguments": null, | |
"id": 1601, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 1600, | |
"name": "_viewlock_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1400, | |
"src": "4440:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "4440:10:5" | |
} | |
], | |
"name": "getSwapFee", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 1599, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "4405:2:5" | |
}, | |
"returnParameters": { | |
"id": 1604, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 1603, | |
"name": "", | |
"nodeType": "VariableDeclaration", | |
"scope": 1608, | |
"src": "4469:4:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 1602, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "4469:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "4468:6:5" | |
}, | |
"scope": 3473, | |
"src": "4386:128:5", | |
"stateMutability": "view", | |
"superFunction": null, | |
"visibility": "external" | |
}, | |
{ | |
"body": { | |
"id": 1617, | |
"nodeType": "Block", | |
"src": "4622:37:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 1615, | |
"name": "_controller", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1406, | |
"src": "4640:11:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"functionReturnParameters": 1614, | |
"id": 1616, | |
"nodeType": "Return", | |
"src": "4633:18:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 1618, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [ | |
{ | |
"arguments": null, | |
"id": 1611, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 1610, | |
"name": "_viewlock_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1400, | |
"src": "4579:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "4579:10:5" | |
} | |
], | |
"name": "getController", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 1609, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "4544:2:5" | |
}, | |
"returnParameters": { | |
"id": 1614, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 1613, | |
"name": "", | |
"nodeType": "VariableDeclaration", | |
"scope": 1618, | |
"src": "4608:7:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 1612, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "4608:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "4607:9:5" | |
}, | |
"scope": 3473, | |
"src": "4522:137:5", | |
"stateMutability": "view", | |
"superFunction": null, | |
"visibility": "external" | |
}, | |
{ | |
"body": { | |
"id": 1659, | |
"nodeType": "Block", | |
"src": "4756:262:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 1629, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "UnaryOperation", | |
"operator": "!", | |
"prefix": true, | |
"src": "4776:11:5", | |
"subExpression": { | |
"argumentTypes": null, | |
"id": 1628, | |
"name": "_finalized", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1412, | |
"src": "4777:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f49535f46494e414c495a4544", | |
"id": 1630, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "4789:18:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_4e8186530b7c98466f35e0b14182dc6e751c9b9644c5bf1204c0609f892e5bbe", | |
"typeString": "literal_string \"ERR_IS_FINALIZED\"" | |
}, | |
"value": "ERR_IS_FINALIZED" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_4e8186530b7c98466f35e0b14182dc6e751c9b9644c5bf1204c0609f892e5bbe", | |
"typeString": "literal_string \"ERR_IS_FINALIZED\"" | |
} | |
], | |
"id": 1627, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "4768:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1631, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "4768:40:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1632, | |
"nodeType": "ExpressionStatement", | |
"src": "4768:40:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 1637, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 1634, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 5250, | |
"src": "4827:3:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 1635, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "4827:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "==", | |
"rightExpression": { | |
"argumentTypes": null, | |
"id": 1636, | |
"name": "_controller", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1406, | |
"src": "4841:11:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"src": "4827:25:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4e4f545f434f4e54524f4c4c4552", | |
"id": 1638, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "4854:20:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_0479bbd6e0e904a96491e3adc0eda9022c19acd57f4922725f8618b3a0372668", | |
"typeString": "literal_string \"ERR_NOT_CONTROLLER\"" | |
}, | |
"value": "ERR_NOT_CONTROLLER" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_0479bbd6e0e904a96491e3adc0eda9022c19acd57f4922725f8618b3a0372668", | |
"typeString": "literal_string \"ERR_NOT_CONTROLLER\"" | |
} | |
], | |
"id": 1633, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "4819:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1639, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "4819:56:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1640, | |
"nodeType": "ExpressionStatement", | |
"src": "4819:56:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 1644, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 1642, | |
"name": "swapFee", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1620, | |
"src": "4894:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": ">=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"id": 1643, | |
"name": "MIN_FEE", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 43, | |
"src": "4905:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "4894:18:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4d494e5f464545", | |
"id": 1645, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "4914:13:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_3c95b37766e2e0764ffbea08cf33d7dd980794ea2229cf2b30f9a53dfb48c0a5", | |
"typeString": "literal_string \"ERR_MIN_FEE\"" | |
}, | |
"value": "ERR_MIN_FEE" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_3c95b37766e2e0764ffbea08cf33d7dd980794ea2229cf2b30f9a53dfb48c0a5", | |
"typeString": "literal_string \"ERR_MIN_FEE\"" | |
} | |
], | |
"id": 1641, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "4886:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1646, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "4886:42:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1647, | |
"nodeType": "ExpressionStatement", | |
"src": "4886:42:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 1651, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 1649, | |
"name": "swapFee", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1620, | |
"src": "4947:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "<=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"id": 1650, | |
"name": "MAX_FEE", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 48, | |
"src": "4958:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "4947:18:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4d41585f464545", | |
"id": 1652, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "4967:13:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_889e9e6c0c0fb5bbb40eea41a5a6b8208c6005e0eb9ab1570db8ca4038ab2ca2", | |
"typeString": "literal_string \"ERR_MAX_FEE\"" | |
}, | |
"value": "ERR_MAX_FEE" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_889e9e6c0c0fb5bbb40eea41a5a6b8208c6005e0eb9ab1570db8ca4038ab2ca2", | |
"typeString": "literal_string \"ERR_MAX_FEE\"" | |
} | |
], | |
"id": 1648, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "4939:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1653, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "4939:42:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1654, | |
"nodeType": "ExpressionStatement", | |
"src": "4939:42:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 1657, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"id": 1655, | |
"name": "_swapFee", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1410, | |
"src": "4992:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"id": 1656, | |
"name": "swapFee", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1620, | |
"src": "5003:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "4992:18:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 1658, | |
"nodeType": "ExpressionStatement", | |
"src": "4992:18:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 1660, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [ | |
{ | |
"arguments": null, | |
"id": 1623, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 1622, | |
"name": "_logs_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1372, | |
"src": "4728:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "4728:6:5" | |
}, | |
{ | |
"arguments": null, | |
"id": 1625, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 1624, | |
"name": "_lock_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1390, | |
"src": "4744:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "4744:6:5" | |
} | |
], | |
"name": "setSwapFee", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 1621, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 1620, | |
"name": "swapFee", | |
"nodeType": "VariableDeclaration", | |
"scope": 1660, | |
"src": "4687:12:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 1619, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "4687:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "4686:14:5" | |
}, | |
"returnParameters": { | |
"id": 1626, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "4756:0:5" | |
}, | |
"scope": 3473, | |
"src": "4667:351:5", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "external" | |
}, | |
{ | |
"body": { | |
"id": 1681, | |
"nodeType": "Block", | |
"src": "5121:107:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 1673, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 1670, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 5250, | |
"src": "5140:3:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 1671, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "5140:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "==", | |
"rightExpression": { | |
"argumentTypes": null, | |
"id": 1672, | |
"name": "_controller", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1406, | |
"src": "5154:11:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"src": "5140:25:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4e4f545f434f4e54524f4c4c4552", | |
"id": 1674, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "5167:20:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_0479bbd6e0e904a96491e3adc0eda9022c19acd57f4922725f8618b3a0372668", | |
"typeString": "literal_string \"ERR_NOT_CONTROLLER\"" | |
}, | |
"value": "ERR_NOT_CONTROLLER" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_0479bbd6e0e904a96491e3adc0eda9022c19acd57f4922725f8618b3a0372668", | |
"typeString": "literal_string \"ERR_NOT_CONTROLLER\"" | |
} | |
], | |
"id": 1669, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "5132:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1675, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5132:56:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1676, | |
"nodeType": "ExpressionStatement", | |
"src": "5132:56:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 1679, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"id": 1677, | |
"name": "_controller", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1406, | |
"src": "5199:11:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"id": 1678, | |
"name": "manager", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1662, | |
"src": "5213:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"src": "5199:21:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"id": 1680, | |
"nodeType": "ExpressionStatement", | |
"src": "5199:21:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 1682, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [ | |
{ | |
"arguments": null, | |
"id": 1665, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 1664, | |
"name": "_logs_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1372, | |
"src": "5093:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "5093:6:5" | |
}, | |
{ | |
"arguments": null, | |
"id": 1667, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 1666, | |
"name": "_lock_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1390, | |
"src": "5109:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "5109:6:5" | |
} | |
], | |
"name": "setController", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 1663, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 1662, | |
"name": "manager", | |
"nodeType": "VariableDeclaration", | |
"scope": 1682, | |
"src": "5049:15:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 1661, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "5049:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "5048:17:5" | |
}, | |
"returnParameters": { | |
"id": 1668, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "5121:0:5" | |
}, | |
"scope": 3473, | |
"src": "5026:202:5", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "external" | |
}, | |
{ | |
"body": { | |
"id": 1709, | |
"nodeType": "Block", | |
"src": "5328:158:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 1693, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "UnaryOperation", | |
"operator": "!", | |
"prefix": true, | |
"src": "5347:11:5", | |
"subExpression": { | |
"argumentTypes": null, | |
"id": 1692, | |
"name": "_finalized", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1412, | |
"src": "5348:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f49535f46494e414c495a4544", | |
"id": 1694, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "5360:18:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_4e8186530b7c98466f35e0b14182dc6e751c9b9644c5bf1204c0609f892e5bbe", | |
"typeString": "literal_string \"ERR_IS_FINALIZED\"" | |
}, | |
"value": "ERR_IS_FINALIZED" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_4e8186530b7c98466f35e0b14182dc6e751c9b9644c5bf1204c0609f892e5bbe", | |
"typeString": "literal_string \"ERR_IS_FINALIZED\"" | |
} | |
], | |
"id": 1691, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "5339:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1695, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5339:40:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1696, | |
"nodeType": "ExpressionStatement", | |
"src": "5339:40:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 1701, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 1698, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 5250, | |
"src": "5398:3:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 1699, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "5398:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "==", | |
"rightExpression": { | |
"argumentTypes": null, | |
"id": 1700, | |
"name": "_controller", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1406, | |
"src": "5412:11:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"src": "5398:25:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4e4f545f434f4e54524f4c4c4552", | |
"id": 1702, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "5425:20:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_0479bbd6e0e904a96491e3adc0eda9022c19acd57f4922725f8618b3a0372668", | |
"typeString": "literal_string \"ERR_NOT_CONTROLLER\"" | |
}, | |
"value": "ERR_NOT_CONTROLLER" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_0479bbd6e0e904a96491e3adc0eda9022c19acd57f4922725f8618b3a0372668", | |
"typeString": "literal_string \"ERR_NOT_CONTROLLER\"" | |
} | |
], | |
"id": 1697, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "5390:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1703, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5390:56:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1704, | |
"nodeType": "ExpressionStatement", | |
"src": "5390:56:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 1707, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"id": 1705, | |
"name": "_publicSwap", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1408, | |
"src": "5457:11:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"id": 1706, | |
"name": "public_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1684, | |
"src": "5471:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"src": "5457:21:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"id": 1708, | |
"nodeType": "ExpressionStatement", | |
"src": "5457:21:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 1710, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [ | |
{ | |
"arguments": null, | |
"id": 1687, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 1686, | |
"name": "_logs_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1372, | |
"src": "5300:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "5300:6:5" | |
}, | |
{ | |
"arguments": null, | |
"id": 1689, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 1688, | |
"name": "_lock_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1390, | |
"src": "5316:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "5316:6:5" | |
} | |
], | |
"name": "setPublicSwap", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 1685, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 1684, | |
"name": "public_", | |
"nodeType": "VariableDeclaration", | |
"scope": 1710, | |
"src": "5259:12:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"typeName": { | |
"id": 1683, | |
"name": "bool", | |
"nodeType": "ElementaryTypeName", | |
"src": "5259:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "5258:14:5" | |
}, | |
"returnParameters": { | |
"id": 1690, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "5328:0:5" | |
}, | |
"scope": 3473, | |
"src": "5236:250:5", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "external" | |
}, | |
{ | |
"body": { | |
"id": 1757, | |
"nodeType": "Block", | |
"src": "5569:357:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 1721, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 1718, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 5250, | |
"src": "5588:3:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 1719, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "5588:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "==", | |
"rightExpression": { | |
"argumentTypes": null, | |
"id": 1720, | |
"name": "_controller", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1406, | |
"src": "5602:11:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"src": "5588:25:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4e4f545f434f4e54524f4c4c4552", | |
"id": 1722, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "5615:20:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_0479bbd6e0e904a96491e3adc0eda9022c19acd57f4922725f8618b3a0372668", | |
"typeString": "literal_string \"ERR_NOT_CONTROLLER\"" | |
}, | |
"value": "ERR_NOT_CONTROLLER" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_0479bbd6e0e904a96491e3adc0eda9022c19acd57f4922725f8618b3a0372668", | |
"typeString": "literal_string \"ERR_NOT_CONTROLLER\"" | |
} | |
], | |
"id": 1717, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "5580:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1723, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5580:56:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1724, | |
"nodeType": "ExpressionStatement", | |
"src": "5580:56:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 1727, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "UnaryOperation", | |
"operator": "!", | |
"prefix": true, | |
"src": "5655:11:5", | |
"subExpression": { | |
"argumentTypes": null, | |
"id": 1726, | |
"name": "_finalized", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1412, | |
"src": "5656:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f49535f46494e414c495a4544", | |
"id": 1728, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "5668:18:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_4e8186530b7c98466f35e0b14182dc6e751c9b9644c5bf1204c0609f892e5bbe", | |
"typeString": "literal_string \"ERR_IS_FINALIZED\"" | |
}, | |
"value": "ERR_IS_FINALIZED" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_4e8186530b7c98466f35e0b14182dc6e751c9b9644c5bf1204c0609f892e5bbe", | |
"typeString": "literal_string \"ERR_IS_FINALIZED\"" | |
} | |
], | |
"id": 1725, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "5647:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1729, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5647:40:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1730, | |
"nodeType": "ExpressionStatement", | |
"src": "5647:40:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 1735, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 1732, | |
"name": "_tokens", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1415, | |
"src": "5706:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_address_$dyn_storage", | |
"typeString": "address[] storage ref" | |
} | |
}, | |
"id": 1733, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "length", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "5706:14:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": ">=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"id": 1734, | |
"name": "MIN_BOUND_TOKENS", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 33, | |
"src": "5724:16:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "5706:34:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4d494e5f544f4b454e53", | |
"id": 1736, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "5742:16:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_e51b2df926e9f13c18594bdf17dd3e1810e2676b7bad834d6cfa8e46bba574a9", | |
"typeString": "literal_string \"ERR_MIN_TOKENS\"" | |
}, | |
"value": "ERR_MIN_TOKENS" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_e51b2df926e9f13c18594bdf17dd3e1810e2676b7bad834d6cfa8e46bba574a9", | |
"typeString": "literal_string \"ERR_MIN_TOKENS\"" | |
} | |
], | |
"id": 1731, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "5698:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1737, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5698:61:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1738, | |
"nodeType": "ExpressionStatement", | |
"src": "5698:61:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 1741, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"id": 1739, | |
"name": "_finalized", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1412, | |
"src": "5772:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"hexValue": "74727565", | |
"id": 1740, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "bool", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "5785:4:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"value": "true" | |
}, | |
"src": "5772:17:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"id": 1742, | |
"nodeType": "ExpressionStatement", | |
"src": "5772:17:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 1745, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"id": 1743, | |
"name": "_publicSwap", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1408, | |
"src": "5800:11:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"hexValue": "74727565", | |
"id": 1744, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "bool", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "5814:4:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"value": "true" | |
}, | |
"src": "5800:18:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"id": 1746, | |
"nodeType": "ExpressionStatement", | |
"src": "5800:18:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 1748, | |
"name": "INIT_POOL_SUPPLY", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 76, | |
"src": "5846:16:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 1747, | |
"name": "_mintPoolShare", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3462, | |
"src": "5831:14:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", | |
"typeString": "function (uint256)" | |
} | |
}, | |
"id": 1749, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5831:32:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1750, | |
"nodeType": "ExpressionStatement", | |
"src": "5831:32:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 1752, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 5250, | |
"src": "5889:3:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 1753, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "5889:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 1754, | |
"name": "INIT_POOL_SUPPLY", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 76, | |
"src": "5901:16:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 1751, | |
"name": "_pushPoolShare", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3452, | |
"src": "5874:14:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,uint256)" | |
} | |
}, | |
"id": 1755, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5874:44:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1756, | |
"nodeType": "ExpressionStatement", | |
"src": "5874:44:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 1758, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [ | |
{ | |
"arguments": null, | |
"id": 1713, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 1712, | |
"name": "_logs_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1372, | |
"src": "5541:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "5541:6:5" | |
}, | |
{ | |
"arguments": null, | |
"id": 1715, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 1714, | |
"name": "_lock_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1390, | |
"src": "5557:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "5557:6:5" | |
} | |
], | |
"name": "finalize", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 1711, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "5511:2:5" | |
}, | |
"returnParameters": { | |
"id": 1716, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "5569:0:5" | |
}, | |
"scope": 3473, | |
"src": "5494:432:5", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "external" | |
}, | |
{ | |
"body": { | |
"id": 1824, | |
"nodeType": "Block", | |
"src": "6111:557:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 1773, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 1770, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 5250, | |
"src": "6130:3:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 1771, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "6130:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "==", | |
"rightExpression": { | |
"argumentTypes": null, | |
"id": 1772, | |
"name": "_controller", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1406, | |
"src": "6144:11:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"src": "6130:25:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4e4f545f434f4e54524f4c4c4552", | |
"id": 1774, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6157:20:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_0479bbd6e0e904a96491e3adc0eda9022c19acd57f4922725f8618b3a0372668", | |
"typeString": "literal_string \"ERR_NOT_CONTROLLER\"" | |
}, | |
"value": "ERR_NOT_CONTROLLER" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_0479bbd6e0e904a96491e3adc0eda9022c19acd57f4922725f8618b3a0372668", | |
"typeString": "literal_string \"ERR_NOT_CONTROLLER\"" | |
} | |
], | |
"id": 1769, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "6122:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1775, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6122:56:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1776, | |
"nodeType": "ExpressionStatement", | |
"src": "6122:56:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 1782, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "UnaryOperation", | |
"operator": "!", | |
"prefix": true, | |
"src": "6197:22:5", | |
"subExpression": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 1778, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "6198:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 1780, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 1779, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1760, | |
"src": "6207:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "6198:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 1781, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "bound", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1316, | |
"src": "6198:21:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f49535f424f554e44", | |
"id": 1783, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6221:14:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_29524b4853ebf7d280374d088acc10bd6949cb77e38df49dfa9b02680b8a5f51", | |
"typeString": "literal_string \"ERR_IS_BOUND\"" | |
}, | |
"value": "ERR_IS_BOUND" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_29524b4853ebf7d280374d088acc10bd6949cb77e38df49dfa9b02680b8a5f51", | |
"typeString": "literal_string \"ERR_IS_BOUND\"" | |
} | |
], | |
"id": 1777, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "6189:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1784, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6189:47:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1785, | |
"nodeType": "ExpressionStatement", | |
"src": "6189:47:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 1788, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "UnaryOperation", | |
"operator": "!", | |
"prefix": true, | |
"src": "6255:11:5", | |
"subExpression": { | |
"argumentTypes": null, | |
"id": 1787, | |
"name": "_finalized", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1412, | |
"src": "6256:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f49535f46494e414c495a4544", | |
"id": 1789, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6268:18:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_4e8186530b7c98466f35e0b14182dc6e751c9b9644c5bf1204c0609f892e5bbe", | |
"typeString": "literal_string \"ERR_IS_FINALIZED\"" | |
}, | |
"value": "ERR_IS_FINALIZED" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_4e8186530b7c98466f35e0b14182dc6e751c9b9644c5bf1204c0609f892e5bbe", | |
"typeString": "literal_string \"ERR_IS_FINALIZED\"" | |
} | |
], | |
"id": 1786, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "6247:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1790, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6247:40:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1791, | |
"nodeType": "ExpressionStatement", | |
"src": "6247:40:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 1796, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 1793, | |
"name": "_tokens", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1415, | |
"src": "6308:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_address_$dyn_storage", | |
"typeString": "address[] storage ref" | |
} | |
}, | |
"id": 1794, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "length", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "6308:14:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "<", | |
"rightExpression": { | |
"argumentTypes": null, | |
"id": 1795, | |
"name": "MAX_BOUND_TOKENS", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 36, | |
"src": "6325:16:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "6308:33:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4d41585f544f4b454e53", | |
"id": 1797, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6343:16:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_2b41476dedca3afde44e68e1abeac58b7cde6712eb701df30a64635f310a23f5", | |
"typeString": "literal_string \"ERR_MAX_TOKENS\"" | |
}, | |
"value": "ERR_MAX_TOKENS" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_2b41476dedca3afde44e68e1abeac58b7cde6712eb701df30a64635f310a23f5", | |
"typeString": "literal_string \"ERR_MAX_TOKENS\"" | |
} | |
], | |
"id": 1792, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "6300:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1798, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6300:60:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1799, | |
"nodeType": "ExpressionStatement", | |
"src": "6300:60:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 1810, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 1800, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "6373:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 1802, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 1801, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1760, | |
"src": "6382:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"nodeType": "IndexAccess", | |
"src": "6373:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"hexValue": "74727565", | |
"id": 1804, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "bool", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6420:4:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"value": "true" | |
}, | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 1805, | |
"name": "_tokens", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1415, | |
"src": "6446:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_address_$dyn_storage", | |
"typeString": "address[] storage ref" | |
} | |
}, | |
"id": 1806, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "length", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "6446:14:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 1807, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6483:1:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 1808, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6551:1:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
{ | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
} | |
], | |
"id": 1803, | |
"name": "Record", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1323, | |
"src": "6391:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_struct$_Record_$1323_storage_ptr_$", | |
"typeString": "type(struct BPool.Record storage pointer)" | |
} | |
}, | |
"id": 1809, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "structConstructorCall", | |
"lValueRequested": false, | |
"names": [ | |
"bound", | |
"index", | |
"denorm", | |
"balance" | |
], | |
"nodeType": "FunctionCall", | |
"src": "6391:198:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_memory", | |
"typeString": "struct BPool.Record memory" | |
} | |
}, | |
"src": "6373:216:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 1811, | |
"nodeType": "ExpressionStatement", | |
"src": "6373:216:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 1815, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1760, | |
"src": "6613:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
], | |
"expression": { | |
"argumentTypes": null, | |
"id": 1812, | |
"name": "_tokens", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1415, | |
"src": "6600:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_address_$dyn_storage", | |
"typeString": "address[] storage ref" | |
} | |
}, | |
"id": 1814, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "push", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "6600:12:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", | |
"typeString": "function (address) returns (uint256)" | |
} | |
}, | |
"id": 1816, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6600:19:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 1817, | |
"nodeType": "ExpressionStatement", | |
"src": "6600:19:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 1819, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1760, | |
"src": "6637:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 1820, | |
"name": "balance", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1762, | |
"src": "6644:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 1821, | |
"name": "denorm", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1764, | |
"src": "6653:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 1818, | |
"name": "rebind", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1997, | |
"src": "6630:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", | |
"typeString": "function (address,uint256,uint256)" | |
} | |
}, | |
"id": 1822, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6630:30:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1823, | |
"nodeType": "ExpressionStatement", | |
"src": "6630:30:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 1825, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [ | |
{ | |
"arguments": null, | |
"id": 1767, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 1766, | |
"name": "_logs_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1372, | |
"src": "6019:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "6019:6:5" | |
} | |
], | |
"name": "bind", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 1765, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 1760, | |
"name": "token", | |
"nodeType": "VariableDeclaration", | |
"scope": 1825, | |
"src": "5950:13:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 1759, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "5950:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 1762, | |
"name": "balance", | |
"nodeType": "VariableDeclaration", | |
"scope": 1825, | |
"src": "5965:12:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 1761, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "5965:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 1764, | |
"name": "denorm", | |
"nodeType": "VariableDeclaration", | |
"scope": 1825, | |
"src": "5979:11:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 1763, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "5979:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "5949:42:5" | |
}, | |
"returnParameters": { | |
"id": 1768, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "6111:0:5" | |
}, | |
"scope": 3473, | |
"src": "5936:732:5", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "external" | |
}, | |
{ | |
"body": { | |
"id": 1996, | |
"nodeType": "Block", | |
"src": "6787:1528:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 1842, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 1839, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 5250, | |
"src": "6808:3:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 1840, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "6808:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "==", | |
"rightExpression": { | |
"argumentTypes": null, | |
"id": 1841, | |
"name": "_controller", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1406, | |
"src": "6822:11:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"src": "6808:25:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4e4f545f434f4e54524f4c4c4552", | |
"id": 1843, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6835:20:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_0479bbd6e0e904a96491e3adc0eda9022c19acd57f4922725f8618b3a0372668", | |
"typeString": "literal_string \"ERR_NOT_CONTROLLER\"" | |
}, | |
"value": "ERR_NOT_CONTROLLER" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_0479bbd6e0e904a96491e3adc0eda9022c19acd57f4922725f8618b3a0372668", | |
"typeString": "literal_string \"ERR_NOT_CONTROLLER\"" | |
} | |
], | |
"id": 1838, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "6800:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1844, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6800:56:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1845, | |
"nodeType": "ExpressionStatement", | |
"src": "6800:56:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 1847, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "6875:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 1849, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 1848, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1827, | |
"src": "6884:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "6875:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 1850, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "bound", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1316, | |
"src": "6875:21:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4e4f545f424f554e44", | |
"id": 1851, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6898:15:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_86a01019fb9a24504897a9ddf06d43e29c7ad173d46588f4f7aa1ef14d3c847c", | |
"typeString": "literal_string \"ERR_NOT_BOUND\"" | |
}, | |
"value": "ERR_NOT_BOUND" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_86a01019fb9a24504897a9ddf06d43e29c7ad173d46588f4f7aa1ef14d3c847c", | |
"typeString": "literal_string \"ERR_NOT_BOUND\"" | |
} | |
], | |
"id": 1846, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "6867:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1852, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6867:47:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1853, | |
"nodeType": "ExpressionStatement", | |
"src": "6867:47:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 1856, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "UnaryOperation", | |
"operator": "!", | |
"prefix": true, | |
"src": "6933:11:5", | |
"subExpression": { | |
"argumentTypes": null, | |
"id": 1855, | |
"name": "_finalized", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1412, | |
"src": "6934:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f49535f46494e414c495a4544", | |
"id": 1857, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6946:18:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_4e8186530b7c98466f35e0b14182dc6e751c9b9644c5bf1204c0609f892e5bbe", | |
"typeString": "literal_string \"ERR_IS_FINALIZED\"" | |
}, | |
"value": "ERR_IS_FINALIZED" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_4e8186530b7c98466f35e0b14182dc6e751c9b9644c5bf1204c0609f892e5bbe", | |
"typeString": "literal_string \"ERR_IS_FINALIZED\"" | |
} | |
], | |
"id": 1854, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "6925:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1858, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6925:40:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1859, | |
"nodeType": "ExpressionStatement", | |
"src": "6925:40:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 1863, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 1861, | |
"name": "denorm", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1831, | |
"src": "6986:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": ">=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"id": 1862, | |
"name": "MIN_WEIGHT", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 54, | |
"src": "6996:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "6986:20:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4d494e5f574549474854", | |
"id": 1864, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "7008:16:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_8df266f07de77e4ef407edb2fcb3334221f5d37909c32010ecedbd042f2b2362", | |
"typeString": "literal_string \"ERR_MIN_WEIGHT\"" | |
}, | |
"value": "ERR_MIN_WEIGHT" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_8df266f07de77e4ef407edb2fcb3334221f5d37909c32010ecedbd042f2b2362", | |
"typeString": "literal_string \"ERR_MIN_WEIGHT\"" | |
} | |
], | |
"id": 1860, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "6978:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1865, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6978:47:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1866, | |
"nodeType": "ExpressionStatement", | |
"src": "6978:47:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 1870, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 1868, | |
"name": "denorm", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1831, | |
"src": "7044:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "<=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"id": 1869, | |
"name": "MAX_WEIGHT", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 59, | |
"src": "7054:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "7044:20:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4d41585f574549474854", | |
"id": 1871, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "7066:16:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_4443a14e27060659cd754b886a4a9abce56b7a815ac41b5da14580c72eae7f33", | |
"typeString": "literal_string \"ERR_MAX_WEIGHT\"" | |
}, | |
"value": "ERR_MAX_WEIGHT" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_4443a14e27060659cd754b886a4a9abce56b7a815ac41b5da14580c72eae7f33", | |
"typeString": "literal_string \"ERR_MAX_WEIGHT\"" | |
} | |
], | |
"id": 1867, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "7036:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1872, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7036:47:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1873, | |
"nodeType": "ExpressionStatement", | |
"src": "7036:47:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 1877, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 1875, | |
"name": "balance", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1829, | |
"src": "7102:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": ">=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"id": 1876, | |
"name": "MIN_BALANCE", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 71, | |
"src": "7113:11:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "7102:22:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4d494e5f42414c414e4345", | |
"id": 1878, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "7126:17:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_69c7afc4064c1fa740d9fba5145c2c6cfc449ab58df3114718ec5abc7738730c", | |
"typeString": "literal_string \"ERR_MIN_BALANCE\"" | |
}, | |
"value": "ERR_MIN_BALANCE" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_69c7afc4064c1fa740d9fba5145c2c6cfc449ab58df3114718ec5abc7738730c", | |
"typeString": "literal_string \"ERR_MIN_BALANCE\"" | |
} | |
], | |
"id": 1874, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "7094:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1879, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7094:50:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1880, | |
"nodeType": "ExpressionStatement", | |
"src": "7094:50:5" | |
}, | |
{ | |
"assignments": [ | |
1882 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 1882, | |
"name": "oldWeight", | |
"nodeType": "VariableDeclaration", | |
"scope": 1996, | |
"src": "7203:14:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 1881, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "7203:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 1887, | |
"initialValue": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 1883, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "7220:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 1885, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 1884, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1827, | |
"src": "7229:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "7220:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 1886, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "denorm", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1320, | |
"src": "7220:22:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "7203:39:5" | |
}, | |
{ | |
"condition": { | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 1890, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 1888, | |
"name": "denorm", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1831, | |
"src": "7257:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": ">", | |
"rightExpression": { | |
"argumentTypes": null, | |
"id": 1889, | |
"name": "oldWeight", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1882, | |
"src": "7266:9:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "7257:18:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"falseBody": { | |
"condition": { | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 1911, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 1909, | |
"name": "denorm", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1831, | |
"src": "7452:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "<", | |
"rightExpression": { | |
"argumentTypes": null, | |
"id": 1910, | |
"name": "oldWeight", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1882, | |
"src": "7461:9:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "7452:18:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"falseBody": null, | |
"id": 1923, | |
"nodeType": "IfStatement", | |
"src": "7448:109:5", | |
"trueBody": { | |
"id": 1922, | |
"nodeType": "Block", | |
"src": "7472:85:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 1920, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"id": 1912, | |
"name": "_totalWeight", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1421, | |
"src": "7487:12:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 1914, | |
"name": "_totalWeight", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1421, | |
"src": "7507:12:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 1916, | |
"name": "oldWeight", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1882, | |
"src": "7526:9:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 1917, | |
"name": "denorm", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1831, | |
"src": "7537:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 1915, | |
"name": "bsub", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 914, | |
"src": "7521:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", | |
"typeString": "function (uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 1918, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7521:23:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 1913, | |
"name": "bsub", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 914, | |
"src": "7502:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", | |
"typeString": "function (uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 1919, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7502:43:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "7487:58:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 1921, | |
"nodeType": "ExpressionStatement", | |
"src": "7487:58:5" | |
} | |
] | |
} | |
}, | |
"id": 1924, | |
"nodeType": "IfStatement", | |
"src": "7253:304:5", | |
"trueBody": { | |
"id": 1908, | |
"nodeType": "Block", | |
"src": "7277:165:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 1899, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"id": 1891, | |
"name": "_totalWeight", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1421, | |
"src": "7292:12:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 1893, | |
"name": "_totalWeight", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1421, | |
"src": "7312:12:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 1895, | |
"name": "denorm", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1831, | |
"src": "7331:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 1896, | |
"name": "oldWeight", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1882, | |
"src": "7339:9:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 1894, | |
"name": "bsub", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 914, | |
"src": "7326:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", | |
"typeString": "function (uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 1897, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7326:23:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 1892, | |
"name": "badd", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 887, | |
"src": "7307:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", | |
"typeString": "function (uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 1898, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7307:43:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "7292:58:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 1900, | |
"nodeType": "ExpressionStatement", | |
"src": "7292:58:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 1904, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 1902, | |
"name": "_totalWeight", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1421, | |
"src": "7373:12:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "<=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"id": 1903, | |
"name": "MAX_TOTAL_WEIGHT", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 64, | |
"src": "7389:16:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "7373:32:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4d41585f544f54414c5f574549474854", | |
"id": 1905, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "7407:22:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_55ceb599893e4bee215a5c1285d9b5c12334585fcdd4c2c71690e94257494440", | |
"typeString": "literal_string \"ERR_MAX_TOTAL_WEIGHT\"" | |
}, | |
"value": "ERR_MAX_TOTAL_WEIGHT" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_55ceb599893e4bee215a5c1285d9b5c12334585fcdd4c2c71690e94257494440", | |
"typeString": "literal_string \"ERR_MAX_TOTAL_WEIGHT\"" | |
} | |
], | |
"id": 1901, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "7365:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 1906, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7365:65:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1907, | |
"nodeType": "ExpressionStatement", | |
"src": "7365:65:5" | |
} | |
] | |
} | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 1930, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 1925, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "7575:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 1927, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 1926, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1827, | |
"src": "7584:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "7575:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 1928, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"memberName": "denorm", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1320, | |
"src": "7575:22:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"id": 1929, | |
"name": "denorm", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1831, | |
"src": "7600:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "7575:31:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 1931, | |
"nodeType": "ExpressionStatement", | |
"src": "7575:31:5" | |
}, | |
{ | |
"assignments": [ | |
1933 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 1933, | |
"name": "oldBalance", | |
"nodeType": "VariableDeclaration", | |
"scope": 1996, | |
"src": "7682:15:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 1932, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "7682:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 1938, | |
"initialValue": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 1934, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "7700:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 1936, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 1935, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1827, | |
"src": "7709:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "7700:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 1937, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "balance", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1322, | |
"src": "7700:23:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "7682:41:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 1944, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 1939, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "7734:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 1941, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 1940, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1827, | |
"src": "7743:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "7734:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 1942, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"memberName": "balance", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1322, | |
"src": "7734:23:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"id": 1943, | |
"name": "balance", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1829, | |
"src": "7760:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "7734:33:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 1945, | |
"nodeType": "ExpressionStatement", | |
"src": "7734:33:5" | |
}, | |
{ | |
"condition": { | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 1948, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 1946, | |
"name": "balance", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1829, | |
"src": "7782:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": ">", | |
"rightExpression": { | |
"argumentTypes": null, | |
"id": 1947, | |
"name": "oldBalance", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1933, | |
"src": "7792:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "7782:20:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"falseBody": { | |
"condition": { | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 1962, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 1960, | |
"name": "balance", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1829, | |
"src": "7902:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "<", | |
"rightExpression": { | |
"argumentTypes": null, | |
"id": 1961, | |
"name": "oldBalance", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1933, | |
"src": "7912:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "7902:20:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"falseBody": null, | |
"id": 1994, | |
"nodeType": "IfStatement", | |
"src": "7898:410:5", | |
"trueBody": { | |
"id": 1993, | |
"nodeType": "Block", | |
"src": "7924:384:5", | |
"statements": [ | |
{ | |
"assignments": [ | |
1964 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 1964, | |
"name": "tokenBalanceWithdrawn", | |
"nodeType": "VariableDeclaration", | |
"scope": 1993, | |
"src": "8017:26:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 1963, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "8017:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 1969, | |
"initialValue": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 1966, | |
"name": "oldBalance", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1933, | |
"src": "8051:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 1967, | |
"name": "balance", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1829, | |
"src": "8063:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 1965, | |
"name": "bsub", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 914, | |
"src": "8046:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", | |
"typeString": "function (uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 1968, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8046:25:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "8017:54:5" | |
}, | |
{ | |
"assignments": [ | |
1971 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 1971, | |
"name": "tokenExitFee", | |
"nodeType": "VariableDeclaration", | |
"scope": 1993, | |
"src": "8086:17:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 1970, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "8086:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 1976, | |
"initialValue": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 1973, | |
"name": "tokenBalanceWithdrawn", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1964, | |
"src": "8111:21:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 1974, | |
"name": "EXIT_FEE", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 51, | |
"src": "8134:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 1972, | |
"name": "bmul", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 997, | |
"src": "8106:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", | |
"typeString": "function (uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 1975, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8106:37:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "8086:57:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 1978, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1827, | |
"src": "8174:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 1979, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 5250, | |
"src": "8181:3:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 1980, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "8181:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 1982, | |
"name": "tokenBalanceWithdrawn", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1964, | |
"src": "8198:21:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 1983, | |
"name": "tokenExitFee", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1971, | |
"src": "8221:12:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 1981, | |
"name": "bsub", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 914, | |
"src": "8193:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", | |
"typeString": "function (uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 1984, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8193:41:5", | |
"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": 1977, | |
"name": "_pushUnderlying", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3426, | |
"src": "8158:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 1985, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8158:77:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1986, | |
"nodeType": "ExpressionStatement", | |
"src": "8158:77:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 1988, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1827, | |
"src": "8266:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 1989, | |
"name": "_factory", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1404, | |
"src": "8273:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 1990, | |
"name": "tokenExitFee", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1971, | |
"src": "8283:12:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 1987, | |
"name": "_pushUnderlying", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3426, | |
"src": "8250:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 1991, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8250:46:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1992, | |
"nodeType": "ExpressionStatement", | |
"src": "8250:46:5" | |
} | |
] | |
} | |
}, | |
"id": 1995, | |
"nodeType": "IfStatement", | |
"src": "7778:530:5", | |
"trueBody": { | |
"id": 1959, | |
"nodeType": "Block", | |
"src": "7804:88:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 1950, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1827, | |
"src": "7835:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 1951, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 5250, | |
"src": "7842:3:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 1952, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "7842:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 1954, | |
"name": "balance", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1829, | |
"src": "7859:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 1955, | |
"name": "oldBalance", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1933, | |
"src": "7868:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 1953, | |
"name": "bsub", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 914, | |
"src": "7854:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", | |
"typeString": "function (uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 1956, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7854:25:5", | |
"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": 1949, | |
"name": "_pullUnderlying", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3401, | |
"src": "7819:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 1957, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7819:61:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 1958, | |
"nodeType": "ExpressionStatement", | |
"src": "7819:61:5" | |
} | |
] | |
} | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 1997, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [ | |
{ | |
"arguments": null, | |
"id": 1834, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 1833, | |
"name": "_logs_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1372, | |
"src": "6759:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "6759:6:5" | |
}, | |
{ | |
"arguments": null, | |
"id": 1836, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 1835, | |
"name": "_lock_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1390, | |
"src": "6775:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "6775:6:5" | |
} | |
], | |
"name": "rebind", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 1832, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 1827, | |
"name": "token", | |
"nodeType": "VariableDeclaration", | |
"scope": 1997, | |
"src": "6692:13:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 1826, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "6692:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 1829, | |
"name": "balance", | |
"nodeType": "VariableDeclaration", | |
"scope": 1997, | |
"src": "6707:12:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 1828, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "6707:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 1831, | |
"name": "denorm", | |
"nodeType": "VariableDeclaration", | |
"scope": 1997, | |
"src": "6721:11:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 1830, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "6721:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "6691:42:5" | |
}, | |
"returnParameters": { | |
"id": 1837, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "6787:0:5" | |
}, | |
"scope": 3473, | |
"src": "6676:1639:5", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "public" | |
}, | |
{ | |
"body": { | |
"id": 2115, | |
"nodeType": "Block", | |
"src": "8409:955:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 2010, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 2007, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 5250, | |
"src": "8430:3:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 2008, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "8430:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "==", | |
"rightExpression": { | |
"argumentTypes": null, | |
"id": 2009, | |
"name": "_controller", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1406, | |
"src": "8444:11:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"src": "8430:25:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4e4f545f434f4e54524f4c4c4552", | |
"id": 2011, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "8457:20:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_0479bbd6e0e904a96491e3adc0eda9022c19acd57f4922725f8618b3a0372668", | |
"typeString": "literal_string \"ERR_NOT_CONTROLLER\"" | |
}, | |
"value": "ERR_NOT_CONTROLLER" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_0479bbd6e0e904a96491e3adc0eda9022c19acd57f4922725f8618b3a0372668", | |
"typeString": "literal_string \"ERR_NOT_CONTROLLER\"" | |
} | |
], | |
"id": 2006, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "8422:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 2012, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8422:56:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2013, | |
"nodeType": "ExpressionStatement", | |
"src": "8422:56:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2015, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "8497:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 2017, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2016, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1999, | |
"src": "8506:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "8497:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 2018, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "bound", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1316, | |
"src": "8497:21:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4e4f545f424f554e44", | |
"id": 2019, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "8520:15:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_86a01019fb9a24504897a9ddf06d43e29c7ad173d46588f4f7aa1ef14d3c847c", | |
"typeString": "literal_string \"ERR_NOT_BOUND\"" | |
}, | |
"value": "ERR_NOT_BOUND" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_86a01019fb9a24504897a9ddf06d43e29c7ad173d46588f4f7aa1ef14d3c847c", | |
"typeString": "literal_string \"ERR_NOT_BOUND\"" | |
} | |
], | |
"id": 2014, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "8489:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 2020, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8489:47:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2021, | |
"nodeType": "ExpressionStatement", | |
"src": "8489:47:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 2024, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "UnaryOperation", | |
"operator": "!", | |
"prefix": true, | |
"src": "8555:11:5", | |
"subExpression": { | |
"argumentTypes": null, | |
"id": 2023, | |
"name": "_finalized", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1412, | |
"src": "8556:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f49535f46494e414c495a4544", | |
"id": 2025, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "8568:18:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_4e8186530b7c98466f35e0b14182dc6e751c9b9644c5bf1204c0609f892e5bbe", | |
"typeString": "literal_string \"ERR_IS_FINALIZED\"" | |
}, | |
"value": "ERR_IS_FINALIZED" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_4e8186530b7c98466f35e0b14182dc6e751c9b9644c5bf1204c0609f892e5bbe", | |
"typeString": "literal_string \"ERR_IS_FINALIZED\"" | |
} | |
], | |
"id": 2022, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "8547:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 2026, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8547:40:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2027, | |
"nodeType": "ExpressionStatement", | |
"src": "8547:40:5" | |
}, | |
{ | |
"assignments": [ | |
2029 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 2029, | |
"name": "tokenBalance", | |
"nodeType": "VariableDeclaration", | |
"scope": 2115, | |
"src": "8600:17:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 2028, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "8600:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 2034, | |
"initialValue": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2030, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "8620:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 2032, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2031, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1999, | |
"src": "8629:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "8620:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 2033, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "balance", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1322, | |
"src": "8620:23:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "8600:43:5" | |
}, | |
{ | |
"assignments": [ | |
2036 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 2036, | |
"name": "tokenExitFee", | |
"nodeType": "VariableDeclaration", | |
"scope": 2115, | |
"src": "8654:17:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 2035, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "8654:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 2041, | |
"initialValue": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 2038, | |
"name": "tokenBalance", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2029, | |
"src": "8679:12:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 2039, | |
"name": "EXIT_FEE", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 51, | |
"src": "8693:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 2037, | |
"name": "bmul", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 997, | |
"src": "8674:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", | |
"typeString": "function (uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 2040, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8674:28:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "8654:48:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 2050, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"id": 2042, | |
"name": "_totalWeight", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1421, | |
"src": "8715:12:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 2044, | |
"name": "_totalWeight", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1421, | |
"src": "8735:12:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2045, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "8749:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 2047, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2046, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1999, | |
"src": "8758:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "8749:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 2048, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "denorm", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1320, | |
"src": "8749:22:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 2043, | |
"name": "bsub", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 914, | |
"src": "8730:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", | |
"typeString": "function (uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 2049, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8730:42:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "8715:57:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 2051, | |
"nodeType": "ExpressionStatement", | |
"src": "8715:57:5" | |
}, | |
{ | |
"assignments": [ | |
2053 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 2053, | |
"name": "index", | |
"nodeType": "VariableDeclaration", | |
"scope": 2115, | |
"src": "8882:10:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 2052, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "8882:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 2058, | |
"initialValue": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2054, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "8895:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 2056, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2055, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1999, | |
"src": "8904:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "8895:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 2057, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "index", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1318, | |
"src": "8895:21:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "8882:34:5" | |
}, | |
{ | |
"assignments": [ | |
2060 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 2060, | |
"name": "last", | |
"nodeType": "VariableDeclaration", | |
"scope": 2115, | |
"src": "8927:9:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 2059, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "8927:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 2065, | |
"initialValue": { | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 2064, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 2061, | |
"name": "_tokens", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1415, | |
"src": "8939:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_address_$dyn_storage", | |
"typeString": "address[] storage ref" | |
} | |
}, | |
"id": 2062, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "length", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "8939:14:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "-", | |
"rightExpression": { | |
"argumentTypes": null, | |
"hexValue": "31", | |
"id": 2063, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "8956:1:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_1_by_1", | |
"typeString": "int_const 1" | |
}, | |
"value": "1" | |
}, | |
"src": "8939:18:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "8927:30:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 2072, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2066, | |
"name": "_tokens", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1415, | |
"src": "8968:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_address_$dyn_storage", | |
"typeString": "address[] storage ref" | |
} | |
}, | |
"id": 2068, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2067, | |
"name": "index", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2053, | |
"src": "8976:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"nodeType": "IndexAccess", | |
"src": "8968:14:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2069, | |
"name": "_tokens", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1415, | |
"src": "8985:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_address_$dyn_storage", | |
"typeString": "address[] storage ref" | |
} | |
}, | |
"id": 2071, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2070, | |
"name": "last", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2060, | |
"src": "8993:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "8985:13:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"src": "8968:30:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"id": 2073, | |
"nodeType": "ExpressionStatement", | |
"src": "8968:30:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 2081, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2074, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "9009:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 2078, | |
"indexExpression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2075, | |
"name": "_tokens", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1415, | |
"src": "9018:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_address_$dyn_storage", | |
"typeString": "address[] storage ref" | |
} | |
}, | |
"id": 2077, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2076, | |
"name": "index", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2053, | |
"src": "9026:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "9018:14:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "9009:24:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 2079, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"memberName": "index", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1318, | |
"src": "9009:30:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"id": 2080, | |
"name": "index", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2053, | |
"src": "9042:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "9009:38:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 2082, | |
"nodeType": "ExpressionStatement", | |
"src": "9009:38:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [], | |
"expression": { | |
"argumentTypes": [], | |
"expression": { | |
"argumentTypes": null, | |
"id": 2083, | |
"name": "_tokens", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1415, | |
"src": "9058:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_address_$dyn_storage", | |
"typeString": "address[] storage ref" | |
} | |
}, | |
"id": 2085, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "pop", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "9058:11:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", | |
"typeString": "function ()" | |
} | |
}, | |
"id": 2086, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "9058:13:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2087, | |
"nodeType": "ExpressionStatement", | |
"src": "9058:13:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 2097, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2088, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "9082:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 2090, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2089, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1999, | |
"src": "9091:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"nodeType": "IndexAccess", | |
"src": "9082:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"hexValue": "66616c7365", | |
"id": 2092, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "bool", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "9129:5:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"value": "false" | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 2093, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "9156:1:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 2094, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "9180:1:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 2095, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "9205:1:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
{ | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
{ | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
} | |
], | |
"id": 2091, | |
"name": "Record", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1323, | |
"src": "9100:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_struct$_Record_$1323_storage_ptr_$", | |
"typeString": "type(struct BPool.Record storage pointer)" | |
} | |
}, | |
"id": 2096, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "structConstructorCall", | |
"lValueRequested": false, | |
"names": [ | |
"bound", | |
"index", | |
"denorm", | |
"balance" | |
], | |
"nodeType": "FunctionCall", | |
"src": "9100:118:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_memory", | |
"typeString": "struct BPool.Record memory" | |
} | |
}, | |
"src": "9082:136:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 2098, | |
"nodeType": "ExpressionStatement", | |
"src": "9082:136:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 2100, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1999, | |
"src": "9247:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 2101, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 5250, | |
"src": "9254:3:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 2102, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "9254:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 2104, | |
"name": "tokenBalance", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2029, | |
"src": "9271:12:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 2105, | |
"name": "tokenExitFee", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2036, | |
"src": "9285:12:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 2103, | |
"name": "bsub", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 914, | |
"src": "9266:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", | |
"typeString": "function (uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 2106, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "9266:32:5", | |
"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": 2099, | |
"name": "_pushUnderlying", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3426, | |
"src": "9231:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 2107, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "9231:68:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2108, | |
"nodeType": "ExpressionStatement", | |
"src": "9231:68:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 2110, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1999, | |
"src": "9326:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 2111, | |
"name": "_factory", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1404, | |
"src": "9333:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 2112, | |
"name": "tokenExitFee", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2036, | |
"src": "9343:12:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 2109, | |
"name": "_pushUnderlying", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3426, | |
"src": "9310:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 2113, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "9310:46:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2114, | |
"nodeType": "ExpressionStatement", | |
"src": "9310:46:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 2116, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [ | |
{ | |
"arguments": null, | |
"id": 2002, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 2001, | |
"name": "_logs_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1372, | |
"src": "8381:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "8381:6:5" | |
}, | |
{ | |
"arguments": null, | |
"id": 2004, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 2003, | |
"name": "_lock_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1390, | |
"src": "8397:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "8397:6:5" | |
} | |
], | |
"name": "unbind", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 2000, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 1999, | |
"name": "token", | |
"nodeType": "VariableDeclaration", | |
"scope": 2116, | |
"src": "8339:13:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 1998, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "8339:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "8338:15:5" | |
}, | |
"returnParameters": { | |
"id": 2005, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "8409:0:5" | |
}, | |
"scope": 3473, | |
"src": "8323:1041:5", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "external" | |
}, | |
{ | |
"body": { | |
"id": 2147, | |
"nodeType": "Block", | |
"src": "9533:141:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2126, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "9552:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 2128, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2127, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2118, | |
"src": "9561:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "9552:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 2129, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "bound", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1316, | |
"src": "9552:21:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4e4f545f424f554e44", | |
"id": 2130, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "9575:15:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_86a01019fb9a24504897a9ddf06d43e29c7ad173d46588f4f7aa1ef14d3c847c", | |
"typeString": "literal_string \"ERR_NOT_BOUND\"" | |
}, | |
"value": "ERR_NOT_BOUND" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_86a01019fb9a24504897a9ddf06d43e29c7ad173d46588f4f7aa1ef14d3c847c", | |
"typeString": "literal_string \"ERR_NOT_BOUND\"" | |
} | |
], | |
"id": 2125, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "9544:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 2131, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "9544:47:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2132, | |
"nodeType": "ExpressionStatement", | |
"src": "9544:47:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 2145, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2133, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "9602:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 2135, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2134, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2118, | |
"src": "9611:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "9602:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 2136, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"memberName": "balance", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1322, | |
"src": "9602:23:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 2142, | |
"name": "this", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 5280, | |
"src": "9660:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_contract$_BPool_$3473", | |
"typeString": "contract BPool" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_contract$_BPool_$3473", | |
"typeString": "contract BPool" | |
} | |
], | |
"id": 2141, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "9652:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": "address" | |
}, | |
"id": 2143, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "9652:13:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
], | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 2138, | |
"name": "token", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2118, | |
"src": "9635:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
], | |
"id": 2137, | |
"name": "IERC20", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3543, | |
"src": "9628:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_IERC20_$3543_$", | |
"typeString": "type(contract IERC20)" | |
} | |
}, | |
"id": 2139, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "9628:13:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_contract$_IERC20_$3543", | |
"typeString": "contract IERC20" | |
} | |
}, | |
"id": 2140, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "balanceOf", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 3504, | |
"src": "9628:23:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", | |
"typeString": "function (address) view external returns (uint256)" | |
} | |
}, | |
"id": 2144, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "9628:38:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "9602:64:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 2146, | |
"nodeType": "ExpressionStatement", | |
"src": "9602:64:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 2148, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [ | |
{ | |
"arguments": null, | |
"id": 2121, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 2120, | |
"name": "_logs_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1372, | |
"src": "9505:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "9505:6:5" | |
}, | |
{ | |
"arguments": null, | |
"id": 2123, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 2122, | |
"name": "_lock_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1390, | |
"src": "9521:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "9521:6:5" | |
} | |
], | |
"name": "gulp", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 2119, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 2118, | |
"name": "token", | |
"nodeType": "VariableDeclaration", | |
"scope": 2148, | |
"src": "9463:13:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 2117, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "9463:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "9462:15:5" | |
}, | |
"returnParameters": { | |
"id": 2124, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "9533:0:5" | |
}, | |
"scope": 3473, | |
"src": "9449:225:5", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "external" | |
}, | |
{ | |
"body": { | |
"id": 2199, | |
"nodeType": "Block", | |
"src": "9821:352:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2160, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "9840:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 2162, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2161, | |
"name": "tokenIn", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2150, | |
"src": "9849:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "9840:17:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 2163, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "bound", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1316, | |
"src": "9840:23:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4e4f545f424f554e44", | |
"id": 2164, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "9865:15:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_86a01019fb9a24504897a9ddf06d43e29c7ad173d46588f4f7aa1ef14d3c847c", | |
"typeString": "literal_string \"ERR_NOT_BOUND\"" | |
}, | |
"value": "ERR_NOT_BOUND" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_86a01019fb9a24504897a9ddf06d43e29c7ad173d46588f4f7aa1ef14d3c847c", | |
"typeString": "literal_string \"ERR_NOT_BOUND\"" | |
} | |
], | |
"id": 2159, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "9832:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 2165, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "9832:49:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2166, | |
"nodeType": "ExpressionStatement", | |
"src": "9832:49:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2168, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "9900:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 2170, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2169, | |
"name": "tokenOut", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2152, | |
"src": "9909:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "9900:18:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 2171, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "bound", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1316, | |
"src": "9900:24:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4e4f545f424f554e44", | |
"id": 2172, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "9926:15:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_86a01019fb9a24504897a9ddf06d43e29c7ad173d46588f4f7aa1ef14d3c847c", | |
"typeString": "literal_string \"ERR_NOT_BOUND\"" | |
}, | |
"value": "ERR_NOT_BOUND" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_86a01019fb9a24504897a9ddf06d43e29c7ad173d46588f4f7aa1ef14d3c847c", | |
"typeString": "literal_string \"ERR_NOT_BOUND\"" | |
} | |
], | |
"id": 2167, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "9892:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 2173, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "9892:50:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2174, | |
"nodeType": "ExpressionStatement", | |
"src": "9892:50:5" | |
}, | |
{ | |
"assignments": [ | |
2176 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 2176, | |
"name": "inRecord", | |
"nodeType": "VariableDeclaration", | |
"scope": 2199, | |
"src": "9953:23:5", | |
"stateVariable": false, | |
"storageLocation": "storage", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage_ptr", | |
"typeString": "struct BPool.Record" | |
}, | |
"typeName": { | |
"contractScope": null, | |
"id": 2175, | |
"name": "Record", | |
"nodeType": "UserDefinedTypeName", | |
"referencedDeclaration": 1323, | |
"src": "9953:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage_ptr", | |
"typeString": "struct BPool.Record" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 2180, | |
"initialValue": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2177, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "9979:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 2179, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2178, | |
"name": "tokenIn", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2150, | |
"src": "9988:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "9979:17:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "9953:43:5" | |
}, | |
{ | |
"assignments": [ | |
2182 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 2182, | |
"name": "outRecord", | |
"nodeType": "VariableDeclaration", | |
"scope": 2199, | |
"src": "10007:24:5", | |
"stateVariable": false, | |
"storageLocation": "storage", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage_ptr", | |
"typeString": "struct BPool.Record" | |
}, | |
"typeName": { | |
"contractScope": null, | |
"id": 2181, | |
"name": "Record", | |
"nodeType": "UserDefinedTypeName", | |
"referencedDeclaration": 1323, | |
"src": "10007:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage_ptr", | |
"typeString": "struct BPool.Record" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 2186, | |
"initialValue": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2183, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "10034:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 2185, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2184, | |
"name": "tokenOut", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2152, | |
"src": "10043:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "10034:18:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "10007:45:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 2188, | |
"name": "inRecord", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2176, | |
"src": "10084:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage_ptr", | |
"typeString": "struct BPool.Record storage pointer" | |
} | |
}, | |
"id": 2189, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "balance", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1322, | |
"src": "10084:16:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 2190, | |
"name": "inRecord", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2176, | |
"src": "10102:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage_ptr", | |
"typeString": "struct BPool.Record storage pointer" | |
} | |
}, | |
"id": 2191, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "denorm", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1320, | |
"src": "10102:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 2192, | |
"name": "outRecord", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2182, | |
"src": "10119:9:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage_ptr", | |
"typeString": "struct BPool.Record storage pointer" | |
} | |
}, | |
"id": 2193, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "balance", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1322, | |
"src": "10119:17:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 2194, | |
"name": "outRecord", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2182, | |
"src": "10138:9:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage_ptr", | |
"typeString": "struct BPool.Record storage pointer" | |
} | |
}, | |
"id": 2195, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "denorm", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1320, | |
"src": "10138:16:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 2196, | |
"name": "_swapFee", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1410, | |
"src": "10156:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 2187, | |
"name": "calcSpotPrice", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 324, | |
"src": "10070:13:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", | |
"typeString": "function (uint256,uint256,uint256,uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 2197, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "10070:95:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"functionReturnParameters": 2158, | |
"id": 2198, | |
"nodeType": "Return", | |
"src": "10063:102:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 2200, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [ | |
{ | |
"arguments": null, | |
"id": 2155, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 2154, | |
"name": "_viewlock_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1400, | |
"src": "9771:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "9771:10:5" | |
} | |
], | |
"name": "getSpotPrice", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 2153, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 2150, | |
"name": "tokenIn", | |
"nodeType": "VariableDeclaration", | |
"scope": 2200, | |
"src": "9704:15:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 2149, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "9704:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 2152, | |
"name": "tokenOut", | |
"nodeType": "VariableDeclaration", | |
"scope": 2200, | |
"src": "9721:16:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 2151, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "9721:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "9703:35:5" | |
}, | |
"returnParameters": { | |
"id": 2158, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 2157, | |
"name": "spotPrice", | |
"nodeType": "VariableDeclaration", | |
"scope": 2200, | |
"src": "9800:14:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 2156, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "9800:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "9799:16:5" | |
}, | |
"scope": 3473, | |
"src": "9682:491:5", | |
"stateMutability": "view", | |
"superFunction": null, | |
"visibility": "external" | |
}, | |
{ | |
"body": { | |
"id": 2251, | |
"nodeType": "Block", | |
"src": "10327:345:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2212, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "10346:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 2214, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2213, | |
"name": "tokenIn", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2202, | |
"src": "10355:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "10346:17:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 2215, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "bound", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1316, | |
"src": "10346:23:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4e4f545f424f554e44", | |
"id": 2216, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "10371:15:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_86a01019fb9a24504897a9ddf06d43e29c7ad173d46588f4f7aa1ef14d3c847c", | |
"typeString": "literal_string \"ERR_NOT_BOUND\"" | |
}, | |
"value": "ERR_NOT_BOUND" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_86a01019fb9a24504897a9ddf06d43e29c7ad173d46588f4f7aa1ef14d3c847c", | |
"typeString": "literal_string \"ERR_NOT_BOUND\"" | |
} | |
], | |
"id": 2211, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "10338:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 2217, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "10338:49:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2218, | |
"nodeType": "ExpressionStatement", | |
"src": "10338:49:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2220, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "10406:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 2222, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2221, | |
"name": "tokenOut", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2204, | |
"src": "10415:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "10406:18:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 2223, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "bound", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1316, | |
"src": "10406:24:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4e4f545f424f554e44", | |
"id": 2224, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "10432:15:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_86a01019fb9a24504897a9ddf06d43e29c7ad173d46588f4f7aa1ef14d3c847c", | |
"typeString": "literal_string \"ERR_NOT_BOUND\"" | |
}, | |
"value": "ERR_NOT_BOUND" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_86a01019fb9a24504897a9ddf06d43e29c7ad173d46588f4f7aa1ef14d3c847c", | |
"typeString": "literal_string \"ERR_NOT_BOUND\"" | |
} | |
], | |
"id": 2219, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "10398:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 2225, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "10398:50:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2226, | |
"nodeType": "ExpressionStatement", | |
"src": "10398:50:5" | |
}, | |
{ | |
"assignments": [ | |
2228 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 2228, | |
"name": "inRecord", | |
"nodeType": "VariableDeclaration", | |
"scope": 2251, | |
"src": "10459:23:5", | |
"stateVariable": false, | |
"storageLocation": "storage", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage_ptr", | |
"typeString": "struct BPool.Record" | |
}, | |
"typeName": { | |
"contractScope": null, | |
"id": 2227, | |
"name": "Record", | |
"nodeType": "UserDefinedTypeName", | |
"referencedDeclaration": 1323, | |
"src": "10459:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage_ptr", | |
"typeString": "struct BPool.Record" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 2232, | |
"initialValue": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2229, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "10485:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 2231, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2230, | |
"name": "tokenIn", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2202, | |
"src": "10494:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "10485:17:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "10459:43:5" | |
}, | |
{ | |
"assignments": [ | |
2234 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 2234, | |
"name": "outRecord", | |
"nodeType": "VariableDeclaration", | |
"scope": 2251, | |
"src": "10513:24:5", | |
"stateVariable": false, | |
"storageLocation": "storage", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage_ptr", | |
"typeString": "struct BPool.Record" | |
}, | |
"typeName": { | |
"contractScope": null, | |
"id": 2233, | |
"name": "Record", | |
"nodeType": "UserDefinedTypeName", | |
"referencedDeclaration": 1323, | |
"src": "10513:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage_ptr", | |
"typeString": "struct BPool.Record" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 2238, | |
"initialValue": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2235, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "10540:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 2237, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2236, | |
"name": "tokenOut", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2204, | |
"src": "10549:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "10540:18:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "10513:45:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 2240, | |
"name": "inRecord", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2228, | |
"src": "10590:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage_ptr", | |
"typeString": "struct BPool.Record storage pointer" | |
} | |
}, | |
"id": 2241, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "balance", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1322, | |
"src": "10590:16:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 2242, | |
"name": "inRecord", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2228, | |
"src": "10608:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage_ptr", | |
"typeString": "struct BPool.Record storage pointer" | |
} | |
}, | |
"id": 2243, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "denorm", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1320, | |
"src": "10608:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 2244, | |
"name": "outRecord", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2234, | |
"src": "10625:9:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage_ptr", | |
"typeString": "struct BPool.Record storage pointer" | |
} | |
}, | |
"id": 2245, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "balance", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1322, | |
"src": "10625:17:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 2246, | |
"name": "outRecord", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2234, | |
"src": "10644:9:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage_ptr", | |
"typeString": "struct BPool.Record storage pointer" | |
} | |
}, | |
"id": 2247, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "denorm", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1320, | |
"src": "10644:16:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 2248, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "10662:1:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
} | |
], | |
"id": 2239, | |
"name": "calcSpotPrice", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 324, | |
"src": "10576:13:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", | |
"typeString": "function (uint256,uint256,uint256,uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 2249, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "10576:88:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"functionReturnParameters": 2210, | |
"id": 2250, | |
"nodeType": "Return", | |
"src": "10569:95:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 2252, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [ | |
{ | |
"arguments": null, | |
"id": 2207, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 2206, | |
"name": "_viewlock_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1400, | |
"src": "10277:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "10277:10:5" | |
} | |
], | |
"name": "getSpotPriceSansFee", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 2205, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 2202, | |
"name": "tokenIn", | |
"nodeType": "VariableDeclaration", | |
"scope": 2252, | |
"src": "10210:15:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 2201, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "10210:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 2204, | |
"name": "tokenOut", | |
"nodeType": "VariableDeclaration", | |
"scope": 2252, | |
"src": "10227:16:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 2203, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "10227:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "10209:35:5" | |
}, | |
"returnParameters": { | |
"id": 2210, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 2209, | |
"name": "spotPrice", | |
"nodeType": "VariableDeclaration", | |
"scope": 2252, | |
"src": "10306:14:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 2208, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "10306:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "10305:16:5" | |
}, | |
"scope": 3473, | |
"src": "10181:491:5", | |
"stateMutability": "view", | |
"superFunction": null, | |
"visibility": "external" | |
}, | |
{ | |
"body": { | |
"id": 2374, | |
"nodeType": "Block", | |
"src": "10803:825:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 2265, | |
"name": "_finalized", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1412, | |
"src": "10822:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4e4f545f46494e414c495a4544", | |
"id": 2266, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "10834:19:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_8e0a50e0802c41001c819a1d72124e98da239dcaeee85bac2236e5d8595f284f", | |
"typeString": "literal_string \"ERR_NOT_FINALIZED\"" | |
}, | |
"value": "ERR_NOT_FINALIZED" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_8e0a50e0802c41001c819a1d72124e98da239dcaeee85bac2236e5d8595f284f", | |
"typeString": "literal_string \"ERR_NOT_FINALIZED\"" | |
} | |
], | |
"id": 2264, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "10814:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 2267, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "10814:40:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2268, | |
"nodeType": "ExpressionStatement", | |
"src": "10814:40:5" | |
}, | |
{ | |
"assignments": [ | |
2270 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 2270, | |
"name": "poolTotal", | |
"nodeType": "VariableDeclaration", | |
"scope": 2374, | |
"src": "10867:14:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 2269, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "10867:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 2273, | |
"initialValue": { | |
"argumentTypes": null, | |
"arguments": [], | |
"expression": { | |
"argumentTypes": [], | |
"id": 2271, | |
"name": "totalSupply", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3813, | |
"src": "10884:11:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", | |
"typeString": "function () view returns (uint256)" | |
} | |
}, | |
"id": 2272, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "10884:13:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "10867:30:5" | |
}, | |
{ | |
"assignments": [ | |
2275 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 2275, | |
"name": "ratio", | |
"nodeType": "VariableDeclaration", | |
"scope": 2374, | |
"src": "10908:10:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 2274, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "10908:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 2280, | |
"initialValue": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 2277, | |
"name": "poolAmountOut", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2254, | |
"src": "10926:13:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 2278, | |
"name": "poolTotal", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2270, | |
"src": "10941:9:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 2276, | |
"name": "bdiv", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1057, | |
"src": "10921:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", | |
"typeString": "function (uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 2279, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "10921:30:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "10908:43:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 2284, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 2282, | |
"name": "ratio", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2275, | |
"src": "10970:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 2283, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "10979:1:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"src": "10970:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4d4154485f415050524f58", | |
"id": 2285, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "10982:17:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_38839817361c628b17e457bae64f619c23ab542714e93cfb021dbd3ddd466187", | |
"typeString": "literal_string \"ERR_MATH_APPROX\"" | |
}, | |
"value": "ERR_MATH_APPROX" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_38839817361c628b17e457bae64f619c23ab542714e93cfb021dbd3ddd466187", | |
"typeString": "literal_string \"ERR_MATH_APPROX\"" | |
} | |
], | |
"id": 2281, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "10962:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 2286, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "10962:38:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2287, | |
"nodeType": "ExpressionStatement", | |
"src": "10962:38:5" | |
}, | |
{ | |
"body": { | |
"id": 2362, | |
"nodeType": "Block", | |
"src": "11055:474:5", | |
"statements": [ | |
{ | |
"assignments": [ | |
2300 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 2300, | |
"name": "t", | |
"nodeType": "VariableDeclaration", | |
"scope": 2362, | |
"src": "11070:9:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 2299, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "11070:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 2304, | |
"initialValue": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2301, | |
"name": "_tokens", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1415, | |
"src": "11082:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_address_$dyn_storage", | |
"typeString": "address[] storage ref" | |
} | |
}, | |
"id": 2303, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2302, | |
"name": "i", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2289, | |
"src": "11090:1:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "11082:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "11070:22:5" | |
}, | |
{ | |
"assignments": [ | |
2306 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 2306, | |
"name": "bal", | |
"nodeType": "VariableDeclaration", | |
"scope": 2362, | |
"src": "11107:8:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 2305, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "11107:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 2311, | |
"initialValue": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2307, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "11118:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 2309, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2308, | |
"name": "t", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2300, | |
"src": "11127:1:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "11118:11:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 2310, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "balance", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1322, | |
"src": "11118:19:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "11107:30:5" | |
}, | |
{ | |
"assignments": [ | |
2313 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 2313, | |
"name": "tokenAmountIn", | |
"nodeType": "VariableDeclaration", | |
"scope": 2362, | |
"src": "11152:18:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 2312, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "11152:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 2318, | |
"initialValue": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 2315, | |
"name": "ratio", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2275, | |
"src": "11178:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 2316, | |
"name": "bal", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2306, | |
"src": "11185:3:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 2314, | |
"name": "bmul", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 997, | |
"src": "11173:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", | |
"typeString": "function (uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 2317, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "11173:16:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "11152:37:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 2322, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 2320, | |
"name": "tokenAmountIn", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2313, | |
"src": "11212:13:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 2321, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "11229:1:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"src": "11212:18:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4d4154485f415050524f58", | |
"id": 2323, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "11232:17:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_38839817361c628b17e457bae64f619c23ab542714e93cfb021dbd3ddd466187", | |
"typeString": "literal_string \"ERR_MATH_APPROX\"" | |
}, | |
"value": "ERR_MATH_APPROX" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_38839817361c628b17e457bae64f619c23ab542714e93cfb021dbd3ddd466187", | |
"typeString": "literal_string \"ERR_MATH_APPROX\"" | |
} | |
], | |
"id": 2319, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "11204:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 2324, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "11204:46:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2325, | |
"nodeType": "ExpressionStatement", | |
"src": "11204:46:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 2331, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 2327, | |
"name": "tokenAmountIn", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2313, | |
"src": "11273:13:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "<=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2328, | |
"name": "maxAmountsIn", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2257, | |
"src": "11290:12:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", | |
"typeString": "uint256[] calldata" | |
} | |
}, | |
"id": 2330, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2329, | |
"name": "i", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2289, | |
"src": "11303:1:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "11290:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "11273:32:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4c494d49545f494e", | |
"id": 2332, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "11307:14:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_7f6da07481837924baab3a15f838b3df11e328050f73de905838535dd369af68", | |
"typeString": "literal_string \"ERR_LIMIT_IN\"" | |
}, | |
"value": "ERR_LIMIT_IN" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_7f6da07481837924baab3a15f838b3df11e328050f73de905838535dd369af68", | |
"typeString": "literal_string \"ERR_LIMIT_IN\"" | |
} | |
], | |
"id": 2326, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "11265:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 2333, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "11265:57:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2334, | |
"nodeType": "ExpressionStatement", | |
"src": "11265:57:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 2346, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2335, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "11337:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 2337, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2336, | |
"name": "t", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2300, | |
"src": "11346:1:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "11337:11:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 2338, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"memberName": "balance", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1322, | |
"src": "11337:19:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2340, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "11364:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 2342, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2341, | |
"name": "t", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2300, | |
"src": "11373:1:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "11364:11:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 2343, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "balance", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1322, | |
"src": "11364:19:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 2344, | |
"name": "tokenAmountIn", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2313, | |
"src": "11385:13:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 2339, | |
"name": "badd", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 887, | |
"src": "11359:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", | |
"typeString": "function (uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 2345, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "11359:40:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "11337:62:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 2347, | |
"nodeType": "ExpressionStatement", | |
"src": "11337:62:5" | |
}, | |
{ | |
"eventCall": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 2349, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 5250, | |
"src": "11428:3:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 2350, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "11428:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 2351, | |
"name": "t", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2300, | |
"src": "11440:1:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 2352, | |
"name": "tokenAmountIn", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2313, | |
"src": "11443:13:5", | |
"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": 2348, | |
"name": "LOG_JOIN", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1343, | |
"src": "11419:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 2353, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "11419:38:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2354, | |
"nodeType": "EmitStatement", | |
"src": "11414:43:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 2356, | |
"name": "t", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2300, | |
"src": "11488:1:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 2357, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 5250, | |
"src": "11491:3:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 2358, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "11491:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 2359, | |
"name": "tokenAmountIn", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2313, | |
"src": "11503:13:5", | |
"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": 2355, | |
"name": "_pullUnderlying", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3401, | |
"src": "11472:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 2360, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "11472:45:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2361, | |
"nodeType": "ExpressionStatement", | |
"src": "11472:45:5" | |
} | |
] | |
}, | |
"condition": { | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 2295, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 2292, | |
"name": "i", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2289, | |
"src": "11030:1:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "<", | |
"rightExpression": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 2293, | |
"name": "_tokens", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1415, | |
"src": "11034:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_address_$dyn_storage", | |
"typeString": "address[] storage ref" | |
} | |
}, | |
"id": 2294, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "length", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "11034:14:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "11030:18:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"id": 2363, | |
"initializationExpression": { | |
"assignments": [ | |
2289 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 2289, | |
"name": "i", | |
"nodeType": "VariableDeclaration", | |
"scope": 2363, | |
"src": "11018:6:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 2288, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "11018:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 2291, | |
"initialValue": { | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 2290, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "11027:1:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "11018:10:5" | |
}, | |
"loopExpression": { | |
"expression": { | |
"argumentTypes": null, | |
"id": 2297, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "UnaryOperation", | |
"operator": "++", | |
"prefix": false, | |
"src": "11050:3:5", | |
"subExpression": { | |
"argumentTypes": null, | |
"id": 2296, | |
"name": "i", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2289, | |
"src": "11050:1:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 2298, | |
"nodeType": "ExpressionStatement", | |
"src": "11050:3:5" | |
}, | |
"nodeType": "ForStatement", | |
"src": "11013:516:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 2365, | |
"name": "poolAmountOut", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2254, | |
"src": "11554:13:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 2364, | |
"name": "_mintPoolShare", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3462, | |
"src": "11539:14:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", | |
"typeString": "function (uint256)" | |
} | |
}, | |
"id": 2366, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "11539:29:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2367, | |
"nodeType": "ExpressionStatement", | |
"src": "11539:29:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 2369, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 5250, | |
"src": "11594:3:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 2370, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "11594:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 2371, | |
"name": "poolAmountOut", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2254, | |
"src": "11606:13:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 2368, | |
"name": "_pushPoolShare", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3452, | |
"src": "11579:14:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,uint256)" | |
} | |
}, | |
"id": 2372, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "11579:41:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2373, | |
"nodeType": "ExpressionStatement", | |
"src": "11579:41:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 2375, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [ | |
{ | |
"arguments": null, | |
"id": 2260, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 2259, | |
"name": "_logs_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1372, | |
"src": "10775:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "10775:6:5" | |
}, | |
{ | |
"arguments": null, | |
"id": 2262, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 2261, | |
"name": "_lock_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1390, | |
"src": "10791:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "10791:6:5" | |
} | |
], | |
"name": "joinPool", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 2258, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 2254, | |
"name": "poolAmountOut", | |
"nodeType": "VariableDeclaration", | |
"scope": 2375, | |
"src": "10698:18:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 2253, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "10698:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 2257, | |
"name": "maxAmountsIn", | |
"nodeType": "VariableDeclaration", | |
"scope": 2375, | |
"src": "10718:28:5", | |
"stateVariable": false, | |
"storageLocation": "calldata", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", | |
"typeString": "uint256[]" | |
}, | |
"typeName": { | |
"baseType": { | |
"id": 2255, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "10718:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 2256, | |
"length": null, | |
"nodeType": "ArrayTypeName", | |
"src": "10718:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", | |
"typeString": "uint256[]" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "10697:50:5" | |
}, | |
"returnParameters": { | |
"id": 2263, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "10803:0:5" | |
}, | |
"scope": 3473, | |
"src": "10680:948:5", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "external" | |
}, | |
{ | |
"body": { | |
"id": 2516, | |
"nodeType": "Block", | |
"src": "11759:999:5", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 2388, | |
"name": "_finalized", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1412, | |
"src": "11778:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4e4f545f46494e414c495a4544", | |
"id": 2389, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "11790:19:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_8e0a50e0802c41001c819a1d72124e98da239dcaeee85bac2236e5d8595f284f", | |
"typeString": "literal_string \"ERR_NOT_FINALIZED\"" | |
}, | |
"value": "ERR_NOT_FINALIZED" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_8e0a50e0802c41001c819a1d72124e98da239dcaeee85bac2236e5d8595f284f", | |
"typeString": "literal_string \"ERR_NOT_FINALIZED\"" | |
} | |
], | |
"id": 2387, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "11770:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 2390, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "11770:40:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2391, | |
"nodeType": "ExpressionStatement", | |
"src": "11770:40:5" | |
}, | |
{ | |
"assignments": [ | |
2393 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 2393, | |
"name": "poolTotal", | |
"nodeType": "VariableDeclaration", | |
"scope": 2516, | |
"src": "11823:14:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 2392, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "11823:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 2396, | |
"initialValue": { | |
"argumentTypes": null, | |
"arguments": [], | |
"expression": { | |
"argumentTypes": [], | |
"id": 2394, | |
"name": "totalSupply", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3813, | |
"src": "11840:11:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", | |
"typeString": "function () view returns (uint256)" | |
} | |
}, | |
"id": 2395, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "11840:13:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "11823:30:5" | |
}, | |
{ | |
"assignments": [ | |
2398 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 2398, | |
"name": "exitFee", | |
"nodeType": "VariableDeclaration", | |
"scope": 2516, | |
"src": "11864:12:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 2397, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "11864:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 2403, | |
"initialValue": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 2400, | |
"name": "poolAmountIn", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2377, | |
"src": "11884:12:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 2401, | |
"name": "EXIT_FEE", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 51, | |
"src": "11898:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 2399, | |
"name": "bmul", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 997, | |
"src": "11879:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", | |
"typeString": "function (uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 2402, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "11879:28:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "11864:43:5" | |
}, | |
{ | |
"assignments": [ | |
2405 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 2405, | |
"name": "pAiAfterExitFee", | |
"nodeType": "VariableDeclaration", | |
"scope": 2516, | |
"src": "11918:20:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 2404, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "11918:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 2410, | |
"initialValue": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 2407, | |
"name": "poolAmountIn", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2377, | |
"src": "11946:12:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 2408, | |
"name": "exitFee", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2398, | |
"src": "11960:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 2406, | |
"name": "bsub", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 914, | |
"src": "11941:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", | |
"typeString": "function (uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 2409, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "11941:27:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "11918:50:5" | |
}, | |
{ | |
"assignments": [ | |
2412 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 2412, | |
"name": "ratio", | |
"nodeType": "VariableDeclaration", | |
"scope": 2516, | |
"src": "11979:10:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 2411, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "11979:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 2417, | |
"initialValue": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 2414, | |
"name": "pAiAfterExitFee", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2405, | |
"src": "11997:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 2415, | |
"name": "poolTotal", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2393, | |
"src": "12014:9:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 2413, | |
"name": "bdiv", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1057, | |
"src": "11992:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", | |
"typeString": "function (uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 2416, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "11992:32:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "11979:45:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 2421, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 2419, | |
"name": "ratio", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2412, | |
"src": "12043:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 2420, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "12052:1:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"src": "12043:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4d4154485f415050524f58", | |
"id": 2422, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "12055:17:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_38839817361c628b17e457bae64f619c23ab542714e93cfb021dbd3ddd466187", | |
"typeString": "literal_string \"ERR_MATH_APPROX\"" | |
}, | |
"value": "ERR_MATH_APPROX" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_38839817361c628b17e457bae64f619c23ab542714e93cfb021dbd3ddd466187", | |
"typeString": "literal_string \"ERR_MATH_APPROX\"" | |
} | |
], | |
"id": 2418, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "12035:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 2423, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "12035:38:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2424, | |
"nodeType": "ExpressionStatement", | |
"src": "12035:38:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 2426, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 5250, | |
"src": "12101:3:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 2427, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "12101:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 2428, | |
"name": "poolAmountIn", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2377, | |
"src": "12113:12:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 2425, | |
"name": "_pullPoolShare", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3439, | |
"src": "12086:14:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,uint256)" | |
} | |
}, | |
"id": 2429, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "12086:40:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2430, | |
"nodeType": "ExpressionStatement", | |
"src": "12086:40:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 2432, | |
"name": "_factory", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1404, | |
"src": "12152:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 2433, | |
"name": "exitFee", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2398, | |
"src": "12162:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 2431, | |
"name": "_pushPoolShare", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3452, | |
"src": "12137:14:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,uint256)" | |
} | |
}, | |
"id": 2434, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "12137:33:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2435, | |
"nodeType": "ExpressionStatement", | |
"src": "12137:33:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 2437, | |
"name": "pAiAfterExitFee", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2405, | |
"src": "12196:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 2436, | |
"name": "_burnPoolShare", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3472, | |
"src": "12181:14:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", | |
"typeString": "function (uint256)" | |
} | |
}, | |
"id": 2438, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "12181:31:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2439, | |
"nodeType": "ExpressionStatement", | |
"src": "12181:31:5" | |
}, | |
{ | |
"body": { | |
"id": 2514, | |
"nodeType": "Block", | |
"src": "12267:482:5", | |
"statements": [ | |
{ | |
"assignments": [ | |
2452 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 2452, | |
"name": "t", | |
"nodeType": "VariableDeclaration", | |
"scope": 2514, | |
"src": "12282:9:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 2451, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "12282:7:5", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 2456, | |
"initialValue": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2453, | |
"name": "_tokens", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1415, | |
"src": "12294:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_address_$dyn_storage", | |
"typeString": "address[] storage ref" | |
} | |
}, | |
"id": 2455, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2454, | |
"name": "i", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2441, | |
"src": "12302:1:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "12294:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "12282:22:5" | |
}, | |
{ | |
"assignments": [ | |
2458 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 2458, | |
"name": "bal", | |
"nodeType": "VariableDeclaration", | |
"scope": 2514, | |
"src": "12319:8:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 2457, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "12319:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 2463, | |
"initialValue": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2459, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "12330:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 2461, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2460, | |
"name": "t", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2452, | |
"src": "12339:1:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "12330:11:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 2462, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "balance", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1322, | |
"src": "12330:19:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "12319:30:5" | |
}, | |
{ | |
"assignments": [ | |
2465 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 2465, | |
"name": "tokenAmountOut", | |
"nodeType": "VariableDeclaration", | |
"scope": 2514, | |
"src": "12364:19:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 2464, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "12364:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 2470, | |
"initialValue": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 2467, | |
"name": "ratio", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2412, | |
"src": "12391:5:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 2468, | |
"name": "bal", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2458, | |
"src": "12398:3:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 2466, | |
"name": "bmul", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 997, | |
"src": "12386:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", | |
"typeString": "function (uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 2469, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "12386:16:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "12364:38:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 2474, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 2472, | |
"name": "tokenAmountOut", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2465, | |
"src": "12425:14:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 2473, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "12443:1:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"src": "12425:19:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4d4154485f415050524f58", | |
"id": 2475, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "12446:17:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_38839817361c628b17e457bae64f619c23ab542714e93cfb021dbd3ddd466187", | |
"typeString": "literal_string \"ERR_MATH_APPROX\"" | |
}, | |
"value": "ERR_MATH_APPROX" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_38839817361c628b17e457bae64f619c23ab542714e93cfb021dbd3ddd466187", | |
"typeString": "literal_string \"ERR_MATH_APPROX\"" | |
} | |
], | |
"id": 2471, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "12417:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 2476, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "12417:47:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2477, | |
"nodeType": "ExpressionStatement", | |
"src": "12417:47:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 2483, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 2479, | |
"name": "tokenAmountOut", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2465, | |
"src": "12487:14:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": ">=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2480, | |
"name": "minAmountsOut", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2380, | |
"src": "12505:13:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", | |
"typeString": "uint256[] calldata" | |
} | |
}, | |
"id": 2482, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2481, | |
"name": "i", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2441, | |
"src": "12519:1:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "12505:16:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "12487:34:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4552525f4c494d49545f4f5554", | |
"id": 2484, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "12523:15:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_665ff818e83fa8776541f5756d1025222aecfe18eeb105729691884778497705", | |
"typeString": "literal_string \"ERR_LIMIT_OUT\"" | |
}, | |
"value": "ERR_LIMIT_OUT" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_665ff818e83fa8776541f5756d1025222aecfe18eeb105729691884778497705", | |
"typeString": "literal_string \"ERR_LIMIT_OUT\"" | |
} | |
], | |
"id": 2478, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
5253, | |
5254 | |
], | |
"referencedDeclaration": 5254, | |
"src": "12479:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 2485, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "12479:60:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2486, | |
"nodeType": "ExpressionStatement", | |
"src": "12479:60:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 2498, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2487, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "12554:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 2489, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2488, | |
"name": "t", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2452, | |
"src": "12563:1:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "12554:11:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 2490, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"memberName": "balance", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1322, | |
"src": "12554:19:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 2492, | |
"name": "_records", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1419, | |
"src": "12581:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Record_$1323_storage_$", | |
"typeString": "mapping(address => struct BPool.Record storage ref)" | |
} | |
}, | |
"id": 2494, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 2493, | |
"name": "t", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2452, | |
"src": "12590:1:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "12581:11:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Record_$1323_storage", | |
"typeString": "struct BPool.Record storage ref" | |
} | |
}, | |
"id": 2495, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "balance", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 1322, | |
"src": "12581:19:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 2496, | |
"name": "tokenAmountOut", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2465, | |
"src": "12602:14:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 2491, | |
"name": "bsub", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 914, | |
"src": "12576:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", | |
"typeString": "function (uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 2497, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "12576:41:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "12554:63:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 2499, | |
"nodeType": "ExpressionStatement", | |
"src": "12554:63:5" | |
}, | |
{ | |
"eventCall": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 2501, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 5250, | |
"src": "12646:3:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 2502, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "12646:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 2503, | |
"name": "t", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2452, | |
"src": "12658:1:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 2504, | |
"name": "tokenAmountOut", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2465, | |
"src": "12661:14:5", | |
"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": 2500, | |
"name": "LOG_EXIT", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1351, | |
"src": "12637:8:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 2505, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "12637:39:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2506, | |
"nodeType": "EmitStatement", | |
"src": "12632:44:5" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 2508, | |
"name": "t", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2452, | |
"src": "12707:1:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 2509, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 5250, | |
"src": "12710:3:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 2510, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "12710:10:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 2511, | |
"name": "tokenAmountOut", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2465, | |
"src": "12722:14:5", | |
"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": 2507, | |
"name": "_pushUnderlying", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3426, | |
"src": "12691:15:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 2512, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "12691:46:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 2513, | |
"nodeType": "ExpressionStatement", | |
"src": "12691:46:5" | |
} | |
] | |
}, | |
"condition": { | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 2447, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 2444, | |
"name": "i", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2441, | |
"src": "12242:1:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "<", | |
"rightExpression": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 2445, | |
"name": "_tokens", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1415, | |
"src": "12246:7:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_address_$dyn_storage", | |
"typeString": "address[] storage ref" | |
} | |
}, | |
"id": 2446, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "length", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "12246:14:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "12242:18:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"id": 2515, | |
"initializationExpression": { | |
"assignments": [ | |
2441 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 2441, | |
"name": "i", | |
"nodeType": "VariableDeclaration", | |
"scope": 2515, | |
"src": "12230:6:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 2440, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "12230:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 2443, | |
"initialValue": { | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 2442, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "12239:1:5", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "12230:10:5" | |
}, | |
"loopExpression": { | |
"expression": { | |
"argumentTypes": null, | |
"id": 2449, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "UnaryOperation", | |
"operator": "++", | |
"prefix": false, | |
"src": "12262:3:5", | |
"subExpression": { | |
"argumentTypes": null, | |
"id": 2448, | |
"name": "i", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 2441, | |
"src": "12262:1:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 2450, | |
"nodeType": "ExpressionStatement", | |
"src": "12262:3:5" | |
}, | |
"nodeType": "ForStatement", | |
"src": "12225:524:5" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 2517, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [ | |
{ | |
"arguments": null, | |
"id": 2383, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 2382, | |
"name": "_logs_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1372, | |
"src": "11731:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "11731:6:5" | |
}, | |
{ | |
"arguments": null, | |
"id": 2385, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 2384, | |
"name": "_lock_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 1390, | |
"src": "11747:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_modifier$__$", | |
"typeString": "modifier ()" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "11747:6:5" | |
} | |
], | |
"name": "exitPool", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 2381, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 2377, | |
"name": "poolAmountIn", | |
"nodeType": "VariableDeclaration", | |
"scope": 2517, | |
"src": "11654:17:5", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 2376, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "11654:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 2380, | |
"name": "minAmountsOut", | |
"nodeType": "VariableDeclaration", | |
"scope": 2517, | |
"src": "11673:29:5", | |
"stateVariable": false, | |
"storageLocation": "calldata", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", | |
"typeString": "uint256[]" | |
}, | |
"typeName": { | |
"baseType": { | |
"id": 2378, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "11673:4:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 2379, | |
"length": null, | |
"nodeType": "ArrayTypeName", | |
"src": "11673:6:5", | |
"typeDescriptions": { | |
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", | |
"typeString": "uint256[]" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "11653:50:5" | |
}, |
View raw
(Sorry about that, but we can’t show files that are this big right now.)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment