55374 lines
2.5 MiB
55374 lines
2.5 MiB
{
|
|
"contractName": "ILegacyConverter",
|
|
"abi": [
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "contract IERC20Token",
|
|
"name": "_sourceToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "contract IERC20Token",
|
|
"name": "_targetToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "_amount",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "_minReturn",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "change",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
}
|
|
],
|
|
"metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IERC20Token\",\"name\":\"_sourceToken\",\"type\":\"address\"},{\"internalType\":\"contract IERC20Token\",\"name\":\"_targetToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_minReturn\",\"type\":\"uint256\"}],\"name\":\"change\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/BancorNetwork.sol\":\"ILegacyConverter\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/BancorNetwork.sol\":{\"keccak256\":\"0xb1817f3d45dd66177f17cf45f1b660186ee35575222a11c9bc0e0d44b32846ea\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://ce648a9b8038bb11d1ed091a16aa831a973ff2896ae9aae6b34cb9a8d0e02b00\",\"dweb:/ipfs/QmQKqVVXV6dDBd8saigyEALeLwjG8nhqK8wLRqDGaKSDV6\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/IConversionPathFinder.sol\":{\"keccak256\":\"0x2d0f5b57bc448581a6e2296486ca618851138f40928049d75220623605915d7b\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://2182eb05da8442792a5f3f4d8cdb2cf0bf9e952ca02638f3880cc59d5fd6dcb6\",\"dweb:/ipfs/QmSH9uWh6zTQkcBgD7VGGSzYW9DjdBDkUZUZ6zhzPWPPDz\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/bancorx/interfaces/IBancorX.sol\":{\"keccak256\":\"0x65b5780d710159c7540078c38406c53db37a349fb468a0bf21bdc6262e497951\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://3df931a12770d10a22451326e38ae9d405d3e2716bdbdd6306b5e2361f6fe511\",\"dweb:/ipfs/QmcRBSaFLz516dAEqb8ZEiyx8ZTHZZ6rfxHn5roL2fHA3S\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/IBancorFormula.sol\":{\"keccak256\":\"0xf30c95034af4c4ec6e8a859e90cf7a0bada29a805ede76e04644107a7c677c4e\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://b48070d4abf9c4a08c39e6c494fa9efd7389aa7f8b61b283c9ba02062b1c59b6\",\"dweb:/ipfs/Qme6U7SpspFPzMH2mTyKsXCnJEAgg1vX6NNFzuykbVSY5R\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/IConverter.sol\":{\"keccak256\":\"0x18b0d73a3d5ee951ede1b3f840ed35b40570e34975703079a4451555f4dd089b\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://1cd7263f1ef60793e3929509150420037df9a1194c3d0f40bb2ff5516d6a373f\",\"dweb:/ipfs/QmNUbsZt2rzWPjStYycgz3vMbNP4VrAqZPRAK39QNqUoos\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/IConverterAnchor.sol\":{\"keccak256\":\"0x9448cdbe90293fb5c1a0808b77af8754a1025b59c45f432eee01f659361a6115\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://1ef2bb2e1543c9324daf7f3fd086a57efb45b89f3d62b9d7a9fc78c138d24dbc\",\"dweb:/ipfs/QmVcXDib3K6xYJMBNxawmo4krJGiDfxb5oL64Lc3pi14XK\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/token/interfaces/IERC20Token.sol\":{\"keccak256\":\"0xe6f988c3156e88258474526a541d5a42b6a9adae98b04177a059d9f723bc82cd\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://9a6eb77a5b9ce70995a11a6e48ac3985a4c70896fe5fe04d46146ad7c1c83ea3\",\"dweb:/ipfs/QmYvGSveZFG51tghwkVuu6eK9Jy8frHpfLxHTMyvNZN461\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/token/interfaces/IEtherToken.sol\":{\"keccak256\":\"0x6ed324da616d70af0b21fa073b1e5329b430e38b470177633a69710eff3da893\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://44f94aa59c67de636423cbdef82efb7d8e0562e73dfc9049a48054156aebaf14\",\"dweb:/ipfs/Qmdn8KAP54s7X3J6TCoZPhCpS19aCQzFYZuFABugJ5JA5D\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/token/interfaces/ISmartToken.sol\":{\"keccak256\":\"0x5cfc15e7a23a9872059b0cea4d2ae902c3fc074a39e1c645036ce38ad47881ec\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://890ee09d24de5778e34c4c27d1377d83d378e8f4a13fcb94d5102f61d4749cce\",\"dweb:/ipfs/QmT89f61fmsUN1BVdebKxUc5VU7sitiP33LNk7TTtF18oj\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/ContractRegistryClient.sol\":{\"keccak256\":\"0x74caf88eff1cb113ad8277df9ba7933a6f1e0deea8fd1855157def3be833b859\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://c7793c9f245736cd8413bc8c4b5c40b67949cbee32289a16d29c83cf59396ad6\",\"dweb:/ipfs/QmWony7b1buUrGnE32gjLAnSwkBYMrJ68vUcCwDMmp3MbJ\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/Owned.sol\":{\"keccak256\":\"0x6ef69d9dcc80a8a36d5eb37783375cd5e4831c6d20c723fa6f6b6a06c0aeb53d\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://5a5d087e2c5b47739615ef22e1f29749de44b43c9a37cfae32b3dfc498a258c4\",\"dweb:/ipfs/Qmd1mXKEQbmBxqHk326LGVzNoayXsam8gZNecknnYpBnyh\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/ReentrancyGuard.sol\":{\"keccak256\":\"0x5ea87c10dd6e7e79212da712eb5f079c03361e6c96e299a4ffd9aaee8d6a3899\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://882aac64a791df35a942480e6ce611d1acb399af4ac0c4ef0288965c3785bf50\",\"dweb:/ipfs/QmeWeYYFh5HZAzJ1SzPHoTcPvZrE4NPUVfmjvH9Q3m36Gg\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/SafeMath.sol\":{\"keccak256\":\"0x1ab7391a19ca8a3ad2f3c4a1074e080d4d76dfdb834637bdd0c1e6b6acdf28af\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://d6d8c99621ca884b72da2d84eddfec8ec8c5533915691d6eec94a07adf445608\",\"dweb:/ipfs/QmaXr6DN7VbfxfMn3PsTy7SAMgZVVXbdeaw11BsAjVL2x1\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/TokenHandler.sol\":{\"keccak256\":\"0xf65b87e3bf3343e368da67878c19d1a043a1025b10e9053d3562b53b4aa447fe\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://b85c5d96642c14c53b8d5062eecd4d27d3bdb457d1d0f130900763a75a512eb7\",\"dweb:/ipfs/QmUHtbqC1khqnRZXYn11Aykus4m5e9MVNUWqorxhpr5ipJ\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/TokenHolder.sol\":{\"keccak256\":\"0xac6bc102eff6c1bb8c1bb4466eab50322c7c101e2e33d577dd3035f106627577\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://9fdbda2d4509260ca3dd43654bdaea07ef18a5e04213ff16e38e3b4abad78a5f\",\"dweb:/ipfs/QmPb69rzX1DwDeEhhfzqQNS3U2bfGcFjXNaV5ffHsZHzfP\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/Utils.sol\":{\"keccak256\":\"0x073efa69fcd6b5e60f841b28b366d63b62ff48ab12a06ce3f5a7f41afd6ce885\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://e8b8ecb2d29197ca77f0ed98f728ace54e6edcfdf5cd1194ae22701607eaf608\",\"dweb:/ipfs/QmcsR6Q35Hurh3TrPkYAboicz9bQQoGCWmZLzUCDyhotH8\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/interfaces/IContractRegistry.sol\":{\"keccak256\":\"0x3551889a83738b621c29ed66f1ecb6a843cca4217e54c9357198559b9cc92259\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://231a59c8f2665adeda8c7e6930832409c9b991fd27ad84b3a24335e7bf269bbe\",\"dweb:/ipfs/QmeJJbn1EAUbZenruTEdJAnwUn3dxsVNeJvxPe81qKEGqL\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/interfaces/IOwned.sol\":{\"keccak256\":\"0xc60a9d197abc28c1906ed4d18b59caa0242db754a0e1f67af6e6277593530dae\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://a8c6f3e6525a81a5165ccbf04f73f6c389c14b74135d11a7b5f70b1c9bdac75c\",\"dweb:/ipfs/QmaPu4Z7yUPc9sMADmoTZVY6AnyDSYHtNNCx3mm4VkJwhP\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/interfaces/ITokenHolder.sol\":{\"keccak256\":\"0x9ccb8ab04d0bd874ba7aae5277e60f35c36918922649a0596bf3664ed257bfe2\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://b65e6db19cd244c9f3545695de5fd7573711c49fb306631ddbf0e1d2fa9fb589\",\"dweb:/ipfs/QmZeu5KYVMTbTx7h2BVUq52fpwL9Q44AUfzeVksucDohgf\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/interfaces/IWhitelist.sol\":{\"keccak256\":\"0x356ad553ceeaea04d7cb8f0d6a5663c47dfccb2bd82517348128f032416ee34a\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://9ea3bbb9945144ead2c1392351f2f9f7444af78569f2b95da2e68bb6b919db52\",\"dweb:/ipfs/QmPyUAk44Kj7nJB4tzYqeSXWHyYP51mRNynEmWra9m4eKS\"]}},\"version\":1}",
|
|
"bytecode": "0x",
|
|
"deployedBytecode": "0x",
|
|
"immutableReferences": {},
|
|
"sourceMap": "",
|
|
"deployedSourceMap": "",
|
|
"source": "// SPDX-License-Identifier: SEE LICENSE IN LICENSE\r\npragma solidity 0.6.12;\r\nimport \"./IConversionPathFinder.sol\";\r\nimport \"./converter/interfaces/IConverter.sol\";\r\nimport \"./converter/interfaces/IConverterAnchor.sol\";\r\nimport \"./converter/interfaces/IBancorFormula.sol\";\r\nimport \"./utility/ContractRegistryClient.sol\";\r\nimport \"./utility/ReentrancyGuard.sol\";\r\nimport \"./utility/TokenHolder.sol\";\r\nimport \"./utility/SafeMath.sol\";\r\nimport \"./token/interfaces/IEtherToken.sol\";\r\nimport \"./token/interfaces/ISmartToken.sol\";\r\nimport \"./bancorx/interfaces/IBancorX.sol\";\r\n\r\n// interface of older converters for backward compatibility\r\ninterface ILegacyConverter {\r\n function change(IERC20Token _sourceToken, IERC20Token _targetToken, uint256 _amount, uint256 _minReturn) external returns (uint256);\r\n}\r\n\r\n/**\r\n * @dev The BancorNetwork contract is the main entry point for Bancor token conversions.\r\n * It also allows for the conversion of any token in the Bancor Network to any other token in a single\r\n * transaction by providing a conversion path.\r\n *\r\n * A note on Conversion Path: Conversion path is a data structure that is used when converting a token\r\n * to another token in the Bancor Network, when the conversion cannot necessarily be done by a single\r\n * converter and might require multiple 'hops'.\r\n * The path defines which converters should be used and what kind of conversion should be done in each step.\r\n *\r\n * The path format doesn't include complex structure; instead, it is represented by a single array\r\n * in which each 'hop' is represented by a 2-tuple - converter anchor & target token.\r\n * In addition, the first element is always the source token.\r\n * The converter anchor is only used as a pointer to a converter (since converter addresses are more\r\n * likely to change as opposed to anchor addresses).\r\n *\r\n * Format:\r\n * [source token, converter anchor, target token, converter anchor, target token...]\r\n*/\r\ncontract BancorNetwork is TokenHolder, ContractRegistryClient, ReentrancyGuard {\r\n using SafeMath for uint256;\r\n\r\n uint256 private constant PPM_RESOLUTION = 1000000;\r\n IERC20Token private constant ETH_RESERVE_ADDRESS = IERC20Token(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE);\r\n\r\n struct ConversionStep {\r\n IConverter converter;\r\n IConverterAnchor anchor;\r\n IERC20Token sourceToken;\r\n IERC20Token targetToken;\r\n address payable beneficiary;\r\n bool isV28OrHigherConverter;\r\n bool processAffiliateFee;\r\n }\r\n\r\n uint256 public maxAffiliateFee = 30000; // maximum affiliate-fee\r\n\r\n mapping (IERC20Token => bool) public etherTokens; // list of all supported ether tokens\r\n\r\n /**\r\n * @dev triggered when a conversion between two tokens occurs\r\n *\r\n * @param _smartToken anchor governed by the converter\r\n * @param _fromToken source ERC20 token\r\n * @param _toToken target ERC20 token\r\n * @param _fromAmount amount converted, in the source token\r\n * @param _toAmount amount returned, minus conversion fee\r\n * @param _trader wallet that initiated the trade\r\n */\r\n event Conversion(\r\n IConverterAnchor indexed _smartToken,\r\n IERC20Token indexed _fromToken,\r\n IERC20Token indexed _toToken,\r\n uint256 _fromAmount,\r\n uint256 _toAmount,\r\n address _trader\r\n );\r\n\r\n /**\r\n * @dev initializes a new BancorNetwork instance\r\n *\r\n * @param _registry address of a contract registry contract\r\n */\r\n constructor(IContractRegistry _registry) ContractRegistryClient(_registry) public {\r\n etherTokens[ETH_RESERVE_ADDRESS] = true;\r\n }\r\n\r\n /**\r\n * @dev allows the owner to update the maximum affiliate-fee\r\n *\r\n * @param _maxAffiliateFee maximum affiliate-fee\r\n */\r\n function setMaxAffiliateFee(uint256 _maxAffiliateFee)\r\n public\r\n ownerOnly\r\n {\r\n require(_maxAffiliateFee <= PPM_RESOLUTION, \"ERR_INVALID_AFFILIATE_FEE\");\r\n maxAffiliateFee = _maxAffiliateFee;\r\n }\r\n\r\n /**\r\n * @dev allows the owner to register/unregister ether tokens\r\n *\r\n * @param _token ether token contract address\r\n * @param _register true to register, false to unregister\r\n */\r\n function registerEtherToken(IEtherToken _token, bool _register)\r\n public\r\n ownerOnly\r\n validAddress(address(_token))\r\n notThis(address(_token))\r\n {\r\n etherTokens[_token] = _register;\r\n }\r\n\r\n /**\r\n * @dev returns the conversion path between two tokens in the network\r\n * note that this method is quite expensive in terms of gas and should generally be called off-chain\r\n *\r\n * @param _sourceToken source token address\r\n * @param _targetToken target token address\r\n *\r\n * @return conversion path between the two tokens\r\n */\r\n function conversionPath(IERC20Token _sourceToken, IERC20Token _targetToken) public view returns (address[] memory) {\r\n IConversionPathFinder pathFinder = IConversionPathFinder(addressOf(CONVERSION_PATH_FINDER));\r\n return pathFinder.findPath(_sourceToken, _targetToken);\r\n }\r\n\r\n /**\r\n * @dev returns the expected target amount of converting a given amount on a given path\r\n * note that there is no support for circular paths\r\n *\r\n * @param _path conversion path (see conversion path format above)\r\n * @param _amount amount of _path[0] tokens received from the sender\r\n *\r\n * @return expected target amount\r\n */\r\n function rateByPath(address[] memory _path, uint256 _amount) public view returns (uint256) {\r\n uint256 amount;\r\n uint256 fee;\r\n uint256 supply;\r\n uint256 balance;\r\n uint32 weight;\r\n IConverter converter;\r\n IBancorFormula formula = IBancorFormula(addressOf(BANCOR_FORMULA));\r\n\r\n amount = _amount;\r\n\r\n // verify that the number of elements is larger than 2 and odd\r\n require(_path.length > 2 && _path.length % 2 == 1, \"ERR_INVALID_PATH\");\r\n\r\n // iterate over the conversion path\r\n for (uint256 i = 2; i < _path.length; i += 2) {\r\n IERC20Token sourceToken = IERC20Token(_path[i - 2]);\r\n address anchor = _path[i - 1];\r\n IERC20Token targetToken = IERC20Token(_path[i]);\r\n\r\n converter = IConverter(payable(IConverterAnchor(anchor).owner()));\r\n\r\n // backward compatibility\r\n sourceToken = getConverterTokenAddress(converter, sourceToken);\r\n targetToken = getConverterTokenAddress(converter, targetToken);\r\n\r\n if (address(targetToken) == anchor) { // buy the smart token\r\n // check if the current smart token has changed\r\n if (i < 3 || anchor != _path[i - 3])\r\n supply = ISmartToken(anchor).totalSupply();\r\n\r\n // get the amount & the conversion fee\r\n balance = converter.getConnectorBalance(sourceToken);\r\n (, weight, , , ) = converter.connectors(sourceToken);\r\n amount = formula.purchaseTargetAmount(supply, balance, weight, amount);\r\n fee = amount.mul(converter.conversionFee()).div(PPM_RESOLUTION);\r\n amount -= fee;\r\n\r\n // update the smart token supply for the next iteration\r\n supply = supply.add(amount);\r\n }\r\n else if (address(sourceToken) == anchor) { // sell the smart token\r\n // check if the current smart token has changed\r\n if (i < 3 || anchor != _path[i - 3])\r\n supply = ISmartToken(anchor).totalSupply();\r\n\r\n // get the amount & the conversion fee\r\n balance = converter.getConnectorBalance(targetToken);\r\n (, weight, , , ) = converter.connectors(targetToken);\r\n amount = formula.saleTargetAmount(supply, balance, weight, amount);\r\n fee = amount.mul(converter.conversionFee()).div(PPM_RESOLUTION);\r\n amount -= fee;\r\n\r\n // update the smart token supply for the next iteration\r\n supply = supply.sub(amount);\r\n }\r\n else { // cross reserve conversion\r\n (amount, fee) = getReturn(converter, sourceToken, targetToken, amount);\r\n }\r\n }\r\n\r\n return amount;\r\n }\r\n\r\n /**\r\n * @dev converts the token to any other token in the bancor network by following\r\n * a predefined conversion path and transfers the result tokens to a target account\r\n * affiliate account/fee can also be passed in to receive a conversion fee (on top of the liquidity provider fees)\r\n * note that the network should already have been given allowance of the source token (if not ETH)\r\n *\r\n * @param _path conversion path, see conversion path format above\r\n * @param _amount amount to convert from, in the source token\r\n * @param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\r\n * @param _beneficiary account that will receive the conversion result or 0x0 to send the result to the sender account\r\n * @param _affiliateAccount wallet address to receive the affiliate fee or 0x0 to disable affiliate fee\r\n * @param _affiliateFee affiliate fee in PPM or 0 to disable affiliate fee\r\n *\r\n * @return amount of tokens received from the conversion\r\n */\r\n function convertByPath(\r\n address[] memory _path,\r\n uint256 _amount,\r\n uint256 _minReturn,\r\n address payable _beneficiary,\r\n address _affiliateAccount,\r\n uint256 _affiliateFee)\r\n public\r\n payable\r\n protected\r\n greaterThanZero(_minReturn)\r\n returns (uint256)\r\n {\r\n // verify that the path contrains at least a single 'hop' and that the number of elements is odd\r\n require(_path.length > 2 && _path.length % 2 == 1, \"ERR_INVALID_PATH\");\r\n\r\n // validate msg.value and prepare the source token for the conversion\r\n handleSourceToken(IERC20Token(_path[0]), IConverterAnchor(_path[1]), _amount);\r\n\r\n // check if affiliate fee is enabled\r\n bool affiliateFeeEnabled = false;\r\n if (address(_affiliateAccount) == address(0)) {\r\n require(_affiliateFee == 0, \"ERR_INVALID_AFFILIATE_FEE\");\r\n }\r\n else {\r\n require(0 < _affiliateFee && _affiliateFee <= maxAffiliateFee, \"ERR_INVALID_AFFILIATE_FEE\");\r\n affiliateFeeEnabled = true;\r\n }\r\n\r\n // check if beneficiary is set\r\n address payable beneficiary = msg.sender;\r\n if (_beneficiary != address(0))\r\n beneficiary = _beneficiary;\r\n\r\n // convert and get the resulting amount\r\n ConversionStep[] memory data = createConversionData(_path, beneficiary, affiliateFeeEnabled);\r\n uint256 amount = doConversion(data, _amount, _minReturn, _affiliateAccount, _affiliateFee);\r\n\r\n // handle the conversion target tokens\r\n handleTargetToken(data, amount, beneficiary);\r\n\r\n return amount;\r\n }\r\n\r\n /**\r\n * @dev converts any other token to BNT in the bancor network by following\r\n a predefined conversion path and transfers the result to an account on a different blockchain\r\n * note that the network should already have been given allowance of the source token (if not ETH)\r\n *\r\n * @param _path conversion path, see conversion path format above\r\n * @param _amount amount to convert from, in the source token\r\n * @param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\r\n * @param _targetBlockchain blockchain BNT will be issued on\r\n * @param _targetAccount address/account on the target blockchain to send the BNT to\r\n * @param _conversionId pre-determined unique (if non zero) id which refers to this transaction\r\n *\r\n * @return the amount of BNT received from this conversion\r\n */\r\n function xConvert(\r\n address[] memory _path,\r\n uint256 _amount,\r\n uint256 _minReturn,\r\n bytes32 _targetBlockchain,\r\n bytes32 _targetAccount,\r\n uint256 _conversionId\r\n )\r\n public\r\n payable\r\n returns (uint256)\r\n {\r\n return xConvert2(_path, _amount, _minReturn, _targetBlockchain, _targetAccount, _conversionId, address(0), 0);\r\n }\r\n\r\n /**\r\n * @dev converts any other token to BNT in the bancor network by following\r\n a predefined conversion path and transfers the result to an account on a different blockchain\r\n * note that the network should already have been given allowance of the source token (if not ETH)\r\n *\r\n * @param _path conversion path, see conversion path format above\r\n * @param _amount amount to convert from, in the source token\r\n * @param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\r\n * @param _targetBlockchain blockchain BNT will be issued on\r\n * @param _targetAccount address/account on the target blockchain to send the BNT to\r\n * @param _conversionId pre-determined unique (if non zero) id which refers to this transaction\r\n * @param _affiliateAccount affiliate account\r\n * @param _affiliateFee affiliate fee in PPM\r\n *\r\n * @return the amount of BNT received from this conversion\r\n */\r\n function xConvert2(\r\n address[] memory _path,\r\n uint256 _amount,\r\n uint256 _minReturn,\r\n bytes32 _targetBlockchain,\r\n bytes32 _targetAccount,\r\n uint256 _conversionId,\r\n address _affiliateAccount,\r\n uint256 _affiliateFee\r\n )\r\n public\r\n payable\r\n greaterThanZero(_minReturn)\r\n returns (uint256)\r\n {\r\n IERC20Token targetToken = IERC20Token(_path[_path.length - 1]);\r\n IBancorX bancorX = IBancorX(addressOf(BANCOR_X));\r\n\r\n // verify that the destination token is BNT\r\n require(targetToken == IERC20Token(addressOf(BNT_TOKEN)), \"ERR_INVALID_TARGET_TOKEN\");\r\n\r\n // convert and get the resulting amount\r\n uint256 amount = convertByPath(_path, _amount, _minReturn, payable(address(this)), _affiliateAccount, _affiliateFee);\r\n\r\n // grant BancorX allowance\r\n ensureAllowance(targetToken, address(bancorX), amount);\r\n\r\n // transfer the resulting amount to BancorX\r\n bancorX.xTransfer(_targetBlockchain, _targetAccount, amount, _conversionId);\r\n\r\n return amount;\r\n }\r\n\r\n /**\r\n * @dev allows a user to convert a token that was sent from another blockchain into any other\r\n * token on the BancorNetwork\r\n * ideally this transaction is created before the previous conversion is even complete, so\r\n * so the input amount isn't known at that point - the amount is actually take from the\r\n * BancorX contract directly by specifying the conversion id\r\n *\r\n * @param _path conversion path\r\n * @param _bancorX address of the BancorX contract for the source token\r\n * @param _conversionId pre-determined unique (if non zero) id which refers to this conversion\r\n * @param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be nonzero\r\n * @param _beneficiary wallet to receive the conversion result\r\n *\r\n * @return amount of tokens received from the conversion\r\n */\r\n function completeXConversion(address[] memory _path, IBancorX _bancorX, uint256 _conversionId, uint256 _minReturn, address payable _beneficiary)\r\n public returns (uint256)\r\n {\r\n // verify that the source token is the BancorX token\r\n require(IERC20Token(_path[0]) == _bancorX.token(), \"ERR_INVALID_SOURCE_TOKEN\");\r\n\r\n // get conversion amount from BancorX contract\r\n uint256 amount = _bancorX.getXTransferAmount(_conversionId, msg.sender);\r\n\r\n // perform the conversion\r\n return convertByPath(_path, amount, _minReturn, _beneficiary, address(0), 0);\r\n }\r\n\r\n /**\r\n * @dev executes the actual conversion by following the conversion path\r\n *\r\n * @param _data conversion data, see ConversionStep struct above\r\n * @param _amount amount to convert from, in the source token\r\n * @param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\r\n * @param _affiliateAccount affiliate account\r\n * @param _affiliateFee affiliate fee in PPM\r\n *\r\n * @return amount of tokens received from the conversion\r\n */\r\n function doConversion(\r\n ConversionStep[] memory _data,\r\n uint256 _amount,\r\n uint256 _minReturn,\r\n address _affiliateAccount,\r\n uint256 _affiliateFee\r\n ) private returns (uint256) {\r\n uint256 toAmount;\r\n uint256 fromAmount = _amount;\r\n\r\n // iterate over the conversion data\r\n for (uint256 i = 0; i < _data.length; i++) {\r\n ConversionStep memory stepData = _data[i];\r\n\r\n // newer converter\r\n if (stepData.isV28OrHigherConverter) {\r\n // transfer the tokens to the converter only if the network contract currently holds the tokens\r\n // not needed with ETH or if it's the first conversion step\r\n if (i != 0 && _data[i - 1].beneficiary == address(this) && !etherTokens[stepData.sourceToken])\r\n safeTransfer(stepData.sourceToken, address(stepData.converter), fromAmount);\r\n }\r\n // older converter\r\n // if the source token is the smart token, no need to do any transfers as the converter controls it\r\n else if (stepData.sourceToken != ISmartToken(address(stepData.anchor))) {\r\n // grant allowance for it to transfer the tokens from the network contract\r\n ensureAllowance(stepData.sourceToken, address(stepData.converter), fromAmount);\r\n }\r\n\r\n // do the conversion\r\n if (!stepData.isV28OrHigherConverter)\r\n toAmount = ILegacyConverter(address(stepData.converter)).change(stepData.sourceToken, stepData.targetToken, fromAmount, 1);\r\n else if (etherTokens[stepData.sourceToken])\r\n toAmount = stepData.converter.convert{ value: msg.value }(stepData.sourceToken, stepData.targetToken, fromAmount, msg.sender, stepData.beneficiary);\r\n else\r\n toAmount = stepData.converter.convert(stepData.sourceToken, stepData.targetToken, fromAmount, msg.sender, stepData.beneficiary);\r\n\r\n // pay affiliate-fee if needed\r\n if (stepData.processAffiliateFee) {\r\n uint256 affiliateAmount = toAmount.mul(_affiliateFee).div(PPM_RESOLUTION);\r\n require(stepData.targetToken.transfer(_affiliateAccount, affiliateAmount), \"ERR_FEE_TRANSFER_FAILED\");\r\n toAmount -= affiliateAmount;\r\n }\r\n\r\n emit Conversion(stepData.anchor, stepData.sourceToken, stepData.targetToken, fromAmount, toAmount, msg.sender);\r\n fromAmount = toAmount;\r\n }\r\n\r\n // ensure the trade meets the minimum requested amount\r\n require(toAmount >= _minReturn, \"ERR_RETURN_TOO_LOW\");\r\n\r\n return toAmount;\r\n }\r\n\r\n /**\r\n * @dev validates msg.value and prepares the conversion source token for the conversion\r\n *\r\n * @param _sourceToken source token of the first conversion step\r\n * @param _anchor converter anchor of the first conversion step\r\n * @param _amount amount to convert from, in the source token\r\n */\r\n function handleSourceToken(IERC20Token _sourceToken, IConverterAnchor _anchor, uint256 _amount) private {\r\n IConverter firstConverter = IConverter(payable(_anchor.owner()));\r\n bool isNewerConverter = isV28OrHigherConverter(firstConverter);\r\n\r\n // ETH\r\n if (msg.value > 0) {\r\n // validate msg.value\r\n require(msg.value == _amount, \"ERR_ETH_AMOUNT_MISMATCH\");\r\n\r\n // EtherToken converter - deposit the ETH into the EtherToken\r\n // note that it can still be a non ETH converter if the path is wrong\r\n // but such conversion will simply revert\r\n if (!isNewerConverter)\r\n IEtherToken(address(getConverterEtherTokenAddress(firstConverter))).deposit{ value: msg.value }();\r\n }\r\n // EtherToken\r\n else if (etherTokens[_sourceToken]) {\r\n // claim the tokens - if the source token is ETH reserve, this call will fail\r\n // since in that case the transaction must be sent with msg.value\r\n safeTransferFrom(_sourceToken, msg.sender, address(this), _amount);\r\n\r\n // ETH converter - withdraw the ETH\r\n if (isNewerConverter)\r\n IEtherToken(address(_sourceToken)).withdraw(_amount);\r\n }\r\n // other ERC20 token\r\n else {\r\n // newer converter - transfer the tokens from the sender directly to the converter\r\n // otherwise claim the tokens\r\n if (isNewerConverter)\r\n safeTransferFrom(_sourceToken, msg.sender, address(firstConverter), _amount);\r\n else\r\n safeTransferFrom(_sourceToken, msg.sender, address(this), _amount);\r\n }\r\n }\r\n\r\n /**\r\n * @dev handles the conversion target token if the network still holds it at the end of the conversion\r\n *\r\n * @param _data conversion data, see ConversionStep struct above\r\n * @param _amount conversion target amount\r\n * @param _beneficiary wallet to receive the conversion result\r\n */\r\n function handleTargetToken(ConversionStep[] memory _data, uint256 _amount, address payable _beneficiary) private {\r\n ConversionStep memory stepData = _data[_data.length - 1];\r\n\r\n // network contract doesn't hold the tokens, do nothing\r\n if (stepData.beneficiary != address(this))\r\n return;\r\n\r\n IERC20Token targetToken = stepData.targetToken;\r\n\r\n // ETH / EtherToken\r\n if (etherTokens[targetToken]) {\r\n // newer converter should send ETH directly to the beneficiary\r\n assert(!stepData.isV28OrHigherConverter);\r\n\r\n // EtherToken converter - withdraw the ETH and transfer to the beneficiary\r\n IEtherToken(address(targetToken)).withdrawTo(_beneficiary, _amount);\r\n }\r\n // other ERC20 token\r\n else {\r\n safeTransfer(targetToken, _beneficiary, _amount);\r\n }\r\n }\r\n\r\n /**\r\n * @dev creates a memory cache of all conversion steps data to minimize logic and external calls during conversions\r\n *\r\n * @param _conversionPath conversion path, see conversion path format above\r\n * @param _beneficiary wallet to receive the conversion result\r\n * @param _affiliateFeeEnabled true if affiliate fee was requested by the sender, false if not\r\n *\r\n * @return cached conversion data to be ingested later on by the conversion flow\r\n */\r\n function createConversionData(address[] memory _conversionPath, address payable _beneficiary, bool _affiliateFeeEnabled) private view returns (ConversionStep[] memory) {\r\n ConversionStep[] memory data = new ConversionStep[](_conversionPath.length / 2);\r\n\r\n bool affiliateFeeProcessed = false;\r\n IERC20Token bntToken = IERC20Token(addressOf(BNT_TOKEN));\r\n // iterate the conversion path and create the conversion data for each step\r\n uint256 i;\r\n for (i = 0; i < _conversionPath.length - 1; i += 2) {\r\n IConverterAnchor anchor = IConverterAnchor(_conversionPath[i + 1]);\r\n IConverter converter = IConverter(payable(anchor.owner()));\r\n IERC20Token targetToken = IERC20Token(_conversionPath[i + 2]);\r\n\r\n // check if the affiliate fee should be processed in this step\r\n bool processAffiliateFee = _affiliateFeeEnabled && !affiliateFeeProcessed && targetToken == bntToken;\r\n if (processAffiliateFee)\r\n affiliateFeeProcessed = true;\r\n\r\n data[i / 2] = ConversionStep({\r\n // set the converter anchor\r\n anchor: anchor,\r\n\r\n // set the converter\r\n converter: converter,\r\n\r\n // set the source/target tokens\r\n sourceToken: IERC20Token(_conversionPath[i]),\r\n targetToken: targetToken,\r\n\r\n // requires knowledge about the next step, so initialize in the next phase\r\n beneficiary: address(0),\r\n\r\n // set flags\r\n isV28OrHigherConverter: isV28OrHigherConverter(converter),\r\n processAffiliateFee: processAffiliateFee\r\n });\r\n }\r\n\r\n // ETH support\r\n // source is ETH\r\n ConversionStep memory stepData = data[0];\r\n if (etherTokens[stepData.sourceToken]) {\r\n // newer converter - replace the source token address with ETH reserve address\r\n if (stepData.isV28OrHigherConverter)\r\n stepData.sourceToken = ETH_RESERVE_ADDRESS;\r\n // older converter - replace the source token with the EtherToken address used by the converter\r\n else\r\n stepData.sourceToken = getConverterEtherTokenAddress(stepData.converter);\r\n }\r\n\r\n // target is ETH\r\n stepData = data[data.length - 1];\r\n if (etherTokens[stepData.targetToken]) {\r\n // newer converter - replace the target token address with ETH reserve address\r\n if (stepData.isV28OrHigherConverter)\r\n stepData.targetToken = ETH_RESERVE_ADDRESS;\r\n // older converter - replace the target token with the EtherToken address used by the converter\r\n else\r\n stepData.targetToken = getConverterEtherTokenAddress(stepData.converter);\r\n }\r\n\r\n // set the beneficiary for each step\r\n for (i = 0; i < data.length; i++) {\r\n stepData = data[i];\r\n\r\n // first check if the converter in this step is newer as older converters don't even support the beneficiary argument\r\n if (stepData.isV28OrHigherConverter) {\r\n // if affiliate fee is processed in this step, beneficiary is the network contract\r\n if (stepData.processAffiliateFee)\r\n stepData.beneficiary = payable(address(this));\r\n // if it's the last step, beneficiary is the final beneficiary\r\n else if (i == data.length - 1)\r\n stepData.beneficiary = _beneficiary;\r\n // if the converter in the next step is newer, beneficiary is the next converter\r\n else if (data[i + 1].isV28OrHigherConverter)\r\n stepData.beneficiary = address(data[i + 1].converter);\r\n // the converter in the next step is older, beneficiary is the network contract\r\n else\r\n stepData.beneficiary = payable(address(this));\r\n }\r\n else {\r\n // converter in this step is older, beneficiary is the network contract\r\n stepData.beneficiary = payable(address(this));\r\n }\r\n }\r\n\r\n return data;\r\n }\r\n\r\n /**\r\n * @dev utility, checks whether allowance for the given spender exists and approves one if it doesn't.\r\n * Note that we use the non standard erc-20 interface in which `approve` has no return value so that\r\n * this function will work for both standard and non standard tokens\r\n *\r\n * @param _token token to check the allowance in\r\n * @param _spender approved address\r\n * @param _value allowance amount\r\n */\r\n function ensureAllowance(IERC20Token _token, address _spender, uint256 _value) private {\r\n uint256 allowance = _token.allowance(address(this), _spender);\r\n if (allowance < _value) {\r\n if (allowance > 0)\r\n safeApprove(_token, _spender, 0);\r\n safeApprove(_token, _spender, _value);\r\n }\r\n }\r\n\r\n // legacy - returns the address of an EtherToken used by the converter\r\n function getConverterEtherTokenAddress(IConverter _converter) private view returns (IERC20Token) {\r\n uint256 reserveCount = _converter.connectorTokenCount();\r\n for (uint256 i = 0; i < reserveCount; i++) {\r\n IERC20Token reserveTokenAddress = _converter.connectorTokens(i);\r\n if (etherTokens[reserveTokenAddress])\r\n return reserveTokenAddress;\r\n }\r\n\r\n return ETH_RESERVE_ADDRESS;\r\n }\r\n\r\n // legacy - if the token is an ether token, returns the ETH reserve address\r\n // used by the converter, otherwise returns the input token address\r\n function getConverterTokenAddress(IConverter _converter, IERC20Token _token) private view returns (IERC20Token) {\r\n if (!etherTokens[_token])\r\n return _token;\r\n\r\n if (isV28OrHigherConverter(_converter))\r\n return ETH_RESERVE_ADDRESS;\r\n\r\n return getConverterEtherTokenAddress(_converter);\r\n }\r\n\r\n bytes4 private constant GET_RETURN_FUNC_SELECTOR = bytes4(keccak256(\"getReturn(address,address,uint256)\"));\r\n\r\n // using a static call to get the return from older converters\r\n function getReturn(IConverter _dest, IERC20Token _sourceToken, IERC20Token _targetToken, uint256 _amount) internal view returns (uint256, uint256) {\r\n bytes memory data = abi.encodeWithSelector(GET_RETURN_FUNC_SELECTOR, _sourceToken, _targetToken, _amount);\r\n (bool success, bytes memory returnData) = address(_dest).staticcall(data);\r\n\r\n if (success) {\r\n if (returnData.length == 64) {\r\n return abi.decode(returnData, (uint256, uint256));\r\n }\r\n\r\n if (returnData.length == 32) {\r\n return (abi.decode(returnData, (uint256)), 0);\r\n }\r\n }\r\n\r\n return (0, 0);\r\n }\r\n\r\n bytes4 private constant IS_V28_OR_HIGHER_FUNC_SELECTOR = bytes4(keccak256(\"isV28OrHigher()\"));\r\n\r\n // using a static call to identify converter version\r\n // can't rely on the version number since the function had a different signature in older converters\r\n function isV28OrHigherConverter(IConverter _converter) internal view returns (bool) {\r\n bytes memory data = abi.encodeWithSelector(IS_V28_OR_HIGHER_FUNC_SELECTOR);\r\n (bool success, bytes memory returnData) = address(_converter).staticcall{ gas: 4000 }(data);\r\n\r\n if (success && returnData.length == 32) {\r\n return abi.decode(returnData, (bool));\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * @dev deprecated, backward compatibility\r\n */\r\n function getReturnByPath(address[] memory _path, uint256 _amount) public view returns (uint256, uint256) {\r\n return (rateByPath(_path, _amount), 0);\r\n }\r\n\r\n /**\r\n * @dev deprecated, backward compatibility\r\n */\r\n function convert(address[] memory _path, uint256 _amount, uint256 _minReturn) public payable returns (uint256) {\r\n return convertByPath(_path, _amount, _minReturn, address(0), address(0), 0);\r\n }\r\n\r\n /**\r\n * @dev deprecated, backward compatibility\r\n */\r\n function convert2(\r\n address[] memory _path,\r\n uint256 _amount,\r\n uint256 _minReturn,\r\n address _affiliateAccount,\r\n uint256 _affiliateFee\r\n )\r\n public\r\n payable\r\n returns (uint256)\r\n {\r\n return convertByPath(_path, _amount, _minReturn, address(0), _affiliateAccount, _affiliateFee);\r\n }\r\n\r\n /**\r\n * @dev deprecated, backward compatibility\r\n */\r\n function convertFor(address[] memory _path, uint256 _amount, uint256 _minReturn, address payable _beneficiary) public payable returns (uint256) {\r\n return convertByPath(_path, _amount, _minReturn, _beneficiary, address(0), 0);\r\n }\r\n\r\n /**\r\n * @dev deprecated, backward compatibility\r\n */\r\n function convertFor2(\r\n address[] memory _path,\r\n uint256 _amount,\r\n uint256 _minReturn,\r\n address payable _beneficiary,\r\n address _affiliateAccount,\r\n uint256 _affiliateFee\r\n )\r\n public\r\n payable\r\n greaterThanZero(_minReturn)\r\n returns (uint256)\r\n {\r\n return convertByPath(_path, _amount, _minReturn, _beneficiary, _affiliateAccount, _affiliateFee);\r\n }\r\n\r\n /**\r\n * @dev deprecated, backward compatibility\r\n */\r\n function claimAndConvert(address[] memory _path, uint256 _amount, uint256 _minReturn) public returns (uint256) {\r\n return convertByPath(_path, _amount, _minReturn, address(0), address(0), 0);\r\n }\r\n\r\n /**\r\n * @dev deprecated, backward compatibility\r\n */\r\n function claimAndConvert2(\r\n address[] memory _path,\r\n uint256 _amount,\r\n uint256 _minReturn,\r\n address _affiliateAccount,\r\n uint256 _affiliateFee\r\n )\r\n public\r\n returns (uint256)\r\n {\r\n return convertByPath(_path, _amount, _minReturn, address(0), _affiliateAccount, _affiliateFee);\r\n }\r\n\r\n /**\r\n * @dev deprecated, backward compatibility\r\n */\r\n function claimAndConvertFor(address[] memory _path, uint256 _amount, uint256 _minReturn, address payable _beneficiary) public returns (uint256) {\r\n return convertByPath(_path, _amount, _minReturn, _beneficiary, address(0), 0);\r\n }\r\n\r\n /**\r\n * @dev deprecated, backward compatibility\r\n */\r\n function claimAndConvertFor2(\r\n address[] memory _path,\r\n uint256 _amount,\r\n uint256 _minReturn,\r\n address payable _beneficiary,\r\n address _affiliateAccount,\r\n uint256 _affiliateFee\r\n )\r\n public\r\n returns (uint256)\r\n {\r\n return convertByPath(_path, _amount, _minReturn, _beneficiary, _affiliateAccount, _affiliateFee);\r\n }\r\n}\r\n",
|
|
"sourcePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/BancorNetwork.sol",
|
|
"ast": {
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/BancorNetwork.sol",
|
|
"exportedSymbols": {
|
|
"BancorNetwork": [
|
|
1976
|
|
],
|
|
"ILegacyConverter": [
|
|
26
|
|
]
|
|
},
|
|
"id": 1977,
|
|
"license": "SEE LICENSE IN LICENSE",
|
|
"nodeType": "SourceUnit",
|
|
"nodes": [
|
|
{
|
|
"id": 1,
|
|
"literals": [
|
|
"solidity",
|
|
"0.6",
|
|
".12"
|
|
],
|
|
"nodeType": "PragmaDirective",
|
|
"src": "52:23:0"
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/IConversionPathFinder.sol",
|
|
"file": "./IConversionPathFinder.sol",
|
|
"id": 2,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1977,
|
|
"sourceUnit": 2547,
|
|
"src": "77:37:0",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/IConverter.sol",
|
|
"file": "./converter/interfaces/IConverter.sol",
|
|
"id": 3,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1977,
|
|
"sourceUnit": 13341,
|
|
"src": "116:47:0",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/IConverterAnchor.sol",
|
|
"file": "./converter/interfaces/IConverterAnchor.sol",
|
|
"id": 4,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1977,
|
|
"sourceUnit": 13350,
|
|
"src": "165:53:0",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/IBancorFormula.sol",
|
|
"file": "./converter/interfaces/IBancorFormula.sol",
|
|
"id": 5,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1977,
|
|
"sourceUnit": 13178,
|
|
"src": "220:51:0",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/ContractRegistryClient.sol",
|
|
"file": "./utility/ContractRegistryClient.sol",
|
|
"id": 6,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1977,
|
|
"sourceUnit": 21720,
|
|
"src": "273:46:0",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/ReentrancyGuard.sol",
|
|
"file": "./utility/ReentrancyGuard.sol",
|
|
"id": 7,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1977,
|
|
"sourceUnit": 22243,
|
|
"src": "321:39:0",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/TokenHolder.sol",
|
|
"file": "./utility/TokenHolder.sol",
|
|
"id": 8,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1977,
|
|
"sourceUnit": 22576,
|
|
"src": "362:35:0",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/SafeMath.sol",
|
|
"file": "./utility/SafeMath.sol",
|
|
"id": 9,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1977,
|
|
"sourceUnit": 22355,
|
|
"src": "399:32:0",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/token/interfaces/IEtherToken.sol",
|
|
"file": "./token/interfaces/IEtherToken.sol",
|
|
"id": 10,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1977,
|
|
"sourceUnit": 21154,
|
|
"src": "433:44:0",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/token/interfaces/ISmartToken.sol",
|
|
"file": "./token/interfaces/ISmartToken.sol",
|
|
"id": 11,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1977,
|
|
"sourceUnit": 21183,
|
|
"src": "479:44:0",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/bancorx/interfaces/IBancorX.sol",
|
|
"file": "./bancorx/interfaces/IBancorX.sol",
|
|
"id": 12,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1977,
|
|
"sourceUnit": 3552,
|
|
"src": "525:43:0",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"abstract": false,
|
|
"baseContracts": [],
|
|
"contractDependencies": [],
|
|
"contractKind": "interface",
|
|
"documentation": null,
|
|
"fullyImplemented": false,
|
|
"id": 26,
|
|
"linearizedBaseContracts": [
|
|
26
|
|
],
|
|
"name": "ILegacyConverter",
|
|
"nodeType": "ContractDefinition",
|
|
"nodes": [
|
|
{
|
|
"body": null,
|
|
"documentation": null,
|
|
"functionSelector": "5e5144eb",
|
|
"id": 25,
|
|
"implemented": false,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "change",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 21,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 14,
|
|
"mutability": "mutable",
|
|
"name": "_sourceToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 25,
|
|
"src": "683:24:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 13,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "683:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 16,
|
|
"mutability": "mutable",
|
|
"name": "_targetToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 25,
|
|
"src": "709:24:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 15,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "709:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 18,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 25,
|
|
"src": "735:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 17,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "735:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 20,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 25,
|
|
"src": "752:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 19,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "752:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "682:89:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 24,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 23,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 25,
|
|
"src": "790:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 22,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "790:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "789:9:0"
|
|
},
|
|
"scope": 26,
|
|
"src": "667:132:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "external"
|
|
}
|
|
],
|
|
"scope": 1977,
|
|
"src": "633:169:0"
|
|
},
|
|
{
|
|
"abstract": false,
|
|
"baseContracts": [
|
|
{
|
|
"arguments": null,
|
|
"baseName": {
|
|
"contractScope": null,
|
|
"id": 28,
|
|
"name": "TokenHolder",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22575,
|
|
"src": "1982:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_TokenHolder_$22575",
|
|
"typeString": "contract TokenHolder"
|
|
}
|
|
},
|
|
"id": 29,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "1982:11:0"
|
|
},
|
|
{
|
|
"arguments": null,
|
|
"baseName": {
|
|
"contractScope": null,
|
|
"id": 30,
|
|
"name": "ContractRegistryClient",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21719,
|
|
"src": "1995:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ContractRegistryClient_$21719",
|
|
"typeString": "contract ContractRegistryClient"
|
|
}
|
|
},
|
|
"id": 31,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "1995:22:0"
|
|
},
|
|
{
|
|
"arguments": null,
|
|
"baseName": {
|
|
"contractScope": null,
|
|
"id": 32,
|
|
"name": "ReentrancyGuard",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22242,
|
|
"src": "2019:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ReentrancyGuard_$22242",
|
|
"typeString": "contract ReentrancyGuard"
|
|
}
|
|
},
|
|
"id": 33,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "2019:15:0"
|
|
}
|
|
],
|
|
"contractDependencies": [
|
|
21719,
|
|
21818,
|
|
22242,
|
|
22526,
|
|
22575,
|
|
22661,
|
|
22847,
|
|
22907
|
|
],
|
|
"contractKind": "contract",
|
|
"documentation": {
|
|
"id": 27,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "806:1148:0",
|
|
"text": " @dev The BancorNetwork contract is the main entry point for Bancor token conversions.\n It also allows for the conversion of any token in the Bancor Network to any other token in a single\n transaction by providing a conversion path.\n A note on Conversion Path: Conversion path is a data structure that is used when converting a token\n to another token in the Bancor Network, when the conversion cannot necessarily be done by a single\n converter and might require multiple 'hops'.\n The path defines which converters should be used and what kind of conversion should be done in each step.\n The path format doesn't include complex structure; instead, it is represented by a single array\n in which each 'hop' is represented by a 2-tuple - converter anchor & target token.\n In addition, the first element is always the source token.\n The converter anchor is only used as a pointer to a converter (since converter addresses are more\n likely to change as opposed to anchor addresses).\n Format:\n [source token, converter anchor, target token, converter anchor, target token...]"
|
|
},
|
|
"fullyImplemented": true,
|
|
"id": 1976,
|
|
"linearizedBaseContracts": [
|
|
1976,
|
|
22242,
|
|
21719,
|
|
22575,
|
|
22661,
|
|
21818,
|
|
22526,
|
|
22907,
|
|
22847
|
|
],
|
|
"name": "BancorNetwork",
|
|
"nodeType": "ContractDefinition",
|
|
"nodes": [
|
|
{
|
|
"id": 36,
|
|
"libraryName": {
|
|
"contractScope": null,
|
|
"id": 34,
|
|
"name": "SafeMath",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22354,
|
|
"src": "2048:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_SafeMath_$22354",
|
|
"typeString": "library SafeMath"
|
|
}
|
|
},
|
|
"nodeType": "UsingForDirective",
|
|
"src": "2042:27:0",
|
|
"typeName": {
|
|
"id": 35,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2061:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"constant": true,
|
|
"id": 39,
|
|
"mutability": "constant",
|
|
"name": "PPM_RESOLUTION",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1976,
|
|
"src": "2077:49:0",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 37,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2077:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31303030303030",
|
|
"id": 38,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2119:7:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1000000_by_1",
|
|
"typeString": "int_const 1000000"
|
|
},
|
|
"value": "1000000"
|
|
},
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"id": 44,
|
|
"mutability": "constant",
|
|
"name": "ETH_RESERVE_ADDRESS",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1976,
|
|
"src": "2133:106:0",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 40,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "2133:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545",
|
|
"id": 42,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2196:42:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"id": 41,
|
|
"name": "IERC20Token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21127,
|
|
"src": "2184:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "type(contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 43,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2184:55:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"canonicalName": "BancorNetwork.ConversionStep",
|
|
"id": 59,
|
|
"members": [
|
|
{
|
|
"constant": false,
|
|
"id": 46,
|
|
"mutability": "mutable",
|
|
"name": "converter",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 59,
|
|
"src": "2281:20:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 45,
|
|
"name": "IConverter",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13340,
|
|
"src": "2281:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 48,
|
|
"mutability": "mutable",
|
|
"name": "anchor",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 59,
|
|
"src": "2312:23:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 47,
|
|
"name": "IConverterAnchor",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13349,
|
|
"src": "2312:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 50,
|
|
"mutability": "mutable",
|
|
"name": "sourceToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 59,
|
|
"src": "2346:23:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 49,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "2346:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 52,
|
|
"mutability": "mutable",
|
|
"name": "targetToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 59,
|
|
"src": "2380:23:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 51,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "2380:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 54,
|
|
"mutability": "mutable",
|
|
"name": "beneficiary",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 59,
|
|
"src": "2414:27:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"typeName": {
|
|
"id": 53,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2414:15:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 56,
|
|
"mutability": "mutable",
|
|
"name": "isV28OrHigherConverter",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 59,
|
|
"src": "2452:27:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 55,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2452:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 58,
|
|
"mutability": "mutable",
|
|
"name": "processAffiliateFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 59,
|
|
"src": "2490:24:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 57,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2490:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"name": "ConversionStep",
|
|
"nodeType": "StructDefinition",
|
|
"scope": 1976,
|
|
"src": "2248:274:0",
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"functionSelector": "5d732ff2",
|
|
"id": 62,
|
|
"mutability": "mutable",
|
|
"name": "maxAffiliateFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1976,
|
|
"src": "2530:38:0",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 60,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2530:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"hexValue": "3330303030",
|
|
"id": 61,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2563:5:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_30000_by_1",
|
|
"typeString": "int_const 30000"
|
|
},
|
|
"value": "30000"
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"functionSelector": "8077ccf7",
|
|
"id": 66,
|
|
"mutability": "mutable",
|
|
"name": "etherTokens",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1976,
|
|
"src": "2606:48:0",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_bool_$",
|
|
"typeString": "mapping(contract IERC20Token => bool)"
|
|
},
|
|
"typeName": {
|
|
"id": 65,
|
|
"keyType": {
|
|
"contractScope": null,
|
|
"id": 63,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "2615:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "Mapping",
|
|
"src": "2606:29:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_bool_$",
|
|
"typeString": "mapping(contract IERC20Token => bool)"
|
|
},
|
|
"valueType": {
|
|
"id": 64,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2630:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"documentation": {
|
|
"id": 67,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "2703:441:0",
|
|
"text": " @dev triggered when a conversion between two tokens occurs\n @param _smartToken anchor governed by the converter\n @param _fromToken source ERC20 token\n @param _toToken target ERC20 token\n @param _fromAmount amount converted, in the source token\n @param _toAmount amount returned, minus conversion fee\n @param _trader wallet that initiated the trade"
|
|
},
|
|
"id": 81,
|
|
"name": "Conversion",
|
|
"nodeType": "EventDefinition",
|
|
"parameters": {
|
|
"id": 80,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 69,
|
|
"indexed": true,
|
|
"mutability": "mutable",
|
|
"name": "_smartToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 81,
|
|
"src": "3177:36:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 68,
|
|
"name": "IConverterAnchor",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13349,
|
|
"src": "3177:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 71,
|
|
"indexed": true,
|
|
"mutability": "mutable",
|
|
"name": "_fromToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 81,
|
|
"src": "3224:30:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 70,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "3224:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 73,
|
|
"indexed": true,
|
|
"mutability": "mutable",
|
|
"name": "_toToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 81,
|
|
"src": "3265:28:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 72,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "3265:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 75,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "_fromAmount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 81,
|
|
"src": "3304:19:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 74,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3304:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 77,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "_toAmount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 81,
|
|
"src": "3334:17:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 76,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3334:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 79,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "_trader",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 81,
|
|
"src": "3362:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 78,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3362:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "3166:218:0"
|
|
},
|
|
"src": "3150:235:0"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 96,
|
|
"nodeType": "Block",
|
|
"src": "3625:58:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 94,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 90,
|
|
"name": "etherTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 66,
|
|
"src": "3636:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_bool_$",
|
|
"typeString": "mapping(contract IERC20Token => bool)"
|
|
}
|
|
},
|
|
"id": 92,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 91,
|
|
"name": "ETH_RESERVE_ADDRESS",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 44,
|
|
"src": "3648:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"nodeType": "IndexAccess",
|
|
"src": "3636:32:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "74727565",
|
|
"id": 93,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3671:4:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "true"
|
|
},
|
|
"src": "3636:39:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 95,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "3636:39:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 82,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "3393:144:0",
|
|
"text": " @dev initializes a new BancorNetwork instance\n @param _registry address of a contract registry contract"
|
|
},
|
|
"id": 97,
|
|
"implemented": true,
|
|
"kind": "constructor",
|
|
"modifiers": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 87,
|
|
"name": "_registry",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 84,
|
|
"src": "3607:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IContractRegistry_$22831",
|
|
"typeString": "contract IContractRegistry"
|
|
}
|
|
}
|
|
],
|
|
"id": 88,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 86,
|
|
"name": "ContractRegistryClient",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21719,
|
|
"src": "3584:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_ContractRegistryClient_$21719_$",
|
|
"typeString": "type(contract ContractRegistryClient)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "3584:33:0"
|
|
}
|
|
],
|
|
"name": "",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 85,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 84,
|
|
"mutability": "mutable",
|
|
"name": "_registry",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 97,
|
|
"src": "3555:27:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IContractRegistry_$22831",
|
|
"typeString": "contract IContractRegistry"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 83,
|
|
"name": "IContractRegistry",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22831,
|
|
"src": "3555:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IContractRegistry_$22831",
|
|
"typeString": "contract IContractRegistry"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "3554:29:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 89,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "3625:0:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "3543:140:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 116,
|
|
"nodeType": "Block",
|
|
"src": "3935:136:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 108,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 106,
|
|
"name": "_maxAffiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 100,
|
|
"src": "3954:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 107,
|
|
"name": "PPM_RESOLUTION",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 39,
|
|
"src": "3974:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "3954:34:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f414646494c494154455f464545",
|
|
"id": 109,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3990:27:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_5421a6ae0116cbc310697cd7899b77d6a7bc1fb10cd896c84c63fd20f8fbd382",
|
|
"typeString": "literal_string \"ERR_INVALID_AFFILIATE_FEE\""
|
|
},
|
|
"value": "ERR_INVALID_AFFILIATE_FEE"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_5421a6ae0116cbc310697cd7899b77d6a7bc1fb10cd896c84c63fd20f8fbd382",
|
|
"typeString": "literal_string \"ERR_INVALID_AFFILIATE_FEE\""
|
|
}
|
|
],
|
|
"id": 105,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "3946:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 110,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3946:72:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 111,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "3946:72:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 114,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 112,
|
|
"name": "maxAffiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 62,
|
|
"src": "4029:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 113,
|
|
"name": "_maxAffiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 100,
|
|
"src": "4047:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "4029:34:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 115,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "4029:34:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 98,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "3691:144:0",
|
|
"text": " @dev allows the owner to update the maximum affiliate-fee\n @param _maxAffiliateFee maximum affiliate-fee"
|
|
},
|
|
"functionSelector": "f3bc7d2a",
|
|
"id": 117,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 103,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 102,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "3920:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "3920:9:0"
|
|
}
|
|
],
|
|
"name": "setMaxAffiliateFee",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 101,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 100,
|
|
"mutability": "mutable",
|
|
"name": "_maxAffiliateFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 117,
|
|
"src": "3869:24:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 99,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3869:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "3868:26:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 104,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "3935:0:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "3841:230:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 145,
|
|
"nodeType": "Block",
|
|
"src": "4474:50:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 143,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 139,
|
|
"name": "etherTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 66,
|
|
"src": "4485:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_bool_$",
|
|
"typeString": "mapping(contract IERC20Token => bool)"
|
|
}
|
|
},
|
|
"id": 141,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 140,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 120,
|
|
"src": "4497:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IEtherToken_$21153",
|
|
"typeString": "contract IEtherToken"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"nodeType": "IndexAccess",
|
|
"src": "4485:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 142,
|
|
"name": "_register",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 122,
|
|
"src": "4507:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "4485:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 144,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "4485:31:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 118,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "4079:212:0",
|
|
"text": " @dev allows the owner to register/unregister ether tokens\n @param _token ether token contract address\n @param _register true to register, false to unregister"
|
|
},
|
|
"functionSelector": "02ef521e",
|
|
"id": 146,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 125,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 124,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "4386:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "4386:9:0"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 129,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 120,
|
|
"src": "4426:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IEtherToken_$21153",
|
|
"typeString": "contract IEtherToken"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IEtherToken_$21153",
|
|
"typeString": "contract IEtherToken"
|
|
}
|
|
],
|
|
"id": 128,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "4418:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 127,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4418:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 130,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4418:15:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"id": 131,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 126,
|
|
"name": "validAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22618,
|
|
"src": "4405:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_address_$",
|
|
"typeString": "modifier (address)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "4405:29:0"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 135,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 120,
|
|
"src": "4460:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IEtherToken_$21153",
|
|
"typeString": "contract IEtherToken"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IEtherToken_$21153",
|
|
"typeString": "contract IEtherToken"
|
|
}
|
|
],
|
|
"id": 134,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "4452:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 133,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4452:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 136,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4452:15:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"id": 137,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 132,
|
|
"name": "notThis",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22644,
|
|
"src": "4444:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_address_$",
|
|
"typeString": "modifier (address)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "4444:24:0"
|
|
}
|
|
],
|
|
"name": "registerEtherToken",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 123,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 120,
|
|
"mutability": "mutable",
|
|
"name": "_token",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 146,
|
|
"src": "4325:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IEtherToken_$21153",
|
|
"typeString": "contract IEtherToken"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 119,
|
|
"name": "IEtherToken",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21153,
|
|
"src": "4325:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IEtherToken_$21153",
|
|
"typeString": "contract IEtherToken"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 122,
|
|
"mutability": "mutable",
|
|
"name": "_register",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 146,
|
|
"src": "4345:14:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 121,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4345:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "4324:36:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 138,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "4474:0:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "4297:227:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 171,
|
|
"nodeType": "Block",
|
|
"src": "5021:175:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
158
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 158,
|
|
"mutability": "mutable",
|
|
"name": "pathFinder",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 171,
|
|
"src": "5032:32:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConversionPathFinder_$2546",
|
|
"typeString": "contract IConversionPathFinder"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 157,
|
|
"name": "IConversionPathFinder",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 2546,
|
|
"src": "5032:21:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConversionPathFinder_$2546",
|
|
"typeString": "contract IConversionPathFinder"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 164,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 161,
|
|
"name": "CONVERSION_PATH_FINDER",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21539,
|
|
"src": "5099:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
],
|
|
"id": 160,
|
|
"name": "addressOf",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21718,
|
|
"src": "5089:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
|
|
"typeString": "function (bytes32) view returns (address)"
|
|
}
|
|
},
|
|
"id": 162,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "5089:33:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 159,
|
|
"name": "IConversionPathFinder",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2546,
|
|
"src": "5067:21:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IConversionPathFinder_$2546_$",
|
|
"typeString": "type(contract IConversionPathFinder)"
|
|
}
|
|
},
|
|
"id": 163,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "5067:56:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConversionPathFinder_$2546",
|
|
"typeString": "contract IConversionPathFinder"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "5032:91:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 167,
|
|
"name": "_sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 149,
|
|
"src": "5161:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 168,
|
|
"name": "_targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 151,
|
|
"src": "5175:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 165,
|
|
"name": "pathFinder",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 158,
|
|
"src": "5141:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConversionPathFinder_$2546",
|
|
"typeString": "contract IConversionPathFinder"
|
|
}
|
|
},
|
|
"id": 166,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "findPath",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 2545,
|
|
"src": "5141:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_contract$_IERC20Token_$21127_$_t_contract$_IERC20Token_$21127_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
|
|
"typeString": "function (contract IERC20Token,contract IERC20Token) view external returns (address[] memory)"
|
|
}
|
|
},
|
|
"id": 169,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "5141:47:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"functionReturnParameters": 156,
|
|
"id": 170,
|
|
"nodeType": "Return",
|
|
"src": "5134:54:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 147,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "4532:368:0",
|
|
"text": " @dev returns the conversion path between two tokens in the network\n note that this method is quite expensive in terms of gas and should generally be called off-chain\n @param _sourceToken source token address\n @param _targetToken target token address\n @return conversion path between the two tokens"
|
|
},
|
|
"functionSelector": "d734fa19",
|
|
"id": 172,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "conversionPath",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 152,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 149,
|
|
"mutability": "mutable",
|
|
"name": "_sourceToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 172,
|
|
"src": "4930:24:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 148,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "4930:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 151,
|
|
"mutability": "mutable",
|
|
"name": "_targetToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 172,
|
|
"src": "4956:24:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 150,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "4956:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "4929:52:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 156,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 155,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 172,
|
|
"src": "5003:16:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 153,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5003:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 154,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "5003:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "5002:18:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "4906:290:0",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 461,
|
|
"nodeType": "Block",
|
|
"src": "5682:2762:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
184
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 184,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 461,
|
|
"src": "5693:14:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 183,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5693:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 185,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "5693:14:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
187
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 187,
|
|
"mutability": "mutable",
|
|
"name": "fee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 461,
|
|
"src": "5718:11:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 186,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5718:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 188,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "5718:11:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
190
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 190,
|
|
"mutability": "mutable",
|
|
"name": "supply",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 461,
|
|
"src": "5740:14:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 189,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5740:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 191,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "5740:14:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
193
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 193,
|
|
"mutability": "mutable",
|
|
"name": "balance",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 461,
|
|
"src": "5765:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 192,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5765:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 194,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "5765:15:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
196
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 196,
|
|
"mutability": "mutable",
|
|
"name": "weight",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 461,
|
|
"src": "5791:13:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 195,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5791:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 197,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "5791:13:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
199
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 199,
|
|
"mutability": "mutable",
|
|
"name": "converter",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 461,
|
|
"src": "5815:20:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 198,
|
|
"name": "IConverter",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13340,
|
|
"src": "5815:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 200,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "5815:20:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
202
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 202,
|
|
"mutability": "mutable",
|
|
"name": "formula",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 461,
|
|
"src": "5846:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorFormula_$13177",
|
|
"typeString": "contract IBancorFormula"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 201,
|
|
"name": "IBancorFormula",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13177,
|
|
"src": "5846:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorFormula_$13177",
|
|
"typeString": "contract IBancorFormula"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 208,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 205,
|
|
"name": "BANCOR_FORMULA",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21533,
|
|
"src": "5896:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
],
|
|
"id": 204,
|
|
"name": "addressOf",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21718,
|
|
"src": "5886:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
|
|
"typeString": "function (bytes32) view returns (address)"
|
|
}
|
|
},
|
|
"id": 206,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "5886:25:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 203,
|
|
"name": "IBancorFormula",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 13177,
|
|
"src": "5871:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IBancorFormula_$13177_$",
|
|
"typeString": "type(contract IBancorFormula)"
|
|
}
|
|
},
|
|
"id": 207,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "5871:41:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorFormula_$13177",
|
|
"typeString": "contract IBancorFormula"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "5846:66:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 211,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 209,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "5925:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 210,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 178,
|
|
"src": "5934:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "5925:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 212,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "5925:16:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 224,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 217,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 214,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 176,
|
|
"src": "6034:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 215,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "6034:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 216,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6049:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"src": "6034:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 223,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 221,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 218,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 176,
|
|
"src": "6054:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 219,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "6054:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "%",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 220,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6069:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"src": "6054:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 222,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6074:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "6054:21:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "6034:41:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f50415448",
|
|
"id": 225,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6077:18:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_db637d0ca669449dd352e97481d5a38953b8126ef5f657bdd830d33ff33d5b16",
|
|
"typeString": "literal_string \"ERR_INVALID_PATH\""
|
|
},
|
|
"value": "ERR_INVALID_PATH"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_db637d0ca669449dd352e97481d5a38953b8126ef5f657bdd830d33ff33d5b16",
|
|
"typeString": "literal_string \"ERR_INVALID_PATH\""
|
|
}
|
|
],
|
|
"id": 213,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "6026:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 226,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6026:70:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 227,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6026:70:0"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 457,
|
|
"nodeType": "Block",
|
|
"src": "6200:2211:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
241
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 241,
|
|
"mutability": "mutable",
|
|
"name": "sourceToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 457,
|
|
"src": "6215:23:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 240,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "6215:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 249,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 243,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 176,
|
|
"src": "6253:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 247,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 246,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 244,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 229,
|
|
"src": "6259:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 245,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6263:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"src": "6259:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "6253:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 242,
|
|
"name": "IERC20Token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21127,
|
|
"src": "6241:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "type(contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 248,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6241:25:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "6215:51:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
251
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 251,
|
|
"mutability": "mutable",
|
|
"name": "anchor",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 457,
|
|
"src": "6281:14:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 250,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "6281:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 257,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 252,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 176,
|
|
"src": "6298:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 256,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 255,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 253,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 229,
|
|
"src": "6304:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 254,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6308:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "6304:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "6298:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "6281:29:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
259
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 259,
|
|
"mutability": "mutable",
|
|
"name": "targetToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 457,
|
|
"src": "6325:23:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 258,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "6325:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 265,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 261,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 176,
|
|
"src": "6363:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 263,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 262,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 229,
|
|
"src": "6369:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "6363:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 260,
|
|
"name": "IERC20Token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21127,
|
|
"src": "6351:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "type(contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 264,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6351:21:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "6325:47:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 277,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 266,
|
|
"name": "converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 199,
|
|
"src": "6389:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 271,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 251,
|
|
"src": "6437:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 270,
|
|
"name": "IConverterAnchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 13349,
|
|
"src": "6420:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$13349_$",
|
|
"typeString": "type(contract IConverterAnchor)"
|
|
}
|
|
},
|
|
"id": 272,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6420:24:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"id": 273,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "owner",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22838,
|
|
"src": "6420:30:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
|
|
"typeString": "function () view external returns (address)"
|
|
}
|
|
},
|
|
"id": 274,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6420:32:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 269,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "6412:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_payable_$",
|
|
"typeString": "type(address payable)"
|
|
},
|
|
"typeName": {
|
|
"id": 268,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "6412:8:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 275,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6412:41:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"id": 267,
|
|
"name": "IConverter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 13340,
|
|
"src": "6401:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IConverter_$13340_$",
|
|
"typeString": "type(contract IConverter)"
|
|
}
|
|
},
|
|
"id": 276,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6401:53:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"src": "6389:65:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"id": 278,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6389:65:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 284,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 279,
|
|
"name": "sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 241,
|
|
"src": "6510:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 281,
|
|
"name": "converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 199,
|
|
"src": "6549:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 282,
|
|
"name": "sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 241,
|
|
"src": "6560:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 280,
|
|
"name": "getConverterTokenAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1579,
|
|
"src": "6524:24:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$13340_$_t_contract$_IERC20Token_$21127_$returns$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "function (contract IConverter,contract IERC20Token) view returns (contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 283,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6524:48:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"src": "6510:62:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"id": 285,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6510:62:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 291,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 286,
|
|
"name": "targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 259,
|
|
"src": "6587:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 288,
|
|
"name": "converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 199,
|
|
"src": "6626:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 289,
|
|
"name": "targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 259,
|
|
"src": "6637:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 287,
|
|
"name": "getConverterTokenAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1579,
|
|
"src": "6601:24:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$13340_$_t_contract$_IERC20Token_$21127_$returns$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "function (contract IConverter,contract IERC20Token) view returns (contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 290,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6601:48:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"src": "6587:62:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"id": 292,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6587:62:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 298,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 295,
|
|
"name": "targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 259,
|
|
"src": "6678:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 294,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "6670:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 293,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "6670:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 296,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6670:20:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 297,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 251,
|
|
"src": "6694:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "6670:30:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 373,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 370,
|
|
"name": "sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 241,
|
|
"src": "7480:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 369,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "7472:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 368,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "7472:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 371,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7472:20:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 372,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 251,
|
|
"src": "7496:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "7472:30:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"id": 454,
|
|
"nodeType": "Block",
|
|
"src": "8267:133:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 452,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"components": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 443,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "8315:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 444,
|
|
"name": "fee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 187,
|
|
"src": "8323:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"id": 445,
|
|
"isConstant": false,
|
|
"isInlineArray": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"nodeType": "TupleExpression",
|
|
"src": "8314:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
|
|
"typeString": "tuple(uint256,uint256)"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 447,
|
|
"name": "converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 199,
|
|
"src": "8340:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 448,
|
|
"name": "sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 241,
|
|
"src": "8351:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 449,
|
|
"name": "targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 259,
|
|
"src": "8364:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 450,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "8377:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 446,
|
|
"name": "getReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1664,
|
|
"src": "8330:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$13340_$_t_contract$_IERC20Token_$21127_$_t_contract$_IERC20Token_$21127_$_t_uint256_$returns$_t_uint256_$_t_uint256_$",
|
|
"typeString": "function (contract IConverter,contract IERC20Token,contract IERC20Token,uint256) view returns (uint256,uint256)"
|
|
}
|
|
},
|
|
"id": 451,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "8330:54:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
|
|
"typeString": "tuple(uint256,uint256)"
|
|
}
|
|
},
|
|
"src": "8314:70:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 453,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "8314:70:0"
|
|
}
|
|
]
|
|
},
|
|
"id": 455,
|
|
"nodeType": "IfStatement",
|
|
"src": "7468:932:0",
|
|
"trueBody": {
|
|
"id": 442,
|
|
"nodeType": "Block",
|
|
"src": "7504:744:0",
|
|
"statements": [
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 384,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 376,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 374,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 229,
|
|
"src": "7616:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "33",
|
|
"id": 375,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "7620:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_3_by_1",
|
|
"typeString": "int_const 3"
|
|
},
|
|
"value": "3"
|
|
},
|
|
"src": "7616:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "||",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 383,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 377,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 251,
|
|
"src": "7625:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 378,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 176,
|
|
"src": "7635:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 382,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 381,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 379,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 229,
|
|
"src": "7641:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "33",
|
|
"id": 380,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "7645:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_3_by_1",
|
|
"typeString": "int_const 3"
|
|
},
|
|
"value": "3"
|
|
},
|
|
"src": "7641:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "7635:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "7625:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "7616:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 393,
|
|
"nodeType": "IfStatement",
|
|
"src": "7612:100:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 391,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 385,
|
|
"name": "supply",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 190,
|
|
"src": "7670:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 387,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 251,
|
|
"src": "7691:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 386,
|
|
"name": "ISmartToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21182,
|
|
"src": "7679:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_ISmartToken_$21182_$",
|
|
"typeString": "type(contract ISmartToken)"
|
|
}
|
|
},
|
|
"id": 388,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7679:19:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ISmartToken_$21182",
|
|
"typeString": "contract ISmartToken"
|
|
}
|
|
},
|
|
"id": 389,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "totalSupply",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21081,
|
|
"src": "7679:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
|
|
"typeString": "function () view external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 390,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7679:33:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "7670:42:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 392,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7670:42:0"
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 399,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 394,
|
|
"name": "balance",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 193,
|
|
"src": "7789:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 397,
|
|
"name": "targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 259,
|
|
"src": "7829:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 395,
|
|
"name": "converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 199,
|
|
"src": "7799:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"id": 396,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "getConnectorBalance",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 13327,
|
|
"src": "7799:29:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_contract$_IERC20Token_$21127_$returns$_t_uint256_$",
|
|
"typeString": "function (contract IERC20Token) view external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 398,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7799:42:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "7789:52:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 400,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7789:52:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 407,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"components": [
|
|
null,
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 401,
|
|
"name": "weight",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 196,
|
|
"src": "7863:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
"id": 402,
|
|
"isConstant": false,
|
|
"isInlineArray": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"nodeType": "TupleExpression",
|
|
"src": "7860:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$_t_uint32_$__$__$__$",
|
|
"typeString": "tuple(,uint32,,,)"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 405,
|
|
"name": "targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 259,
|
|
"src": "7900:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 403,
|
|
"name": "converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 199,
|
|
"src": "7879:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"id": 404,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "connectors",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 13320,
|
|
"src": "7879:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_contract$_IERC20Token_$21127_$returns$_t_uint256_$_t_uint32_$_t_bool_$_t_bool_$_t_bool_$",
|
|
"typeString": "function (contract IERC20Token) view external returns (uint256,uint32,bool,bool,bool)"
|
|
}
|
|
},
|
|
"id": 406,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7879:33:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint32_$_t_bool_$_t_bool_$_t_bool_$",
|
|
"typeString": "tuple(uint256,uint32,bool,bool,bool)"
|
|
}
|
|
},
|
|
"src": "7860:52:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 408,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7860:52:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 417,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 409,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "7931:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 412,
|
|
"name": "supply",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 190,
|
|
"src": "7965:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 413,
|
|
"name": "balance",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 193,
|
|
"src": "7973:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 414,
|
|
"name": "weight",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 196,
|
|
"src": "7982:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 415,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "7990:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 410,
|
|
"name": "formula",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 202,
|
|
"src": "7940:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorFormula_$13177",
|
|
"typeString": "contract IBancorFormula"
|
|
}
|
|
},
|
|
"id": 411,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "saleTargetAmount",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 13105,
|
|
"src": "7940:24:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256,uint32,uint256) view external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 416,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7940:57:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "7931:66:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 418,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7931:66:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 429,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 419,
|
|
"name": "fee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 187,
|
|
"src": "8016:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 427,
|
|
"name": "PPM_RESOLUTION",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 39,
|
|
"src": "8064:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 422,
|
|
"name": "converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 199,
|
|
"src": "8033:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"id": 423,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "conversionFee",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 13238,
|
|
"src": "8033:23:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$__$returns$_t_uint32_$",
|
|
"typeString": "function () view external returns (uint32)"
|
|
}
|
|
},
|
|
"id": 424,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "8033:25:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 420,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "8022:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 421,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "mul",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22327,
|
|
"src": "8022:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 425,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "8022:37:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 426,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "div",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22353,
|
|
"src": "8022:41:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 428,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "8022:57:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "8016:63:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 430,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "8016:63:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 433,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 431,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "8098:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "-=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 432,
|
|
"name": "fee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 187,
|
|
"src": "8108:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "8098:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 434,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "8098:13:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 440,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 435,
|
|
"name": "supply",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 190,
|
|
"src": "8205:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 438,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "8225:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 436,
|
|
"name": "supply",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 190,
|
|
"src": "8214:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 437,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sub",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22293,
|
|
"src": "8214:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 439,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "8214:18:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "8205:27:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 441,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "8205:27:0"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"id": 456,
|
|
"nodeType": "IfStatement",
|
|
"src": "6666:1734:0",
|
|
"trueBody": {
|
|
"id": 367,
|
|
"nodeType": "Block",
|
|
"src": "6702:747:0",
|
|
"statements": [
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 309,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 301,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 299,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 229,
|
|
"src": "6813:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "33",
|
|
"id": 300,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6817:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_3_by_1",
|
|
"typeString": "int_const 3"
|
|
},
|
|
"value": "3"
|
|
},
|
|
"src": "6813:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "||",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 308,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 302,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 251,
|
|
"src": "6822:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 303,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 176,
|
|
"src": "6832:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 307,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 306,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 304,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 229,
|
|
"src": "6838:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "33",
|
|
"id": 305,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6842:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_3_by_1",
|
|
"typeString": "int_const 3"
|
|
},
|
|
"value": "3"
|
|
},
|
|
"src": "6838:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "6832:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "6822:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "6813:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 318,
|
|
"nodeType": "IfStatement",
|
|
"src": "6809:100:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 316,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 310,
|
|
"name": "supply",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 190,
|
|
"src": "6867:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 312,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 251,
|
|
"src": "6888:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 311,
|
|
"name": "ISmartToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21182,
|
|
"src": "6876:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_ISmartToken_$21182_$",
|
|
"typeString": "type(contract ISmartToken)"
|
|
}
|
|
},
|
|
"id": 313,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6876:19:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ISmartToken_$21182",
|
|
"typeString": "contract ISmartToken"
|
|
}
|
|
},
|
|
"id": 314,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "totalSupply",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21081,
|
|
"src": "6876:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
|
|
"typeString": "function () view external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 315,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6876:33:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "6867:42:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 317,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6867:42:0"
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 324,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 319,
|
|
"name": "balance",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 193,
|
|
"src": "6986:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 322,
|
|
"name": "sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 241,
|
|
"src": "7026:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 320,
|
|
"name": "converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 199,
|
|
"src": "6996:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"id": 321,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "getConnectorBalance",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 13327,
|
|
"src": "6996:29:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_contract$_IERC20Token_$21127_$returns$_t_uint256_$",
|
|
"typeString": "function (contract IERC20Token) view external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 323,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6996:42:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "6986:52:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 325,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6986:52:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 332,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"components": [
|
|
null,
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 326,
|
|
"name": "weight",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 196,
|
|
"src": "7060:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
"id": 327,
|
|
"isConstant": false,
|
|
"isInlineArray": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"nodeType": "TupleExpression",
|
|
"src": "7057:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$_t_uint32_$__$__$__$",
|
|
"typeString": "tuple(,uint32,,,)"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 330,
|
|
"name": "sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 241,
|
|
"src": "7097:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 328,
|
|
"name": "converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 199,
|
|
"src": "7076:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"id": 329,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "connectors",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 13320,
|
|
"src": "7076:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_contract$_IERC20Token_$21127_$returns$_t_uint256_$_t_uint32_$_t_bool_$_t_bool_$_t_bool_$",
|
|
"typeString": "function (contract IERC20Token) view external returns (uint256,uint32,bool,bool,bool)"
|
|
}
|
|
},
|
|
"id": 331,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7076:33:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint32_$_t_bool_$_t_bool_$_t_bool_$",
|
|
"typeString": "tuple(uint256,uint32,bool,bool,bool)"
|
|
}
|
|
},
|
|
"src": "7057:52:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 333,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7057:52:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 342,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 334,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "7128:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 337,
|
|
"name": "supply",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 190,
|
|
"src": "7166:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 338,
|
|
"name": "balance",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 193,
|
|
"src": "7174:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 339,
|
|
"name": "weight",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 196,
|
|
"src": "7183:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 340,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "7191:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 335,
|
|
"name": "formula",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 202,
|
|
"src": "7137:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorFormula_$13177",
|
|
"typeString": "contract IBancorFormula"
|
|
}
|
|
},
|
|
"id": 336,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "purchaseTargetAmount",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 13092,
|
|
"src": "7137:28:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256,uint32,uint256) view external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 341,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7137:61:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "7128:70:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 343,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7128:70:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 354,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 344,
|
|
"name": "fee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 187,
|
|
"src": "7217:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 352,
|
|
"name": "PPM_RESOLUTION",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 39,
|
|
"src": "7265:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 347,
|
|
"name": "converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 199,
|
|
"src": "7234:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"id": 348,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "conversionFee",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 13238,
|
|
"src": "7234:23:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$__$returns$_t_uint32_$",
|
|
"typeString": "function () view external returns (uint32)"
|
|
}
|
|
},
|
|
"id": 349,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7234:25:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 345,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "7223:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 346,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "mul",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22327,
|
|
"src": "7223:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 350,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7223:37:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 351,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "div",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22353,
|
|
"src": "7223:41:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 353,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7223:57:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "7217:63:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 355,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7217:63:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 358,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 356,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "7299:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "-=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 357,
|
|
"name": "fee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 187,
|
|
"src": "7309:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "7299:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 359,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7299:13:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 365,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 360,
|
|
"name": "supply",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 190,
|
|
"src": "7406:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 363,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "7426:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 361,
|
|
"name": "supply",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 190,
|
|
"src": "7415:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 362,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "add",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22271,
|
|
"src": "7415:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 364,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7415:18:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "7406:27:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 366,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7406:27:0"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 235,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 232,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 229,
|
|
"src": "6174:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 233,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 176,
|
|
"src": "6178:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 234,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "6178:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "6174:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 458,
|
|
"initializationExpression": {
|
|
"assignments": [
|
|
229
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 229,
|
|
"mutability": "mutable",
|
|
"name": "i",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 458,
|
|
"src": "6159:9:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 228,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "6159:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 231,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 230,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6171:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "6159:13:0"
|
|
},
|
|
"loopExpression": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 238,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 236,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 229,
|
|
"src": "6192:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "+=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 237,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6197:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"src": "6192:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 239,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6192:6:0"
|
|
},
|
|
"nodeType": "ForStatement",
|
|
"src": "6154:2257:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 459,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "8430:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 182,
|
|
"id": 460,
|
|
"nodeType": "Return",
|
|
"src": "8423:13:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 173,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "5204:381:0",
|
|
"text": " @dev returns the expected target amount of converting a given amount on a given path\n note that there is no support for circular paths\n @param _path conversion path (see conversion path format above)\n @param _amount amount of _path[0] tokens received from the sender\n @return expected target amount"
|
|
},
|
|
"functionSelector": "7f9c0ecd",
|
|
"id": 462,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "rateByPath",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 179,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 176,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 462,
|
|
"src": "5611:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 174,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5611:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 175,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "5611:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 178,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 462,
|
|
"src": "5635:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 177,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5635:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "5610:41:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 182,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 181,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 462,
|
|
"src": "5673:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 180,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5673:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "5672:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "5591:2853:0",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 597,
|
|
"nodeType": "Block",
|
|
"src": "9948:1329:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 497,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 490,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 487,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 466,
|
|
"src": "10073:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 488,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "10073:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 489,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10088:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"src": "10073:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 496,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 494,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 491,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 466,
|
|
"src": "10093:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 492,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "10093:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "%",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 493,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10108:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"src": "10093:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 495,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10113:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "10093:21:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "10073:41:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f50415448",
|
|
"id": 498,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10116:18:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_db637d0ca669449dd352e97481d5a38953b8126ef5f657bdd830d33ff33d5b16",
|
|
"typeString": "literal_string \"ERR_INVALID_PATH\""
|
|
},
|
|
"value": "ERR_INVALID_PATH"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_db637d0ca669449dd352e97481d5a38953b8126ef5f657bdd830d33ff33d5b16",
|
|
"typeString": "literal_string \"ERR_INVALID_PATH\""
|
|
}
|
|
],
|
|
"id": 486,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "10065:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 499,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "10065:70:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 500,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "10065:70:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 503,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 466,
|
|
"src": "10257:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 505,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 504,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10263:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "10257:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 502,
|
|
"name": "IERC20Token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21127,
|
|
"src": "10245:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "type(contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 506,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "10245:21:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 508,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 466,
|
|
"src": "10285:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 510,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 509,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10291:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "10285:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 507,
|
|
"name": "IConverterAnchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 13349,
|
|
"src": "10268:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$13349_$",
|
|
"typeString": "type(contract IConverterAnchor)"
|
|
}
|
|
},
|
|
"id": 511,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "10268:26:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 512,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 468,
|
|
"src": "10296:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 501,
|
|
"name": "handleSourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1110,
|
|
"src": "10227:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_contract$_IConverterAnchor_$13349_$_t_uint256_$returns$__$",
|
|
"typeString": "function (contract IERC20Token,contract IConverterAnchor,uint256)"
|
|
}
|
|
},
|
|
"id": 513,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "10227:77:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 514,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "10227:77:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
516
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 516,
|
|
"mutability": "mutable",
|
|
"name": "affiliateFeeEnabled",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 597,
|
|
"src": "10363:24:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 515,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "10363:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 518,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"hexValue": "66616c7365",
|
|
"id": 517,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10390:5:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "false"
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "10363:32:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 527,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 521,
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 474,
|
|
"src": "10418:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 520,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "10410:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 519,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "10410:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 522,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "10410:26:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 525,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10448:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 524,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "10440:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 523,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "10440:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 526,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "10440:10:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "10410:40:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"id": 551,
|
|
"nodeType": "Block",
|
|
"src": "10550:159:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 543,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 539,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 537,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10573:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 538,
|
|
"name": "_affiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 476,
|
|
"src": "10577:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "10573:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 542,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 540,
|
|
"name": "_affiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 476,
|
|
"src": "10594:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 541,
|
|
"name": "maxAffiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 62,
|
|
"src": "10611:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "10594:32:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "10573:53:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f414646494c494154455f464545",
|
|
"id": 544,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10628:27:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_5421a6ae0116cbc310697cd7899b77d6a7bc1fb10cd896c84c63fd20f8fbd382",
|
|
"typeString": "literal_string \"ERR_INVALID_AFFILIATE_FEE\""
|
|
},
|
|
"value": "ERR_INVALID_AFFILIATE_FEE"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_5421a6ae0116cbc310697cd7899b77d6a7bc1fb10cd896c84c63fd20f8fbd382",
|
|
"typeString": "literal_string \"ERR_INVALID_AFFILIATE_FEE\""
|
|
}
|
|
],
|
|
"id": 536,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "10565:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 545,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "10565:91:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 546,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "10565:91:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 549,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 547,
|
|
"name": "affiliateFeeEnabled",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 516,
|
|
"src": "10671:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "74727565",
|
|
"id": 548,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10693:4:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "true"
|
|
},
|
|
"src": "10671:26:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 550,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "10671:26:0"
|
|
}
|
|
]
|
|
},
|
|
"id": 552,
|
|
"nodeType": "IfStatement",
|
|
"src": "10406:303:0",
|
|
"trueBody": {
|
|
"id": 535,
|
|
"nodeType": "Block",
|
|
"src": "10452:83:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 531,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 529,
|
|
"name": "_affiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 476,
|
|
"src": "10475:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 530,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10492:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "10475:18:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f414646494c494154455f464545",
|
|
"id": 532,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10495:27:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_5421a6ae0116cbc310697cd7899b77d6a7bc1fb10cd896c84c63fd20f8fbd382",
|
|
"typeString": "literal_string \"ERR_INVALID_AFFILIATE_FEE\""
|
|
},
|
|
"value": "ERR_INVALID_AFFILIATE_FEE"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_5421a6ae0116cbc310697cd7899b77d6a7bc1fb10cd896c84c63fd20f8fbd382",
|
|
"typeString": "literal_string \"ERR_INVALID_AFFILIATE_FEE\""
|
|
}
|
|
],
|
|
"id": 528,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "10467:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 533,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "10467:56:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 534,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "10467:56:0"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"assignments": [
|
|
554
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 554,
|
|
"mutability": "mutable",
|
|
"name": "beneficiary",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 597,
|
|
"src": "10761:27:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"typeName": {
|
|
"id": 553,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "10761:15:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 557,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 555,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "10791:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 556,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sender",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "10791:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "10761:40:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"id": 563,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 558,
|
|
"name": "_beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 472,
|
|
"src": "10816:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 561,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10840:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 560,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "10832:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 559,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "10832:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 562,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "10832:10:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "10816:26:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 568,
|
|
"nodeType": "IfStatement",
|
|
"src": "10812:71:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 566,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 564,
|
|
"name": "beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 554,
|
|
"src": "10857:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 565,
|
|
"name": "_beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 472,
|
|
"src": "10871:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "10857:26:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"id": 567,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "10857:26:0"
|
|
}
|
|
},
|
|
{
|
|
"assignments": [
|
|
572
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 572,
|
|
"mutability": "mutable",
|
|
"name": "data",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 597,
|
|
"src": "10945:28:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"contractScope": null,
|
|
"id": 570,
|
|
"name": "ConversionStep",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 59,
|
|
"src": "10945:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep"
|
|
}
|
|
},
|
|
"id": 571,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "10945:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_storage_$dyn_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 578,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 574,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 466,
|
|
"src": "10997:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 575,
|
|
"name": "beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 554,
|
|
"src": "11004:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 576,
|
|
"name": "affiliateFeeEnabled",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 516,
|
|
"src": "11017:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
],
|
|
"id": 573,
|
|
"name": "createConversionData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1468,
|
|
"src": "10976:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_array$_t_address_$dyn_memory_ptr_$_t_address_payable_$_t_bool_$returns$_t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr_$",
|
|
"typeString": "function (address[] memory,address payable,bool) view returns (struct BancorNetwork.ConversionStep memory[] memory)"
|
|
}
|
|
},
|
|
"id": 577,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "10976:61:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "10945:92:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
580
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 580,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 597,
|
|
"src": "11048:14:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 579,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "11048:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 588,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 582,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 572,
|
|
"src": "11078:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 583,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 468,
|
|
"src": "11084:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 584,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 470,
|
|
"src": "11093:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 585,
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 474,
|
|
"src": "11105:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 586,
|
|
"name": "_affiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 476,
|
|
"src": "11124:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 581,
|
|
"name": "doConversion",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 998,
|
|
"src": "11065:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (struct BancorNetwork.ConversionStep memory[] memory,uint256,uint256,address,uint256) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 587,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "11065:73:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "11048:90:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 590,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 572,
|
|
"src": "11217:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 591,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 580,
|
|
"src": "11223:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 592,
|
|
"name": "beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 554,
|
|
"src": "11231:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"id": 589,
|
|
"name": "handleTargetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1174,
|
|
"src": "11199:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr_$_t_uint256_$_t_address_payable_$returns$__$",
|
|
"typeString": "function (struct BancorNetwork.ConversionStep memory[] memory,uint256,address payable)"
|
|
}
|
|
},
|
|
"id": 593,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "11199:44:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 594,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "11199:44:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 595,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 580,
|
|
"src": "11263:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 485,
|
|
"id": 596,
|
|
"nodeType": "Return",
|
|
"src": "11256:13:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 463,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "8452:1150:0",
|
|
"text": " @dev converts the token to any other token in the bancor network by following\n a predefined conversion path and transfers the result tokens to a target account\n affiliate account/fee can also be passed in to receive a conversion fee (on top of the liquidity provider fees)\n note that the network should already have been given allowance of the source token (if not ETH)\n @param _path conversion path, see conversion path format above\n @param _amount amount to convert from, in the source token\n @param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\n @param _beneficiary account that will receive the conversion result or 0x0 to send the result to the sender account\n @param _affiliateAccount wallet address to receive the affiliate fee or 0x0 to disable affiliate fee\n @param _affiliateFee affiliate fee in PPM or 0 to disable affiliate fee\n @return amount of tokens received from the conversion"
|
|
},
|
|
"functionSelector": "b77d239b",
|
|
"id": 598,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 479,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 478,
|
|
"name": "protected",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22231,
|
|
"src": "9869:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "9869:9:0"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 481,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 470,
|
|
"src": "9904:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"id": 482,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 480,
|
|
"name": "greaterThanZero",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22595,
|
|
"src": "9888:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_uint256_$",
|
|
"typeString": "modifier (uint256)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "9888:27:0"
|
|
}
|
|
],
|
|
"name": "convertByPath",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 477,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 466,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 598,
|
|
"src": "9641:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 464,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9641:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 465,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "9641:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 468,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 598,
|
|
"src": "9674:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 467,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9674:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 470,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 598,
|
|
"src": "9700:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 469,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9700:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 472,
|
|
"mutability": "mutable",
|
|
"name": "_beneficiary",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 598,
|
|
"src": "9729:28:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"typeName": {
|
|
"id": 471,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9729:15:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 474,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 598,
|
|
"src": "9768:25:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 473,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9768:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 476,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 598,
|
|
"src": "9804:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 475,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9804:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "9630:196:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 485,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 484,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 598,
|
|
"src": "9934:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 483,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9934:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "9933:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "9608:1669:0",
|
|
"stateMutability": "payable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 631,
|
|
"nodeType": "Block",
|
|
"src": "12548:128:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 618,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 602,
|
|
"src": "12576:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 619,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 604,
|
|
"src": "12583:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 620,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 606,
|
|
"src": "12592:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 621,
|
|
"name": "_targetBlockchain",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 608,
|
|
"src": "12604:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 622,
|
|
"name": "_targetAccount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 610,
|
|
"src": "12623:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 623,
|
|
"name": "_conversionId",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 612,
|
|
"src": "12639:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 626,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "12662:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 625,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "12654:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 624,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "12654:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 627,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "12654:10:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 628,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "12666:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 617,
|
|
"name": "xConvert2",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 726,
|
|
"src": "12566:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (address[] memory,uint256,uint256,bytes32,bytes32,uint256,address,uint256) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 629,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "12566:102:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 616,
|
|
"id": 630,
|
|
"nodeType": "Return",
|
|
"src": "12559:109:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 599,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "11285:978:0",
|
|
"text": " @dev converts any other token to BNT in the bancor network by following\na predefined conversion path and transfers the result to an account on a different blockchain\n note that the network should already have been given allowance of the source token (if not ETH)\n @param _path conversion path, see conversion path format above\n @param _amount amount to convert from, in the source token\n @param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\n @param _targetBlockchain blockchain BNT will be issued on\n @param _targetAccount address/account on the target blockchain to send the BNT to\n @param _conversionId pre-determined unique (if non zero) id which refers to this transaction\n @return the amount of BNT received from this conversion"
|
|
},
|
|
"functionSelector": "c52173de",
|
|
"id": 632,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "xConvert",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 613,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 602,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 632,
|
|
"src": "12297:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 600,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "12297:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 601,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "12297:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 604,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 632,
|
|
"src": "12330:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 603,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "12330:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 606,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 632,
|
|
"src": "12356:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 605,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "12356:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 608,
|
|
"mutability": "mutable",
|
|
"name": "_targetBlockchain",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 632,
|
|
"src": "12385:25:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 607,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "12385:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 610,
|
|
"mutability": "mutable",
|
|
"name": "_targetAccount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 632,
|
|
"src": "12421:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 609,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "12421:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 612,
|
|
"mutability": "mutable",
|
|
"name": "_conversionId",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 632,
|
|
"src": "12454:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 611,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "12454:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "12286:196:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 616,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 615,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 632,
|
|
"src": "12534:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 614,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "12534:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "12533:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "12269:407:0",
|
|
"stateMutability": "payable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 725,
|
|
"nodeType": "Block",
|
|
"src": "14166:739:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
659
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 659,
|
|
"mutability": "mutable",
|
|
"name": "targetToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 725,
|
|
"src": "14177:23:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 658,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "14177:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 668,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 661,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 636,
|
|
"src": "14215:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 666,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 665,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 662,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 636,
|
|
"src": "14221:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 663,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "14221:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 664,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "14236:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "14221:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "14215:23:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 660,
|
|
"name": "IERC20Token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21127,
|
|
"src": "14203:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "type(contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 667,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14203:36:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "14177:62:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
670
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 670,
|
|
"mutability": "mutable",
|
|
"name": "bancorX",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 725,
|
|
"src": "14250:16:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorX_$3551",
|
|
"typeString": "contract IBancorX"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 669,
|
|
"name": "IBancorX",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 3551,
|
|
"src": "14250:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorX_$3551",
|
|
"typeString": "contract IBancorX"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 676,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 673,
|
|
"name": "BANCOR_X",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21554,
|
|
"src": "14288:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
],
|
|
"id": 672,
|
|
"name": "addressOf",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21718,
|
|
"src": "14278:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
|
|
"typeString": "function (bytes32) view returns (address)"
|
|
}
|
|
},
|
|
"id": 674,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14278:19:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 671,
|
|
"name": "IBancorX",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 3551,
|
|
"src": "14269:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IBancorX_$3551_$",
|
|
"typeString": "type(contract IBancorX)"
|
|
}
|
|
},
|
|
"id": 675,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14269:29:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorX_$3551",
|
|
"typeString": "contract IBancorX"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "14250:48:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"id": 684,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 678,
|
|
"name": "targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 659,
|
|
"src": "14372:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 681,
|
|
"name": "BNT_TOKEN",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21551,
|
|
"src": "14409:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
],
|
|
"id": 680,
|
|
"name": "addressOf",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21718,
|
|
"src": "14399:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
|
|
"typeString": "function (bytes32) view returns (address)"
|
|
}
|
|
},
|
|
"id": 682,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14399:20:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 679,
|
|
"name": "IERC20Token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21127,
|
|
"src": "14387:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "type(contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 683,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14387:33:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"src": "14372:48:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f5441524745545f544f4b454e",
|
|
"id": 685,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "14422:26:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_506dba30f9da1ed4da3626f556faadafab0575131908ae8223c813a59e0707f3",
|
|
"typeString": "literal_string \"ERR_INVALID_TARGET_TOKEN\""
|
|
},
|
|
"value": "ERR_INVALID_TARGET_TOKEN"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_506dba30f9da1ed4da3626f556faadafab0575131908ae8223c813a59e0707f3",
|
|
"typeString": "literal_string \"ERR_INVALID_TARGET_TOKEN\""
|
|
}
|
|
],
|
|
"id": 677,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "14364:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 686,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14364:85:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 687,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "14364:85:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
689
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 689,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 725,
|
|
"src": "14511:14:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 688,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "14511:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 704,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 691,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 636,
|
|
"src": "14542:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 692,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 638,
|
|
"src": "14549:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 693,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 640,
|
|
"src": "14558:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 698,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "14586:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
],
|
|
"id": 697,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "14578:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 696,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "14578:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 699,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14578:13:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 695,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "14570:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_payable_$",
|
|
"typeString": "type(address payable)"
|
|
},
|
|
"typeName": {
|
|
"id": 694,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "14570:8:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 700,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14570:22:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 701,
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 648,
|
|
"src": "14594:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 702,
|
|
"name": "_affiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 650,
|
|
"src": "14613:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 690,
|
|
"name": "convertByPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 598,
|
|
"src": "14528:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_payable_$_t_address_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (address[] memory,uint256,uint256,address payable,address,uint256) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 703,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14528:99:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "14511:116:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 706,
|
|
"name": "targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 659,
|
|
"src": "14692:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 709,
|
|
"name": "bancorX",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 670,
|
|
"src": "14713:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorX_$3551",
|
|
"typeString": "contract IBancorX"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IBancorX_$3551",
|
|
"typeString": "contract IBancorX"
|
|
}
|
|
],
|
|
"id": 708,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "14705:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 707,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "14705:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 710,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14705:16:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 711,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 689,
|
|
"src": "14723:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 705,
|
|
"name": "ensureAllowance",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1511,
|
|
"src": "14676:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (contract IERC20Token,address,uint256)"
|
|
}
|
|
},
|
|
"id": 712,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14676:54:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 713,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "14676:54:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 717,
|
|
"name": "_targetBlockchain",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 642,
|
|
"src": "14814:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 718,
|
|
"name": "_targetAccount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 644,
|
|
"src": "14833:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 719,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 689,
|
|
"src": "14849:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 720,
|
|
"name": "_conversionId",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 646,
|
|
"src": "14857:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 714,
|
|
"name": "bancorX",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 670,
|
|
"src": "14796:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorX_$3551",
|
|
"typeString": "contract IBancorX"
|
|
}
|
|
},
|
|
"id": 716,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "xTransfer",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 3541,
|
|
"src": "14796:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$",
|
|
"typeString": "function (bytes32,bytes32,uint256,uint256) external"
|
|
}
|
|
},
|
|
"id": 721,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14796:75:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 722,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "14796:75:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 723,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 689,
|
|
"src": "14891:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 657,
|
|
"id": 724,
|
|
"nodeType": "Return",
|
|
"src": "14884:13:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 633,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "12684:1091:0",
|
|
"text": " @dev converts any other token to BNT in the bancor network by following\na predefined conversion path and transfers the result to an account on a different blockchain\n note that the network should already have been given allowance of the source token (if not ETH)\n @param _path conversion path, see conversion path format above\n @param _amount amount to convert from, in the source token\n @param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\n @param _targetBlockchain blockchain BNT will be issued on\n @param _targetAccount address/account on the target blockchain to send the BNT to\n @param _conversionId pre-determined unique (if non zero) id which refers to this transaction\n @param _affiliateAccount affiliate account\n @param _affiliateFee affiliate fee in PPM\n @return the amount of BNT received from this conversion"
|
|
},
|
|
"functionSelector": "cb32564e",
|
|
"id": 726,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 653,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 640,
|
|
"src": "14122:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"id": 654,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 652,
|
|
"name": "greaterThanZero",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22595,
|
|
"src": "14106:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_uint256_$",
|
|
"typeString": "modifier (uint256)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "14106:27:0"
|
|
}
|
|
],
|
|
"name": "xConvert2",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 651,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 636,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 726,
|
|
"src": "13810:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 634,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "13810:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 635,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "13810:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 638,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 726,
|
|
"src": "13843:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 637,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "13843:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 640,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 726,
|
|
"src": "13869:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 639,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "13869:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 642,
|
|
"mutability": "mutable",
|
|
"name": "_targetBlockchain",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 726,
|
|
"src": "13898:25:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 641,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "13898:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 644,
|
|
"mutability": "mutable",
|
|
"name": "_targetAccount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 726,
|
|
"src": "13934:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 643,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "13934:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 646,
|
|
"mutability": "mutable",
|
|
"name": "_conversionId",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 726,
|
|
"src": "13967:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 645,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "13967:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 648,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 726,
|
|
"src": "13999:25:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 647,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "13999:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 650,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 726,
|
|
"src": "14035:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 649,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "14035:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "13799:264:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 657,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 656,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 726,
|
|
"src": "14152:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 655,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "14152:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "14151:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "13781:1124:0",
|
|
"stateMutability": "payable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 777,
|
|
"nodeType": "Block",
|
|
"src": "16040:423:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"id": 752,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 745,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 730,
|
|
"src": "16133:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 747,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 746,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "16139:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "16133:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 744,
|
|
"name": "IERC20Token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21127,
|
|
"src": "16121:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "type(contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 748,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "16121:21:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 749,
|
|
"name": "_bancorX",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 732,
|
|
"src": "16146:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorX_$3551",
|
|
"typeString": "contract IBancorX"
|
|
}
|
|
},
|
|
"id": 750,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "token",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 3530,
|
|
"src": "16146:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "function () view external returns (contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 751,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "16146:16:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"src": "16121:41:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f534f555243455f544f4b454e",
|
|
"id": 753,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "16164:26:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_0f690a2bdb8b25e0198ca38056ef0e9f045e379ec977ffdcb1486f3c53b6e8fa",
|
|
"typeString": "literal_string \"ERR_INVALID_SOURCE_TOKEN\""
|
|
},
|
|
"value": "ERR_INVALID_SOURCE_TOKEN"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_0f690a2bdb8b25e0198ca38056ef0e9f045e379ec977ffdcb1486f3c53b6e8fa",
|
|
"typeString": "literal_string \"ERR_INVALID_SOURCE_TOKEN\""
|
|
}
|
|
],
|
|
"id": 743,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "16113:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 754,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "16113:78:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 755,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "16113:78:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
757
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 757,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 777,
|
|
"src": "16260:14:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 756,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "16260:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 764,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 760,
|
|
"name": "_conversionId",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 734,
|
|
"src": "16305:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 761,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "16320:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 762,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sender",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "16320:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 758,
|
|
"name": "_bancorX",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 732,
|
|
"src": "16277:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorX_$3551",
|
|
"typeString": "contract IBancorX"
|
|
}
|
|
},
|
|
"id": 759,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "getXTransferAmount",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 3550,
|
|
"src": "16277:27:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_uint256_$_t_address_$returns$_t_uint256_$",
|
|
"typeString": "function (uint256,address) view external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 763,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "16277:54:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "16260:71:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 766,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 730,
|
|
"src": "16400:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 767,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 757,
|
|
"src": "16407:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 768,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 736,
|
|
"src": "16415:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 769,
|
|
"name": "_beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 738,
|
|
"src": "16427:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 772,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "16449:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 771,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "16441:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 770,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "16441:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 773,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "16441:10:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 774,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "16453:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 765,
|
|
"name": "convertByPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 598,
|
|
"src": "16386:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_payable_$_t_address_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (address[] memory,uint256,uint256,address payable,address,uint256) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 775,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "16386:69:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 742,
|
|
"id": 776,
|
|
"nodeType": "Return",
|
|
"src": "16379:76:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 727,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "14913:937:0",
|
|
"text": " @dev allows a user to convert a token that was sent from another blockchain into any other\n token on the BancorNetwork\n ideally this transaction is created before the previous conversion is even complete, so\n so the input amount isn't known at that point - the amount is actually take from the\n BancorX contract directly by specifying the conversion id\n @param _path conversion path\n @param _bancorX address of the BancorX contract for the source token\n @param _conversionId pre-determined unique (if non zero) id which refers to this conversion\n @param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be nonzero\n @param _beneficiary wallet to receive the conversion result\n @return amount of tokens received from the conversion"
|
|
},
|
|
"functionSelector": "89f9cc61",
|
|
"id": 778,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "completeXConversion",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 739,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 730,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 778,
|
|
"src": "15885:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 728,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "15885:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 729,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "15885:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 732,
|
|
"mutability": "mutable",
|
|
"name": "_bancorX",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 778,
|
|
"src": "15909:17:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorX_$3551",
|
|
"typeString": "contract IBancorX"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 731,
|
|
"name": "IBancorX",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 3551,
|
|
"src": "15909:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorX_$3551",
|
|
"typeString": "contract IBancorX"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 734,
|
|
"mutability": "mutable",
|
|
"name": "_conversionId",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 778,
|
|
"src": "15928:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 733,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "15928:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 736,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 778,
|
|
"src": "15951:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 735,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "15951:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 738,
|
|
"mutability": "mutable",
|
|
"name": "_beneficiary",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 778,
|
|
"src": "15971:28:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"typeName": {
|
|
"id": 737,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "15971:15:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "15884:116:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 742,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 741,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 778,
|
|
"src": "16026:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 740,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "16026:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "16025:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "15856:607:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 997,
|
|
"nodeType": "Block",
|
|
"src": "17298:2483:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
796
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 796,
|
|
"mutability": "mutable",
|
|
"name": "toAmount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 997,
|
|
"src": "17309:16:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 795,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17309:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 797,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "17309:16:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
799
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 799,
|
|
"mutability": "mutable",
|
|
"name": "fromAmount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 997,
|
|
"src": "17336:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 798,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17336:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 801,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"id": 800,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 784,
|
|
"src": "17357:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "17336:28:0"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 986,
|
|
"nodeType": "Block",
|
|
"src": "17465:2151:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
814
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 814,
|
|
"mutability": "mutable",
|
|
"name": "stepData",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 986,
|
|
"src": "17480:30:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 813,
|
|
"name": "ConversionStep",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 59,
|
|
"src": "17480:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 818,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 815,
|
|
"name": "_data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 782,
|
|
"src": "17513:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 817,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 816,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 803,
|
|
"src": "17519:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "17513:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "17480:41:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 819,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "17574:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 820,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isV28OrHigherConverter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 56,
|
|
"src": "17574:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"id": 864,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 855,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18191:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 856,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sourceToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 50,
|
|
"src": "18191:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 860,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18235:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 861,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "anchor",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 48,
|
|
"src": "18235:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
],
|
|
"id": 859,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "18227:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 858,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "18227:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 862,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18227:24:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 857,
|
|
"name": "ISmartToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21182,
|
|
"src": "18215:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_ISmartToken_$21182_$",
|
|
"typeString": "type(contract ISmartToken)"
|
|
}
|
|
},
|
|
"id": 863,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18215:37:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ISmartToken_$21182",
|
|
"typeString": "contract ISmartToken"
|
|
}
|
|
},
|
|
"src": "18191:61:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 877,
|
|
"nodeType": "IfStatement",
|
|
"src": "18187:272:0",
|
|
"trueBody": {
|
|
"id": 876,
|
|
"nodeType": "Block",
|
|
"src": "18254:205:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 866,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18381:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 867,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sourceToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 50,
|
|
"src": "18381:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 870,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18411:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 871,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "converter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 46,
|
|
"src": "18411:18:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 869,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "18403:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 868,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "18403:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 872,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18403:27:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 873,
|
|
"name": "fromAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 799,
|
|
"src": "18432:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 865,
|
|
"name": "ensureAllowance",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1511,
|
|
"src": "18365:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (contract IERC20Token,address,uint256)"
|
|
}
|
|
},
|
|
"id": 874,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18365:78:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 875,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "18365:78:0"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"id": 878,
|
|
"nodeType": "IfStatement",
|
|
"src": "17570:889:0",
|
|
"trueBody": {
|
|
"id": 854,
|
|
"nodeType": "Block",
|
|
"src": "17607:416:0",
|
|
"statements": [
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 841,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 835,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 823,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 821,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 803,
|
|
"src": "17820:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 822,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "17825:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "17820:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 834,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 824,
|
|
"name": "_data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 782,
|
|
"src": "17830:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 828,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 827,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 825,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 803,
|
|
"src": "17836:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 826,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "17840:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "17836:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "17830:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 829,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "beneficiary",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 54,
|
|
"src": "17830:24:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 832,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "17866:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
],
|
|
"id": 831,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "17858:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 830,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17858:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 833,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "17858:13:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "17830:41:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "17820:51:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 840,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "!",
|
|
"prefix": true,
|
|
"src": "17875:34:0",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 836,
|
|
"name": "etherTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 66,
|
|
"src": "17876:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_bool_$",
|
|
"typeString": "mapping(contract IERC20Token => bool)"
|
|
}
|
|
},
|
|
"id": 839,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 837,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "17888:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 838,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sourceToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 50,
|
|
"src": "17888:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "17876:33:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "17820:89:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 853,
|
|
"nodeType": "IfStatement",
|
|
"src": "17816:191:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 843,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "17945:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 844,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sourceToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 50,
|
|
"src": "17945:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 847,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "17975:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 848,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "converter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 46,
|
|
"src": "17975:18:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 846,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "17967:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 845,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17967:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 849,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "17967:27:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 850,
|
|
"name": "fromAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 799,
|
|
"src": "17996:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 842,
|
|
"name": "safeTransfer",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22475,
|
|
"src": "17932:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (contract IERC20Token,address,uint256)"
|
|
}
|
|
},
|
|
"id": 851,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "17932:75:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 852,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "17932:75:0"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"id": 881,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "!",
|
|
"prefix": true,
|
|
"src": "18513:32:0",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 879,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18514:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 880,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isV28OrHigherConverter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 56,
|
|
"src": "18514:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 900,
|
|
"name": "etherTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 66,
|
|
"src": "18710:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_bool_$",
|
|
"typeString": "mapping(contract IERC20Token => bool)"
|
|
}
|
|
},
|
|
"id": 903,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 901,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18722:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 902,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sourceToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 50,
|
|
"src": "18722:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "18710:33:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 937,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 923,
|
|
"name": "toAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 796,
|
|
"src": "18946:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 927,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18984:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 928,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sourceToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 50,
|
|
"src": "18984:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 929,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "19006:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 930,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "targetToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 52,
|
|
"src": "19006:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 931,
|
|
"name": "fromAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 799,
|
|
"src": "19028:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 932,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "19040:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 933,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sender",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "19040:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 934,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "19052:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 935,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "beneficiary",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 54,
|
|
"src": "19052:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 924,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18957:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 925,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "converter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 46,
|
|
"src": "18957:18:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"id": 926,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "convert",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 13228,
|
|
"src": "18957:26:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_payable$_t_contract$_IERC20Token_$21127_$_t_contract$_IERC20Token_$21127_$_t_uint256_$_t_address_$_t_address_payable_$returns$_t_uint256_$",
|
|
"typeString": "function (contract IERC20Token,contract IERC20Token,uint256,address,address payable) payable external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 936,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18957:116:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "18946:127:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 938,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "18946:127:0"
|
|
},
|
|
"id": 939,
|
|
"nodeType": "IfStatement",
|
|
"src": "18706:367:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 921,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 904,
|
|
"name": "toAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 796,
|
|
"src": "18762:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 911,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18820:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 912,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sourceToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 50,
|
|
"src": "18820:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 913,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18842:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 914,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "targetToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 52,
|
|
"src": "18842:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 915,
|
|
"name": "fromAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 799,
|
|
"src": "18864:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 916,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "18876:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 917,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sender",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "18876:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 918,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18888:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 919,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "beneficiary",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 54,
|
|
"src": "18888:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 905,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18773:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 906,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "converter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 46,
|
|
"src": "18773:18:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"id": 907,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "convert",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 13228,
|
|
"src": "18773:26:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_payable$_t_contract$_IERC20Token_$21127_$_t_contract$_IERC20Token_$21127_$_t_uint256_$_t_address_$_t_address_payable_$returns$_t_uint256_$",
|
|
"typeString": "function (contract IERC20Token,contract IERC20Token,uint256,address,address payable) payable external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 910,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"names": [
|
|
"value"
|
|
],
|
|
"nodeType": "FunctionCallOptions",
|
|
"options": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 908,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "18808:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 909,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "value",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "18808:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"src": "18773:46:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_payable$_t_contract$_IERC20Token_$21127_$_t_contract$_IERC20Token_$21127_$_t_uint256_$_t_address_$_t_address_payable_$returns$_t_uint256_$value",
|
|
"typeString": "function (contract IERC20Token,contract IERC20Token,uint256,address,address payable) payable external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 920,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18773:136:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "18762:147:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 922,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "18762:147:0"
|
|
}
|
|
},
|
|
"id": 940,
|
|
"nodeType": "IfStatement",
|
|
"src": "18509:564:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 898,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 882,
|
|
"name": "toAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 796,
|
|
"src": "18564:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 891,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18628:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 892,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sourceToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 50,
|
|
"src": "18628:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 893,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18650:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 894,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "targetToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 52,
|
|
"src": "18650:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 895,
|
|
"name": "fromAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 799,
|
|
"src": "18672:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 896,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "18684:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 886,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18600:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 887,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "converter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 46,
|
|
"src": "18600:18:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 885,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "18592:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 884,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "18592:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 888,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18592:27:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"id": 883,
|
|
"name": "ILegacyConverter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 26,
|
|
"src": "18575:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_ILegacyConverter_$26_$",
|
|
"typeString": "type(contract ILegacyConverter)"
|
|
}
|
|
},
|
|
"id": 889,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18575:45:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ILegacyConverter_$26",
|
|
"typeString": "contract ILegacyConverter"
|
|
}
|
|
},
|
|
"id": 890,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "change",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 25,
|
|
"src": "18575:52:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20Token_$21127_$_t_contract$_IERC20Token_$21127_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (contract IERC20Token,contract IERC20Token,uint256,uint256) external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 897,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18575:111:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "18564:122:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 899,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "18564:122:0"
|
|
}
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 941,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "19138:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 942,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "processAffiliateFee",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 58,
|
|
"src": "19138:28:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 968,
|
|
"nodeType": "IfStatement",
|
|
"src": "19134:308:0",
|
|
"trueBody": {
|
|
"id": 967,
|
|
"nodeType": "Block",
|
|
"src": "19168:274:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
944
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 944,
|
|
"mutability": "mutable",
|
|
"name": "affiliateAmount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 967,
|
|
"src": "19187:23:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 943,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "19187:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 952,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 950,
|
|
"name": "PPM_RESOLUTION",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 39,
|
|
"src": "19245:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 947,
|
|
"name": "_affiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 790,
|
|
"src": "19226:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 945,
|
|
"name": "toAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 796,
|
|
"src": "19213:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 946,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "mul",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22327,
|
|
"src": "19213:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 948,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "19213:27:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 949,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "div",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22353,
|
|
"src": "19213:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 951,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "19213:47:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "19187:73:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 957,
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 788,
|
|
"src": "19317:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 958,
|
|
"name": "affiliateAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 944,
|
|
"src": "19336:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 954,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "19287:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 955,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "targetToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 52,
|
|
"src": "19287:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"id": 956,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "transfer",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21106,
|
|
"src": "19287:29:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
|
|
"typeString": "function (address,uint256) external returns (bool)"
|
|
}
|
|
},
|
|
"id": 959,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "19287:65:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f4645455f5452414e534645525f4641494c4544",
|
|
"id": 960,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "19354:25:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_adc6d664872bc68defa0e975019744f9c0f552331af13f5f130791cee181d10c",
|
|
"typeString": "literal_string \"ERR_FEE_TRANSFER_FAILED\""
|
|
},
|
|
"value": "ERR_FEE_TRANSFER_FAILED"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_adc6d664872bc68defa0e975019744f9c0f552331af13f5f130791cee181d10c",
|
|
"typeString": "literal_string \"ERR_FEE_TRANSFER_FAILED\""
|
|
}
|
|
],
|
|
"id": 953,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "19279:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 961,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "19279:101:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 962,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "19279:101:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 965,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 963,
|
|
"name": "toAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 796,
|
|
"src": "19399:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "-=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 964,
|
|
"name": "affiliateAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 944,
|
|
"src": "19411:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "19399:27:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 966,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "19399:27:0"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"eventCall": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 970,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "19474:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 971,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "anchor",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 48,
|
|
"src": "19474:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 972,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "19491:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 973,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sourceToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 50,
|
|
"src": "19491:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 974,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "19513:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 975,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "targetToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 52,
|
|
"src": "19513:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 976,
|
|
"name": "fromAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 799,
|
|
"src": "19535:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 977,
|
|
"name": "toAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 796,
|
|
"src": "19547:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 978,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "19557:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 979,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sender",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "19557:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"id": 969,
|
|
"name": "Conversion",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 81,
|
|
"src": "19463:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_event_nonpayable$_t_contract$_IConverterAnchor_$13349_$_t_contract$_IERC20Token_$21127_$_t_contract$_IERC20Token_$21127_$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
|
|
"typeString": "function (contract IConverterAnchor,contract IERC20Token,contract IERC20Token,uint256,uint256,address)"
|
|
}
|
|
},
|
|
"id": 980,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "19463:105:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 981,
|
|
"nodeType": "EmitStatement",
|
|
"src": "19458:110:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 984,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 982,
|
|
"name": "fromAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 799,
|
|
"src": "19583:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 983,
|
|
"name": "toAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 796,
|
|
"src": "19596:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "19583:21:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 985,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "19583:21:0"
|
|
}
|
|
]
|
|
},
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 809,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 806,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 803,
|
|
"src": "17442:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 807,
|
|
"name": "_data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 782,
|
|
"src": "17446:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 808,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "17446:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "17442:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 987,
|
|
"initializationExpression": {
|
|
"assignments": [
|
|
803
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 803,
|
|
"mutability": "mutable",
|
|
"name": "i",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 987,
|
|
"src": "17427:9:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 802,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17427:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 805,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 804,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "17439:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "17427:13:0"
|
|
},
|
|
"loopExpression": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 811,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "++",
|
|
"prefix": false,
|
|
"src": "17460:3:0",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"id": 810,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 803,
|
|
"src": "17460:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 812,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "17460:3:0"
|
|
},
|
|
"nodeType": "ForStatement",
|
|
"src": "17422:2194:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 991,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 989,
|
|
"name": "toAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 796,
|
|
"src": "19700:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 990,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 786,
|
|
"src": "19712:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "19700:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f52455455524e5f544f4f5f4c4f57",
|
|
"id": 992,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "19724:20:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_c3237cc40443cfd1e0e9492ef35b7447eab6349fb6eac5eb1ec626edd3c555aa",
|
|
"typeString": "literal_string \"ERR_RETURN_TOO_LOW\""
|
|
},
|
|
"value": "ERR_RETURN_TOO_LOW"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_c3237cc40443cfd1e0e9492ef35b7447eab6349fb6eac5eb1ec626edd3c555aa",
|
|
"typeString": "literal_string \"ERR_RETURN_TOO_LOW\""
|
|
}
|
|
],
|
|
"id": 988,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "19692:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 993,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "19692:53:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 994,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "19692:53:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 995,
|
|
"name": "toAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 796,
|
|
"src": "19765:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 794,
|
|
"id": 996,
|
|
"nodeType": "Return",
|
|
"src": "19758:15:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 779,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "16471:603:0",
|
|
"text": " @dev executes the actual conversion by following the conversion path\n @param _data conversion data, see ConversionStep struct above\n @param _amount amount to convert from, in the source token\n @param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\n @param _affiliateAccount affiliate account\n @param _affiliateFee affiliate fee in PPM\n @return amount of tokens received from the conversion"
|
|
},
|
|
"id": 998,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "doConversion",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 791,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 782,
|
|
"mutability": "mutable",
|
|
"name": "_data",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 998,
|
|
"src": "17112:29:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"contractScope": null,
|
|
"id": 780,
|
|
"name": "ConversionStep",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 59,
|
|
"src": "17112:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep"
|
|
}
|
|
},
|
|
"id": 781,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "17112:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_storage_$dyn_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 784,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 998,
|
|
"src": "17152:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 783,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17152:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 786,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 998,
|
|
"src": "17178:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 785,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17178:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 788,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 998,
|
|
"src": "17207:25:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 787,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17207:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 790,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 998,
|
|
"src": "17243:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 789,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17243:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "17101:170:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 794,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 793,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 998,
|
|
"src": "17289:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 792,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17289:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "17288:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "17080:2701:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1109,
|
|
"nodeType": "Block",
|
|
"src": "20232:1606:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
1009
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1009,
|
|
"mutability": "mutable",
|
|
"name": "firstConverter",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1109,
|
|
"src": "20243:25:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1008,
|
|
"name": "IConverter",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13340,
|
|
"src": "20243:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1018,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1013,
|
|
"name": "_anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1003,
|
|
"src": "20290:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"id": 1014,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "owner",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22838,
|
|
"src": "20290:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
|
|
"typeString": "function () view external returns (address)"
|
|
}
|
|
},
|
|
"id": 1015,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "20290:15:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 1012,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "20282:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_payable_$",
|
|
"typeString": "type(address payable)"
|
|
},
|
|
"typeName": {
|
|
"id": 1011,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "20282:8:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1016,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "20282:24:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"id": 1010,
|
|
"name": "IConverter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 13340,
|
|
"src": "20271:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IConverter_$13340_$",
|
|
"typeString": "type(contract IConverter)"
|
|
}
|
|
},
|
|
"id": 1017,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "20271:36:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "20243:64:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
1020
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1020,
|
|
"mutability": "mutable",
|
|
"name": "isNewerConverter",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1109,
|
|
"src": "20318:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 1019,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "20318:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1024,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1022,
|
|
"name": "firstConverter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1009,
|
|
"src": "20365:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 1021,
|
|
"name": "isV28OrHigherConverter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1719,
|
|
"src": "20342:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$13340_$returns$_t_bool_$",
|
|
"typeString": "function (contract IConverter) view returns (bool)"
|
|
}
|
|
},
|
|
"id": 1023,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "20342:38:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "20318:62:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1028,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1025,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "20413:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 1026,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "value",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "20413:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1027,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "20425:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "20413:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1055,
|
|
"name": "etherTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 66,
|
|
"src": "20955:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_bool_$",
|
|
"typeString": "mapping(contract IERC20Token => bool)"
|
|
}
|
|
},
|
|
"id": 1057,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1056,
|
|
"name": "_sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1001,
|
|
"src": "20967:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "20955:25:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"id": 1106,
|
|
"nodeType": "Block",
|
|
"src": "21447:384:0",
|
|
"statements": [
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"id": 1082,
|
|
"name": "isNewerConverter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1020,
|
|
"src": "21605:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1095,
|
|
"name": "_sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1001,
|
|
"src": "21770:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1096,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "21784:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 1097,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sender",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "21784:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1100,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "21804:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
],
|
|
"id": 1099,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "21796:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1098,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "21796:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1101,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "21796:13:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1102,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1005,
|
|
"src": "21811:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1094,
|
|
"name": "safeTransferFrom",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22525,
|
|
"src": "21753:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (contract IERC20Token,address,address,uint256)"
|
|
}
|
|
},
|
|
"id": 1103,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "21753:66:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1104,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "21753:66:0"
|
|
},
|
|
"id": 1105,
|
|
"nodeType": "IfStatement",
|
|
"src": "21601:218:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1084,
|
|
"name": "_sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1001,
|
|
"src": "21657:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1085,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "21671:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 1086,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sender",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "21671:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1089,
|
|
"name": "firstConverter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1009,
|
|
"src": "21691:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 1088,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "21683:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1087,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "21683:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1090,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "21683:23:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1091,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1005,
|
|
"src": "21708:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1083,
|
|
"name": "safeTransferFrom",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22525,
|
|
"src": "21640:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (contract IERC20Token,address,address,uint256)"
|
|
}
|
|
},
|
|
"id": 1092,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "21640:76:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1093,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "21640:76:0"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"id": 1107,
|
|
"nodeType": "IfStatement",
|
|
"src": "20951:880:0",
|
|
"trueBody": {
|
|
"id": 1081,
|
|
"nodeType": "Block",
|
|
"src": "20982:420:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1059,
|
|
"name": "_sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1001,
|
|
"src": "21184:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1060,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "21198:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 1061,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sender",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "21198:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1064,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "21218:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
],
|
|
"id": 1063,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "21210:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1062,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "21210:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1065,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "21210:13:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1066,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1005,
|
|
"src": "21225:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1058,
|
|
"name": "safeTransferFrom",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22525,
|
|
"src": "21167:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (contract IERC20Token,address,address,uint256)"
|
|
}
|
|
},
|
|
"id": 1067,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "21167:66:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1068,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "21167:66:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"id": 1069,
|
|
"name": "isNewerConverter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1020,
|
|
"src": "21303:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1080,
|
|
"nodeType": "IfStatement",
|
|
"src": "21299:91:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1077,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1005,
|
|
"src": "21382:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1073,
|
|
"name": "_sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1001,
|
|
"src": "21358:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 1072,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "21350:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1071,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "21350:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1074,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "21350:21:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 1070,
|
|
"name": "IEtherToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21153,
|
|
"src": "21338:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IEtherToken_$21153_$",
|
|
"typeString": "type(contract IEtherToken)"
|
|
}
|
|
},
|
|
"id": 1075,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "21338:34:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IEtherToken_$21153",
|
|
"typeString": "contract IEtherToken"
|
|
}
|
|
},
|
|
"id": 1076,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "withdraw",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21140,
|
|
"src": "21338:43:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
|
|
"typeString": "function (uint256) external"
|
|
}
|
|
},
|
|
"id": 1078,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "21338:52:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1079,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "21338:52:0"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"id": 1108,
|
|
"nodeType": "IfStatement",
|
|
"src": "20409:1422:0",
|
|
"trueBody": {
|
|
"id": 1054,
|
|
"nodeType": "Block",
|
|
"src": "20428:485:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1033,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1030,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "20486:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 1031,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "value",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "20486:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1032,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1005,
|
|
"src": "20499:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "20486:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f4554485f414d4f554e545f4d49534d41544348",
|
|
"id": 1034,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "20508:25:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b",
|
|
"typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\""
|
|
},
|
|
"value": "ERR_ETH_AMOUNT_MISMATCH"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b",
|
|
"typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\""
|
|
}
|
|
],
|
|
"id": 1029,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "20478:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 1035,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "20478:56:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1036,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "20478:56:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"id": 1038,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "!",
|
|
"prefix": true,
|
|
"src": "20768:17:0",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1037,
|
|
"name": "isNewerConverter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1020,
|
|
"src": "20769:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1053,
|
|
"nodeType": "IfStatement",
|
|
"src": "20764:137:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1043,
|
|
"name": "firstConverter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1009,
|
|
"src": "20854:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 1042,
|
|
"name": "getConverterEtherTokenAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1552,
|
|
"src": "20824:29:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$13340_$returns$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "function (contract IConverter) view returns (contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 1044,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "20824:45:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 1041,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "20816:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1040,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "20816:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1045,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "20816:54:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 1039,
|
|
"name": "IEtherToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21153,
|
|
"src": "20804:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IEtherToken_$21153_$",
|
|
"typeString": "type(contract IEtherToken)"
|
|
}
|
|
},
|
|
"id": 1046,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "20804:67:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IEtherToken_$21153",
|
|
"typeString": "contract IEtherToken"
|
|
}
|
|
},
|
|
"id": 1047,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "deposit",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21135,
|
|
"src": "20804:75:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_payable$__$returns$__$",
|
|
"typeString": "function () payable external"
|
|
}
|
|
},
|
|
"id": 1050,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"names": [
|
|
"value"
|
|
],
|
|
"nodeType": "FunctionCallOptions",
|
|
"options": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1048,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "20888:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 1049,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "value",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "20888:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"src": "20804:95:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_payable$__$returns$__$value",
|
|
"typeString": "function () payable external"
|
|
}
|
|
},
|
|
"id": 1051,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "20804:97:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1052,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "20804:97:0"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 999,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "19789:333:0",
|
|
"text": " @dev validates msg.value and prepares the conversion source token for the conversion\n @param _sourceToken source token of the first conversion step\n @param _anchor converter anchor of the first conversion step\n @param _amount amount to convert from, in the source token"
|
|
},
|
|
"id": 1110,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "handleSourceToken",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1006,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1001,
|
|
"mutability": "mutable",
|
|
"name": "_sourceToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1110,
|
|
"src": "20155:24:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1000,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "20155:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1003,
|
|
"mutability": "mutable",
|
|
"name": "_anchor",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1110,
|
|
"src": "20181:24:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1002,
|
|
"name": "IConverterAnchor",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13349,
|
|
"src": "20181:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1005,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1110,
|
|
"src": "20207:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1004,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "20207:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "20154:69:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1007,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "20232:0:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "20128:1710:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1173,
|
|
"nodeType": "Block",
|
|
"src": "22295:780:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
1122
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1122,
|
|
"mutability": "mutable",
|
|
"name": "stepData",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1173,
|
|
"src": "22306:30:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1121,
|
|
"name": "ConversionStep",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 59,
|
|
"src": "22306:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1129,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1123,
|
|
"name": "_data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1114,
|
|
"src": "22339:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 1128,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1127,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1124,
|
|
"name": "_data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1114,
|
|
"src": "22345:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 1125,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "22345:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 1126,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "22360:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "22345:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "22339:23:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "22306:56:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 1136,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1130,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1122,
|
|
"src": "22444:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1131,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "beneficiary",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 54,
|
|
"src": "22444:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1134,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "22476:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
],
|
|
"id": 1133,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "22468:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1132,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "22468:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1135,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "22468:13:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "22444:37:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1138,
|
|
"nodeType": "IfStatement",
|
|
"src": "22440:63:0",
|
|
"trueBody": {
|
|
"expression": null,
|
|
"functionReturnParameters": 1120,
|
|
"id": 1137,
|
|
"nodeType": "Return",
|
|
"src": "22496:7:0"
|
|
}
|
|
},
|
|
{
|
|
"assignments": [
|
|
1140
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1140,
|
|
"mutability": "mutable",
|
|
"name": "targetToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1173,
|
|
"src": "22515:23:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1139,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "22515:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1143,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1141,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1122,
|
|
"src": "22541:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1142,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "targetToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 52,
|
|
"src": "22541:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "22515:46:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1144,
|
|
"name": "etherTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 66,
|
|
"src": "22607:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_bool_$",
|
|
"typeString": "mapping(contract IERC20Token => bool)"
|
|
}
|
|
},
|
|
"id": 1146,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1145,
|
|
"name": "targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1140,
|
|
"src": "22619:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "22607:24:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"id": 1171,
|
|
"nodeType": "Block",
|
|
"src": "22993:75:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1166,
|
|
"name": "targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1140,
|
|
"src": "23021:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1167,
|
|
"name": "_beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1118,
|
|
"src": "23034:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1168,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1116,
|
|
"src": "23048:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1165,
|
|
"name": "safeTransfer",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22475,
|
|
"src": "23008:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (contract IERC20Token,address,uint256)"
|
|
}
|
|
},
|
|
"id": 1169,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "23008:48:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1170,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "23008:48:0"
|
|
}
|
|
]
|
|
},
|
|
"id": 1172,
|
|
"nodeType": "IfStatement",
|
|
"src": "22603:465:0",
|
|
"trueBody": {
|
|
"id": 1164,
|
|
"nodeType": "Block",
|
|
"src": "22633:315:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1150,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "!",
|
|
"prefix": true,
|
|
"src": "22731:32:0",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1148,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1122,
|
|
"src": "22732:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1149,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isV28OrHigherConverter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 56,
|
|
"src": "22732:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
],
|
|
"id": 1147,
|
|
"name": "assert",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -3,
|
|
"src": "22724:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
|
|
"typeString": "function (bool) pure"
|
|
}
|
|
},
|
|
"id": 1151,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "22724:40:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1152,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "22724:40:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1160,
|
|
"name": "_beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1118,
|
|
"src": "22914:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1161,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1116,
|
|
"src": "22928:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1156,
|
|
"name": "targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1140,
|
|
"src": "22889:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 1155,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "22881:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1154,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "22881:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1157,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "22881:20:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 1153,
|
|
"name": "IEtherToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21153,
|
|
"src": "22869:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IEtherToken_$21153_$",
|
|
"typeString": "type(contract IEtherToken)"
|
|
}
|
|
},
|
|
"id": 1158,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "22869:33:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IEtherToken_$21153",
|
|
"typeString": "contract IEtherToken"
|
|
}
|
|
},
|
|
"id": 1159,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "withdrawTo",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21152,
|
|
"src": "22869:44:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$_t_uint256_$returns$__$",
|
|
"typeString": "function (address payable,uint256) external"
|
|
}
|
|
},
|
|
"id": 1162,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "22869:67:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1163,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "22869:67:0"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1111,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "21846:330:0",
|
|
"text": " @dev handles the conversion target token if the network still holds it at the end of the conversion\n @param _data conversion data, see ConversionStep struct above\n @param _amount conversion target amount\n @param _beneficiary wallet to receive the conversion result"
|
|
},
|
|
"id": 1174,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "handleTargetToken",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1119,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1114,
|
|
"mutability": "mutable",
|
|
"name": "_data",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1174,
|
|
"src": "22209:29:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"contractScope": null,
|
|
"id": 1112,
|
|
"name": "ConversionStep",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 59,
|
|
"src": "22209:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep"
|
|
}
|
|
},
|
|
"id": 1113,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "22209:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_storage_$dyn_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1116,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1174,
|
|
"src": "22240:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1115,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "22240:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1118,
|
|
"mutability": "mutable",
|
|
"name": "_beneficiary",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1174,
|
|
"src": "22257:28:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"typeName": {
|
|
"id": 1117,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "22257:15:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "22208:78:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1120,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "22295:0:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "22182:893:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1467,
|
|
"nodeType": "Block",
|
|
"src": "23760:4093:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
1191
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1191,
|
|
"mutability": "mutable",
|
|
"name": "data",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1467,
|
|
"src": "23771:28:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"contractScope": null,
|
|
"id": 1189,
|
|
"name": "ConversionStep",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 59,
|
|
"src": "23771:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep"
|
|
}
|
|
},
|
|
"id": 1190,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "23771:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_storage_$dyn_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1200,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1198,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1195,
|
|
"name": "_conversionPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1178,
|
|
"src": "23823:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 1196,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "23823:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "/",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 1197,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "23848:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"src": "23823:26:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1194,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "NewExpression",
|
|
"src": "23802:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr_$",
|
|
"typeString": "function (uint256) pure returns (struct BancorNetwork.ConversionStep memory[] memory)"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"contractScope": null,
|
|
"id": 1192,
|
|
"name": "ConversionStep",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 59,
|
|
"src": "23806:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep"
|
|
}
|
|
},
|
|
"id": 1193,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "23806:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_storage_$dyn_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep[]"
|
|
}
|
|
}
|
|
},
|
|
"id": 1199,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "23802:48:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "23771:79:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
1202
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1202,
|
|
"mutability": "mutable",
|
|
"name": "affiliateFeeProcessed",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1467,
|
|
"src": "23863:26:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 1201,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "23863:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1204,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"hexValue": "66616c7365",
|
|
"id": 1203,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "23892:5:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "false"
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "23863:34:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
1206
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1206,
|
|
"mutability": "mutable",
|
|
"name": "bntToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1467,
|
|
"src": "23908:20:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1205,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "23908:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1212,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1209,
|
|
"name": "BNT_TOKEN",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21551,
|
|
"src": "23953:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
],
|
|
"id": 1208,
|
|
"name": "addressOf",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21718,
|
|
"src": "23943:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
|
|
"typeString": "function (bytes32) view returns (address)"
|
|
}
|
|
},
|
|
"id": 1210,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "23943:20:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 1207,
|
|
"name": "IERC20Token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21127,
|
|
"src": "23931:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "type(contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 1211,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "23931:33:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "23908:56:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
1214
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1214,
|
|
"mutability": "mutable",
|
|
"name": "i",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1467,
|
|
"src": "24060:9:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1213,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "24060:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1215,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "24060:9:0"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1303,
|
|
"nodeType": "Block",
|
|
"src": "24132:1199:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
1231
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1231,
|
|
"mutability": "mutable",
|
|
"name": "anchor",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1303,
|
|
"src": "24147:23:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1230,
|
|
"name": "IConverterAnchor",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13349,
|
|
"src": "24147:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1239,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1233,
|
|
"name": "_conversionPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1178,
|
|
"src": "24190:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 1237,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1236,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1234,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "24206:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "+",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 1235,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "24210:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "24206:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "24190:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 1232,
|
|
"name": "IConverterAnchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 13349,
|
|
"src": "24173:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$13349_$",
|
|
"typeString": "type(contract IConverterAnchor)"
|
|
}
|
|
},
|
|
"id": 1238,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "24173:40:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "24147:66:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
1241
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1241,
|
|
"mutability": "mutable",
|
|
"name": "converter",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1303,
|
|
"src": "24228:20:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1240,
|
|
"name": "IConverter",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13340,
|
|
"src": "24228:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1250,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1245,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1231,
|
|
"src": "24270:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"id": 1246,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "owner",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22838,
|
|
"src": "24270:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
|
|
"typeString": "function () view external returns (address)"
|
|
}
|
|
},
|
|
"id": 1247,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "24270:14:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 1244,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "24262:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_payable_$",
|
|
"typeString": "type(address payable)"
|
|
},
|
|
"typeName": {
|
|
"id": 1243,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "24262:8:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1248,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "24262:23:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"id": 1242,
|
|
"name": "IConverter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 13340,
|
|
"src": "24251:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IConverter_$13340_$",
|
|
"typeString": "type(contract IConverter)"
|
|
}
|
|
},
|
|
"id": 1249,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "24251:35:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "24228:58:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
1252
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1252,
|
|
"mutability": "mutable",
|
|
"name": "targetToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1303,
|
|
"src": "24301:23:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1251,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "24301:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1260,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1254,
|
|
"name": "_conversionPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1178,
|
|
"src": "24339:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 1258,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1257,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1255,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "24355:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "+",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 1256,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "24359:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"src": "24355:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "24339:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 1253,
|
|
"name": "IERC20Token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21127,
|
|
"src": "24327:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "type(contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 1259,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "24327:35:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "24301:61:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
1262
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1262,
|
|
"mutability": "mutable",
|
|
"name": "processAffiliateFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1303,
|
|
"src": "24455:24:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 1261,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "24455:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1271,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 1270,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 1266,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1263,
|
|
"name": "_affiliateFeeEnabled",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1182,
|
|
"src": "24482:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1265,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "!",
|
|
"prefix": true,
|
|
"src": "24506:22:0",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1264,
|
|
"name": "affiliateFeeProcessed",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1202,
|
|
"src": "24507:21:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "24482:46:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"id": 1269,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1267,
|
|
"name": "targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1252,
|
|
"src": "24532:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1268,
|
|
"name": "bntToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1206,
|
|
"src": "24547:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"src": "24532:23:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "24482:73:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "24455:100:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"id": 1272,
|
|
"name": "processAffiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1262,
|
|
"src": "24574:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1277,
|
|
"nodeType": "IfStatement",
|
|
"src": "24570:70:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1275,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1273,
|
|
"name": "affiliateFeeProcessed",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1202,
|
|
"src": "24612:21:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "74727565",
|
|
"id": 1274,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "24636:4:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "true"
|
|
},
|
|
"src": "24612:28:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 1276,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "24612:28:0"
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1301,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1278,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1191,
|
|
"src": "24657:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 1282,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1281,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1279,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "24662:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "/",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 1280,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "24666:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"src": "24662:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"nodeType": "IndexAccess",
|
|
"src": "24657:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1284,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1231,
|
|
"src": "24758:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1285,
|
|
"name": "converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1241,
|
|
"src": "24834:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1287,
|
|
"name": "_conversionPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1178,
|
|
"src": "24938:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 1289,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1288,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "24954:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "24938:18:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 1286,
|
|
"name": "IERC20Token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21127,
|
|
"src": "24926:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "type(contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 1290,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "24926:31:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1291,
|
|
"name": "targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1252,
|
|
"src": "24989:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1294,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "25134:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1293,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "25126:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1292,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "25126:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1295,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "25126:10:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1297,
|
|
"name": "converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1241,
|
|
"src": "25234:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 1296,
|
|
"name": "isV28OrHigherConverter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1719,
|
|
"src": "25211:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$13340_$returns$_t_bool_$",
|
|
"typeString": "function (contract IConverter) view returns (bool)"
|
|
}
|
|
},
|
|
"id": 1298,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "25211:33:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1299,
|
|
"name": "processAffiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1262,
|
|
"src": "25284:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
],
|
|
"id": 1283,
|
|
"name": "ConversionStep",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 59,
|
|
"src": "24671:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_struct$_ConversionStep_$59_storage_ptr_$",
|
|
"typeString": "type(struct BancorNetwork.ConversionStep storage pointer)"
|
|
}
|
|
},
|
|
"id": 1300,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "structConstructorCall",
|
|
"lValueRequested": false,
|
|
"names": [
|
|
"anchor",
|
|
"converter",
|
|
"sourceToken",
|
|
"targetToken",
|
|
"beneficiary",
|
|
"isV28OrHigherConverter",
|
|
"processAffiliateFee"
|
|
],
|
|
"nodeType": "FunctionCall",
|
|
"src": "24671:648:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"src": "24657:662:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1302,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "24657:662:0"
|
|
}
|
|
]
|
|
},
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1225,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1220,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "24092:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1224,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1221,
|
|
"name": "_conversionPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1178,
|
|
"src": "24096:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 1222,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "24096:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 1223,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "24121:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "24096:26:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "24092:30:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 1304,
|
|
"initializationExpression": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1218,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1216,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "24085:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1217,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "24089:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "24085:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1219,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "24085:5:0"
|
|
},
|
|
"loopExpression": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1228,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1226,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "24124:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "+=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 1227,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "24129:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"src": "24124:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1229,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "24124:6:0"
|
|
},
|
|
"nodeType": "ForStatement",
|
|
"src": "24080:1251:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
1306
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1306,
|
|
"mutability": "mutable",
|
|
"name": "stepData",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1467,
|
|
"src": "25393:30:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1305,
|
|
"name": "ConversionStep",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 59,
|
|
"src": "25393:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1310,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1307,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1191,
|
|
"src": "25426:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 1309,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1308,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "25431:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "25426:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "25393:40:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1311,
|
|
"name": "etherTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 66,
|
|
"src": "25448:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_bool_$",
|
|
"typeString": "mapping(contract IERC20Token => bool)"
|
|
}
|
|
},
|
|
"id": 1314,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1312,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "25460:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1313,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sourceToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 50,
|
|
"src": "25460:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "25448:33:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1334,
|
|
"nodeType": "IfStatement",
|
|
"src": "25444:472:0",
|
|
"trueBody": {
|
|
"id": 1333,
|
|
"nodeType": "Block",
|
|
"src": "25483:433:0",
|
|
"statements": [
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1315,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "25594:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1316,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isV28OrHigherConverter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 56,
|
|
"src": "25594:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1330,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1323,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "25832:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1325,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "sourceToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 50,
|
|
"src": "25832:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1327,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "25885:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1328,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "converter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 46,
|
|
"src": "25885:18:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 1326,
|
|
"name": "getConverterEtherTokenAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1552,
|
|
"src": "25855:29:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$13340_$returns$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "function (contract IConverter) view returns (contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 1329,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "25855:49:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"src": "25832:72:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"id": 1331,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "25832:72:0"
|
|
},
|
|
"id": 1332,
|
|
"nodeType": "IfStatement",
|
|
"src": "25590:314:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1321,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1317,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "25644:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1319,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "sourceToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 50,
|
|
"src": "25644:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1320,
|
|
"name": "ETH_RESERVE_ADDRESS",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 44,
|
|
"src": "25667:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"src": "25644:42:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"id": 1322,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "25644:42:0"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1342,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1335,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "25954:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1336,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1191,
|
|
"src": "25965:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 1341,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1340,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1337,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1191,
|
|
"src": "25970:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 1338,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "25970:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 1339,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "25984:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "25970:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "25965:21:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"src": "25954:32:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1343,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "25954:32:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1344,
|
|
"name": "etherTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 66,
|
|
"src": "26001:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_bool_$",
|
|
"typeString": "mapping(contract IERC20Token => bool)"
|
|
}
|
|
},
|
|
"id": 1347,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1345,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "26013:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1346,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "targetToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 52,
|
|
"src": "26013:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "26001:33:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1367,
|
|
"nodeType": "IfStatement",
|
|
"src": "25997:472:0",
|
|
"trueBody": {
|
|
"id": 1366,
|
|
"nodeType": "Block",
|
|
"src": "26036:433:0",
|
|
"statements": [
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1348,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "26147:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1349,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isV28OrHigherConverter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 56,
|
|
"src": "26147:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1363,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1356,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "26385:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1358,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "targetToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 52,
|
|
"src": "26385:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1360,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "26438:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1361,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "converter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 46,
|
|
"src": "26438:18:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 1359,
|
|
"name": "getConverterEtherTokenAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1552,
|
|
"src": "26408:29:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$13340_$returns$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "function (contract IConverter) view returns (contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 1362,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "26408:49:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"src": "26385:72:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"id": 1364,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "26385:72:0"
|
|
},
|
|
"id": 1365,
|
|
"nodeType": "IfStatement",
|
|
"src": "26143:314:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1354,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1350,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "26197:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1352,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "targetToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 52,
|
|
"src": "26197:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1353,
|
|
"name": "ETH_RESERVE_ADDRESS",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 44,
|
|
"src": "26220:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"src": "26197:42:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"id": 1355,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "26197:42:0"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1463,
|
|
"nodeType": "Block",
|
|
"src": "26561:1261:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1383,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1379,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "26576:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1380,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1191,
|
|
"src": "26587:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 1382,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1381,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "26592:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "26587:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"src": "26576:18:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1384,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "26576:18:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1385,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "26746:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1386,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isV28OrHigherConverter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 56,
|
|
"src": "26746:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"id": 1461,
|
|
"nodeType": "Block",
|
|
"src": "27642:169:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1459,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1449,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "27750:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1451,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "beneficiary",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 54,
|
|
"src": "27750:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1456,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "27789:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
],
|
|
"id": 1455,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "27781:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1454,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "27781:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1457,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "27781:13:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 1453,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "27773:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_payable_$",
|
|
"typeString": "type(address payable)"
|
|
},
|
|
"typeName": {
|
|
"id": 1452,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "27773:8:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1458,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "27773:22:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "27750:45:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"id": 1460,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "27750:45:0"
|
|
}
|
|
]
|
|
},
|
|
"id": 1462,
|
|
"nodeType": "IfStatement",
|
|
"src": "26742:1069:0",
|
|
"trueBody": {
|
|
"id": 1448,
|
|
"nodeType": "Block",
|
|
"src": "26779:844:0",
|
|
"statements": [
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1387,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "26902:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1388,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "processAffiliateFee",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 58,
|
|
"src": "26902:28:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1406,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1401,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "27106:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1405,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1402,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1191,
|
|
"src": "27111:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 1403,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "27111:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 1404,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "27125:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "27111:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "27106:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1413,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1191,
|
|
"src": "27310:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 1417,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1416,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1414,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "27315:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "+",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 1415,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "27319:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "27315:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "27310:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1418,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isV28OrHigherConverter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 56,
|
|
"src": "27310:34:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1443,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1433,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "27562:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1435,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "beneficiary",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 54,
|
|
"src": "27562:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1440,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "27601:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
],
|
|
"id": 1439,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "27593:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1438,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "27593:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1441,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "27593:13:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 1437,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "27585:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_payable_$",
|
|
"typeString": "type(address payable)"
|
|
},
|
|
"typeName": {
|
|
"id": 1436,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "27585:8:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1442,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "27585:22:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "27562:45:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"id": 1444,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "27562:45:0"
|
|
},
|
|
"id": 1445,
|
|
"nodeType": "IfStatement",
|
|
"src": "27306:301:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1431,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1419,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "27367:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1421,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "beneficiary",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 54,
|
|
"src": "27367:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1424,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1191,
|
|
"src": "27398:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 1428,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1427,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1425,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "27403:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "+",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 1426,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "27407:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "27403:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "27398:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1429,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "converter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 46,
|
|
"src": "27398:21:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 1423,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "27390:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1422,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "27390:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1430,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "27390:30:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "27367:53:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"id": 1432,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "27367:53:0"
|
|
}
|
|
},
|
|
"id": 1446,
|
|
"nodeType": "IfStatement",
|
|
"src": "27102:505:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1411,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1407,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "27149:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1409,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "beneficiary",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 54,
|
|
"src": "27149:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1410,
|
|
"name": "_beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1180,
|
|
"src": "27172:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "27149:35:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"id": 1412,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "27149:35:0"
|
|
}
|
|
},
|
|
"id": 1447,
|
|
"nodeType": "IfStatement",
|
|
"src": "26898:709:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1399,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1389,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "26953:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1391,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "beneficiary",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 54,
|
|
"src": "26953:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1396,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "26992:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
],
|
|
"id": 1395,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "26984:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1394,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "26984:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1397,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "26984:13:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 1393,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "26976:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_payable_$",
|
|
"typeString": "type(address payable)"
|
|
},
|
|
"typeName": {
|
|
"id": 1392,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "26976:8:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1398,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "26976:22:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "26953:45:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"id": 1400,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "26953:45:0"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1375,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1372,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "26539:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1373,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1191,
|
|
"src": "26543:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 1374,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "26543:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "26539:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 1464,
|
|
"initializationExpression": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1370,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1368,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "26532:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1369,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "26536:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "26532:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1371,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "26532:5:0"
|
|
},
|
|
"loopExpression": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1377,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "++",
|
|
"prefix": false,
|
|
"src": "26556:3:0",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1376,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "26556:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1378,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "26556:3:0"
|
|
},
|
|
"nodeType": "ForStatement",
|
|
"src": "26527:1295:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1465,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1191,
|
|
"src": "27841:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1187,
|
|
"id": 1466,
|
|
"nodeType": "Return",
|
|
"src": "27834:11:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1175,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "23083:503:0",
|
|
"text": " @dev creates a memory cache of all conversion steps data to minimize logic and external calls during conversions\n @param _conversionPath conversion path, see conversion path format above\n @param _beneficiary wallet to receive the conversion result\n @param _affiliateFeeEnabled true if affiliate fee was requested by the sender, false if not\n @return cached conversion data to be ingested later on by the conversion flow"
|
|
},
|
|
"id": 1468,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "createConversionData",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1183,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1178,
|
|
"mutability": "mutable",
|
|
"name": "_conversionPath",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1468,
|
|
"src": "23622:32:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 1176,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "23622:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1177,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "23622:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1180,
|
|
"mutability": "mutable",
|
|
"name": "_beneficiary",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1468,
|
|
"src": "23656:28:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"typeName": {
|
|
"id": 1179,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "23656:15:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1182,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateFeeEnabled",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1468,
|
|
"src": "23686:25:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 1181,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "23686:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "23621:91:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1187,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1186,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1468,
|
|
"src": "23735:23:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"contractScope": null,
|
|
"id": 1184,
|
|
"name": "ConversionStep",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 59,
|
|
"src": "23735:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep"
|
|
}
|
|
},
|
|
"id": 1185,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "23735:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_storage_$dyn_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "23734:25:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "23592:4261:0",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1510,
|
|
"nodeType": "Block",
|
|
"src": "28406:261:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
1479
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1479,
|
|
"mutability": "mutable",
|
|
"name": "allowance",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1510,
|
|
"src": "28417:17:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1478,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "28417:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1488,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1484,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "28462:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
],
|
|
"id": 1483,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "28454:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1482,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "28454:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1485,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "28454:13:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1486,
|
|
"name": "_spender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1473,
|
|
"src": "28469:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1480,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1471,
|
|
"src": "28437:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"id": 1481,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "allowance",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21097,
|
|
"src": "28437:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$",
|
|
"typeString": "function (address,address) view external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1487,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "28437:41:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "28417:61:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1491,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1489,
|
|
"name": "allowance",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1479,
|
|
"src": "28493:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1490,
|
|
"name": "_value",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1475,
|
|
"src": "28505:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "28493:18:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1509,
|
|
"nodeType": "IfStatement",
|
|
"src": "28489:171:0",
|
|
"trueBody": {
|
|
"id": 1508,
|
|
"nodeType": "Block",
|
|
"src": "28513:147:0",
|
|
"statements": [
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1494,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1492,
|
|
"name": "allowance",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1479,
|
|
"src": "28532:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1493,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "28544:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "28532:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1501,
|
|
"nodeType": "IfStatement",
|
|
"src": "28528:68:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1496,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1471,
|
|
"src": "28576:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1497,
|
|
"name": "_spender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1473,
|
|
"src": "28584:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1498,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "28594:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1495,
|
|
"name": "safeApprove",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22428,
|
|
"src": "28564:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (contract IERC20Token,address,uint256)"
|
|
}
|
|
},
|
|
"id": 1499,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "28564:32:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1500,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "28564:32:0"
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1503,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1471,
|
|
"src": "28623:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1504,
|
|
"name": "_spender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1473,
|
|
"src": "28631:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1505,
|
|
"name": "_value",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1475,
|
|
"src": "28641:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1502,
|
|
"name": "safeApprove",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22428,
|
|
"src": "28611:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (contract IERC20Token,address,uint256)"
|
|
}
|
|
},
|
|
"id": 1506,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "28611:37:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1507,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "28611:37:0"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1469,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "27861:452:0",
|
|
"text": " @dev utility, checks whether allowance for the given spender exists and approves one if it doesn't.\n Note that we use the non standard erc-20 interface in which `approve` has no return value so that\n this function will work for both standard and non standard tokens\n @param _token token to check the allowance in\n @param _spender approved address\n @param _value allowance amount"
|
|
},
|
|
"id": 1511,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "ensureAllowance",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1476,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1471,
|
|
"mutability": "mutable",
|
|
"name": "_token",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1511,
|
|
"src": "28344:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1470,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "28344:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1473,
|
|
"mutability": "mutable",
|
|
"name": "_spender",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1511,
|
|
"src": "28364:16:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1472,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "28364:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1475,
|
|
"mutability": "mutable",
|
|
"name": "_value",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1511,
|
|
"src": "28382:14:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1474,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "28382:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "28343:54:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1477,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "28406:0:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "28319:348:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1551,
|
|
"nodeType": "Block",
|
|
"src": "28848:352:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
1519
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1519,
|
|
"mutability": "mutable",
|
|
"name": "reserveCount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1551,
|
|
"src": "28859:20:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1518,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "28859:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1523,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1520,
|
|
"name": "_converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1513,
|
|
"src": "28882:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"id": 1521,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "connectorTokenCount",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 13339,
|
|
"src": "28882:30:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$__$returns$_t_uint16_$",
|
|
"typeString": "function () view external returns (uint16)"
|
|
}
|
|
},
|
|
"id": 1522,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "28882:32:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "28859:55:0"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1547,
|
|
"nodeType": "Block",
|
|
"src": "28968:186:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
1535
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1535,
|
|
"mutability": "mutable",
|
|
"name": "reserveTokenAddress",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1547,
|
|
"src": "28983:31:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1534,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "28983:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1540,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1538,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1525,
|
|
"src": "29044:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1536,
|
|
"name": "_converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1513,
|
|
"src": "29017:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"id": 1537,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "connectorTokens",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 13334,
|
|
"src": "29017:26:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "function (uint256) view external returns (contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 1539,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "29017:29:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "28983:63:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1541,
|
|
"name": "etherTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 66,
|
|
"src": "29065:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_bool_$",
|
|
"typeString": "mapping(contract IERC20Token => bool)"
|
|
}
|
|
},
|
|
"id": 1543,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1542,
|
|
"name": "reserveTokenAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1535,
|
|
"src": "29077:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "29065:32:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1546,
|
|
"nodeType": "IfStatement",
|
|
"src": "29061:81:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1544,
|
|
"name": "reserveTokenAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1535,
|
|
"src": "29123:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1517,
|
|
"id": 1545,
|
|
"nodeType": "Return",
|
|
"src": "29116:26:0"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1530,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1528,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1525,
|
|
"src": "28945:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1529,
|
|
"name": "reserveCount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1519,
|
|
"src": "28949:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "28945:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 1548,
|
|
"initializationExpression": {
|
|
"assignments": [
|
|
1525
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1525,
|
|
"mutability": "mutable",
|
|
"name": "i",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1548,
|
|
"src": "28930:9:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1524,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "28930:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1527,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1526,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "28942:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "28930:13:0"
|
|
},
|
|
"loopExpression": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1532,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "++",
|
|
"prefix": false,
|
|
"src": "28963:3:0",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1531,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1525,
|
|
"src": "28963:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1533,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "28963:3:0"
|
|
},
|
|
"nodeType": "ForStatement",
|
|
"src": "28925:229:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1549,
|
|
"name": "ETH_RESERVE_ADDRESS",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 44,
|
|
"src": "29173:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1517,
|
|
"id": 1550,
|
|
"nodeType": "Return",
|
|
"src": "29166:26:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 1552,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "getConverterEtherTokenAddress",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1514,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1513,
|
|
"mutability": "mutable",
|
|
"name": "_converter",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1552,
|
|
"src": "28790:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1512,
|
|
"name": "IConverter",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13340,
|
|
"src": "28790:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "28789:23:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1517,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1516,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1552,
|
|
"src": "28835:11:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1515,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "28835:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "28834:13:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "28751:449:0",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1578,
|
|
"nodeType": "Block",
|
|
"src": "29474:224:0",
|
|
"statements": [
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"id": 1564,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "!",
|
|
"prefix": true,
|
|
"src": "29489:20:0",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1561,
|
|
"name": "etherTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 66,
|
|
"src": "29490:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_bool_$",
|
|
"typeString": "mapping(contract IERC20Token => bool)"
|
|
}
|
|
},
|
|
"id": 1563,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1562,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1556,
|
|
"src": "29502:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "29490:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1567,
|
|
"nodeType": "IfStatement",
|
|
"src": "29485:52:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1565,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1556,
|
|
"src": "29531:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1560,
|
|
"id": 1566,
|
|
"nodeType": "Return",
|
|
"src": "29524:13:0"
|
|
}
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1569,
|
|
"name": "_converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1554,
|
|
"src": "29577:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 1568,
|
|
"name": "isV28OrHigherConverter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1719,
|
|
"src": "29554:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$13340_$returns$_t_bool_$",
|
|
"typeString": "function (contract IConverter) view returns (bool)"
|
|
}
|
|
},
|
|
"id": 1570,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "29554:34:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1573,
|
|
"nodeType": "IfStatement",
|
|
"src": "29550:79:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1571,
|
|
"name": "ETH_RESERVE_ADDRESS",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 44,
|
|
"src": "29610:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1560,
|
|
"id": 1572,
|
|
"nodeType": "Return",
|
|
"src": "29603:26:0"
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1575,
|
|
"name": "_converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1554,
|
|
"src": "29679:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 1574,
|
|
"name": "getConverterEtherTokenAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1552,
|
|
"src": "29649:29:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$13340_$returns$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "function (contract IConverter) view returns (contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 1576,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "29649:41:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1560,
|
|
"id": 1577,
|
|
"nodeType": "Return",
|
|
"src": "29642:48:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 1579,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "getConverterTokenAddress",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1557,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1554,
|
|
"mutability": "mutable",
|
|
"name": "_converter",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1579,
|
|
"src": "29396:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1553,
|
|
"name": "IConverter",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13340,
|
|
"src": "29396:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1556,
|
|
"mutability": "mutable",
|
|
"name": "_token",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1579,
|
|
"src": "29419:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1555,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "29419:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "29395:43:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1560,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1559,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1579,
|
|
"src": "29461:11:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1558,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "29461:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "29460:13:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "29362:336:0",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"id": 1587,
|
|
"mutability": "constant",
|
|
"name": "GET_RETURN_FUNC_SELECTOR",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1976,
|
|
"src": "29706:106:0",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
},
|
|
"typeName": {
|
|
"id": 1580,
|
|
"name": "bytes4",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "29706:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "67657452657475726e28616464726573732c616464726573732c75696e7432353629",
|
|
"id": 1584,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "29774:36:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_1e1401f8329fe5eb5c7e76277d3c971ffeee3a41a0eef7c00afeb0a286cef0af",
|
|
"typeString": "literal_string \"getReturn(address,address,uint256)\""
|
|
},
|
|
"value": "getReturn(address,address,uint256)"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_stringliteral_1e1401f8329fe5eb5c7e76277d3c971ffeee3a41a0eef7c00afeb0a286cef0af",
|
|
"typeString": "literal_string \"getReturn(address,address,uint256)\""
|
|
}
|
|
],
|
|
"id": 1583,
|
|
"name": "keccak256",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -8,
|
|
"src": "29764:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
|
|
"typeString": "function (bytes memory) pure returns (bytes32)"
|
|
}
|
|
},
|
|
"id": 1585,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "29764:47:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
],
|
|
"id": 1582,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "29757:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_bytes4_$",
|
|
"typeString": "type(bytes4)"
|
|
},
|
|
"typeName": {
|
|
"id": 1581,
|
|
"name": "bytes4",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "29757:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1586,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "29757:55:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
}
|
|
},
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1663,
|
|
"nodeType": "Block",
|
|
"src": "30036:523:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
1603
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1603,
|
|
"mutability": "mutable",
|
|
"name": "data",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1663,
|
|
"src": "30047:17:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes"
|
|
},
|
|
"typeName": {
|
|
"id": 1602,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "30047:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1611,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1606,
|
|
"name": "GET_RETURN_FUNC_SELECTOR",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1587,
|
|
"src": "30090:24:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1607,
|
|
"name": "_sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1591,
|
|
"src": "30116:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1608,
|
|
"name": "_targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1593,
|
|
"src": "30130:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1609,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1595,
|
|
"src": "30144:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1604,
|
|
"name": "abi",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -1,
|
|
"src": "30067:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_abi",
|
|
"typeString": "abi"
|
|
}
|
|
},
|
|
"id": 1605,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"memberName": "encodeWithSelector",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "30067:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
|
|
"typeString": "function (bytes4) pure returns (bytes memory)"
|
|
}
|
|
},
|
|
"id": 1610,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "30067:85:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "30047:105:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
1613,
|
|
1615
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1613,
|
|
"mutability": "mutable",
|
|
"name": "success",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1663,
|
|
"src": "30164:12:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 1612,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "30164:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1615,
|
|
"mutability": "mutable",
|
|
"name": "returnData",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1663,
|
|
"src": "30178:23:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes"
|
|
},
|
|
"typeName": {
|
|
"id": 1614,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "30178:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1623,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1621,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1603,
|
|
"src": "30231:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1618,
|
|
"name": "_dest",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1589,
|
|
"src": "30213:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 1617,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "30205:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1616,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "30205:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1619,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "30205:14:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"id": 1620,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "staticcall",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "30205:25:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
|
|
"typeString": "function (bytes memory) view returns (bool,bytes memory)"
|
|
}
|
|
},
|
|
"id": 1622,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "30205:31:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
|
|
"typeString": "tuple(bool,bytes memory)"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "30163:73:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"id": 1624,
|
|
"name": "success",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1613,
|
|
"src": "30253:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1658,
|
|
"nodeType": "IfStatement",
|
|
"src": "30249:277:0",
|
|
"trueBody": {
|
|
"id": 1657,
|
|
"nodeType": "Block",
|
|
"src": "30262:264:0",
|
|
"statements": [
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1628,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1625,
|
|
"name": "returnData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1615,
|
|
"src": "30281:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"id": 1626,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "30281:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "3634",
|
|
"id": 1627,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "30302:2:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_64_by_1",
|
|
"typeString": "int_const 64"
|
|
},
|
|
"value": "64"
|
|
},
|
|
"src": "30281:23:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1640,
|
|
"nodeType": "IfStatement",
|
|
"src": "30277:113:0",
|
|
"trueBody": {
|
|
"id": 1639,
|
|
"nodeType": "Block",
|
|
"src": "30306:84:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1631,
|
|
"name": "returnData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1615,
|
|
"src": "30343:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"components": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1633,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "30356:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_uint256_$",
|
|
"typeString": "type(uint256)"
|
|
},
|
|
"typeName": {
|
|
"id": 1632,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "30356:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1635,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "30365:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_uint256_$",
|
|
"typeString": "type(uint256)"
|
|
},
|
|
"typeName": {
|
|
"id": 1634,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "30365:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"id": 1636,
|
|
"isConstant": false,
|
|
"isInlineArray": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "TupleExpression",
|
|
"src": "30355:18:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$",
|
|
"typeString": "tuple(type(uint256),type(uint256))"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$",
|
|
"typeString": "tuple(type(uint256),type(uint256))"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1629,
|
|
"name": "abi",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -1,
|
|
"src": "30332:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_abi",
|
|
"typeString": "abi"
|
|
}
|
|
},
|
|
"id": 1630,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"memberName": "decode",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "30332:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
|
|
"typeString": "function () pure"
|
|
}
|
|
},
|
|
"id": 1637,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "30332:42:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
|
|
"typeString": "tuple(uint256,uint256)"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1601,
|
|
"id": 1638,
|
|
"nodeType": "Return",
|
|
"src": "30325:49:0"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1644,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1641,
|
|
"name": "returnData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1615,
|
|
"src": "30410:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"id": 1642,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "30410:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "3332",
|
|
"id": 1643,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "30431:2:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_32_by_1",
|
|
"typeString": "int_const 32"
|
|
},
|
|
"value": "32"
|
|
},
|
|
"src": "30410:23:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1656,
|
|
"nodeType": "IfStatement",
|
|
"src": "30406:109:0",
|
|
"trueBody": {
|
|
"id": 1655,
|
|
"nodeType": "Block",
|
|
"src": "30435:80:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"components": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1647,
|
|
"name": "returnData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1615,
|
|
"src": "30473:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"components": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1649,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "30486:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_uint256_$",
|
|
"typeString": "type(uint256)"
|
|
},
|
|
"typeName": {
|
|
"id": 1648,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "30486:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"id": 1650,
|
|
"isConstant": false,
|
|
"isInlineArray": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "TupleExpression",
|
|
"src": "30485:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_uint256_$",
|
|
"typeString": "type(uint256)"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_type$_t_uint256_$",
|
|
"typeString": "type(uint256)"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1645,
|
|
"name": "abi",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -1,
|
|
"src": "30462:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_abi",
|
|
"typeString": "abi"
|
|
}
|
|
},
|
|
"id": 1646,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"memberName": "decode",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "30462:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
|
|
"typeString": "function () pure"
|
|
}
|
|
},
|
|
"id": 1651,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "30462:33:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1652,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "30497:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"id": 1653,
|
|
"isConstant": false,
|
|
"isInlineArray": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "TupleExpression",
|
|
"src": "30461:38:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_uint256_$_t_rational_0_by_1_$",
|
|
"typeString": "tuple(uint256,int_const 0)"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1601,
|
|
"id": 1654,
|
|
"nodeType": "Return",
|
|
"src": "30454:45:0"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"components": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1659,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "30546:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1660,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "30549:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"id": 1661,
|
|
"isConstant": false,
|
|
"isInlineArray": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "TupleExpression",
|
|
"src": "30545:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$",
|
|
"typeString": "tuple(int_const 0,int_const 0)"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1601,
|
|
"id": 1662,
|
|
"nodeType": "Return",
|
|
"src": "30538:13:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 1664,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "getReturn",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1596,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1589,
|
|
"mutability": "mutable",
|
|
"name": "_dest",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1664,
|
|
"src": "29908:16:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1588,
|
|
"name": "IConverter",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13340,
|
|
"src": "29908:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1591,
|
|
"mutability": "mutable",
|
|
"name": "_sourceToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1664,
|
|
"src": "29926:24:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1590,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "29926:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1593,
|
|
"mutability": "mutable",
|
|
"name": "_targetToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1664,
|
|
"src": "29952:24:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1592,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "29952:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1595,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1664,
|
|
"src": "29978:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1594,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "29978:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "29907:87:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1601,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1598,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1664,
|
|
"src": "30018:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1597,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "30018:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1600,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1664,
|
|
"src": "30027:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1599,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "30027:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "30017:18:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "29889:670:0",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"id": 1672,
|
|
"mutability": "constant",
|
|
"name": "IS_V28_OR_HIGHER_FUNC_SELECTOR",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1976,
|
|
"src": "30567:93:0",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
},
|
|
"typeName": {
|
|
"id": 1665,
|
|
"name": "bytes4",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "30567:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "69735632384f724869676865722829",
|
|
"id": 1669,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "30641:17:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_d260529c8620a59d78f2e58cfd1294673bb6cba228ad1f34ac7731003ab870dd",
|
|
"typeString": "literal_string \"isV28OrHigher()\""
|
|
},
|
|
"value": "isV28OrHigher()"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_stringliteral_d260529c8620a59d78f2e58cfd1294673bb6cba228ad1f34ac7731003ab870dd",
|
|
"typeString": "literal_string \"isV28OrHigher()\""
|
|
}
|
|
],
|
|
"id": 1668,
|
|
"name": "keccak256",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -8,
|
|
"src": "30631:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
|
|
"typeString": "function (bytes memory) pure returns (bytes32)"
|
|
}
|
|
},
|
|
"id": 1670,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "30631:28:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
],
|
|
"id": 1667,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "30624:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_bytes4_$",
|
|
"typeString": "type(bytes4)"
|
|
},
|
|
"typeName": {
|
|
"id": 1666,
|
|
"name": "bytes4",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "30624:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1671,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "30624:36:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
}
|
|
},
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1718,
|
|
"nodeType": "Block",
|
|
"src": "30917:336:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
1680
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1680,
|
|
"mutability": "mutable",
|
|
"name": "data",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1718,
|
|
"src": "30928:17:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes"
|
|
},
|
|
"typeName": {
|
|
"id": 1679,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "30928:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1685,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1683,
|
|
"name": "IS_V28_OR_HIGHER_FUNC_SELECTOR",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1672,
|
|
"src": "30971:30:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1681,
|
|
"name": "abi",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -1,
|
|
"src": "30948:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_abi",
|
|
"typeString": "abi"
|
|
}
|
|
},
|
|
"id": 1682,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"memberName": "encodeWithSelector",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "30948:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
|
|
"typeString": "function (bytes4) pure returns (bytes memory)"
|
|
}
|
|
},
|
|
"id": 1684,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "30948:54:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "30928:74:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
1687,
|
|
1689
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1687,
|
|
"mutability": "mutable",
|
|
"name": "success",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1718,
|
|
"src": "31014:12:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 1686,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31014:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1689,
|
|
"mutability": "mutable",
|
|
"name": "returnData",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1718,
|
|
"src": "31028:23:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes"
|
|
},
|
|
"typeName": {
|
|
"id": 1688,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31028:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1699,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1697,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1680,
|
|
"src": "31099:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1692,
|
|
"name": "_converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1674,
|
|
"src": "31063:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 1691,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "31055:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1690,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31055:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1693,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "31055:19:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"id": 1694,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "staticcall",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "31055:30:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
|
|
"typeString": "function (bytes memory) view returns (bool,bytes memory)"
|
|
}
|
|
},
|
|
"id": 1696,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"names": [
|
|
"gas"
|
|
],
|
|
"nodeType": "FunctionCallOptions",
|
|
"options": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "34303030",
|
|
"id": 1695,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "31092:4:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_4000_by_1",
|
|
"typeString": "int_const 4000"
|
|
},
|
|
"value": "4000"
|
|
}
|
|
],
|
|
"src": "31055:43:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gas",
|
|
"typeString": "function (bytes memory) view returns (bool,bytes memory)"
|
|
}
|
|
},
|
|
"id": 1698,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "31055:49:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
|
|
"typeString": "tuple(bool,bytes memory)"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "31013:91:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 1705,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1700,
|
|
"name": "success",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1687,
|
|
"src": "31121:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1704,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1701,
|
|
"name": "returnData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1689,
|
|
"src": "31132:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"id": 1702,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "31132:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "3332",
|
|
"id": 1703,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "31153:2:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_32_by_1",
|
|
"typeString": "int_const 32"
|
|
},
|
|
"value": "32"
|
|
},
|
|
"src": "31132:23:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "31121:34:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1715,
|
|
"nodeType": "IfStatement",
|
|
"src": "31117:104:0",
|
|
"trueBody": {
|
|
"id": 1714,
|
|
"nodeType": "Block",
|
|
"src": "31157:64:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1708,
|
|
"name": "returnData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1689,
|
|
"src": "31190:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"components": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1710,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "31203:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_bool_$",
|
|
"typeString": "type(bool)"
|
|
},
|
|
"typeName": {
|
|
"id": 1709,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31203:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"id": 1711,
|
|
"isConstant": false,
|
|
"isInlineArray": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "TupleExpression",
|
|
"src": "31202:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_bool_$",
|
|
"typeString": "type(bool)"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_type$_t_bool_$",
|
|
"typeString": "type(bool)"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1706,
|
|
"name": "abi",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -1,
|
|
"src": "31179:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_abi",
|
|
"typeString": "abi"
|
|
}
|
|
},
|
|
"id": 1707,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"memberName": "decode",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "31179:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
|
|
"typeString": "function () pure"
|
|
}
|
|
},
|
|
"id": 1712,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "31179:30:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1678,
|
|
"id": 1713,
|
|
"nodeType": "Return",
|
|
"src": "31172:37:0"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "66616c7365",
|
|
"id": 1716,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "31240:5:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "false"
|
|
},
|
|
"functionReturnParameters": 1678,
|
|
"id": 1717,
|
|
"nodeType": "Return",
|
|
"src": "31233:12:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 1719,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "isV28OrHigherConverter",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1675,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1674,
|
|
"mutability": "mutable",
|
|
"name": "_converter",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1719,
|
|
"src": "30865:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1673,
|
|
"name": "IConverter",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13340,
|
|
"src": "30865:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "30864:23:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1678,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1677,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1719,
|
|
"src": "30911:4:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 1676,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "30911:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "30910:6:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "30833:420:0",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1739,
|
|
"nodeType": "Block",
|
|
"src": "31432:57:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"components": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1733,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1723,
|
|
"src": "31462:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1734,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1725,
|
|
"src": "31469:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1732,
|
|
"name": "rateByPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 462,
|
|
"src": "31451:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (address[] memory,uint256) view returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1735,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "31451:26:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1736,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "31479:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"id": 1737,
|
|
"isConstant": false,
|
|
"isInlineArray": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "TupleExpression",
|
|
"src": "31450:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_uint256_$_t_rational_0_by_1_$",
|
|
"typeString": "tuple(uint256,int_const 0)"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1731,
|
|
"id": 1738,
|
|
"nodeType": "Return",
|
|
"src": "31443:38:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1720,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "31261:60:0",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "0c8496cc",
|
|
"id": 1740,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "getReturnByPath",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1726,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1723,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1740,
|
|
"src": "31352:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 1721,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31352:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1722,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "31352:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1725,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1740,
|
|
"src": "31376:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1724,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31376:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "31351:41:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1731,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1728,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1740,
|
|
"src": "31414:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1727,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31414:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1730,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1740,
|
|
"src": "31423:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1729,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31423:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "31413:18:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "31327:162:0",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1768,
|
|
"nodeType": "Block",
|
|
"src": "31674:94:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1754,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1744,
|
|
"src": "31706:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1755,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1746,
|
|
"src": "31713:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1756,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1748,
|
|
"src": "31722:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1759,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "31742:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1758,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "31734:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1757,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31734:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1760,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "31734:10:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1763,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "31754:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1762,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "31746:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1761,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31746:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1764,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "31746:10:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1765,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "31758:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1753,
|
|
"name": "convertByPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 598,
|
|
"src": "31692:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_payable_$_t_address_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (address[] memory,uint256,uint256,address payable,address,uint256) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1766,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "31692:68:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1752,
|
|
"id": 1767,
|
|
"nodeType": "Return",
|
|
"src": "31685:75:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1741,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "31497:60:0",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "f3898a97",
|
|
"id": 1769,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "convert",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1749,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1744,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1769,
|
|
"src": "31580:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 1742,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31580:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1743,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "31580:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1746,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1769,
|
|
"src": "31604:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1745,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31604:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1748,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1769,
|
|
"src": "31621:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1747,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31621:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "31579:61:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1752,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1751,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1769,
|
|
"src": "31665:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1750,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31665:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "31664:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "31563:205:0",
|
|
"stateMutability": "payable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1798,
|
|
"nodeType": "Block",
|
|
"src": "32088:113:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1787,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1773,
|
|
"src": "32120:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1788,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1775,
|
|
"src": "32127:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1789,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1777,
|
|
"src": "32136:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1792,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "32156:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1791,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "32148:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1790,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32148:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1793,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "32148:10:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1794,
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1779,
|
|
"src": "32160:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1795,
|
|
"name": "_affiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1781,
|
|
"src": "32179:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1786,
|
|
"name": "convertByPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 598,
|
|
"src": "32106:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_payable_$_t_address_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (address[] memory,uint256,uint256,address payable,address,uint256) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1796,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "32106:87:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1785,
|
|
"id": 1797,
|
|
"nodeType": "Return",
|
|
"src": "32099:94:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1770,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "31776:60:0",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "569706eb",
|
|
"id": 1799,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "convert2",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1782,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1773,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1799,
|
|
"src": "31870:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 1771,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31870:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1772,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "31870:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1775,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1799,
|
|
"src": "31903:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1774,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31903:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1777,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1799,
|
|
"src": "31929:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1776,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31929:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1779,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1799,
|
|
"src": "31958:25:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1778,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31958:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1781,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1799,
|
|
"src": "31994:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1780,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31994:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "31859:163:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1785,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1784,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1799,
|
|
"src": "32074:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1783,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32074:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "32073:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "31842:359:0",
|
|
"stateMutability": "payable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1826,
|
|
"nodeType": "Block",
|
|
"src": "32419:96:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1815,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1803,
|
|
"src": "32451:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1816,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1805,
|
|
"src": "32458:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1817,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1807,
|
|
"src": "32467:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1818,
|
|
"name": "_beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1809,
|
|
"src": "32479:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1821,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "32501:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1820,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "32493:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1819,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32493:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1822,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "32493:10:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1823,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "32505:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1814,
|
|
"name": "convertByPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 598,
|
|
"src": "32437:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_payable_$_t_address_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (address[] memory,uint256,uint256,address payable,address,uint256) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1824,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "32437:70:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1813,
|
|
"id": 1825,
|
|
"nodeType": "Return",
|
|
"src": "32430:77:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1800,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "32209:60:0",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "c98fefed",
|
|
"id": 1827,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "convertFor",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1810,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1803,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1827,
|
|
"src": "32295:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 1801,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32295:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1802,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "32295:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1805,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1827,
|
|
"src": "32319:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1804,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32319:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1807,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1827,
|
|
"src": "32336:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1806,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32336:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1809,
|
|
"mutability": "mutable",
|
|
"name": "_beneficiary",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1827,
|
|
"src": "32356:28:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"typeName": {
|
|
"id": 1808,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32356:15:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "32294:91:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1813,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1812,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1827,
|
|
"src": "32410:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1811,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32410:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "32409:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "32275:240:0",
|
|
"stateMutability": "payable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1858,
|
|
"nodeType": "Block",
|
|
"src": "32914:115:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1850,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1831,
|
|
"src": "32946:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1851,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1833,
|
|
"src": "32953:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1852,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1835,
|
|
"src": "32962:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1853,
|
|
"name": "_beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1837,
|
|
"src": "32974:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1854,
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1839,
|
|
"src": "32988:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1855,
|
|
"name": "_affiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1841,
|
|
"src": "33007:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1849,
|
|
"name": "convertByPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 598,
|
|
"src": "32932:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_payable_$_t_address_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (address[] memory,uint256,uint256,address payable,address,uint256) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1856,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "32932:89:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1848,
|
|
"id": 1857,
|
|
"nodeType": "Return",
|
|
"src": "32925:96:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1828,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "32523:60:0",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "ab6214ce",
|
|
"id": 1859,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1844,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1835,
|
|
"src": "32870:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"id": 1845,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 1843,
|
|
"name": "greaterThanZero",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22595,
|
|
"src": "32854:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_uint256_$",
|
|
"typeString": "modifier (uint256)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "32854:27:0"
|
|
}
|
|
],
|
|
"name": "convertFor2",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1842,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1831,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1859,
|
|
"src": "32620:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 1829,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32620:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1830,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "32620:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1833,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1859,
|
|
"src": "32653:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1832,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32653:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1835,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1859,
|
|
"src": "32679:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1834,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32679:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1837,
|
|
"mutability": "mutable",
|
|
"name": "_beneficiary",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1859,
|
|
"src": "32708:28:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"typeName": {
|
|
"id": 1836,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32708:15:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1839,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1859,
|
|
"src": "32747:25:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1838,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32747:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1841,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1859,
|
|
"src": "32783:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1840,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32783:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "32609:202:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1848,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1847,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1859,
|
|
"src": "32900:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1846,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32900:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "32899:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "32589:440:0",
|
|
"stateMutability": "payable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1887,
|
|
"nodeType": "Block",
|
|
"src": "33214:94:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1873,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1863,
|
|
"src": "33246:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1874,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1865,
|
|
"src": "33253:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1875,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1867,
|
|
"src": "33262:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1878,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "33282:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1877,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "33274:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1876,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33274:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1879,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "33274:10:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1882,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "33294:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1881,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "33286:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1880,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33286:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1883,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "33286:10:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1884,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "33298:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1872,
|
|
"name": "convertByPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 598,
|
|
"src": "33232:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_payable_$_t_address_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (address[] memory,uint256,uint256,address payable,address,uint256) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1885,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "33232:68:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1871,
|
|
"id": 1886,
|
|
"nodeType": "Return",
|
|
"src": "33225:75:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1860,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "33037:60:0",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "c7ba24bc",
|
|
"id": 1888,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "claimAndConvert",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1868,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1863,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1888,
|
|
"src": "33128:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 1861,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33128:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1862,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "33128:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1865,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1888,
|
|
"src": "33152:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1864,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33152:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1867,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1888,
|
|
"src": "33169:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1866,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33169:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "33127:61:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1871,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1870,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1888,
|
|
"src": "33205:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1869,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33205:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "33204:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "33103:205:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1917,
|
|
"nodeType": "Block",
|
|
"src": "33619:113:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1906,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1892,
|
|
"src": "33651:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1907,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1894,
|
|
"src": "33658:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1908,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1896,
|
|
"src": "33667:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1911,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "33687:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1910,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "33679:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1909,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33679:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1912,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "33679:10:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1913,
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1898,
|
|
"src": "33691:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1914,
|
|
"name": "_affiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1900,
|
|
"src": "33710:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1905,
|
|
"name": "convertByPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 598,
|
|
"src": "33637:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_payable_$_t_address_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (address[] memory,uint256,uint256,address payable,address,uint256) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1915,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "33637:87:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1904,
|
|
"id": 1916,
|
|
"nodeType": "Return",
|
|
"src": "33630:94:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1889,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "33316:60:0",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "e57738e5",
|
|
"id": 1918,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "claimAndConvert2",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1901,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1892,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1918,
|
|
"src": "33418:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 1890,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33418:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1891,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "33418:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1894,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1918,
|
|
"src": "33451:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1893,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33451:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1896,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1918,
|
|
"src": "33477:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1895,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33477:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1898,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1918,
|
|
"src": "33506:25:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1897,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33506:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1900,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1918,
|
|
"src": "33542:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1899,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33542:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "33407:163:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1904,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1903,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1918,
|
|
"src": "33605:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1902,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33605:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "33604:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "33382:350:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1945,
|
|
"nodeType": "Block",
|
|
"src": "33950:96:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1934,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1922,
|
|
"src": "33982:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1935,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1924,
|
|
"src": "33989:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1936,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1926,
|
|
"src": "33998:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1937,
|
|
"name": "_beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1928,
|
|
"src": "34010:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1940,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "34032:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1939,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "34024:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1938,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "34024:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1941,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "34024:10:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1942,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "34036:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1933,
|
|
"name": "convertByPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 598,
|
|
"src": "33968:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_payable_$_t_address_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (address[] memory,uint256,uint256,address payable,address,uint256) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1943,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "33968:70:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1932,
|
|
"id": 1944,
|
|
"nodeType": "Return",
|
|
"src": "33961:77:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1919,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "33740:60:0",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "b1e9932b",
|
|
"id": 1946,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "claimAndConvertFor",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1929,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1922,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1946,
|
|
"src": "33834:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 1920,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33834:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1921,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "33834:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1924,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1946,
|
|
"src": "33858:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1923,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33858:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1926,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1946,
|
|
"src": "33875:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1925,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33875:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1928,
|
|
"mutability": "mutable",
|
|
"name": "_beneficiary",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1946,
|
|
"src": "33895:28:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"typeName": {
|
|
"id": 1927,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33895:15:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "33833:91:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1932,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1931,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1946,
|
|
"src": "33941:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1930,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33941:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "33940:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "33806:240:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1974,
|
|
"nodeType": "Block",
|
|
"src": "34399:115:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1966,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1950,
|
|
"src": "34431:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1967,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1952,
|
|
"src": "34438:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1968,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1954,
|
|
"src": "34447:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1969,
|
|
"name": "_beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1956,
|
|
"src": "34459:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1970,
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1958,
|
|
"src": "34473:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1971,
|
|
"name": "_affiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1960,
|
|
"src": "34492:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1965,
|
|
"name": "convertByPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 598,
|
|
"src": "34417:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_payable_$_t_address_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (address[] memory,uint256,uint256,address payable,address,uint256) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1972,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "34417:89:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1964,
|
|
"id": 1973,
|
|
"nodeType": "Return",
|
|
"src": "34410:96:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1947,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "34054:60:0",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "2978c10e",
|
|
"id": 1975,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "claimAndConvertFor2",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1961,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1950,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1975,
|
|
"src": "34159:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 1948,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "34159:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1949,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "34159:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1952,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1975,
|
|
"src": "34192:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1951,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "34192:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1954,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1975,
|
|
"src": "34218:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1953,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "34218:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1956,
|
|
"mutability": "mutable",
|
|
"name": "_beneficiary",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1975,
|
|
"src": "34247:28:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"typeName": {
|
|
"id": 1955,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "34247:15:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1958,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1975,
|
|
"src": "34286:25:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1957,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "34286:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1960,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1975,
|
|
"src": "34322:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1959,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "34322:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "34148:202:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1964,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1963,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1975,
|
|
"src": "34385:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1962,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "34385:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "34384:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "34120:394:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
}
|
|
],
|
|
"scope": 1977,
|
|
"src": "1956:32561:0"
|
|
}
|
|
],
|
|
"src": "52:34467:0"
|
|
},
|
|
"legacyAST": {
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/BancorNetwork.sol",
|
|
"exportedSymbols": {
|
|
"BancorNetwork": [
|
|
1976
|
|
],
|
|
"ILegacyConverter": [
|
|
26
|
|
]
|
|
},
|
|
"id": 1977,
|
|
"license": "SEE LICENSE IN LICENSE",
|
|
"nodeType": "SourceUnit",
|
|
"nodes": [
|
|
{
|
|
"id": 1,
|
|
"literals": [
|
|
"solidity",
|
|
"0.6",
|
|
".12"
|
|
],
|
|
"nodeType": "PragmaDirective",
|
|
"src": "52:23:0"
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/IConversionPathFinder.sol",
|
|
"file": "./IConversionPathFinder.sol",
|
|
"id": 2,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1977,
|
|
"sourceUnit": 2547,
|
|
"src": "77:37:0",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/IConverter.sol",
|
|
"file": "./converter/interfaces/IConverter.sol",
|
|
"id": 3,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1977,
|
|
"sourceUnit": 13341,
|
|
"src": "116:47:0",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/IConverterAnchor.sol",
|
|
"file": "./converter/interfaces/IConverterAnchor.sol",
|
|
"id": 4,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1977,
|
|
"sourceUnit": 13350,
|
|
"src": "165:53:0",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/IBancorFormula.sol",
|
|
"file": "./converter/interfaces/IBancorFormula.sol",
|
|
"id": 5,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1977,
|
|
"sourceUnit": 13178,
|
|
"src": "220:51:0",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/ContractRegistryClient.sol",
|
|
"file": "./utility/ContractRegistryClient.sol",
|
|
"id": 6,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1977,
|
|
"sourceUnit": 21720,
|
|
"src": "273:46:0",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/ReentrancyGuard.sol",
|
|
"file": "./utility/ReentrancyGuard.sol",
|
|
"id": 7,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1977,
|
|
"sourceUnit": 22243,
|
|
"src": "321:39:0",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/TokenHolder.sol",
|
|
"file": "./utility/TokenHolder.sol",
|
|
"id": 8,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1977,
|
|
"sourceUnit": 22576,
|
|
"src": "362:35:0",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/SafeMath.sol",
|
|
"file": "./utility/SafeMath.sol",
|
|
"id": 9,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1977,
|
|
"sourceUnit": 22355,
|
|
"src": "399:32:0",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/token/interfaces/IEtherToken.sol",
|
|
"file": "./token/interfaces/IEtherToken.sol",
|
|
"id": 10,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1977,
|
|
"sourceUnit": 21154,
|
|
"src": "433:44:0",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/token/interfaces/ISmartToken.sol",
|
|
"file": "./token/interfaces/ISmartToken.sol",
|
|
"id": 11,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1977,
|
|
"sourceUnit": 21183,
|
|
"src": "479:44:0",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/bancorx/interfaces/IBancorX.sol",
|
|
"file": "./bancorx/interfaces/IBancorX.sol",
|
|
"id": 12,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 1977,
|
|
"sourceUnit": 3552,
|
|
"src": "525:43:0",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"abstract": false,
|
|
"baseContracts": [],
|
|
"contractDependencies": [],
|
|
"contractKind": "interface",
|
|
"documentation": null,
|
|
"fullyImplemented": false,
|
|
"id": 26,
|
|
"linearizedBaseContracts": [
|
|
26
|
|
],
|
|
"name": "ILegacyConverter",
|
|
"nodeType": "ContractDefinition",
|
|
"nodes": [
|
|
{
|
|
"body": null,
|
|
"documentation": null,
|
|
"functionSelector": "5e5144eb",
|
|
"id": 25,
|
|
"implemented": false,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "change",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 21,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 14,
|
|
"mutability": "mutable",
|
|
"name": "_sourceToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 25,
|
|
"src": "683:24:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 13,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "683:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 16,
|
|
"mutability": "mutable",
|
|
"name": "_targetToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 25,
|
|
"src": "709:24:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 15,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "709:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 18,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 25,
|
|
"src": "735:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 17,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "735:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 20,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 25,
|
|
"src": "752:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 19,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "752:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "682:89:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 24,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 23,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 25,
|
|
"src": "790:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 22,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "790:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "789:9:0"
|
|
},
|
|
"scope": 26,
|
|
"src": "667:132:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "external"
|
|
}
|
|
],
|
|
"scope": 1977,
|
|
"src": "633:169:0"
|
|
},
|
|
{
|
|
"abstract": false,
|
|
"baseContracts": [
|
|
{
|
|
"arguments": null,
|
|
"baseName": {
|
|
"contractScope": null,
|
|
"id": 28,
|
|
"name": "TokenHolder",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22575,
|
|
"src": "1982:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_TokenHolder_$22575",
|
|
"typeString": "contract TokenHolder"
|
|
}
|
|
},
|
|
"id": 29,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "1982:11:0"
|
|
},
|
|
{
|
|
"arguments": null,
|
|
"baseName": {
|
|
"contractScope": null,
|
|
"id": 30,
|
|
"name": "ContractRegistryClient",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21719,
|
|
"src": "1995:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ContractRegistryClient_$21719",
|
|
"typeString": "contract ContractRegistryClient"
|
|
}
|
|
},
|
|
"id": 31,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "1995:22:0"
|
|
},
|
|
{
|
|
"arguments": null,
|
|
"baseName": {
|
|
"contractScope": null,
|
|
"id": 32,
|
|
"name": "ReentrancyGuard",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22242,
|
|
"src": "2019:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ReentrancyGuard_$22242",
|
|
"typeString": "contract ReentrancyGuard"
|
|
}
|
|
},
|
|
"id": 33,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "2019:15:0"
|
|
}
|
|
],
|
|
"contractDependencies": [
|
|
21719,
|
|
21818,
|
|
22242,
|
|
22526,
|
|
22575,
|
|
22661,
|
|
22847,
|
|
22907
|
|
],
|
|
"contractKind": "contract",
|
|
"documentation": {
|
|
"id": 27,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "806:1148:0",
|
|
"text": " @dev The BancorNetwork contract is the main entry point for Bancor token conversions.\n It also allows for the conversion of any token in the Bancor Network to any other token in a single\n transaction by providing a conversion path.\n A note on Conversion Path: Conversion path is a data structure that is used when converting a token\n to another token in the Bancor Network, when the conversion cannot necessarily be done by a single\n converter and might require multiple 'hops'.\n The path defines which converters should be used and what kind of conversion should be done in each step.\n The path format doesn't include complex structure; instead, it is represented by a single array\n in which each 'hop' is represented by a 2-tuple - converter anchor & target token.\n In addition, the first element is always the source token.\n The converter anchor is only used as a pointer to a converter (since converter addresses are more\n likely to change as opposed to anchor addresses).\n Format:\n [source token, converter anchor, target token, converter anchor, target token...]"
|
|
},
|
|
"fullyImplemented": true,
|
|
"id": 1976,
|
|
"linearizedBaseContracts": [
|
|
1976,
|
|
22242,
|
|
21719,
|
|
22575,
|
|
22661,
|
|
21818,
|
|
22526,
|
|
22907,
|
|
22847
|
|
],
|
|
"name": "BancorNetwork",
|
|
"nodeType": "ContractDefinition",
|
|
"nodes": [
|
|
{
|
|
"id": 36,
|
|
"libraryName": {
|
|
"contractScope": null,
|
|
"id": 34,
|
|
"name": "SafeMath",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22354,
|
|
"src": "2048:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_SafeMath_$22354",
|
|
"typeString": "library SafeMath"
|
|
}
|
|
},
|
|
"nodeType": "UsingForDirective",
|
|
"src": "2042:27:0",
|
|
"typeName": {
|
|
"id": 35,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2061:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"constant": true,
|
|
"id": 39,
|
|
"mutability": "constant",
|
|
"name": "PPM_RESOLUTION",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1976,
|
|
"src": "2077:49:0",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 37,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2077:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31303030303030",
|
|
"id": 38,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2119:7:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1000000_by_1",
|
|
"typeString": "int_const 1000000"
|
|
},
|
|
"value": "1000000"
|
|
},
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"id": 44,
|
|
"mutability": "constant",
|
|
"name": "ETH_RESERVE_ADDRESS",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1976,
|
|
"src": "2133:106:0",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 40,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "2133:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545",
|
|
"id": 42,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2196:42:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"id": 41,
|
|
"name": "IERC20Token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21127,
|
|
"src": "2184:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "type(contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 43,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2184:55:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"canonicalName": "BancorNetwork.ConversionStep",
|
|
"id": 59,
|
|
"members": [
|
|
{
|
|
"constant": false,
|
|
"id": 46,
|
|
"mutability": "mutable",
|
|
"name": "converter",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 59,
|
|
"src": "2281:20:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 45,
|
|
"name": "IConverter",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13340,
|
|
"src": "2281:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 48,
|
|
"mutability": "mutable",
|
|
"name": "anchor",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 59,
|
|
"src": "2312:23:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 47,
|
|
"name": "IConverterAnchor",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13349,
|
|
"src": "2312:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 50,
|
|
"mutability": "mutable",
|
|
"name": "sourceToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 59,
|
|
"src": "2346:23:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 49,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "2346:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 52,
|
|
"mutability": "mutable",
|
|
"name": "targetToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 59,
|
|
"src": "2380:23:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 51,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "2380:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 54,
|
|
"mutability": "mutable",
|
|
"name": "beneficiary",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 59,
|
|
"src": "2414:27:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"typeName": {
|
|
"id": 53,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2414:15:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 56,
|
|
"mutability": "mutable",
|
|
"name": "isV28OrHigherConverter",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 59,
|
|
"src": "2452:27:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 55,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2452:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 58,
|
|
"mutability": "mutable",
|
|
"name": "processAffiliateFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 59,
|
|
"src": "2490:24:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 57,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2490:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"name": "ConversionStep",
|
|
"nodeType": "StructDefinition",
|
|
"scope": 1976,
|
|
"src": "2248:274:0",
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"functionSelector": "5d732ff2",
|
|
"id": 62,
|
|
"mutability": "mutable",
|
|
"name": "maxAffiliateFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1976,
|
|
"src": "2530:38:0",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 60,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2530:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"hexValue": "3330303030",
|
|
"id": 61,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2563:5:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_30000_by_1",
|
|
"typeString": "int_const 30000"
|
|
},
|
|
"value": "30000"
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"functionSelector": "8077ccf7",
|
|
"id": 66,
|
|
"mutability": "mutable",
|
|
"name": "etherTokens",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1976,
|
|
"src": "2606:48:0",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_bool_$",
|
|
"typeString": "mapping(contract IERC20Token => bool)"
|
|
},
|
|
"typeName": {
|
|
"id": 65,
|
|
"keyType": {
|
|
"contractScope": null,
|
|
"id": 63,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "2615:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "Mapping",
|
|
"src": "2606:29:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_bool_$",
|
|
"typeString": "mapping(contract IERC20Token => bool)"
|
|
},
|
|
"valueType": {
|
|
"id": 64,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2630:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"documentation": {
|
|
"id": 67,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "2703:441:0",
|
|
"text": " @dev triggered when a conversion between two tokens occurs\n @param _smartToken anchor governed by the converter\n @param _fromToken source ERC20 token\n @param _toToken target ERC20 token\n @param _fromAmount amount converted, in the source token\n @param _toAmount amount returned, minus conversion fee\n @param _trader wallet that initiated the trade"
|
|
},
|
|
"id": 81,
|
|
"name": "Conversion",
|
|
"nodeType": "EventDefinition",
|
|
"parameters": {
|
|
"id": 80,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 69,
|
|
"indexed": true,
|
|
"mutability": "mutable",
|
|
"name": "_smartToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 81,
|
|
"src": "3177:36:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 68,
|
|
"name": "IConverterAnchor",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13349,
|
|
"src": "3177:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 71,
|
|
"indexed": true,
|
|
"mutability": "mutable",
|
|
"name": "_fromToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 81,
|
|
"src": "3224:30:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 70,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "3224:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 73,
|
|
"indexed": true,
|
|
"mutability": "mutable",
|
|
"name": "_toToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 81,
|
|
"src": "3265:28:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 72,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "3265:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 75,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "_fromAmount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 81,
|
|
"src": "3304:19:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 74,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3304:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 77,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "_toAmount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 81,
|
|
"src": "3334:17:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 76,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3334:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 79,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "_trader",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 81,
|
|
"src": "3362:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 78,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3362:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "3166:218:0"
|
|
},
|
|
"src": "3150:235:0"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 96,
|
|
"nodeType": "Block",
|
|
"src": "3625:58:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 94,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 90,
|
|
"name": "etherTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 66,
|
|
"src": "3636:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_bool_$",
|
|
"typeString": "mapping(contract IERC20Token => bool)"
|
|
}
|
|
},
|
|
"id": 92,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 91,
|
|
"name": "ETH_RESERVE_ADDRESS",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 44,
|
|
"src": "3648:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"nodeType": "IndexAccess",
|
|
"src": "3636:32:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "74727565",
|
|
"id": 93,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3671:4:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "true"
|
|
},
|
|
"src": "3636:39:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 95,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "3636:39:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 82,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "3393:144:0",
|
|
"text": " @dev initializes a new BancorNetwork instance\n @param _registry address of a contract registry contract"
|
|
},
|
|
"id": 97,
|
|
"implemented": true,
|
|
"kind": "constructor",
|
|
"modifiers": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 87,
|
|
"name": "_registry",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 84,
|
|
"src": "3607:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IContractRegistry_$22831",
|
|
"typeString": "contract IContractRegistry"
|
|
}
|
|
}
|
|
],
|
|
"id": 88,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 86,
|
|
"name": "ContractRegistryClient",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21719,
|
|
"src": "3584:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_ContractRegistryClient_$21719_$",
|
|
"typeString": "type(contract ContractRegistryClient)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "3584:33:0"
|
|
}
|
|
],
|
|
"name": "",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 85,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 84,
|
|
"mutability": "mutable",
|
|
"name": "_registry",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 97,
|
|
"src": "3555:27:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IContractRegistry_$22831",
|
|
"typeString": "contract IContractRegistry"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 83,
|
|
"name": "IContractRegistry",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22831,
|
|
"src": "3555:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IContractRegistry_$22831",
|
|
"typeString": "contract IContractRegistry"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "3554:29:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 89,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "3625:0:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "3543:140:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 116,
|
|
"nodeType": "Block",
|
|
"src": "3935:136:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 108,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 106,
|
|
"name": "_maxAffiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 100,
|
|
"src": "3954:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 107,
|
|
"name": "PPM_RESOLUTION",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 39,
|
|
"src": "3974:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "3954:34:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f414646494c494154455f464545",
|
|
"id": 109,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3990:27:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_5421a6ae0116cbc310697cd7899b77d6a7bc1fb10cd896c84c63fd20f8fbd382",
|
|
"typeString": "literal_string \"ERR_INVALID_AFFILIATE_FEE\""
|
|
},
|
|
"value": "ERR_INVALID_AFFILIATE_FEE"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_5421a6ae0116cbc310697cd7899b77d6a7bc1fb10cd896c84c63fd20f8fbd382",
|
|
"typeString": "literal_string \"ERR_INVALID_AFFILIATE_FEE\""
|
|
}
|
|
],
|
|
"id": 105,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "3946:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 110,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3946:72:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 111,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "3946:72:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 114,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 112,
|
|
"name": "maxAffiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 62,
|
|
"src": "4029:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 113,
|
|
"name": "_maxAffiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 100,
|
|
"src": "4047:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "4029:34:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 115,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "4029:34:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 98,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "3691:144:0",
|
|
"text": " @dev allows the owner to update the maximum affiliate-fee\n @param _maxAffiliateFee maximum affiliate-fee"
|
|
},
|
|
"functionSelector": "f3bc7d2a",
|
|
"id": 117,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 103,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 102,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "3920:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "3920:9:0"
|
|
}
|
|
],
|
|
"name": "setMaxAffiliateFee",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 101,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 100,
|
|
"mutability": "mutable",
|
|
"name": "_maxAffiliateFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 117,
|
|
"src": "3869:24:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 99,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3869:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "3868:26:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 104,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "3935:0:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "3841:230:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 145,
|
|
"nodeType": "Block",
|
|
"src": "4474:50:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 143,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 139,
|
|
"name": "etherTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 66,
|
|
"src": "4485:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_bool_$",
|
|
"typeString": "mapping(contract IERC20Token => bool)"
|
|
}
|
|
},
|
|
"id": 141,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 140,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 120,
|
|
"src": "4497:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IEtherToken_$21153",
|
|
"typeString": "contract IEtherToken"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"nodeType": "IndexAccess",
|
|
"src": "4485:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 142,
|
|
"name": "_register",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 122,
|
|
"src": "4507:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "4485:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 144,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "4485:31:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 118,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "4079:212:0",
|
|
"text": " @dev allows the owner to register/unregister ether tokens\n @param _token ether token contract address\n @param _register true to register, false to unregister"
|
|
},
|
|
"functionSelector": "02ef521e",
|
|
"id": 146,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 125,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 124,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "4386:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "4386:9:0"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 129,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 120,
|
|
"src": "4426:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IEtherToken_$21153",
|
|
"typeString": "contract IEtherToken"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IEtherToken_$21153",
|
|
"typeString": "contract IEtherToken"
|
|
}
|
|
],
|
|
"id": 128,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "4418:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 127,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4418:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 130,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4418:15:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"id": 131,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 126,
|
|
"name": "validAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22618,
|
|
"src": "4405:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_address_$",
|
|
"typeString": "modifier (address)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "4405:29:0"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 135,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 120,
|
|
"src": "4460:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IEtherToken_$21153",
|
|
"typeString": "contract IEtherToken"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IEtherToken_$21153",
|
|
"typeString": "contract IEtherToken"
|
|
}
|
|
],
|
|
"id": 134,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "4452:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 133,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4452:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 136,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4452:15:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"id": 137,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 132,
|
|
"name": "notThis",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22644,
|
|
"src": "4444:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_address_$",
|
|
"typeString": "modifier (address)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "4444:24:0"
|
|
}
|
|
],
|
|
"name": "registerEtherToken",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 123,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 120,
|
|
"mutability": "mutable",
|
|
"name": "_token",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 146,
|
|
"src": "4325:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IEtherToken_$21153",
|
|
"typeString": "contract IEtherToken"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 119,
|
|
"name": "IEtherToken",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21153,
|
|
"src": "4325:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IEtherToken_$21153",
|
|
"typeString": "contract IEtherToken"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 122,
|
|
"mutability": "mutable",
|
|
"name": "_register",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 146,
|
|
"src": "4345:14:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 121,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4345:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "4324:36:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 138,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "4474:0:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "4297:227:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 171,
|
|
"nodeType": "Block",
|
|
"src": "5021:175:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
158
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 158,
|
|
"mutability": "mutable",
|
|
"name": "pathFinder",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 171,
|
|
"src": "5032:32:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConversionPathFinder_$2546",
|
|
"typeString": "contract IConversionPathFinder"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 157,
|
|
"name": "IConversionPathFinder",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 2546,
|
|
"src": "5032:21:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConversionPathFinder_$2546",
|
|
"typeString": "contract IConversionPathFinder"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 164,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 161,
|
|
"name": "CONVERSION_PATH_FINDER",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21539,
|
|
"src": "5099:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
],
|
|
"id": 160,
|
|
"name": "addressOf",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21718,
|
|
"src": "5089:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
|
|
"typeString": "function (bytes32) view returns (address)"
|
|
}
|
|
},
|
|
"id": 162,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "5089:33:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 159,
|
|
"name": "IConversionPathFinder",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2546,
|
|
"src": "5067:21:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IConversionPathFinder_$2546_$",
|
|
"typeString": "type(contract IConversionPathFinder)"
|
|
}
|
|
},
|
|
"id": 163,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "5067:56:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConversionPathFinder_$2546",
|
|
"typeString": "contract IConversionPathFinder"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "5032:91:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 167,
|
|
"name": "_sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 149,
|
|
"src": "5161:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 168,
|
|
"name": "_targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 151,
|
|
"src": "5175:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 165,
|
|
"name": "pathFinder",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 158,
|
|
"src": "5141:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConversionPathFinder_$2546",
|
|
"typeString": "contract IConversionPathFinder"
|
|
}
|
|
},
|
|
"id": 166,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "findPath",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 2545,
|
|
"src": "5141:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_contract$_IERC20Token_$21127_$_t_contract$_IERC20Token_$21127_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
|
|
"typeString": "function (contract IERC20Token,contract IERC20Token) view external returns (address[] memory)"
|
|
}
|
|
},
|
|
"id": 169,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "5141:47:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"functionReturnParameters": 156,
|
|
"id": 170,
|
|
"nodeType": "Return",
|
|
"src": "5134:54:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 147,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "4532:368:0",
|
|
"text": " @dev returns the conversion path between two tokens in the network\n note that this method is quite expensive in terms of gas and should generally be called off-chain\n @param _sourceToken source token address\n @param _targetToken target token address\n @return conversion path between the two tokens"
|
|
},
|
|
"functionSelector": "d734fa19",
|
|
"id": 172,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "conversionPath",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 152,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 149,
|
|
"mutability": "mutable",
|
|
"name": "_sourceToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 172,
|
|
"src": "4930:24:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 148,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "4930:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 151,
|
|
"mutability": "mutable",
|
|
"name": "_targetToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 172,
|
|
"src": "4956:24:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 150,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "4956:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "4929:52:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 156,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 155,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 172,
|
|
"src": "5003:16:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 153,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5003:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 154,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "5003:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "5002:18:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "4906:290:0",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 461,
|
|
"nodeType": "Block",
|
|
"src": "5682:2762:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
184
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 184,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 461,
|
|
"src": "5693:14:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 183,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5693:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 185,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "5693:14:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
187
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 187,
|
|
"mutability": "mutable",
|
|
"name": "fee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 461,
|
|
"src": "5718:11:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 186,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5718:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 188,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "5718:11:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
190
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 190,
|
|
"mutability": "mutable",
|
|
"name": "supply",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 461,
|
|
"src": "5740:14:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 189,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5740:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 191,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "5740:14:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
193
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 193,
|
|
"mutability": "mutable",
|
|
"name": "balance",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 461,
|
|
"src": "5765:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 192,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5765:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 194,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "5765:15:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
196
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 196,
|
|
"mutability": "mutable",
|
|
"name": "weight",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 461,
|
|
"src": "5791:13:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 195,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5791:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 197,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "5791:13:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
199
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 199,
|
|
"mutability": "mutable",
|
|
"name": "converter",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 461,
|
|
"src": "5815:20:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 198,
|
|
"name": "IConverter",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13340,
|
|
"src": "5815:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 200,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "5815:20:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
202
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 202,
|
|
"mutability": "mutable",
|
|
"name": "formula",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 461,
|
|
"src": "5846:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorFormula_$13177",
|
|
"typeString": "contract IBancorFormula"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 201,
|
|
"name": "IBancorFormula",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13177,
|
|
"src": "5846:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorFormula_$13177",
|
|
"typeString": "contract IBancorFormula"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 208,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 205,
|
|
"name": "BANCOR_FORMULA",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21533,
|
|
"src": "5896:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
],
|
|
"id": 204,
|
|
"name": "addressOf",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21718,
|
|
"src": "5886:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
|
|
"typeString": "function (bytes32) view returns (address)"
|
|
}
|
|
},
|
|
"id": 206,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "5886:25:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 203,
|
|
"name": "IBancorFormula",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 13177,
|
|
"src": "5871:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IBancorFormula_$13177_$",
|
|
"typeString": "type(contract IBancorFormula)"
|
|
}
|
|
},
|
|
"id": 207,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "5871:41:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorFormula_$13177",
|
|
"typeString": "contract IBancorFormula"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "5846:66:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 211,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 209,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "5925:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 210,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 178,
|
|
"src": "5934:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "5925:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 212,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "5925:16:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 224,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 217,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 214,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 176,
|
|
"src": "6034:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 215,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "6034:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 216,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6049:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"src": "6034:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 223,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 221,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 218,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 176,
|
|
"src": "6054:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 219,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "6054:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "%",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 220,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6069:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"src": "6054:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 222,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6074:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "6054:21:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "6034:41:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f50415448",
|
|
"id": 225,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6077:18:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_db637d0ca669449dd352e97481d5a38953b8126ef5f657bdd830d33ff33d5b16",
|
|
"typeString": "literal_string \"ERR_INVALID_PATH\""
|
|
},
|
|
"value": "ERR_INVALID_PATH"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_db637d0ca669449dd352e97481d5a38953b8126ef5f657bdd830d33ff33d5b16",
|
|
"typeString": "literal_string \"ERR_INVALID_PATH\""
|
|
}
|
|
],
|
|
"id": 213,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "6026:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 226,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6026:70:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 227,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6026:70:0"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 457,
|
|
"nodeType": "Block",
|
|
"src": "6200:2211:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
241
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 241,
|
|
"mutability": "mutable",
|
|
"name": "sourceToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 457,
|
|
"src": "6215:23:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 240,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "6215:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 249,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 243,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 176,
|
|
"src": "6253:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 247,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 246,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 244,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 229,
|
|
"src": "6259:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 245,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6263:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"src": "6259:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "6253:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 242,
|
|
"name": "IERC20Token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21127,
|
|
"src": "6241:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "type(contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 248,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6241:25:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "6215:51:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
251
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 251,
|
|
"mutability": "mutable",
|
|
"name": "anchor",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 457,
|
|
"src": "6281:14:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 250,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "6281:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 257,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 252,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 176,
|
|
"src": "6298:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 256,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 255,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 253,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 229,
|
|
"src": "6304:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 254,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6308:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "6304:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "6298:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "6281:29:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
259
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 259,
|
|
"mutability": "mutable",
|
|
"name": "targetToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 457,
|
|
"src": "6325:23:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 258,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "6325:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 265,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 261,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 176,
|
|
"src": "6363:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 263,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 262,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 229,
|
|
"src": "6369:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "6363:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 260,
|
|
"name": "IERC20Token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21127,
|
|
"src": "6351:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "type(contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 264,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6351:21:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "6325:47:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 277,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 266,
|
|
"name": "converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 199,
|
|
"src": "6389:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 271,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 251,
|
|
"src": "6437:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 270,
|
|
"name": "IConverterAnchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 13349,
|
|
"src": "6420:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$13349_$",
|
|
"typeString": "type(contract IConverterAnchor)"
|
|
}
|
|
},
|
|
"id": 272,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6420:24:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"id": 273,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "owner",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22838,
|
|
"src": "6420:30:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
|
|
"typeString": "function () view external returns (address)"
|
|
}
|
|
},
|
|
"id": 274,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6420:32:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 269,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "6412:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_payable_$",
|
|
"typeString": "type(address payable)"
|
|
},
|
|
"typeName": {
|
|
"id": 268,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "6412:8:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 275,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6412:41:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"id": 267,
|
|
"name": "IConverter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 13340,
|
|
"src": "6401:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IConverter_$13340_$",
|
|
"typeString": "type(contract IConverter)"
|
|
}
|
|
},
|
|
"id": 276,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6401:53:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"src": "6389:65:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"id": 278,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6389:65:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 284,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 279,
|
|
"name": "sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 241,
|
|
"src": "6510:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 281,
|
|
"name": "converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 199,
|
|
"src": "6549:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 282,
|
|
"name": "sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 241,
|
|
"src": "6560:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 280,
|
|
"name": "getConverterTokenAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1579,
|
|
"src": "6524:24:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$13340_$_t_contract$_IERC20Token_$21127_$returns$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "function (contract IConverter,contract IERC20Token) view returns (contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 283,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6524:48:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"src": "6510:62:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"id": 285,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6510:62:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 291,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 286,
|
|
"name": "targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 259,
|
|
"src": "6587:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 288,
|
|
"name": "converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 199,
|
|
"src": "6626:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 289,
|
|
"name": "targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 259,
|
|
"src": "6637:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 287,
|
|
"name": "getConverterTokenAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1579,
|
|
"src": "6601:24:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$13340_$_t_contract$_IERC20Token_$21127_$returns$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "function (contract IConverter,contract IERC20Token) view returns (contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 290,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6601:48:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"src": "6587:62:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"id": 292,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6587:62:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 298,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 295,
|
|
"name": "targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 259,
|
|
"src": "6678:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 294,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "6670:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 293,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "6670:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 296,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6670:20:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 297,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 251,
|
|
"src": "6694:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "6670:30:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 373,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 370,
|
|
"name": "sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 241,
|
|
"src": "7480:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 369,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "7472:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 368,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "7472:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 371,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7472:20:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 372,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 251,
|
|
"src": "7496:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "7472:30:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"id": 454,
|
|
"nodeType": "Block",
|
|
"src": "8267:133:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 452,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"components": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 443,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "8315:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 444,
|
|
"name": "fee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 187,
|
|
"src": "8323:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"id": 445,
|
|
"isConstant": false,
|
|
"isInlineArray": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"nodeType": "TupleExpression",
|
|
"src": "8314:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
|
|
"typeString": "tuple(uint256,uint256)"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 447,
|
|
"name": "converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 199,
|
|
"src": "8340:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 448,
|
|
"name": "sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 241,
|
|
"src": "8351:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 449,
|
|
"name": "targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 259,
|
|
"src": "8364:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 450,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "8377:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 446,
|
|
"name": "getReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1664,
|
|
"src": "8330:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$13340_$_t_contract$_IERC20Token_$21127_$_t_contract$_IERC20Token_$21127_$_t_uint256_$returns$_t_uint256_$_t_uint256_$",
|
|
"typeString": "function (contract IConverter,contract IERC20Token,contract IERC20Token,uint256) view returns (uint256,uint256)"
|
|
}
|
|
},
|
|
"id": 451,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "8330:54:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
|
|
"typeString": "tuple(uint256,uint256)"
|
|
}
|
|
},
|
|
"src": "8314:70:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 453,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "8314:70:0"
|
|
}
|
|
]
|
|
},
|
|
"id": 455,
|
|
"nodeType": "IfStatement",
|
|
"src": "7468:932:0",
|
|
"trueBody": {
|
|
"id": 442,
|
|
"nodeType": "Block",
|
|
"src": "7504:744:0",
|
|
"statements": [
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 384,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 376,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 374,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 229,
|
|
"src": "7616:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "33",
|
|
"id": 375,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "7620:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_3_by_1",
|
|
"typeString": "int_const 3"
|
|
},
|
|
"value": "3"
|
|
},
|
|
"src": "7616:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "||",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 383,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 377,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 251,
|
|
"src": "7625:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 378,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 176,
|
|
"src": "7635:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 382,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 381,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 379,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 229,
|
|
"src": "7641:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "33",
|
|
"id": 380,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "7645:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_3_by_1",
|
|
"typeString": "int_const 3"
|
|
},
|
|
"value": "3"
|
|
},
|
|
"src": "7641:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "7635:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "7625:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "7616:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 393,
|
|
"nodeType": "IfStatement",
|
|
"src": "7612:100:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 391,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 385,
|
|
"name": "supply",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 190,
|
|
"src": "7670:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 387,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 251,
|
|
"src": "7691:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 386,
|
|
"name": "ISmartToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21182,
|
|
"src": "7679:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_ISmartToken_$21182_$",
|
|
"typeString": "type(contract ISmartToken)"
|
|
}
|
|
},
|
|
"id": 388,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7679:19:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ISmartToken_$21182",
|
|
"typeString": "contract ISmartToken"
|
|
}
|
|
},
|
|
"id": 389,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "totalSupply",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21081,
|
|
"src": "7679:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
|
|
"typeString": "function () view external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 390,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7679:33:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "7670:42:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 392,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7670:42:0"
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 399,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 394,
|
|
"name": "balance",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 193,
|
|
"src": "7789:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 397,
|
|
"name": "targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 259,
|
|
"src": "7829:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 395,
|
|
"name": "converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 199,
|
|
"src": "7799:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"id": 396,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "getConnectorBalance",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 13327,
|
|
"src": "7799:29:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_contract$_IERC20Token_$21127_$returns$_t_uint256_$",
|
|
"typeString": "function (contract IERC20Token) view external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 398,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7799:42:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "7789:52:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 400,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7789:52:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 407,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"components": [
|
|
null,
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 401,
|
|
"name": "weight",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 196,
|
|
"src": "7863:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
"id": 402,
|
|
"isConstant": false,
|
|
"isInlineArray": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"nodeType": "TupleExpression",
|
|
"src": "7860:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$_t_uint32_$__$__$__$",
|
|
"typeString": "tuple(,uint32,,,)"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 405,
|
|
"name": "targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 259,
|
|
"src": "7900:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 403,
|
|
"name": "converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 199,
|
|
"src": "7879:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"id": 404,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "connectors",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 13320,
|
|
"src": "7879:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_contract$_IERC20Token_$21127_$returns$_t_uint256_$_t_uint32_$_t_bool_$_t_bool_$_t_bool_$",
|
|
"typeString": "function (contract IERC20Token) view external returns (uint256,uint32,bool,bool,bool)"
|
|
}
|
|
},
|
|
"id": 406,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7879:33:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint32_$_t_bool_$_t_bool_$_t_bool_$",
|
|
"typeString": "tuple(uint256,uint32,bool,bool,bool)"
|
|
}
|
|
},
|
|
"src": "7860:52:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 408,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7860:52:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 417,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 409,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "7931:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 412,
|
|
"name": "supply",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 190,
|
|
"src": "7965:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 413,
|
|
"name": "balance",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 193,
|
|
"src": "7973:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 414,
|
|
"name": "weight",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 196,
|
|
"src": "7982:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 415,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "7990:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 410,
|
|
"name": "formula",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 202,
|
|
"src": "7940:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorFormula_$13177",
|
|
"typeString": "contract IBancorFormula"
|
|
}
|
|
},
|
|
"id": 411,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "saleTargetAmount",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 13105,
|
|
"src": "7940:24:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256,uint32,uint256) view external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 416,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7940:57:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "7931:66:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 418,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7931:66:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 429,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 419,
|
|
"name": "fee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 187,
|
|
"src": "8016:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 427,
|
|
"name": "PPM_RESOLUTION",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 39,
|
|
"src": "8064:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 422,
|
|
"name": "converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 199,
|
|
"src": "8033:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"id": 423,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "conversionFee",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 13238,
|
|
"src": "8033:23:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$__$returns$_t_uint32_$",
|
|
"typeString": "function () view external returns (uint32)"
|
|
}
|
|
},
|
|
"id": 424,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "8033:25:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 420,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "8022:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 421,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "mul",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22327,
|
|
"src": "8022:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 425,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "8022:37:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 426,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "div",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22353,
|
|
"src": "8022:41:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 428,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "8022:57:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "8016:63:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 430,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "8016:63:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 433,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 431,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "8098:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "-=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 432,
|
|
"name": "fee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 187,
|
|
"src": "8108:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "8098:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 434,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "8098:13:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 440,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 435,
|
|
"name": "supply",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 190,
|
|
"src": "8205:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 438,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "8225:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 436,
|
|
"name": "supply",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 190,
|
|
"src": "8214:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 437,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sub",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22293,
|
|
"src": "8214:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 439,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "8214:18:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "8205:27:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 441,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "8205:27:0"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"id": 456,
|
|
"nodeType": "IfStatement",
|
|
"src": "6666:1734:0",
|
|
"trueBody": {
|
|
"id": 367,
|
|
"nodeType": "Block",
|
|
"src": "6702:747:0",
|
|
"statements": [
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 309,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 301,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 299,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 229,
|
|
"src": "6813:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "33",
|
|
"id": 300,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6817:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_3_by_1",
|
|
"typeString": "int_const 3"
|
|
},
|
|
"value": "3"
|
|
},
|
|
"src": "6813:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "||",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 308,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 302,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 251,
|
|
"src": "6822:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 303,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 176,
|
|
"src": "6832:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 307,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 306,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 304,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 229,
|
|
"src": "6838:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "33",
|
|
"id": 305,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6842:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_3_by_1",
|
|
"typeString": "int_const 3"
|
|
},
|
|
"value": "3"
|
|
},
|
|
"src": "6838:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "6832:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "6822:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "6813:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 318,
|
|
"nodeType": "IfStatement",
|
|
"src": "6809:100:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 316,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 310,
|
|
"name": "supply",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 190,
|
|
"src": "6867:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 312,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 251,
|
|
"src": "6888:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 311,
|
|
"name": "ISmartToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21182,
|
|
"src": "6876:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_ISmartToken_$21182_$",
|
|
"typeString": "type(contract ISmartToken)"
|
|
}
|
|
},
|
|
"id": 313,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6876:19:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ISmartToken_$21182",
|
|
"typeString": "contract ISmartToken"
|
|
}
|
|
},
|
|
"id": 314,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "totalSupply",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21081,
|
|
"src": "6876:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
|
|
"typeString": "function () view external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 315,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6876:33:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "6867:42:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 317,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6867:42:0"
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 324,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 319,
|
|
"name": "balance",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 193,
|
|
"src": "6986:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 322,
|
|
"name": "sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 241,
|
|
"src": "7026:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 320,
|
|
"name": "converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 199,
|
|
"src": "6996:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"id": 321,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "getConnectorBalance",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 13327,
|
|
"src": "6996:29:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_contract$_IERC20Token_$21127_$returns$_t_uint256_$",
|
|
"typeString": "function (contract IERC20Token) view external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 323,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6996:42:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "6986:52:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 325,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6986:52:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 332,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"components": [
|
|
null,
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 326,
|
|
"name": "weight",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 196,
|
|
"src": "7060:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
"id": 327,
|
|
"isConstant": false,
|
|
"isInlineArray": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"nodeType": "TupleExpression",
|
|
"src": "7057:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$_t_uint32_$__$__$__$",
|
|
"typeString": "tuple(,uint32,,,)"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 330,
|
|
"name": "sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 241,
|
|
"src": "7097:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 328,
|
|
"name": "converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 199,
|
|
"src": "7076:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"id": 329,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "connectors",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 13320,
|
|
"src": "7076:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_contract$_IERC20Token_$21127_$returns$_t_uint256_$_t_uint32_$_t_bool_$_t_bool_$_t_bool_$",
|
|
"typeString": "function (contract IERC20Token) view external returns (uint256,uint32,bool,bool,bool)"
|
|
}
|
|
},
|
|
"id": 331,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7076:33:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint32_$_t_bool_$_t_bool_$_t_bool_$",
|
|
"typeString": "tuple(uint256,uint32,bool,bool,bool)"
|
|
}
|
|
},
|
|
"src": "7057:52:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 333,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7057:52:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 342,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 334,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "7128:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 337,
|
|
"name": "supply",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 190,
|
|
"src": "7166:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 338,
|
|
"name": "balance",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 193,
|
|
"src": "7174:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 339,
|
|
"name": "weight",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 196,
|
|
"src": "7183:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 340,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "7191:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 335,
|
|
"name": "formula",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 202,
|
|
"src": "7137:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorFormula_$13177",
|
|
"typeString": "contract IBancorFormula"
|
|
}
|
|
},
|
|
"id": 336,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "purchaseTargetAmount",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 13092,
|
|
"src": "7137:28:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256,uint32,uint256) view external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 341,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7137:61:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "7128:70:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 343,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7128:70:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 354,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 344,
|
|
"name": "fee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 187,
|
|
"src": "7217:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 352,
|
|
"name": "PPM_RESOLUTION",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 39,
|
|
"src": "7265:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 347,
|
|
"name": "converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 199,
|
|
"src": "7234:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"id": 348,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "conversionFee",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 13238,
|
|
"src": "7234:23:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$__$returns$_t_uint32_$",
|
|
"typeString": "function () view external returns (uint32)"
|
|
}
|
|
},
|
|
"id": 349,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7234:25:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 345,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "7223:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 346,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "mul",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22327,
|
|
"src": "7223:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 350,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7223:37:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 351,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "div",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22353,
|
|
"src": "7223:41:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 353,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7223:57:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "7217:63:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 355,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7217:63:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 358,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 356,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "7299:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "-=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 357,
|
|
"name": "fee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 187,
|
|
"src": "7309:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "7299:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 359,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7299:13:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 365,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 360,
|
|
"name": "supply",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 190,
|
|
"src": "7406:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 363,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "7426:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 361,
|
|
"name": "supply",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 190,
|
|
"src": "7415:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 362,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "add",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22271,
|
|
"src": "7415:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 364,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7415:18:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "7406:27:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 366,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7406:27:0"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 235,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 232,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 229,
|
|
"src": "6174:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 233,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 176,
|
|
"src": "6178:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 234,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "6178:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "6174:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 458,
|
|
"initializationExpression": {
|
|
"assignments": [
|
|
229
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 229,
|
|
"mutability": "mutable",
|
|
"name": "i",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 458,
|
|
"src": "6159:9:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 228,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "6159:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 231,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 230,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6171:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "6159:13:0"
|
|
},
|
|
"loopExpression": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 238,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 236,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 229,
|
|
"src": "6192:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "+=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 237,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6197:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"src": "6192:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 239,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6192:6:0"
|
|
},
|
|
"nodeType": "ForStatement",
|
|
"src": "6154:2257:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 459,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 184,
|
|
"src": "8430:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 182,
|
|
"id": 460,
|
|
"nodeType": "Return",
|
|
"src": "8423:13:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 173,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "5204:381:0",
|
|
"text": " @dev returns the expected target amount of converting a given amount on a given path\n note that there is no support for circular paths\n @param _path conversion path (see conversion path format above)\n @param _amount amount of _path[0] tokens received from the sender\n @return expected target amount"
|
|
},
|
|
"functionSelector": "7f9c0ecd",
|
|
"id": 462,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "rateByPath",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 179,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 176,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 462,
|
|
"src": "5611:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 174,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5611:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 175,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "5611:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 178,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 462,
|
|
"src": "5635:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 177,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5635:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "5610:41:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 182,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 181,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 462,
|
|
"src": "5673:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 180,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5673:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "5672:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "5591:2853:0",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 597,
|
|
"nodeType": "Block",
|
|
"src": "9948:1329:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 497,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 490,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 487,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 466,
|
|
"src": "10073:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 488,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "10073:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 489,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10088:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"src": "10073:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 496,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 494,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 491,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 466,
|
|
"src": "10093:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 492,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "10093:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "%",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 493,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10108:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"src": "10093:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 495,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10113:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "10093:21:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "10073:41:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f50415448",
|
|
"id": 498,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10116:18:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_db637d0ca669449dd352e97481d5a38953b8126ef5f657bdd830d33ff33d5b16",
|
|
"typeString": "literal_string \"ERR_INVALID_PATH\""
|
|
},
|
|
"value": "ERR_INVALID_PATH"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_db637d0ca669449dd352e97481d5a38953b8126ef5f657bdd830d33ff33d5b16",
|
|
"typeString": "literal_string \"ERR_INVALID_PATH\""
|
|
}
|
|
],
|
|
"id": 486,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "10065:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 499,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "10065:70:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 500,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "10065:70:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 503,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 466,
|
|
"src": "10257:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 505,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 504,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10263:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "10257:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 502,
|
|
"name": "IERC20Token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21127,
|
|
"src": "10245:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "type(contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 506,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "10245:21:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 508,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 466,
|
|
"src": "10285:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 510,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 509,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10291:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "10285:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 507,
|
|
"name": "IConverterAnchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 13349,
|
|
"src": "10268:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$13349_$",
|
|
"typeString": "type(contract IConverterAnchor)"
|
|
}
|
|
},
|
|
"id": 511,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "10268:26:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 512,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 468,
|
|
"src": "10296:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 501,
|
|
"name": "handleSourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1110,
|
|
"src": "10227:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_contract$_IConverterAnchor_$13349_$_t_uint256_$returns$__$",
|
|
"typeString": "function (contract IERC20Token,contract IConverterAnchor,uint256)"
|
|
}
|
|
},
|
|
"id": 513,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "10227:77:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 514,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "10227:77:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
516
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 516,
|
|
"mutability": "mutable",
|
|
"name": "affiliateFeeEnabled",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 597,
|
|
"src": "10363:24:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 515,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "10363:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 518,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"hexValue": "66616c7365",
|
|
"id": 517,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10390:5:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "false"
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "10363:32:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 527,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 521,
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 474,
|
|
"src": "10418:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 520,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "10410:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 519,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "10410:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 522,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "10410:26:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 525,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10448:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 524,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "10440:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 523,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "10440:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 526,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "10440:10:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "10410:40:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"id": 551,
|
|
"nodeType": "Block",
|
|
"src": "10550:159:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 543,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 539,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 537,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10573:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 538,
|
|
"name": "_affiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 476,
|
|
"src": "10577:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "10573:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 542,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 540,
|
|
"name": "_affiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 476,
|
|
"src": "10594:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 541,
|
|
"name": "maxAffiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 62,
|
|
"src": "10611:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "10594:32:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "10573:53:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f414646494c494154455f464545",
|
|
"id": 544,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10628:27:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_5421a6ae0116cbc310697cd7899b77d6a7bc1fb10cd896c84c63fd20f8fbd382",
|
|
"typeString": "literal_string \"ERR_INVALID_AFFILIATE_FEE\""
|
|
},
|
|
"value": "ERR_INVALID_AFFILIATE_FEE"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_5421a6ae0116cbc310697cd7899b77d6a7bc1fb10cd896c84c63fd20f8fbd382",
|
|
"typeString": "literal_string \"ERR_INVALID_AFFILIATE_FEE\""
|
|
}
|
|
],
|
|
"id": 536,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "10565:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 545,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "10565:91:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 546,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "10565:91:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 549,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 547,
|
|
"name": "affiliateFeeEnabled",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 516,
|
|
"src": "10671:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "74727565",
|
|
"id": 548,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10693:4:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "true"
|
|
},
|
|
"src": "10671:26:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 550,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "10671:26:0"
|
|
}
|
|
]
|
|
},
|
|
"id": 552,
|
|
"nodeType": "IfStatement",
|
|
"src": "10406:303:0",
|
|
"trueBody": {
|
|
"id": 535,
|
|
"nodeType": "Block",
|
|
"src": "10452:83:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 531,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 529,
|
|
"name": "_affiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 476,
|
|
"src": "10475:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 530,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10492:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "10475:18:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f414646494c494154455f464545",
|
|
"id": 532,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10495:27:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_5421a6ae0116cbc310697cd7899b77d6a7bc1fb10cd896c84c63fd20f8fbd382",
|
|
"typeString": "literal_string \"ERR_INVALID_AFFILIATE_FEE\""
|
|
},
|
|
"value": "ERR_INVALID_AFFILIATE_FEE"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_5421a6ae0116cbc310697cd7899b77d6a7bc1fb10cd896c84c63fd20f8fbd382",
|
|
"typeString": "literal_string \"ERR_INVALID_AFFILIATE_FEE\""
|
|
}
|
|
],
|
|
"id": 528,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "10467:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 533,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "10467:56:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 534,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "10467:56:0"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"assignments": [
|
|
554
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 554,
|
|
"mutability": "mutable",
|
|
"name": "beneficiary",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 597,
|
|
"src": "10761:27:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"typeName": {
|
|
"id": 553,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "10761:15:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 557,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 555,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "10791:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 556,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sender",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "10791:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "10761:40:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"id": 563,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 558,
|
|
"name": "_beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 472,
|
|
"src": "10816:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 561,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "10840:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 560,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "10832:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 559,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "10832:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 562,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "10832:10:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "10816:26:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 568,
|
|
"nodeType": "IfStatement",
|
|
"src": "10812:71:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 566,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 564,
|
|
"name": "beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 554,
|
|
"src": "10857:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 565,
|
|
"name": "_beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 472,
|
|
"src": "10871:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "10857:26:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"id": 567,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "10857:26:0"
|
|
}
|
|
},
|
|
{
|
|
"assignments": [
|
|
572
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 572,
|
|
"mutability": "mutable",
|
|
"name": "data",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 597,
|
|
"src": "10945:28:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"contractScope": null,
|
|
"id": 570,
|
|
"name": "ConversionStep",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 59,
|
|
"src": "10945:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep"
|
|
}
|
|
},
|
|
"id": 571,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "10945:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_storage_$dyn_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 578,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 574,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 466,
|
|
"src": "10997:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 575,
|
|
"name": "beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 554,
|
|
"src": "11004:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 576,
|
|
"name": "affiliateFeeEnabled",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 516,
|
|
"src": "11017:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
],
|
|
"id": 573,
|
|
"name": "createConversionData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1468,
|
|
"src": "10976:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_array$_t_address_$dyn_memory_ptr_$_t_address_payable_$_t_bool_$returns$_t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr_$",
|
|
"typeString": "function (address[] memory,address payable,bool) view returns (struct BancorNetwork.ConversionStep memory[] memory)"
|
|
}
|
|
},
|
|
"id": 577,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "10976:61:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "10945:92:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
580
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 580,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 597,
|
|
"src": "11048:14:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 579,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "11048:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 588,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 582,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 572,
|
|
"src": "11078:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 583,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 468,
|
|
"src": "11084:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 584,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 470,
|
|
"src": "11093:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 585,
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 474,
|
|
"src": "11105:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 586,
|
|
"name": "_affiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 476,
|
|
"src": "11124:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 581,
|
|
"name": "doConversion",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 998,
|
|
"src": "11065:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (struct BancorNetwork.ConversionStep memory[] memory,uint256,uint256,address,uint256) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 587,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "11065:73:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "11048:90:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 590,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 572,
|
|
"src": "11217:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 591,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 580,
|
|
"src": "11223:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 592,
|
|
"name": "beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 554,
|
|
"src": "11231:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"id": 589,
|
|
"name": "handleTargetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1174,
|
|
"src": "11199:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr_$_t_uint256_$_t_address_payable_$returns$__$",
|
|
"typeString": "function (struct BancorNetwork.ConversionStep memory[] memory,uint256,address payable)"
|
|
}
|
|
},
|
|
"id": 593,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "11199:44:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 594,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "11199:44:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 595,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 580,
|
|
"src": "11263:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 485,
|
|
"id": 596,
|
|
"nodeType": "Return",
|
|
"src": "11256:13:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 463,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "8452:1150:0",
|
|
"text": " @dev converts the token to any other token in the bancor network by following\n a predefined conversion path and transfers the result tokens to a target account\n affiliate account/fee can also be passed in to receive a conversion fee (on top of the liquidity provider fees)\n note that the network should already have been given allowance of the source token (if not ETH)\n @param _path conversion path, see conversion path format above\n @param _amount amount to convert from, in the source token\n @param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\n @param _beneficiary account that will receive the conversion result or 0x0 to send the result to the sender account\n @param _affiliateAccount wallet address to receive the affiliate fee or 0x0 to disable affiliate fee\n @param _affiliateFee affiliate fee in PPM or 0 to disable affiliate fee\n @return amount of tokens received from the conversion"
|
|
},
|
|
"functionSelector": "b77d239b",
|
|
"id": 598,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 479,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 478,
|
|
"name": "protected",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22231,
|
|
"src": "9869:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "9869:9:0"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 481,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 470,
|
|
"src": "9904:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"id": 482,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 480,
|
|
"name": "greaterThanZero",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22595,
|
|
"src": "9888:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_uint256_$",
|
|
"typeString": "modifier (uint256)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "9888:27:0"
|
|
}
|
|
],
|
|
"name": "convertByPath",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 477,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 466,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 598,
|
|
"src": "9641:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 464,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9641:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 465,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "9641:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 468,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 598,
|
|
"src": "9674:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 467,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9674:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 470,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 598,
|
|
"src": "9700:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 469,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9700:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 472,
|
|
"mutability": "mutable",
|
|
"name": "_beneficiary",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 598,
|
|
"src": "9729:28:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"typeName": {
|
|
"id": 471,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9729:15:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 474,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 598,
|
|
"src": "9768:25:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 473,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9768:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 476,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 598,
|
|
"src": "9804:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 475,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9804:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "9630:196:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 485,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 484,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 598,
|
|
"src": "9934:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 483,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9934:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "9933:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "9608:1669:0",
|
|
"stateMutability": "payable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 631,
|
|
"nodeType": "Block",
|
|
"src": "12548:128:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 618,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 602,
|
|
"src": "12576:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 619,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 604,
|
|
"src": "12583:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 620,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 606,
|
|
"src": "12592:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 621,
|
|
"name": "_targetBlockchain",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 608,
|
|
"src": "12604:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 622,
|
|
"name": "_targetAccount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 610,
|
|
"src": "12623:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 623,
|
|
"name": "_conversionId",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 612,
|
|
"src": "12639:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 626,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "12662:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 625,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "12654:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 624,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "12654:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 627,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "12654:10:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 628,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "12666:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 617,
|
|
"name": "xConvert2",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 726,
|
|
"src": "12566:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (address[] memory,uint256,uint256,bytes32,bytes32,uint256,address,uint256) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 629,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "12566:102:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 616,
|
|
"id": 630,
|
|
"nodeType": "Return",
|
|
"src": "12559:109:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 599,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "11285:978:0",
|
|
"text": " @dev converts any other token to BNT in the bancor network by following\na predefined conversion path and transfers the result to an account on a different blockchain\n note that the network should already have been given allowance of the source token (if not ETH)\n @param _path conversion path, see conversion path format above\n @param _amount amount to convert from, in the source token\n @param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\n @param _targetBlockchain blockchain BNT will be issued on\n @param _targetAccount address/account on the target blockchain to send the BNT to\n @param _conversionId pre-determined unique (if non zero) id which refers to this transaction\n @return the amount of BNT received from this conversion"
|
|
},
|
|
"functionSelector": "c52173de",
|
|
"id": 632,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "xConvert",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 613,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 602,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 632,
|
|
"src": "12297:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 600,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "12297:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 601,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "12297:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 604,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 632,
|
|
"src": "12330:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 603,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "12330:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 606,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 632,
|
|
"src": "12356:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 605,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "12356:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 608,
|
|
"mutability": "mutable",
|
|
"name": "_targetBlockchain",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 632,
|
|
"src": "12385:25:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 607,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "12385:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 610,
|
|
"mutability": "mutable",
|
|
"name": "_targetAccount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 632,
|
|
"src": "12421:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 609,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "12421:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 612,
|
|
"mutability": "mutable",
|
|
"name": "_conversionId",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 632,
|
|
"src": "12454:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 611,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "12454:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "12286:196:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 616,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 615,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 632,
|
|
"src": "12534:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 614,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "12534:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "12533:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "12269:407:0",
|
|
"stateMutability": "payable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 725,
|
|
"nodeType": "Block",
|
|
"src": "14166:739:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
659
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 659,
|
|
"mutability": "mutable",
|
|
"name": "targetToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 725,
|
|
"src": "14177:23:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 658,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "14177:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 668,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 661,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 636,
|
|
"src": "14215:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 666,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 665,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 662,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 636,
|
|
"src": "14221:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 663,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "14221:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 664,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "14236:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "14221:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "14215:23:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 660,
|
|
"name": "IERC20Token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21127,
|
|
"src": "14203:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "type(contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 667,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14203:36:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "14177:62:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
670
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 670,
|
|
"mutability": "mutable",
|
|
"name": "bancorX",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 725,
|
|
"src": "14250:16:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorX_$3551",
|
|
"typeString": "contract IBancorX"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 669,
|
|
"name": "IBancorX",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 3551,
|
|
"src": "14250:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorX_$3551",
|
|
"typeString": "contract IBancorX"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 676,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 673,
|
|
"name": "BANCOR_X",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21554,
|
|
"src": "14288:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
],
|
|
"id": 672,
|
|
"name": "addressOf",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21718,
|
|
"src": "14278:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
|
|
"typeString": "function (bytes32) view returns (address)"
|
|
}
|
|
},
|
|
"id": 674,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14278:19:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 671,
|
|
"name": "IBancorX",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 3551,
|
|
"src": "14269:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IBancorX_$3551_$",
|
|
"typeString": "type(contract IBancorX)"
|
|
}
|
|
},
|
|
"id": 675,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14269:29:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorX_$3551",
|
|
"typeString": "contract IBancorX"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "14250:48:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"id": 684,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 678,
|
|
"name": "targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 659,
|
|
"src": "14372:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 681,
|
|
"name": "BNT_TOKEN",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21551,
|
|
"src": "14409:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
],
|
|
"id": 680,
|
|
"name": "addressOf",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21718,
|
|
"src": "14399:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
|
|
"typeString": "function (bytes32) view returns (address)"
|
|
}
|
|
},
|
|
"id": 682,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14399:20:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 679,
|
|
"name": "IERC20Token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21127,
|
|
"src": "14387:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "type(contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 683,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14387:33:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"src": "14372:48:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f5441524745545f544f4b454e",
|
|
"id": 685,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "14422:26:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_506dba30f9da1ed4da3626f556faadafab0575131908ae8223c813a59e0707f3",
|
|
"typeString": "literal_string \"ERR_INVALID_TARGET_TOKEN\""
|
|
},
|
|
"value": "ERR_INVALID_TARGET_TOKEN"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_506dba30f9da1ed4da3626f556faadafab0575131908ae8223c813a59e0707f3",
|
|
"typeString": "literal_string \"ERR_INVALID_TARGET_TOKEN\""
|
|
}
|
|
],
|
|
"id": 677,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "14364:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 686,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14364:85:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 687,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "14364:85:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
689
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 689,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 725,
|
|
"src": "14511:14:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 688,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "14511:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 704,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 691,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 636,
|
|
"src": "14542:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 692,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 638,
|
|
"src": "14549:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 693,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 640,
|
|
"src": "14558:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 698,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "14586:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
],
|
|
"id": 697,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "14578:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 696,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "14578:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 699,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14578:13:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 695,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "14570:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_payable_$",
|
|
"typeString": "type(address payable)"
|
|
},
|
|
"typeName": {
|
|
"id": 694,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "14570:8:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 700,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14570:22:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 701,
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 648,
|
|
"src": "14594:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 702,
|
|
"name": "_affiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 650,
|
|
"src": "14613:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 690,
|
|
"name": "convertByPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 598,
|
|
"src": "14528:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_payable_$_t_address_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (address[] memory,uint256,uint256,address payable,address,uint256) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 703,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14528:99:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "14511:116:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 706,
|
|
"name": "targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 659,
|
|
"src": "14692:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 709,
|
|
"name": "bancorX",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 670,
|
|
"src": "14713:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorX_$3551",
|
|
"typeString": "contract IBancorX"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IBancorX_$3551",
|
|
"typeString": "contract IBancorX"
|
|
}
|
|
],
|
|
"id": 708,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "14705:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 707,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "14705:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 710,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14705:16:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 711,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 689,
|
|
"src": "14723:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 705,
|
|
"name": "ensureAllowance",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1511,
|
|
"src": "14676:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (contract IERC20Token,address,uint256)"
|
|
}
|
|
},
|
|
"id": 712,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14676:54:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 713,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "14676:54:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 717,
|
|
"name": "_targetBlockchain",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 642,
|
|
"src": "14814:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 718,
|
|
"name": "_targetAccount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 644,
|
|
"src": "14833:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 719,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 689,
|
|
"src": "14849:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 720,
|
|
"name": "_conversionId",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 646,
|
|
"src": "14857:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 714,
|
|
"name": "bancorX",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 670,
|
|
"src": "14796:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorX_$3551",
|
|
"typeString": "contract IBancorX"
|
|
}
|
|
},
|
|
"id": 716,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "xTransfer",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 3541,
|
|
"src": "14796:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$",
|
|
"typeString": "function (bytes32,bytes32,uint256,uint256) external"
|
|
}
|
|
},
|
|
"id": 721,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14796:75:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 722,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "14796:75:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 723,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 689,
|
|
"src": "14891:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 657,
|
|
"id": 724,
|
|
"nodeType": "Return",
|
|
"src": "14884:13:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 633,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "12684:1091:0",
|
|
"text": " @dev converts any other token to BNT in the bancor network by following\na predefined conversion path and transfers the result to an account on a different blockchain\n note that the network should already have been given allowance of the source token (if not ETH)\n @param _path conversion path, see conversion path format above\n @param _amount amount to convert from, in the source token\n @param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\n @param _targetBlockchain blockchain BNT will be issued on\n @param _targetAccount address/account on the target blockchain to send the BNT to\n @param _conversionId pre-determined unique (if non zero) id which refers to this transaction\n @param _affiliateAccount affiliate account\n @param _affiliateFee affiliate fee in PPM\n @return the amount of BNT received from this conversion"
|
|
},
|
|
"functionSelector": "cb32564e",
|
|
"id": 726,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 653,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 640,
|
|
"src": "14122:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"id": 654,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 652,
|
|
"name": "greaterThanZero",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22595,
|
|
"src": "14106:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_uint256_$",
|
|
"typeString": "modifier (uint256)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "14106:27:0"
|
|
}
|
|
],
|
|
"name": "xConvert2",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 651,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 636,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 726,
|
|
"src": "13810:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 634,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "13810:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 635,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "13810:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 638,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 726,
|
|
"src": "13843:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 637,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "13843:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 640,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 726,
|
|
"src": "13869:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 639,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "13869:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 642,
|
|
"mutability": "mutable",
|
|
"name": "_targetBlockchain",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 726,
|
|
"src": "13898:25:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 641,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "13898:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 644,
|
|
"mutability": "mutable",
|
|
"name": "_targetAccount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 726,
|
|
"src": "13934:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 643,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "13934:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 646,
|
|
"mutability": "mutable",
|
|
"name": "_conversionId",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 726,
|
|
"src": "13967:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 645,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "13967:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 648,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 726,
|
|
"src": "13999:25:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 647,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "13999:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 650,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 726,
|
|
"src": "14035:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 649,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "14035:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "13799:264:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 657,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 656,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 726,
|
|
"src": "14152:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 655,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "14152:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "14151:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "13781:1124:0",
|
|
"stateMutability": "payable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 777,
|
|
"nodeType": "Block",
|
|
"src": "16040:423:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"id": 752,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 745,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 730,
|
|
"src": "16133:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 747,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 746,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "16139:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "16133:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 744,
|
|
"name": "IERC20Token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21127,
|
|
"src": "16121:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "type(contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 748,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "16121:21:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 749,
|
|
"name": "_bancorX",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 732,
|
|
"src": "16146:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorX_$3551",
|
|
"typeString": "contract IBancorX"
|
|
}
|
|
},
|
|
"id": 750,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "token",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 3530,
|
|
"src": "16146:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "function () view external returns (contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 751,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "16146:16:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"src": "16121:41:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f534f555243455f544f4b454e",
|
|
"id": 753,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "16164:26:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_0f690a2bdb8b25e0198ca38056ef0e9f045e379ec977ffdcb1486f3c53b6e8fa",
|
|
"typeString": "literal_string \"ERR_INVALID_SOURCE_TOKEN\""
|
|
},
|
|
"value": "ERR_INVALID_SOURCE_TOKEN"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_0f690a2bdb8b25e0198ca38056ef0e9f045e379ec977ffdcb1486f3c53b6e8fa",
|
|
"typeString": "literal_string \"ERR_INVALID_SOURCE_TOKEN\""
|
|
}
|
|
],
|
|
"id": 743,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "16113:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 754,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "16113:78:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 755,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "16113:78:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
757
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 757,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 777,
|
|
"src": "16260:14:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 756,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "16260:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 764,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 760,
|
|
"name": "_conversionId",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 734,
|
|
"src": "16305:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 761,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "16320:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 762,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sender",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "16320:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 758,
|
|
"name": "_bancorX",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 732,
|
|
"src": "16277:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorX_$3551",
|
|
"typeString": "contract IBancorX"
|
|
}
|
|
},
|
|
"id": 759,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "getXTransferAmount",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 3550,
|
|
"src": "16277:27:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_uint256_$_t_address_$returns$_t_uint256_$",
|
|
"typeString": "function (uint256,address) view external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 763,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "16277:54:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "16260:71:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 766,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 730,
|
|
"src": "16400:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 767,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 757,
|
|
"src": "16407:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 768,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 736,
|
|
"src": "16415:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 769,
|
|
"name": "_beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 738,
|
|
"src": "16427:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 772,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "16449:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 771,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "16441:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 770,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "16441:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 773,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "16441:10:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 774,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "16453:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 765,
|
|
"name": "convertByPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 598,
|
|
"src": "16386:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_payable_$_t_address_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (address[] memory,uint256,uint256,address payable,address,uint256) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 775,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "16386:69:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 742,
|
|
"id": 776,
|
|
"nodeType": "Return",
|
|
"src": "16379:76:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 727,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "14913:937:0",
|
|
"text": " @dev allows a user to convert a token that was sent from another blockchain into any other\n token on the BancorNetwork\n ideally this transaction is created before the previous conversion is even complete, so\n so the input amount isn't known at that point - the amount is actually take from the\n BancorX contract directly by specifying the conversion id\n @param _path conversion path\n @param _bancorX address of the BancorX contract for the source token\n @param _conversionId pre-determined unique (if non zero) id which refers to this conversion\n @param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be nonzero\n @param _beneficiary wallet to receive the conversion result\n @return amount of tokens received from the conversion"
|
|
},
|
|
"functionSelector": "89f9cc61",
|
|
"id": 778,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "completeXConversion",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 739,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 730,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 778,
|
|
"src": "15885:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 728,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "15885:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 729,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "15885:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 732,
|
|
"mutability": "mutable",
|
|
"name": "_bancorX",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 778,
|
|
"src": "15909:17:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorX_$3551",
|
|
"typeString": "contract IBancorX"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 731,
|
|
"name": "IBancorX",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 3551,
|
|
"src": "15909:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IBancorX_$3551",
|
|
"typeString": "contract IBancorX"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 734,
|
|
"mutability": "mutable",
|
|
"name": "_conversionId",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 778,
|
|
"src": "15928:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 733,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "15928:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 736,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 778,
|
|
"src": "15951:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 735,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "15951:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 738,
|
|
"mutability": "mutable",
|
|
"name": "_beneficiary",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 778,
|
|
"src": "15971:28:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"typeName": {
|
|
"id": 737,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "15971:15:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "15884:116:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 742,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 741,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 778,
|
|
"src": "16026:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 740,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "16026:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "16025:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "15856:607:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 997,
|
|
"nodeType": "Block",
|
|
"src": "17298:2483:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
796
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 796,
|
|
"mutability": "mutable",
|
|
"name": "toAmount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 997,
|
|
"src": "17309:16:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 795,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17309:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 797,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "17309:16:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
799
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 799,
|
|
"mutability": "mutable",
|
|
"name": "fromAmount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 997,
|
|
"src": "17336:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 798,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17336:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 801,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"id": 800,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 784,
|
|
"src": "17357:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "17336:28:0"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 986,
|
|
"nodeType": "Block",
|
|
"src": "17465:2151:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
814
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 814,
|
|
"mutability": "mutable",
|
|
"name": "stepData",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 986,
|
|
"src": "17480:30:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 813,
|
|
"name": "ConversionStep",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 59,
|
|
"src": "17480:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 818,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 815,
|
|
"name": "_data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 782,
|
|
"src": "17513:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 817,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 816,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 803,
|
|
"src": "17519:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "17513:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "17480:41:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 819,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "17574:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 820,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isV28OrHigherConverter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 56,
|
|
"src": "17574:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"id": 864,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 855,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18191:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 856,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sourceToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 50,
|
|
"src": "18191:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 860,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18235:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 861,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "anchor",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 48,
|
|
"src": "18235:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
],
|
|
"id": 859,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "18227:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 858,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "18227:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 862,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18227:24:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 857,
|
|
"name": "ISmartToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21182,
|
|
"src": "18215:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_ISmartToken_$21182_$",
|
|
"typeString": "type(contract ISmartToken)"
|
|
}
|
|
},
|
|
"id": 863,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18215:37:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ISmartToken_$21182",
|
|
"typeString": "contract ISmartToken"
|
|
}
|
|
},
|
|
"src": "18191:61:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 877,
|
|
"nodeType": "IfStatement",
|
|
"src": "18187:272:0",
|
|
"trueBody": {
|
|
"id": 876,
|
|
"nodeType": "Block",
|
|
"src": "18254:205:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 866,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18381:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 867,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sourceToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 50,
|
|
"src": "18381:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 870,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18411:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 871,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "converter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 46,
|
|
"src": "18411:18:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 869,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "18403:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 868,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "18403:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 872,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18403:27:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 873,
|
|
"name": "fromAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 799,
|
|
"src": "18432:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 865,
|
|
"name": "ensureAllowance",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1511,
|
|
"src": "18365:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (contract IERC20Token,address,uint256)"
|
|
}
|
|
},
|
|
"id": 874,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18365:78:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 875,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "18365:78:0"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"id": 878,
|
|
"nodeType": "IfStatement",
|
|
"src": "17570:889:0",
|
|
"trueBody": {
|
|
"id": 854,
|
|
"nodeType": "Block",
|
|
"src": "17607:416:0",
|
|
"statements": [
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 841,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 835,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 823,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 821,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 803,
|
|
"src": "17820:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 822,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "17825:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "17820:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 834,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 824,
|
|
"name": "_data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 782,
|
|
"src": "17830:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 828,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 827,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 825,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 803,
|
|
"src": "17836:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 826,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "17840:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "17836:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "17830:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 829,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "beneficiary",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 54,
|
|
"src": "17830:24:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 832,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "17866:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
],
|
|
"id": 831,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "17858:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 830,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17858:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 833,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "17858:13:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "17830:41:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "17820:51:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 840,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "!",
|
|
"prefix": true,
|
|
"src": "17875:34:0",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 836,
|
|
"name": "etherTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 66,
|
|
"src": "17876:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_bool_$",
|
|
"typeString": "mapping(contract IERC20Token => bool)"
|
|
}
|
|
},
|
|
"id": 839,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 837,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "17888:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 838,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sourceToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 50,
|
|
"src": "17888:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "17876:33:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "17820:89:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 853,
|
|
"nodeType": "IfStatement",
|
|
"src": "17816:191:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 843,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "17945:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 844,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sourceToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 50,
|
|
"src": "17945:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 847,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "17975:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 848,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "converter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 46,
|
|
"src": "17975:18:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 846,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "17967:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 845,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17967:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 849,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "17967:27:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 850,
|
|
"name": "fromAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 799,
|
|
"src": "17996:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 842,
|
|
"name": "safeTransfer",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22475,
|
|
"src": "17932:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (contract IERC20Token,address,uint256)"
|
|
}
|
|
},
|
|
"id": 851,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "17932:75:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 852,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "17932:75:0"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"id": 881,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "!",
|
|
"prefix": true,
|
|
"src": "18513:32:0",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 879,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18514:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 880,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isV28OrHigherConverter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 56,
|
|
"src": "18514:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 900,
|
|
"name": "etherTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 66,
|
|
"src": "18710:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_bool_$",
|
|
"typeString": "mapping(contract IERC20Token => bool)"
|
|
}
|
|
},
|
|
"id": 903,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 901,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18722:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 902,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sourceToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 50,
|
|
"src": "18722:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "18710:33:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 937,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 923,
|
|
"name": "toAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 796,
|
|
"src": "18946:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 927,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18984:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 928,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sourceToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 50,
|
|
"src": "18984:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 929,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "19006:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 930,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "targetToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 52,
|
|
"src": "19006:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 931,
|
|
"name": "fromAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 799,
|
|
"src": "19028:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 932,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "19040:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 933,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sender",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "19040:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 934,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "19052:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 935,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "beneficiary",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 54,
|
|
"src": "19052:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 924,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18957:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 925,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "converter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 46,
|
|
"src": "18957:18:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"id": 926,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "convert",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 13228,
|
|
"src": "18957:26:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_payable$_t_contract$_IERC20Token_$21127_$_t_contract$_IERC20Token_$21127_$_t_uint256_$_t_address_$_t_address_payable_$returns$_t_uint256_$",
|
|
"typeString": "function (contract IERC20Token,contract IERC20Token,uint256,address,address payable) payable external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 936,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18957:116:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "18946:127:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 938,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "18946:127:0"
|
|
},
|
|
"id": 939,
|
|
"nodeType": "IfStatement",
|
|
"src": "18706:367:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 921,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 904,
|
|
"name": "toAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 796,
|
|
"src": "18762:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 911,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18820:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 912,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sourceToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 50,
|
|
"src": "18820:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 913,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18842:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 914,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "targetToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 52,
|
|
"src": "18842:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 915,
|
|
"name": "fromAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 799,
|
|
"src": "18864:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 916,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "18876:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 917,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sender",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "18876:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 918,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18888:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 919,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "beneficiary",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 54,
|
|
"src": "18888:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 905,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18773:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 906,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "converter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 46,
|
|
"src": "18773:18:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"id": 907,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "convert",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 13228,
|
|
"src": "18773:26:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_payable$_t_contract$_IERC20Token_$21127_$_t_contract$_IERC20Token_$21127_$_t_uint256_$_t_address_$_t_address_payable_$returns$_t_uint256_$",
|
|
"typeString": "function (contract IERC20Token,contract IERC20Token,uint256,address,address payable) payable external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 910,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"names": [
|
|
"value"
|
|
],
|
|
"nodeType": "FunctionCallOptions",
|
|
"options": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 908,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "18808:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 909,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "value",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "18808:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"src": "18773:46:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_payable$_t_contract$_IERC20Token_$21127_$_t_contract$_IERC20Token_$21127_$_t_uint256_$_t_address_$_t_address_payable_$returns$_t_uint256_$value",
|
|
"typeString": "function (contract IERC20Token,contract IERC20Token,uint256,address,address payable) payable external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 920,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18773:136:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "18762:147:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 922,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "18762:147:0"
|
|
}
|
|
},
|
|
"id": 940,
|
|
"nodeType": "IfStatement",
|
|
"src": "18509:564:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 898,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 882,
|
|
"name": "toAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 796,
|
|
"src": "18564:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 891,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18628:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 892,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sourceToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 50,
|
|
"src": "18628:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 893,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18650:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 894,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "targetToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 52,
|
|
"src": "18650:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 895,
|
|
"name": "fromAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 799,
|
|
"src": "18672:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 896,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "18684:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 886,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "18600:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 887,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "converter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 46,
|
|
"src": "18600:18:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 885,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "18592:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 884,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "18592:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 888,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18592:27:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"id": 883,
|
|
"name": "ILegacyConverter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 26,
|
|
"src": "18575:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_ILegacyConverter_$26_$",
|
|
"typeString": "type(contract ILegacyConverter)"
|
|
}
|
|
},
|
|
"id": 889,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18575:45:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ILegacyConverter_$26",
|
|
"typeString": "contract ILegacyConverter"
|
|
}
|
|
},
|
|
"id": 890,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "change",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 25,
|
|
"src": "18575:52:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20Token_$21127_$_t_contract$_IERC20Token_$21127_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (contract IERC20Token,contract IERC20Token,uint256,uint256) external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 897,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18575:111:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "18564:122:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 899,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "18564:122:0"
|
|
}
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 941,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "19138:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 942,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "processAffiliateFee",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 58,
|
|
"src": "19138:28:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 968,
|
|
"nodeType": "IfStatement",
|
|
"src": "19134:308:0",
|
|
"trueBody": {
|
|
"id": 967,
|
|
"nodeType": "Block",
|
|
"src": "19168:274:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
944
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 944,
|
|
"mutability": "mutable",
|
|
"name": "affiliateAmount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 967,
|
|
"src": "19187:23:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 943,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "19187:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 952,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 950,
|
|
"name": "PPM_RESOLUTION",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 39,
|
|
"src": "19245:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 947,
|
|
"name": "_affiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 790,
|
|
"src": "19226:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 945,
|
|
"name": "toAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 796,
|
|
"src": "19213:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 946,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "mul",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22327,
|
|
"src": "19213:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 948,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "19213:27:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 949,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "div",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22353,
|
|
"src": "19213:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 951,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "19213:47:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "19187:73:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 957,
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 788,
|
|
"src": "19317:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 958,
|
|
"name": "affiliateAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 944,
|
|
"src": "19336:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 954,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "19287:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 955,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "targetToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 52,
|
|
"src": "19287:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"id": 956,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "transfer",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21106,
|
|
"src": "19287:29:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
|
|
"typeString": "function (address,uint256) external returns (bool)"
|
|
}
|
|
},
|
|
"id": 959,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "19287:65:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f4645455f5452414e534645525f4641494c4544",
|
|
"id": 960,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "19354:25:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_adc6d664872bc68defa0e975019744f9c0f552331af13f5f130791cee181d10c",
|
|
"typeString": "literal_string \"ERR_FEE_TRANSFER_FAILED\""
|
|
},
|
|
"value": "ERR_FEE_TRANSFER_FAILED"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_adc6d664872bc68defa0e975019744f9c0f552331af13f5f130791cee181d10c",
|
|
"typeString": "literal_string \"ERR_FEE_TRANSFER_FAILED\""
|
|
}
|
|
],
|
|
"id": 953,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "19279:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 961,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "19279:101:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 962,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "19279:101:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 965,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 963,
|
|
"name": "toAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 796,
|
|
"src": "19399:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "-=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 964,
|
|
"name": "affiliateAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 944,
|
|
"src": "19411:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "19399:27:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 966,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "19399:27:0"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"eventCall": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 970,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "19474:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 971,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "anchor",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 48,
|
|
"src": "19474:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 972,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "19491:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 973,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sourceToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 50,
|
|
"src": "19491:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 974,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 814,
|
|
"src": "19513:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 975,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "targetToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 52,
|
|
"src": "19513:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 976,
|
|
"name": "fromAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 799,
|
|
"src": "19535:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 977,
|
|
"name": "toAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 796,
|
|
"src": "19547:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 978,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "19557:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 979,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sender",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "19557:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"id": 969,
|
|
"name": "Conversion",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 81,
|
|
"src": "19463:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_event_nonpayable$_t_contract$_IConverterAnchor_$13349_$_t_contract$_IERC20Token_$21127_$_t_contract$_IERC20Token_$21127_$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
|
|
"typeString": "function (contract IConverterAnchor,contract IERC20Token,contract IERC20Token,uint256,uint256,address)"
|
|
}
|
|
},
|
|
"id": 980,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "19463:105:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 981,
|
|
"nodeType": "EmitStatement",
|
|
"src": "19458:110:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 984,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 982,
|
|
"name": "fromAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 799,
|
|
"src": "19583:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 983,
|
|
"name": "toAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 796,
|
|
"src": "19596:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "19583:21:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 985,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "19583:21:0"
|
|
}
|
|
]
|
|
},
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 809,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 806,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 803,
|
|
"src": "17442:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 807,
|
|
"name": "_data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 782,
|
|
"src": "17446:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 808,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "17446:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "17442:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 987,
|
|
"initializationExpression": {
|
|
"assignments": [
|
|
803
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 803,
|
|
"mutability": "mutable",
|
|
"name": "i",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 987,
|
|
"src": "17427:9:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 802,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17427:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 805,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 804,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "17439:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "17427:13:0"
|
|
},
|
|
"loopExpression": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 811,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "++",
|
|
"prefix": false,
|
|
"src": "17460:3:0",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"id": 810,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 803,
|
|
"src": "17460:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 812,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "17460:3:0"
|
|
},
|
|
"nodeType": "ForStatement",
|
|
"src": "17422:2194:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 991,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 989,
|
|
"name": "toAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 796,
|
|
"src": "19700:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 990,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 786,
|
|
"src": "19712:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "19700:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f52455455524e5f544f4f5f4c4f57",
|
|
"id": 992,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "19724:20:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_c3237cc40443cfd1e0e9492ef35b7447eab6349fb6eac5eb1ec626edd3c555aa",
|
|
"typeString": "literal_string \"ERR_RETURN_TOO_LOW\""
|
|
},
|
|
"value": "ERR_RETURN_TOO_LOW"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_c3237cc40443cfd1e0e9492ef35b7447eab6349fb6eac5eb1ec626edd3c555aa",
|
|
"typeString": "literal_string \"ERR_RETURN_TOO_LOW\""
|
|
}
|
|
],
|
|
"id": 988,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "19692:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 993,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "19692:53:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 994,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "19692:53:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 995,
|
|
"name": "toAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 796,
|
|
"src": "19765:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 794,
|
|
"id": 996,
|
|
"nodeType": "Return",
|
|
"src": "19758:15:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 779,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "16471:603:0",
|
|
"text": " @dev executes the actual conversion by following the conversion path\n @param _data conversion data, see ConversionStep struct above\n @param _amount amount to convert from, in the source token\n @param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\n @param _affiliateAccount affiliate account\n @param _affiliateFee affiliate fee in PPM\n @return amount of tokens received from the conversion"
|
|
},
|
|
"id": 998,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "doConversion",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 791,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 782,
|
|
"mutability": "mutable",
|
|
"name": "_data",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 998,
|
|
"src": "17112:29:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"contractScope": null,
|
|
"id": 780,
|
|
"name": "ConversionStep",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 59,
|
|
"src": "17112:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep"
|
|
}
|
|
},
|
|
"id": 781,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "17112:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_storage_$dyn_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 784,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 998,
|
|
"src": "17152:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 783,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17152:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 786,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 998,
|
|
"src": "17178:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 785,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17178:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 788,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 998,
|
|
"src": "17207:25:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 787,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17207:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 790,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 998,
|
|
"src": "17243:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 789,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17243:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "17101:170:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 794,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 793,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 998,
|
|
"src": "17289:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 792,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17289:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "17288:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "17080:2701:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1109,
|
|
"nodeType": "Block",
|
|
"src": "20232:1606:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
1009
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1009,
|
|
"mutability": "mutable",
|
|
"name": "firstConverter",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1109,
|
|
"src": "20243:25:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1008,
|
|
"name": "IConverter",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13340,
|
|
"src": "20243:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1018,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1013,
|
|
"name": "_anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1003,
|
|
"src": "20290:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"id": 1014,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "owner",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22838,
|
|
"src": "20290:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
|
|
"typeString": "function () view external returns (address)"
|
|
}
|
|
},
|
|
"id": 1015,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "20290:15:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 1012,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "20282:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_payable_$",
|
|
"typeString": "type(address payable)"
|
|
},
|
|
"typeName": {
|
|
"id": 1011,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "20282:8:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1016,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "20282:24:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"id": 1010,
|
|
"name": "IConverter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 13340,
|
|
"src": "20271:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IConverter_$13340_$",
|
|
"typeString": "type(contract IConverter)"
|
|
}
|
|
},
|
|
"id": 1017,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "20271:36:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "20243:64:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
1020
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1020,
|
|
"mutability": "mutable",
|
|
"name": "isNewerConverter",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1109,
|
|
"src": "20318:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 1019,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "20318:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1024,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1022,
|
|
"name": "firstConverter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1009,
|
|
"src": "20365:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 1021,
|
|
"name": "isV28OrHigherConverter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1719,
|
|
"src": "20342:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$13340_$returns$_t_bool_$",
|
|
"typeString": "function (contract IConverter) view returns (bool)"
|
|
}
|
|
},
|
|
"id": 1023,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "20342:38:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "20318:62:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1028,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1025,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "20413:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 1026,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "value",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "20413:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1027,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "20425:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "20413:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1055,
|
|
"name": "etherTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 66,
|
|
"src": "20955:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_bool_$",
|
|
"typeString": "mapping(contract IERC20Token => bool)"
|
|
}
|
|
},
|
|
"id": 1057,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1056,
|
|
"name": "_sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1001,
|
|
"src": "20967:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "20955:25:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"id": 1106,
|
|
"nodeType": "Block",
|
|
"src": "21447:384:0",
|
|
"statements": [
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"id": 1082,
|
|
"name": "isNewerConverter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1020,
|
|
"src": "21605:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1095,
|
|
"name": "_sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1001,
|
|
"src": "21770:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1096,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "21784:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 1097,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sender",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "21784:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1100,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "21804:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
],
|
|
"id": 1099,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "21796:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1098,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "21796:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1101,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "21796:13:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1102,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1005,
|
|
"src": "21811:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1094,
|
|
"name": "safeTransferFrom",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22525,
|
|
"src": "21753:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (contract IERC20Token,address,address,uint256)"
|
|
}
|
|
},
|
|
"id": 1103,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "21753:66:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1104,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "21753:66:0"
|
|
},
|
|
"id": 1105,
|
|
"nodeType": "IfStatement",
|
|
"src": "21601:218:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1084,
|
|
"name": "_sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1001,
|
|
"src": "21657:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1085,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "21671:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 1086,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sender",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "21671:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1089,
|
|
"name": "firstConverter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1009,
|
|
"src": "21691:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 1088,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "21683:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1087,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "21683:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1090,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "21683:23:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1091,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1005,
|
|
"src": "21708:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1083,
|
|
"name": "safeTransferFrom",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22525,
|
|
"src": "21640:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (contract IERC20Token,address,address,uint256)"
|
|
}
|
|
},
|
|
"id": 1092,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "21640:76:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1093,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "21640:76:0"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"id": 1107,
|
|
"nodeType": "IfStatement",
|
|
"src": "20951:880:0",
|
|
"trueBody": {
|
|
"id": 1081,
|
|
"nodeType": "Block",
|
|
"src": "20982:420:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1059,
|
|
"name": "_sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1001,
|
|
"src": "21184:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1060,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "21198:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 1061,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sender",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "21198:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1064,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "21218:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
],
|
|
"id": 1063,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "21210:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1062,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "21210:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1065,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "21210:13:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1066,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1005,
|
|
"src": "21225:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1058,
|
|
"name": "safeTransferFrom",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22525,
|
|
"src": "21167:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (contract IERC20Token,address,address,uint256)"
|
|
}
|
|
},
|
|
"id": 1067,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "21167:66:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1068,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "21167:66:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"id": 1069,
|
|
"name": "isNewerConverter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1020,
|
|
"src": "21303:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1080,
|
|
"nodeType": "IfStatement",
|
|
"src": "21299:91:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1077,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1005,
|
|
"src": "21382:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1073,
|
|
"name": "_sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1001,
|
|
"src": "21358:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 1072,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "21350:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1071,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "21350:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1074,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "21350:21:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 1070,
|
|
"name": "IEtherToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21153,
|
|
"src": "21338:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IEtherToken_$21153_$",
|
|
"typeString": "type(contract IEtherToken)"
|
|
}
|
|
},
|
|
"id": 1075,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "21338:34:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IEtherToken_$21153",
|
|
"typeString": "contract IEtherToken"
|
|
}
|
|
},
|
|
"id": 1076,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "withdraw",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21140,
|
|
"src": "21338:43:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
|
|
"typeString": "function (uint256) external"
|
|
}
|
|
},
|
|
"id": 1078,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "21338:52:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1079,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "21338:52:0"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"id": 1108,
|
|
"nodeType": "IfStatement",
|
|
"src": "20409:1422:0",
|
|
"trueBody": {
|
|
"id": 1054,
|
|
"nodeType": "Block",
|
|
"src": "20428:485:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1033,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1030,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "20486:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 1031,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "value",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "20486:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1032,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1005,
|
|
"src": "20499:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "20486:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f4554485f414d4f554e545f4d49534d41544348",
|
|
"id": 1034,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "20508:25:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b",
|
|
"typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\""
|
|
},
|
|
"value": "ERR_ETH_AMOUNT_MISMATCH"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b",
|
|
"typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\""
|
|
}
|
|
],
|
|
"id": 1029,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "20478:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 1035,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "20478:56:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1036,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "20478:56:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"id": 1038,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "!",
|
|
"prefix": true,
|
|
"src": "20768:17:0",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1037,
|
|
"name": "isNewerConverter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1020,
|
|
"src": "20769:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1053,
|
|
"nodeType": "IfStatement",
|
|
"src": "20764:137:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1043,
|
|
"name": "firstConverter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1009,
|
|
"src": "20854:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 1042,
|
|
"name": "getConverterEtherTokenAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1552,
|
|
"src": "20824:29:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$13340_$returns$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "function (contract IConverter) view returns (contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 1044,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "20824:45:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 1041,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "20816:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1040,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "20816:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1045,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "20816:54:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 1039,
|
|
"name": "IEtherToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21153,
|
|
"src": "20804:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IEtherToken_$21153_$",
|
|
"typeString": "type(contract IEtherToken)"
|
|
}
|
|
},
|
|
"id": 1046,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "20804:67:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IEtherToken_$21153",
|
|
"typeString": "contract IEtherToken"
|
|
}
|
|
},
|
|
"id": 1047,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "deposit",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21135,
|
|
"src": "20804:75:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_payable$__$returns$__$",
|
|
"typeString": "function () payable external"
|
|
}
|
|
},
|
|
"id": 1050,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"names": [
|
|
"value"
|
|
],
|
|
"nodeType": "FunctionCallOptions",
|
|
"options": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1048,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "20888:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 1049,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "value",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "20888:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"src": "20804:95:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_payable$__$returns$__$value",
|
|
"typeString": "function () payable external"
|
|
}
|
|
},
|
|
"id": 1051,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "20804:97:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1052,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "20804:97:0"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 999,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "19789:333:0",
|
|
"text": " @dev validates msg.value and prepares the conversion source token for the conversion\n @param _sourceToken source token of the first conversion step\n @param _anchor converter anchor of the first conversion step\n @param _amount amount to convert from, in the source token"
|
|
},
|
|
"id": 1110,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "handleSourceToken",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1006,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1001,
|
|
"mutability": "mutable",
|
|
"name": "_sourceToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1110,
|
|
"src": "20155:24:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1000,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "20155:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1003,
|
|
"mutability": "mutable",
|
|
"name": "_anchor",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1110,
|
|
"src": "20181:24:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1002,
|
|
"name": "IConverterAnchor",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13349,
|
|
"src": "20181:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1005,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1110,
|
|
"src": "20207:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1004,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "20207:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "20154:69:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1007,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "20232:0:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "20128:1710:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1173,
|
|
"nodeType": "Block",
|
|
"src": "22295:780:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
1122
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1122,
|
|
"mutability": "mutable",
|
|
"name": "stepData",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1173,
|
|
"src": "22306:30:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1121,
|
|
"name": "ConversionStep",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 59,
|
|
"src": "22306:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1129,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1123,
|
|
"name": "_data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1114,
|
|
"src": "22339:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 1128,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1127,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1124,
|
|
"name": "_data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1114,
|
|
"src": "22345:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 1125,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "22345:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 1126,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "22360:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "22345:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "22339:23:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "22306:56:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 1136,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1130,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1122,
|
|
"src": "22444:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1131,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "beneficiary",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 54,
|
|
"src": "22444:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1134,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "22476:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
],
|
|
"id": 1133,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "22468:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1132,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "22468:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1135,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "22468:13:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "22444:37:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1138,
|
|
"nodeType": "IfStatement",
|
|
"src": "22440:63:0",
|
|
"trueBody": {
|
|
"expression": null,
|
|
"functionReturnParameters": 1120,
|
|
"id": 1137,
|
|
"nodeType": "Return",
|
|
"src": "22496:7:0"
|
|
}
|
|
},
|
|
{
|
|
"assignments": [
|
|
1140
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1140,
|
|
"mutability": "mutable",
|
|
"name": "targetToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1173,
|
|
"src": "22515:23:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1139,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "22515:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1143,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1141,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1122,
|
|
"src": "22541:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1142,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "targetToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 52,
|
|
"src": "22541:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "22515:46:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1144,
|
|
"name": "etherTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 66,
|
|
"src": "22607:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_bool_$",
|
|
"typeString": "mapping(contract IERC20Token => bool)"
|
|
}
|
|
},
|
|
"id": 1146,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1145,
|
|
"name": "targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1140,
|
|
"src": "22619:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "22607:24:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"id": 1171,
|
|
"nodeType": "Block",
|
|
"src": "22993:75:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1166,
|
|
"name": "targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1140,
|
|
"src": "23021:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1167,
|
|
"name": "_beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1118,
|
|
"src": "23034:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1168,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1116,
|
|
"src": "23048:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1165,
|
|
"name": "safeTransfer",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22475,
|
|
"src": "23008:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (contract IERC20Token,address,uint256)"
|
|
}
|
|
},
|
|
"id": 1169,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "23008:48:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1170,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "23008:48:0"
|
|
}
|
|
]
|
|
},
|
|
"id": 1172,
|
|
"nodeType": "IfStatement",
|
|
"src": "22603:465:0",
|
|
"trueBody": {
|
|
"id": 1164,
|
|
"nodeType": "Block",
|
|
"src": "22633:315:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1150,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "!",
|
|
"prefix": true,
|
|
"src": "22731:32:0",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1148,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1122,
|
|
"src": "22732:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1149,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isV28OrHigherConverter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 56,
|
|
"src": "22732:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
],
|
|
"id": 1147,
|
|
"name": "assert",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -3,
|
|
"src": "22724:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
|
|
"typeString": "function (bool) pure"
|
|
}
|
|
},
|
|
"id": 1151,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "22724:40:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1152,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "22724:40:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1160,
|
|
"name": "_beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1118,
|
|
"src": "22914:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1161,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1116,
|
|
"src": "22928:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1156,
|
|
"name": "targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1140,
|
|
"src": "22889:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 1155,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "22881:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1154,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "22881:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1157,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "22881:20:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 1153,
|
|
"name": "IEtherToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21153,
|
|
"src": "22869:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IEtherToken_$21153_$",
|
|
"typeString": "type(contract IEtherToken)"
|
|
}
|
|
},
|
|
"id": 1158,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "22869:33:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IEtherToken_$21153",
|
|
"typeString": "contract IEtherToken"
|
|
}
|
|
},
|
|
"id": 1159,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "withdrawTo",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21152,
|
|
"src": "22869:44:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$_t_uint256_$returns$__$",
|
|
"typeString": "function (address payable,uint256) external"
|
|
}
|
|
},
|
|
"id": 1162,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "22869:67:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1163,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "22869:67:0"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1111,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "21846:330:0",
|
|
"text": " @dev handles the conversion target token if the network still holds it at the end of the conversion\n @param _data conversion data, see ConversionStep struct above\n @param _amount conversion target amount\n @param _beneficiary wallet to receive the conversion result"
|
|
},
|
|
"id": 1174,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "handleTargetToken",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1119,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1114,
|
|
"mutability": "mutable",
|
|
"name": "_data",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1174,
|
|
"src": "22209:29:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"contractScope": null,
|
|
"id": 1112,
|
|
"name": "ConversionStep",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 59,
|
|
"src": "22209:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep"
|
|
}
|
|
},
|
|
"id": 1113,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "22209:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_storage_$dyn_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1116,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1174,
|
|
"src": "22240:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1115,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "22240:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1118,
|
|
"mutability": "mutable",
|
|
"name": "_beneficiary",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1174,
|
|
"src": "22257:28:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"typeName": {
|
|
"id": 1117,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "22257:15:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "22208:78:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1120,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "22295:0:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "22182:893:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1467,
|
|
"nodeType": "Block",
|
|
"src": "23760:4093:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
1191
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1191,
|
|
"mutability": "mutable",
|
|
"name": "data",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1467,
|
|
"src": "23771:28:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"contractScope": null,
|
|
"id": 1189,
|
|
"name": "ConversionStep",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 59,
|
|
"src": "23771:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep"
|
|
}
|
|
},
|
|
"id": 1190,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "23771:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_storage_$dyn_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1200,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1198,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1195,
|
|
"name": "_conversionPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1178,
|
|
"src": "23823:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 1196,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "23823:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "/",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 1197,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "23848:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"src": "23823:26:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1194,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "NewExpression",
|
|
"src": "23802:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr_$",
|
|
"typeString": "function (uint256) pure returns (struct BancorNetwork.ConversionStep memory[] memory)"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"contractScope": null,
|
|
"id": 1192,
|
|
"name": "ConversionStep",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 59,
|
|
"src": "23806:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep"
|
|
}
|
|
},
|
|
"id": 1193,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "23806:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_storage_$dyn_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep[]"
|
|
}
|
|
}
|
|
},
|
|
"id": 1199,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "23802:48:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "23771:79:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
1202
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1202,
|
|
"mutability": "mutable",
|
|
"name": "affiliateFeeProcessed",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1467,
|
|
"src": "23863:26:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 1201,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "23863:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1204,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"hexValue": "66616c7365",
|
|
"id": 1203,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "23892:5:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "false"
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "23863:34:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
1206
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1206,
|
|
"mutability": "mutable",
|
|
"name": "bntToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1467,
|
|
"src": "23908:20:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1205,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "23908:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1212,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1209,
|
|
"name": "BNT_TOKEN",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21551,
|
|
"src": "23953:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
],
|
|
"id": 1208,
|
|
"name": "addressOf",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21718,
|
|
"src": "23943:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
|
|
"typeString": "function (bytes32) view returns (address)"
|
|
}
|
|
},
|
|
"id": 1210,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "23943:20:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 1207,
|
|
"name": "IERC20Token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21127,
|
|
"src": "23931:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "type(contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 1211,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "23931:33:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "23908:56:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
1214
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1214,
|
|
"mutability": "mutable",
|
|
"name": "i",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1467,
|
|
"src": "24060:9:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1213,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "24060:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1215,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "24060:9:0"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1303,
|
|
"nodeType": "Block",
|
|
"src": "24132:1199:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
1231
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1231,
|
|
"mutability": "mutable",
|
|
"name": "anchor",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1303,
|
|
"src": "24147:23:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1230,
|
|
"name": "IConverterAnchor",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13349,
|
|
"src": "24147:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1239,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1233,
|
|
"name": "_conversionPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1178,
|
|
"src": "24190:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 1237,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1236,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1234,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "24206:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "+",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 1235,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "24210:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "24206:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "24190:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 1232,
|
|
"name": "IConverterAnchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 13349,
|
|
"src": "24173:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$13349_$",
|
|
"typeString": "type(contract IConverterAnchor)"
|
|
}
|
|
},
|
|
"id": 1238,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "24173:40:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "24147:66:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
1241
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1241,
|
|
"mutability": "mutable",
|
|
"name": "converter",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1303,
|
|
"src": "24228:20:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1240,
|
|
"name": "IConverter",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13340,
|
|
"src": "24228:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1250,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1245,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1231,
|
|
"src": "24270:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"id": 1246,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "owner",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22838,
|
|
"src": "24270:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
|
|
"typeString": "function () view external returns (address)"
|
|
}
|
|
},
|
|
"id": 1247,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "24270:14:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 1244,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "24262:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_payable_$",
|
|
"typeString": "type(address payable)"
|
|
},
|
|
"typeName": {
|
|
"id": 1243,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "24262:8:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1248,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "24262:23:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"id": 1242,
|
|
"name": "IConverter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 13340,
|
|
"src": "24251:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IConverter_$13340_$",
|
|
"typeString": "type(contract IConverter)"
|
|
}
|
|
},
|
|
"id": 1249,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "24251:35:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "24228:58:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
1252
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1252,
|
|
"mutability": "mutable",
|
|
"name": "targetToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1303,
|
|
"src": "24301:23:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1251,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "24301:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1260,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1254,
|
|
"name": "_conversionPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1178,
|
|
"src": "24339:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 1258,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1257,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1255,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "24355:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "+",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 1256,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "24359:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"src": "24355:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "24339:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 1253,
|
|
"name": "IERC20Token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21127,
|
|
"src": "24327:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "type(contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 1259,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "24327:35:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "24301:61:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
1262
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1262,
|
|
"mutability": "mutable",
|
|
"name": "processAffiliateFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1303,
|
|
"src": "24455:24:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 1261,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "24455:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1271,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 1270,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 1266,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1263,
|
|
"name": "_affiliateFeeEnabled",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1182,
|
|
"src": "24482:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1265,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "!",
|
|
"prefix": true,
|
|
"src": "24506:22:0",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1264,
|
|
"name": "affiliateFeeProcessed",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1202,
|
|
"src": "24507:21:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "24482:46:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"id": 1269,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1267,
|
|
"name": "targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1252,
|
|
"src": "24532:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1268,
|
|
"name": "bntToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1206,
|
|
"src": "24547:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"src": "24532:23:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "24482:73:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "24455:100:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"id": 1272,
|
|
"name": "processAffiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1262,
|
|
"src": "24574:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1277,
|
|
"nodeType": "IfStatement",
|
|
"src": "24570:70:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1275,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1273,
|
|
"name": "affiliateFeeProcessed",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1202,
|
|
"src": "24612:21:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "74727565",
|
|
"id": 1274,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "24636:4:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "true"
|
|
},
|
|
"src": "24612:28:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 1276,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "24612:28:0"
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1301,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1278,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1191,
|
|
"src": "24657:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 1282,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1281,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1279,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "24662:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "/",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 1280,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "24666:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"src": "24662:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"nodeType": "IndexAccess",
|
|
"src": "24657:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1284,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1231,
|
|
"src": "24758:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1285,
|
|
"name": "converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1241,
|
|
"src": "24834:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1287,
|
|
"name": "_conversionPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1178,
|
|
"src": "24938:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 1289,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1288,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "24954:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "24938:18:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 1286,
|
|
"name": "IERC20Token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21127,
|
|
"src": "24926:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "type(contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 1290,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "24926:31:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1291,
|
|
"name": "targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1252,
|
|
"src": "24989:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1294,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "25134:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1293,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "25126:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1292,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "25126:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1295,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "25126:10:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1297,
|
|
"name": "converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1241,
|
|
"src": "25234:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 1296,
|
|
"name": "isV28OrHigherConverter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1719,
|
|
"src": "25211:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$13340_$returns$_t_bool_$",
|
|
"typeString": "function (contract IConverter) view returns (bool)"
|
|
}
|
|
},
|
|
"id": 1298,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "25211:33:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1299,
|
|
"name": "processAffiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1262,
|
|
"src": "25284:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
],
|
|
"id": 1283,
|
|
"name": "ConversionStep",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 59,
|
|
"src": "24671:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_struct$_ConversionStep_$59_storage_ptr_$",
|
|
"typeString": "type(struct BancorNetwork.ConversionStep storage pointer)"
|
|
}
|
|
},
|
|
"id": 1300,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "structConstructorCall",
|
|
"lValueRequested": false,
|
|
"names": [
|
|
"anchor",
|
|
"converter",
|
|
"sourceToken",
|
|
"targetToken",
|
|
"beneficiary",
|
|
"isV28OrHigherConverter",
|
|
"processAffiliateFee"
|
|
],
|
|
"nodeType": "FunctionCall",
|
|
"src": "24671:648:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"src": "24657:662:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1302,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "24657:662:0"
|
|
}
|
|
]
|
|
},
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1225,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1220,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "24092:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1224,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1221,
|
|
"name": "_conversionPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1178,
|
|
"src": "24096:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
"id": 1222,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "24096:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 1223,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "24121:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "24096:26:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "24092:30:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 1304,
|
|
"initializationExpression": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1218,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1216,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "24085:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1217,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "24089:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "24085:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1219,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "24085:5:0"
|
|
},
|
|
"loopExpression": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1228,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1226,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "24124:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "+=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 1227,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "24129:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"src": "24124:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1229,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "24124:6:0"
|
|
},
|
|
"nodeType": "ForStatement",
|
|
"src": "24080:1251:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
1306
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1306,
|
|
"mutability": "mutable",
|
|
"name": "stepData",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1467,
|
|
"src": "25393:30:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1305,
|
|
"name": "ConversionStep",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 59,
|
|
"src": "25393:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1310,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1307,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1191,
|
|
"src": "25426:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 1309,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1308,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "25431:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "25426:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "25393:40:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1311,
|
|
"name": "etherTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 66,
|
|
"src": "25448:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_bool_$",
|
|
"typeString": "mapping(contract IERC20Token => bool)"
|
|
}
|
|
},
|
|
"id": 1314,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1312,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "25460:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1313,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sourceToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 50,
|
|
"src": "25460:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "25448:33:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1334,
|
|
"nodeType": "IfStatement",
|
|
"src": "25444:472:0",
|
|
"trueBody": {
|
|
"id": 1333,
|
|
"nodeType": "Block",
|
|
"src": "25483:433:0",
|
|
"statements": [
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1315,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "25594:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1316,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isV28OrHigherConverter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 56,
|
|
"src": "25594:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1330,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1323,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "25832:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1325,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "sourceToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 50,
|
|
"src": "25832:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1327,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "25885:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1328,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "converter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 46,
|
|
"src": "25885:18:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 1326,
|
|
"name": "getConverterEtherTokenAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1552,
|
|
"src": "25855:29:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$13340_$returns$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "function (contract IConverter) view returns (contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 1329,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "25855:49:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"src": "25832:72:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"id": 1331,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "25832:72:0"
|
|
},
|
|
"id": 1332,
|
|
"nodeType": "IfStatement",
|
|
"src": "25590:314:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1321,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1317,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "25644:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1319,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "sourceToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 50,
|
|
"src": "25644:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1320,
|
|
"name": "ETH_RESERVE_ADDRESS",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 44,
|
|
"src": "25667:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"src": "25644:42:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"id": 1322,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "25644:42:0"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1342,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1335,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "25954:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1336,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1191,
|
|
"src": "25965:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 1341,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1340,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1337,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1191,
|
|
"src": "25970:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 1338,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "25970:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 1339,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "25984:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "25970:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "25965:21:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"src": "25954:32:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1343,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "25954:32:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1344,
|
|
"name": "etherTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 66,
|
|
"src": "26001:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_bool_$",
|
|
"typeString": "mapping(contract IERC20Token => bool)"
|
|
}
|
|
},
|
|
"id": 1347,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1345,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "26013:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1346,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "targetToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 52,
|
|
"src": "26013:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "26001:33:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1367,
|
|
"nodeType": "IfStatement",
|
|
"src": "25997:472:0",
|
|
"trueBody": {
|
|
"id": 1366,
|
|
"nodeType": "Block",
|
|
"src": "26036:433:0",
|
|
"statements": [
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1348,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "26147:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1349,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isV28OrHigherConverter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 56,
|
|
"src": "26147:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1363,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1356,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "26385:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1358,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "targetToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 52,
|
|
"src": "26385:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1360,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "26438:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1361,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "converter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 46,
|
|
"src": "26438:18:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 1359,
|
|
"name": "getConverterEtherTokenAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1552,
|
|
"src": "26408:29:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$13340_$returns$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "function (contract IConverter) view returns (contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 1362,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "26408:49:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"src": "26385:72:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"id": 1364,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "26385:72:0"
|
|
},
|
|
"id": 1365,
|
|
"nodeType": "IfStatement",
|
|
"src": "26143:314:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1354,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1350,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "26197:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1352,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "targetToken",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 52,
|
|
"src": "26197:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1353,
|
|
"name": "ETH_RESERVE_ADDRESS",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 44,
|
|
"src": "26220:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"src": "26197:42:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"id": 1355,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "26197:42:0"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1463,
|
|
"nodeType": "Block",
|
|
"src": "26561:1261:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1383,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1379,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "26576:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1380,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1191,
|
|
"src": "26587:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 1382,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1381,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "26592:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "26587:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"src": "26576:18:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1384,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "26576:18:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1385,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "26746:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1386,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isV28OrHigherConverter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 56,
|
|
"src": "26746:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"id": 1461,
|
|
"nodeType": "Block",
|
|
"src": "27642:169:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1459,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1449,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "27750:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1451,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "beneficiary",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 54,
|
|
"src": "27750:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1456,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "27789:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
],
|
|
"id": 1455,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "27781:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1454,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "27781:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1457,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "27781:13:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 1453,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "27773:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_payable_$",
|
|
"typeString": "type(address payable)"
|
|
},
|
|
"typeName": {
|
|
"id": 1452,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "27773:8:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1458,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "27773:22:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "27750:45:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"id": 1460,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "27750:45:0"
|
|
}
|
|
]
|
|
},
|
|
"id": 1462,
|
|
"nodeType": "IfStatement",
|
|
"src": "26742:1069:0",
|
|
"trueBody": {
|
|
"id": 1448,
|
|
"nodeType": "Block",
|
|
"src": "26779:844:0",
|
|
"statements": [
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1387,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "26902:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1388,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "processAffiliateFee",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 58,
|
|
"src": "26902:28:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1406,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1401,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "27106:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1405,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1402,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1191,
|
|
"src": "27111:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 1403,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "27111:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 1404,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "27125:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "27111:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "27106:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1413,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1191,
|
|
"src": "27310:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 1417,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1416,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1414,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "27315:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "+",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 1415,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "27319:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "27315:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "27310:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1418,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isV28OrHigherConverter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 56,
|
|
"src": "27310:34:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1443,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1433,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "27562:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1435,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "beneficiary",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 54,
|
|
"src": "27562:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1440,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "27601:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
],
|
|
"id": 1439,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "27593:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1438,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "27593:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1441,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "27593:13:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 1437,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "27585:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_payable_$",
|
|
"typeString": "type(address payable)"
|
|
},
|
|
"typeName": {
|
|
"id": 1436,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "27585:8:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1442,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "27585:22:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "27562:45:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"id": 1444,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "27562:45:0"
|
|
},
|
|
"id": 1445,
|
|
"nodeType": "IfStatement",
|
|
"src": "27306:301:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1431,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1419,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "27367:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1421,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "beneficiary",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 54,
|
|
"src": "27367:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1424,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1191,
|
|
"src": "27398:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 1428,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1427,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1425,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "27403:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "+",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 1426,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "27407:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "27403:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "27398:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1429,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "converter",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 46,
|
|
"src": "27398:21:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 1423,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "27390:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1422,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "27390:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1430,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "27390:30:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "27367:53:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"id": 1432,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "27367:53:0"
|
|
}
|
|
},
|
|
"id": 1446,
|
|
"nodeType": "IfStatement",
|
|
"src": "27102:505:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1411,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1407,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "27149:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1409,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "beneficiary",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 54,
|
|
"src": "27149:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1410,
|
|
"name": "_beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1180,
|
|
"src": "27172:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "27149:35:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"id": 1412,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "27149:35:0"
|
|
}
|
|
},
|
|
"id": 1447,
|
|
"nodeType": "IfStatement",
|
|
"src": "26898:709:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1399,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1389,
|
|
"name": "stepData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1306,
|
|
"src": "26953:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory"
|
|
}
|
|
},
|
|
"id": 1391,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "beneficiary",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 54,
|
|
"src": "26953:20:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1396,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "26992:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
],
|
|
"id": 1395,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "26984:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1394,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "26984:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1397,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "26984:13:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 1393,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "26976:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_payable_$",
|
|
"typeString": "type(address payable)"
|
|
},
|
|
"typeName": {
|
|
"id": 1392,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "26976:8:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1398,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "26976:22:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "26953:45:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"id": 1400,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "26953:45:0"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1375,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1372,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "26539:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1373,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1191,
|
|
"src": "26543:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"id": 1374,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "26543:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "26539:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 1464,
|
|
"initializationExpression": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1370,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1368,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "26532:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1369,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "26536:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "26532:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1371,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "26532:5:0"
|
|
},
|
|
"loopExpression": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1377,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "++",
|
|
"prefix": false,
|
|
"src": "26556:3:0",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1376,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1214,
|
|
"src": "26556:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1378,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "26556:3:0"
|
|
},
|
|
"nodeType": "ForStatement",
|
|
"src": "26527:1295:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1465,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1191,
|
|
"src": "27841:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep memory[] memory"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1187,
|
|
"id": 1466,
|
|
"nodeType": "Return",
|
|
"src": "27834:11:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1175,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "23083:503:0",
|
|
"text": " @dev creates a memory cache of all conversion steps data to minimize logic and external calls during conversions\n @param _conversionPath conversion path, see conversion path format above\n @param _beneficiary wallet to receive the conversion result\n @param _affiliateFeeEnabled true if affiliate fee was requested by the sender, false if not\n @return cached conversion data to be ingested later on by the conversion flow"
|
|
},
|
|
"id": 1468,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "createConversionData",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1183,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1178,
|
|
"mutability": "mutable",
|
|
"name": "_conversionPath",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1468,
|
|
"src": "23622:32:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 1176,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "23622:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1177,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "23622:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1180,
|
|
"mutability": "mutable",
|
|
"name": "_beneficiary",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1468,
|
|
"src": "23656:28:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"typeName": {
|
|
"id": 1179,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "23656:15:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1182,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateFeeEnabled",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1468,
|
|
"src": "23686:25:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 1181,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "23686:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "23621:91:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1187,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1186,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1468,
|
|
"src": "23735:23:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_memory_ptr_$dyn_memory_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"contractScope": null,
|
|
"id": 1184,
|
|
"name": "ConversionStep",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 59,
|
|
"src": "23735:14:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_ConversionStep_$59_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep"
|
|
}
|
|
},
|
|
"id": 1185,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "23735:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_struct$_ConversionStep_$59_storage_$dyn_storage_ptr",
|
|
"typeString": "struct BancorNetwork.ConversionStep[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "23734:25:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "23592:4261:0",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1510,
|
|
"nodeType": "Block",
|
|
"src": "28406:261:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
1479
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1479,
|
|
"mutability": "mutable",
|
|
"name": "allowance",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1510,
|
|
"src": "28417:17:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1478,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "28417:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1488,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1484,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "28462:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_BancorNetwork_$1976",
|
|
"typeString": "contract BancorNetwork"
|
|
}
|
|
],
|
|
"id": 1483,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "28454:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1482,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "28454:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1485,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "28454:13:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1486,
|
|
"name": "_spender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1473,
|
|
"src": "28469:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1480,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1471,
|
|
"src": "28437:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"id": 1481,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "allowance",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21097,
|
|
"src": "28437:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$",
|
|
"typeString": "function (address,address) view external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1487,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "28437:41:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "28417:61:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1491,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1489,
|
|
"name": "allowance",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1479,
|
|
"src": "28493:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1490,
|
|
"name": "_value",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1475,
|
|
"src": "28505:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "28493:18:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1509,
|
|
"nodeType": "IfStatement",
|
|
"src": "28489:171:0",
|
|
"trueBody": {
|
|
"id": 1508,
|
|
"nodeType": "Block",
|
|
"src": "28513:147:0",
|
|
"statements": [
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1494,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1492,
|
|
"name": "allowance",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1479,
|
|
"src": "28532:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1493,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "28544:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "28532:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1501,
|
|
"nodeType": "IfStatement",
|
|
"src": "28528:68:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1496,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1471,
|
|
"src": "28576:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1497,
|
|
"name": "_spender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1473,
|
|
"src": "28584:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1498,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "28594:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1495,
|
|
"name": "safeApprove",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22428,
|
|
"src": "28564:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (contract IERC20Token,address,uint256)"
|
|
}
|
|
},
|
|
"id": 1499,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "28564:32:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1500,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "28564:32:0"
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1503,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1471,
|
|
"src": "28623:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1504,
|
|
"name": "_spender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1473,
|
|
"src": "28631:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1505,
|
|
"name": "_value",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1475,
|
|
"src": "28641:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1502,
|
|
"name": "safeApprove",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22428,
|
|
"src": "28611:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (contract IERC20Token,address,uint256)"
|
|
}
|
|
},
|
|
"id": 1506,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "28611:37:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1507,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "28611:37:0"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1469,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "27861:452:0",
|
|
"text": " @dev utility, checks whether allowance for the given spender exists and approves one if it doesn't.\n Note that we use the non standard erc-20 interface in which `approve` has no return value so that\n this function will work for both standard and non standard tokens\n @param _token token to check the allowance in\n @param _spender approved address\n @param _value allowance amount"
|
|
},
|
|
"id": 1511,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "ensureAllowance",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1476,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1471,
|
|
"mutability": "mutable",
|
|
"name": "_token",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1511,
|
|
"src": "28344:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1470,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "28344:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1473,
|
|
"mutability": "mutable",
|
|
"name": "_spender",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1511,
|
|
"src": "28364:16:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1472,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "28364:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1475,
|
|
"mutability": "mutable",
|
|
"name": "_value",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1511,
|
|
"src": "28382:14:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1474,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "28382:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "28343:54:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1477,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "28406:0:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "28319:348:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1551,
|
|
"nodeType": "Block",
|
|
"src": "28848:352:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
1519
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1519,
|
|
"mutability": "mutable",
|
|
"name": "reserveCount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1551,
|
|
"src": "28859:20:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1518,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "28859:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1523,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1520,
|
|
"name": "_converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1513,
|
|
"src": "28882:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"id": 1521,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "connectorTokenCount",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 13339,
|
|
"src": "28882:30:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$__$returns$_t_uint16_$",
|
|
"typeString": "function () view external returns (uint16)"
|
|
}
|
|
},
|
|
"id": 1522,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "28882:32:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "28859:55:0"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1547,
|
|
"nodeType": "Block",
|
|
"src": "28968:186:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
1535
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1535,
|
|
"mutability": "mutable",
|
|
"name": "reserveTokenAddress",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1547,
|
|
"src": "28983:31:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1534,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "28983:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1540,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1538,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1525,
|
|
"src": "29044:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1536,
|
|
"name": "_converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1513,
|
|
"src": "29017:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"id": 1537,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "connectorTokens",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 13334,
|
|
"src": "29017:26:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "function (uint256) view external returns (contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 1539,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "29017:29:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "28983:63:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1541,
|
|
"name": "etherTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 66,
|
|
"src": "29065:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_bool_$",
|
|
"typeString": "mapping(contract IERC20Token => bool)"
|
|
}
|
|
},
|
|
"id": 1543,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1542,
|
|
"name": "reserveTokenAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1535,
|
|
"src": "29077:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "29065:32:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1546,
|
|
"nodeType": "IfStatement",
|
|
"src": "29061:81:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1544,
|
|
"name": "reserveTokenAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1535,
|
|
"src": "29123:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1517,
|
|
"id": 1545,
|
|
"nodeType": "Return",
|
|
"src": "29116:26:0"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1530,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1528,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1525,
|
|
"src": "28945:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1529,
|
|
"name": "reserveCount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1519,
|
|
"src": "28949:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "28945:16:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 1548,
|
|
"initializationExpression": {
|
|
"assignments": [
|
|
1525
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1525,
|
|
"mutability": "mutable",
|
|
"name": "i",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1548,
|
|
"src": "28930:9:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1524,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "28930:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1527,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1526,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "28942:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "28930:13:0"
|
|
},
|
|
"loopExpression": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1532,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "++",
|
|
"prefix": false,
|
|
"src": "28963:3:0",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1531,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1525,
|
|
"src": "28963:1:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1533,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "28963:3:0"
|
|
},
|
|
"nodeType": "ForStatement",
|
|
"src": "28925:229:0"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1549,
|
|
"name": "ETH_RESERVE_ADDRESS",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 44,
|
|
"src": "29173:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1517,
|
|
"id": 1550,
|
|
"nodeType": "Return",
|
|
"src": "29166:26:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 1552,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "getConverterEtherTokenAddress",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1514,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1513,
|
|
"mutability": "mutable",
|
|
"name": "_converter",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1552,
|
|
"src": "28790:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1512,
|
|
"name": "IConverter",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13340,
|
|
"src": "28790:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "28789:23:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1517,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1516,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1552,
|
|
"src": "28835:11:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1515,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "28835:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "28834:13:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "28751:449:0",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1578,
|
|
"nodeType": "Block",
|
|
"src": "29474:224:0",
|
|
"statements": [
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"id": 1564,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "!",
|
|
"prefix": true,
|
|
"src": "29489:20:0",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1561,
|
|
"name": "etherTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 66,
|
|
"src": "29490:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_bool_$",
|
|
"typeString": "mapping(contract IERC20Token => bool)"
|
|
}
|
|
},
|
|
"id": 1563,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1562,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1556,
|
|
"src": "29502:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "29490:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1567,
|
|
"nodeType": "IfStatement",
|
|
"src": "29485:52:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1565,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1556,
|
|
"src": "29531:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1560,
|
|
"id": 1566,
|
|
"nodeType": "Return",
|
|
"src": "29524:13:0"
|
|
}
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1569,
|
|
"name": "_converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1554,
|
|
"src": "29577:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 1568,
|
|
"name": "isV28OrHigherConverter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1719,
|
|
"src": "29554:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$13340_$returns$_t_bool_$",
|
|
"typeString": "function (contract IConverter) view returns (bool)"
|
|
}
|
|
},
|
|
"id": 1570,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "29554:34:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1573,
|
|
"nodeType": "IfStatement",
|
|
"src": "29550:79:0",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1571,
|
|
"name": "ETH_RESERVE_ADDRESS",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 44,
|
|
"src": "29610:19:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1560,
|
|
"id": 1572,
|
|
"nodeType": "Return",
|
|
"src": "29603:26:0"
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1575,
|
|
"name": "_converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1554,
|
|
"src": "29679:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 1574,
|
|
"name": "getConverterEtherTokenAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1552,
|
|
"src": "29649:29:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$13340_$returns$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "function (contract IConverter) view returns (contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 1576,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "29649:41:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1560,
|
|
"id": 1577,
|
|
"nodeType": "Return",
|
|
"src": "29642:48:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 1579,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "getConverterTokenAddress",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1557,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1554,
|
|
"mutability": "mutable",
|
|
"name": "_converter",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1579,
|
|
"src": "29396:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1553,
|
|
"name": "IConverter",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13340,
|
|
"src": "29396:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1556,
|
|
"mutability": "mutable",
|
|
"name": "_token",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1579,
|
|
"src": "29419:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1555,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "29419:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "29395:43:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1560,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1559,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1579,
|
|
"src": "29461:11:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1558,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "29461:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "29460:13:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "29362:336:0",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"id": 1587,
|
|
"mutability": "constant",
|
|
"name": "GET_RETURN_FUNC_SELECTOR",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1976,
|
|
"src": "29706:106:0",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
},
|
|
"typeName": {
|
|
"id": 1580,
|
|
"name": "bytes4",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "29706:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "67657452657475726e28616464726573732c616464726573732c75696e7432353629",
|
|
"id": 1584,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "29774:36:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_1e1401f8329fe5eb5c7e76277d3c971ffeee3a41a0eef7c00afeb0a286cef0af",
|
|
"typeString": "literal_string \"getReturn(address,address,uint256)\""
|
|
},
|
|
"value": "getReturn(address,address,uint256)"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_stringliteral_1e1401f8329fe5eb5c7e76277d3c971ffeee3a41a0eef7c00afeb0a286cef0af",
|
|
"typeString": "literal_string \"getReturn(address,address,uint256)\""
|
|
}
|
|
],
|
|
"id": 1583,
|
|
"name": "keccak256",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -8,
|
|
"src": "29764:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
|
|
"typeString": "function (bytes memory) pure returns (bytes32)"
|
|
}
|
|
},
|
|
"id": 1585,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "29764:47:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
],
|
|
"id": 1582,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "29757:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_bytes4_$",
|
|
"typeString": "type(bytes4)"
|
|
},
|
|
"typeName": {
|
|
"id": 1581,
|
|
"name": "bytes4",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "29757:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1586,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "29757:55:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
}
|
|
},
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1663,
|
|
"nodeType": "Block",
|
|
"src": "30036:523:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
1603
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1603,
|
|
"mutability": "mutable",
|
|
"name": "data",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1663,
|
|
"src": "30047:17:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes"
|
|
},
|
|
"typeName": {
|
|
"id": 1602,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "30047:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1611,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1606,
|
|
"name": "GET_RETURN_FUNC_SELECTOR",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1587,
|
|
"src": "30090:24:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1607,
|
|
"name": "_sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1591,
|
|
"src": "30116:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1608,
|
|
"name": "_targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1593,
|
|
"src": "30130:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1609,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1595,
|
|
"src": "30144:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1604,
|
|
"name": "abi",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -1,
|
|
"src": "30067:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_abi",
|
|
"typeString": "abi"
|
|
}
|
|
},
|
|
"id": 1605,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"memberName": "encodeWithSelector",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "30067:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
|
|
"typeString": "function (bytes4) pure returns (bytes memory)"
|
|
}
|
|
},
|
|
"id": 1610,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "30067:85:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "30047:105:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
1613,
|
|
1615
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1613,
|
|
"mutability": "mutable",
|
|
"name": "success",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1663,
|
|
"src": "30164:12:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 1612,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "30164:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1615,
|
|
"mutability": "mutable",
|
|
"name": "returnData",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1663,
|
|
"src": "30178:23:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes"
|
|
},
|
|
"typeName": {
|
|
"id": 1614,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "30178:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1623,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1621,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1603,
|
|
"src": "30231:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1618,
|
|
"name": "_dest",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1589,
|
|
"src": "30213:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 1617,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "30205:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1616,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "30205:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1619,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "30205:14:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"id": 1620,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "staticcall",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "30205:25:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
|
|
"typeString": "function (bytes memory) view returns (bool,bytes memory)"
|
|
}
|
|
},
|
|
"id": 1622,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "30205:31:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
|
|
"typeString": "tuple(bool,bytes memory)"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "30163:73:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"id": 1624,
|
|
"name": "success",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1613,
|
|
"src": "30253:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1658,
|
|
"nodeType": "IfStatement",
|
|
"src": "30249:277:0",
|
|
"trueBody": {
|
|
"id": 1657,
|
|
"nodeType": "Block",
|
|
"src": "30262:264:0",
|
|
"statements": [
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1628,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1625,
|
|
"name": "returnData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1615,
|
|
"src": "30281:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"id": 1626,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "30281:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "3634",
|
|
"id": 1627,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "30302:2:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_64_by_1",
|
|
"typeString": "int_const 64"
|
|
},
|
|
"value": "64"
|
|
},
|
|
"src": "30281:23:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1640,
|
|
"nodeType": "IfStatement",
|
|
"src": "30277:113:0",
|
|
"trueBody": {
|
|
"id": 1639,
|
|
"nodeType": "Block",
|
|
"src": "30306:84:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1631,
|
|
"name": "returnData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1615,
|
|
"src": "30343:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"components": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1633,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "30356:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_uint256_$",
|
|
"typeString": "type(uint256)"
|
|
},
|
|
"typeName": {
|
|
"id": 1632,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "30356:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1635,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "30365:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_uint256_$",
|
|
"typeString": "type(uint256)"
|
|
},
|
|
"typeName": {
|
|
"id": 1634,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "30365:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"id": 1636,
|
|
"isConstant": false,
|
|
"isInlineArray": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "TupleExpression",
|
|
"src": "30355:18:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$",
|
|
"typeString": "tuple(type(uint256),type(uint256))"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$",
|
|
"typeString": "tuple(type(uint256),type(uint256))"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1629,
|
|
"name": "abi",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -1,
|
|
"src": "30332:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_abi",
|
|
"typeString": "abi"
|
|
}
|
|
},
|
|
"id": 1630,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"memberName": "decode",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "30332:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
|
|
"typeString": "function () pure"
|
|
}
|
|
},
|
|
"id": 1637,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "30332:42:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
|
|
"typeString": "tuple(uint256,uint256)"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1601,
|
|
"id": 1638,
|
|
"nodeType": "Return",
|
|
"src": "30325:49:0"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1644,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1641,
|
|
"name": "returnData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1615,
|
|
"src": "30410:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"id": 1642,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "30410:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "3332",
|
|
"id": 1643,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "30431:2:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_32_by_1",
|
|
"typeString": "int_const 32"
|
|
},
|
|
"value": "32"
|
|
},
|
|
"src": "30410:23:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1656,
|
|
"nodeType": "IfStatement",
|
|
"src": "30406:109:0",
|
|
"trueBody": {
|
|
"id": 1655,
|
|
"nodeType": "Block",
|
|
"src": "30435:80:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"components": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1647,
|
|
"name": "returnData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1615,
|
|
"src": "30473:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"components": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1649,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "30486:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_uint256_$",
|
|
"typeString": "type(uint256)"
|
|
},
|
|
"typeName": {
|
|
"id": 1648,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "30486:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"id": 1650,
|
|
"isConstant": false,
|
|
"isInlineArray": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "TupleExpression",
|
|
"src": "30485:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_uint256_$",
|
|
"typeString": "type(uint256)"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_type$_t_uint256_$",
|
|
"typeString": "type(uint256)"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1645,
|
|
"name": "abi",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -1,
|
|
"src": "30462:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_abi",
|
|
"typeString": "abi"
|
|
}
|
|
},
|
|
"id": 1646,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"memberName": "decode",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "30462:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
|
|
"typeString": "function () pure"
|
|
}
|
|
},
|
|
"id": 1651,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "30462:33:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1652,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "30497:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"id": 1653,
|
|
"isConstant": false,
|
|
"isInlineArray": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "TupleExpression",
|
|
"src": "30461:38:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_uint256_$_t_rational_0_by_1_$",
|
|
"typeString": "tuple(uint256,int_const 0)"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1601,
|
|
"id": 1654,
|
|
"nodeType": "Return",
|
|
"src": "30454:45:0"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"components": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1659,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "30546:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1660,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "30549:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"id": 1661,
|
|
"isConstant": false,
|
|
"isInlineArray": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "TupleExpression",
|
|
"src": "30545:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$",
|
|
"typeString": "tuple(int_const 0,int_const 0)"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1601,
|
|
"id": 1662,
|
|
"nodeType": "Return",
|
|
"src": "30538:13:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 1664,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "getReturn",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1596,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1589,
|
|
"mutability": "mutable",
|
|
"name": "_dest",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1664,
|
|
"src": "29908:16:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1588,
|
|
"name": "IConverter",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13340,
|
|
"src": "29908:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1591,
|
|
"mutability": "mutable",
|
|
"name": "_sourceToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1664,
|
|
"src": "29926:24:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1590,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "29926:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1593,
|
|
"mutability": "mutable",
|
|
"name": "_targetToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1664,
|
|
"src": "29952:24:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1592,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "29952:11:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1595,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1664,
|
|
"src": "29978:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1594,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "29978:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "29907:87:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1601,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1598,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1664,
|
|
"src": "30018:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1597,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "30018:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1600,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1664,
|
|
"src": "30027:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1599,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "30027:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "30017:18:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "29889:670:0",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"id": 1672,
|
|
"mutability": "constant",
|
|
"name": "IS_V28_OR_HIGHER_FUNC_SELECTOR",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1976,
|
|
"src": "30567:93:0",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
},
|
|
"typeName": {
|
|
"id": 1665,
|
|
"name": "bytes4",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "30567:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "69735632384f724869676865722829",
|
|
"id": 1669,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "30641:17:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_d260529c8620a59d78f2e58cfd1294673bb6cba228ad1f34ac7731003ab870dd",
|
|
"typeString": "literal_string \"isV28OrHigher()\""
|
|
},
|
|
"value": "isV28OrHigher()"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_stringliteral_d260529c8620a59d78f2e58cfd1294673bb6cba228ad1f34ac7731003ab870dd",
|
|
"typeString": "literal_string \"isV28OrHigher()\""
|
|
}
|
|
],
|
|
"id": 1668,
|
|
"name": "keccak256",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -8,
|
|
"src": "30631:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
|
|
"typeString": "function (bytes memory) pure returns (bytes32)"
|
|
}
|
|
},
|
|
"id": 1670,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "30631:28:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
],
|
|
"id": 1667,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "30624:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_bytes4_$",
|
|
"typeString": "type(bytes4)"
|
|
},
|
|
"typeName": {
|
|
"id": 1666,
|
|
"name": "bytes4",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "30624:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1671,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "30624:36:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
}
|
|
},
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1718,
|
|
"nodeType": "Block",
|
|
"src": "30917:336:0",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
1680
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1680,
|
|
"mutability": "mutable",
|
|
"name": "data",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1718,
|
|
"src": "30928:17:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes"
|
|
},
|
|
"typeName": {
|
|
"id": 1679,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "30928:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1685,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1683,
|
|
"name": "IS_V28_OR_HIGHER_FUNC_SELECTOR",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1672,
|
|
"src": "30971:30:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes4",
|
|
"typeString": "bytes4"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1681,
|
|
"name": "abi",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -1,
|
|
"src": "30948:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_abi",
|
|
"typeString": "abi"
|
|
}
|
|
},
|
|
"id": 1682,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"memberName": "encodeWithSelector",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "30948:22:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
|
|
"typeString": "function (bytes4) pure returns (bytes memory)"
|
|
}
|
|
},
|
|
"id": 1684,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "30948:54:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "30928:74:0"
|
|
},
|
|
{
|
|
"assignments": [
|
|
1687,
|
|
1689
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1687,
|
|
"mutability": "mutable",
|
|
"name": "success",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1718,
|
|
"src": "31014:12:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 1686,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31014:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1689,
|
|
"mutability": "mutable",
|
|
"name": "returnData",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1718,
|
|
"src": "31028:23:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes"
|
|
},
|
|
"typeName": {
|
|
"id": 1688,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31028:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1699,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1697,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1680,
|
|
"src": "31099:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1692,
|
|
"name": "_converter",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1674,
|
|
"src": "31063:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
],
|
|
"id": 1691,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "31055:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1690,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31055:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1693,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "31055:19:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"id": 1694,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "staticcall",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "31055:30:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
|
|
"typeString": "function (bytes memory) view returns (bool,bytes memory)"
|
|
}
|
|
},
|
|
"id": 1696,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"names": [
|
|
"gas"
|
|
],
|
|
"nodeType": "FunctionCallOptions",
|
|
"options": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "34303030",
|
|
"id": 1695,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "31092:4:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_4000_by_1",
|
|
"typeString": "int_const 4000"
|
|
},
|
|
"value": "4000"
|
|
}
|
|
],
|
|
"src": "31055:43:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gas",
|
|
"typeString": "function (bytes memory) view returns (bool,bytes memory)"
|
|
}
|
|
},
|
|
"id": 1698,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "31055:49:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
|
|
"typeString": "tuple(bool,bytes memory)"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "31013:91:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 1705,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1700,
|
|
"name": "success",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1687,
|
|
"src": "31121:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1704,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1701,
|
|
"name": "returnData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1689,
|
|
"src": "31132:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"id": 1702,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "31132:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "3332",
|
|
"id": 1703,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "31153:2:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_32_by_1",
|
|
"typeString": "int_const 32"
|
|
},
|
|
"value": "32"
|
|
},
|
|
"src": "31132:23:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "31121:34:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1715,
|
|
"nodeType": "IfStatement",
|
|
"src": "31117:104:0",
|
|
"trueBody": {
|
|
"id": 1714,
|
|
"nodeType": "Block",
|
|
"src": "31157:64:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1708,
|
|
"name": "returnData",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1689,
|
|
"src": "31190:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"components": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1710,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "31203:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_bool_$",
|
|
"typeString": "type(bool)"
|
|
},
|
|
"typeName": {
|
|
"id": 1709,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31203:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"id": 1711,
|
|
"isConstant": false,
|
|
"isInlineArray": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "TupleExpression",
|
|
"src": "31202:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_bool_$",
|
|
"typeString": "type(bool)"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_type$_t_bool_$",
|
|
"typeString": "type(bool)"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1706,
|
|
"name": "abi",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -1,
|
|
"src": "31179:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_abi",
|
|
"typeString": "abi"
|
|
}
|
|
},
|
|
"id": 1707,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"memberName": "decode",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "31179:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
|
|
"typeString": "function () pure"
|
|
}
|
|
},
|
|
"id": 1712,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "31179:30:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1678,
|
|
"id": 1713,
|
|
"nodeType": "Return",
|
|
"src": "31172:37:0"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "66616c7365",
|
|
"id": 1716,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "31240:5:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "false"
|
|
},
|
|
"functionReturnParameters": 1678,
|
|
"id": 1717,
|
|
"nodeType": "Return",
|
|
"src": "31233:12:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 1719,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "isV28OrHigherConverter",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1675,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1674,
|
|
"mutability": "mutable",
|
|
"name": "_converter",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1719,
|
|
"src": "30865:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 1673,
|
|
"name": "IConverter",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13340,
|
|
"src": "30865:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "30864:23:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1678,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1677,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1719,
|
|
"src": "30911:4:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 1676,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "30911:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "30910:6:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "30833:420:0",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1739,
|
|
"nodeType": "Block",
|
|
"src": "31432:57:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"components": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1733,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1723,
|
|
"src": "31462:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1734,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1725,
|
|
"src": "31469:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1732,
|
|
"name": "rateByPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 462,
|
|
"src": "31451:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (address[] memory,uint256) view returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1735,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "31451:26:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1736,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "31479:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"id": 1737,
|
|
"isConstant": false,
|
|
"isInlineArray": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "TupleExpression",
|
|
"src": "31450:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_uint256_$_t_rational_0_by_1_$",
|
|
"typeString": "tuple(uint256,int_const 0)"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1731,
|
|
"id": 1738,
|
|
"nodeType": "Return",
|
|
"src": "31443:38:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1720,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "31261:60:0",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "0c8496cc",
|
|
"id": 1740,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "getReturnByPath",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1726,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1723,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1740,
|
|
"src": "31352:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 1721,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31352:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1722,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "31352:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1725,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1740,
|
|
"src": "31376:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1724,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31376:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "31351:41:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1731,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1728,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1740,
|
|
"src": "31414:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1727,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31414:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1730,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1740,
|
|
"src": "31423:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1729,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31423:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "31413:18:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "31327:162:0",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1768,
|
|
"nodeType": "Block",
|
|
"src": "31674:94:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1754,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1744,
|
|
"src": "31706:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1755,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1746,
|
|
"src": "31713:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1756,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1748,
|
|
"src": "31722:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1759,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "31742:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1758,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "31734:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1757,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31734:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1760,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "31734:10:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1763,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "31754:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1762,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "31746:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1761,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31746:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1764,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "31746:10:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1765,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "31758:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1753,
|
|
"name": "convertByPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 598,
|
|
"src": "31692:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_payable_$_t_address_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (address[] memory,uint256,uint256,address payable,address,uint256) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1766,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "31692:68:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1752,
|
|
"id": 1767,
|
|
"nodeType": "Return",
|
|
"src": "31685:75:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1741,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "31497:60:0",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "f3898a97",
|
|
"id": 1769,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "convert",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1749,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1744,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1769,
|
|
"src": "31580:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 1742,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31580:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1743,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "31580:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1746,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1769,
|
|
"src": "31604:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1745,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31604:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1748,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1769,
|
|
"src": "31621:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1747,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31621:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "31579:61:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1752,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1751,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1769,
|
|
"src": "31665:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1750,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31665:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "31664:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "31563:205:0",
|
|
"stateMutability": "payable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1798,
|
|
"nodeType": "Block",
|
|
"src": "32088:113:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1787,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1773,
|
|
"src": "32120:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1788,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1775,
|
|
"src": "32127:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1789,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1777,
|
|
"src": "32136:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1792,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "32156:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1791,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "32148:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1790,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32148:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1793,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "32148:10:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1794,
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1779,
|
|
"src": "32160:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1795,
|
|
"name": "_affiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1781,
|
|
"src": "32179:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1786,
|
|
"name": "convertByPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 598,
|
|
"src": "32106:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_payable_$_t_address_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (address[] memory,uint256,uint256,address payable,address,uint256) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1796,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "32106:87:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1785,
|
|
"id": 1797,
|
|
"nodeType": "Return",
|
|
"src": "32099:94:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1770,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "31776:60:0",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "569706eb",
|
|
"id": 1799,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "convert2",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1782,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1773,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1799,
|
|
"src": "31870:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 1771,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31870:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1772,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "31870:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1775,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1799,
|
|
"src": "31903:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1774,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31903:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1777,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1799,
|
|
"src": "31929:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1776,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31929:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1779,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1799,
|
|
"src": "31958:25:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1778,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31958:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1781,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1799,
|
|
"src": "31994:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1780,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "31994:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "31859:163:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1785,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1784,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1799,
|
|
"src": "32074:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1783,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32074:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "32073:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "31842:359:0",
|
|
"stateMutability": "payable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1826,
|
|
"nodeType": "Block",
|
|
"src": "32419:96:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1815,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1803,
|
|
"src": "32451:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1816,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1805,
|
|
"src": "32458:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1817,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1807,
|
|
"src": "32467:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1818,
|
|
"name": "_beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1809,
|
|
"src": "32479:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1821,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "32501:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1820,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "32493:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1819,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32493:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1822,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "32493:10:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1823,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "32505:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1814,
|
|
"name": "convertByPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 598,
|
|
"src": "32437:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_payable_$_t_address_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (address[] memory,uint256,uint256,address payable,address,uint256) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1824,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "32437:70:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1813,
|
|
"id": 1825,
|
|
"nodeType": "Return",
|
|
"src": "32430:77:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1800,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "32209:60:0",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "c98fefed",
|
|
"id": 1827,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "convertFor",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1810,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1803,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1827,
|
|
"src": "32295:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 1801,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32295:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1802,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "32295:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1805,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1827,
|
|
"src": "32319:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1804,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32319:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1807,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1827,
|
|
"src": "32336:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1806,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32336:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1809,
|
|
"mutability": "mutable",
|
|
"name": "_beneficiary",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1827,
|
|
"src": "32356:28:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"typeName": {
|
|
"id": 1808,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32356:15:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "32294:91:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1813,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1812,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1827,
|
|
"src": "32410:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1811,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32410:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "32409:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "32275:240:0",
|
|
"stateMutability": "payable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1858,
|
|
"nodeType": "Block",
|
|
"src": "32914:115:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1850,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1831,
|
|
"src": "32946:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1851,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1833,
|
|
"src": "32953:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1852,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1835,
|
|
"src": "32962:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1853,
|
|
"name": "_beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1837,
|
|
"src": "32974:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1854,
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1839,
|
|
"src": "32988:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1855,
|
|
"name": "_affiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1841,
|
|
"src": "33007:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1849,
|
|
"name": "convertByPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 598,
|
|
"src": "32932:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_payable_$_t_address_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (address[] memory,uint256,uint256,address payable,address,uint256) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1856,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "32932:89:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1848,
|
|
"id": 1857,
|
|
"nodeType": "Return",
|
|
"src": "32925:96:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1828,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "32523:60:0",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "ab6214ce",
|
|
"id": 1859,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1844,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1835,
|
|
"src": "32870:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"id": 1845,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 1843,
|
|
"name": "greaterThanZero",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22595,
|
|
"src": "32854:15:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_uint256_$",
|
|
"typeString": "modifier (uint256)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "32854:27:0"
|
|
}
|
|
],
|
|
"name": "convertFor2",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1842,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1831,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1859,
|
|
"src": "32620:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 1829,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32620:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1830,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "32620:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1833,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1859,
|
|
"src": "32653:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1832,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32653:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1835,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1859,
|
|
"src": "32679:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1834,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32679:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1837,
|
|
"mutability": "mutable",
|
|
"name": "_beneficiary",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1859,
|
|
"src": "32708:28:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"typeName": {
|
|
"id": 1836,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32708:15:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1839,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1859,
|
|
"src": "32747:25:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1838,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32747:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1841,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1859,
|
|
"src": "32783:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1840,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32783:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "32609:202:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1848,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1847,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1859,
|
|
"src": "32900:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1846,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "32900:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "32899:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "32589:440:0",
|
|
"stateMutability": "payable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1887,
|
|
"nodeType": "Block",
|
|
"src": "33214:94:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1873,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1863,
|
|
"src": "33246:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1874,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1865,
|
|
"src": "33253:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1875,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1867,
|
|
"src": "33262:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1878,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "33282:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1877,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "33274:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1876,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33274:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1879,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "33274:10:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1882,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "33294:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1881,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "33286:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1880,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33286:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1883,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "33286:10:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1884,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "33298:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1872,
|
|
"name": "convertByPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 598,
|
|
"src": "33232:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_payable_$_t_address_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (address[] memory,uint256,uint256,address payable,address,uint256) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1885,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "33232:68:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1871,
|
|
"id": 1886,
|
|
"nodeType": "Return",
|
|
"src": "33225:75:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1860,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "33037:60:0",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "c7ba24bc",
|
|
"id": 1888,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "claimAndConvert",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1868,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1863,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1888,
|
|
"src": "33128:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 1861,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33128:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1862,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "33128:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1865,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1888,
|
|
"src": "33152:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1864,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33152:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1867,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1888,
|
|
"src": "33169:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1866,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33169:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "33127:61:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1871,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1870,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1888,
|
|
"src": "33205:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1869,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33205:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "33204:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "33103:205:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1917,
|
|
"nodeType": "Block",
|
|
"src": "33619:113:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1906,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1892,
|
|
"src": "33651:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1907,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1894,
|
|
"src": "33658:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1908,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1896,
|
|
"src": "33667:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1911,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "33687:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1910,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "33679:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1909,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33679:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1912,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "33679:10:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1913,
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1898,
|
|
"src": "33691:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1914,
|
|
"name": "_affiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1900,
|
|
"src": "33710:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1905,
|
|
"name": "convertByPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 598,
|
|
"src": "33637:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_payable_$_t_address_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (address[] memory,uint256,uint256,address payable,address,uint256) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1915,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "33637:87:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1904,
|
|
"id": 1916,
|
|
"nodeType": "Return",
|
|
"src": "33630:94:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1889,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "33316:60:0",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "e57738e5",
|
|
"id": 1918,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "claimAndConvert2",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1901,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1892,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1918,
|
|
"src": "33418:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 1890,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33418:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1891,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "33418:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1894,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1918,
|
|
"src": "33451:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1893,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33451:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1896,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1918,
|
|
"src": "33477:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1895,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33477:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1898,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1918,
|
|
"src": "33506:25:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1897,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33506:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1900,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1918,
|
|
"src": "33542:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1899,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33542:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "33407:163:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1904,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1903,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1918,
|
|
"src": "33605:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1902,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33605:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "33604:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "33382:350:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1945,
|
|
"nodeType": "Block",
|
|
"src": "33950:96:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1934,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1922,
|
|
"src": "33982:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1935,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1924,
|
|
"src": "33989:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1936,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1926,
|
|
"src": "33998:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1937,
|
|
"name": "_beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1928,
|
|
"src": "34010:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1940,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "34032:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1939,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "34024:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1938,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "34024:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1941,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "34024:10:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1942,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "34036:1:0",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1933,
|
|
"name": "convertByPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 598,
|
|
"src": "33968:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_payable_$_t_address_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (address[] memory,uint256,uint256,address payable,address,uint256) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1943,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "33968:70:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1932,
|
|
"id": 1944,
|
|
"nodeType": "Return",
|
|
"src": "33961:77:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1919,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "33740:60:0",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "b1e9932b",
|
|
"id": 1946,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "claimAndConvertFor",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1929,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1922,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1946,
|
|
"src": "33834:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 1920,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33834:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1921,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "33834:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1924,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1946,
|
|
"src": "33858:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1923,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33858:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1926,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1946,
|
|
"src": "33875:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1925,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33875:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1928,
|
|
"mutability": "mutable",
|
|
"name": "_beneficiary",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1946,
|
|
"src": "33895:28:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"typeName": {
|
|
"id": 1927,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33895:15:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "33833:91:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1932,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1931,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1946,
|
|
"src": "33941:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1930,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "33941:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "33940:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "33806:240:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1974,
|
|
"nodeType": "Block",
|
|
"src": "34399:115:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1966,
|
|
"name": "_path",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1950,
|
|
"src": "34431:5:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1967,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1952,
|
|
"src": "34438:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1968,
|
|
"name": "_minReturn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1954,
|
|
"src": "34447:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1969,
|
|
"name": "_beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1956,
|
|
"src": "34459:12:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1970,
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1958,
|
|
"src": "34473:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1971,
|
|
"name": "_affiliateFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1960,
|
|
"src": "34492:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[] memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1965,
|
|
"name": "convertByPath",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 598,
|
|
"src": "34417:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_payable_$_t_address_$_t_uint256_$returns$_t_uint256_$",
|
|
"typeString": "function (address[] memory,uint256,uint256,address payable,address,uint256) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1972,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "34417:89:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1964,
|
|
"id": 1973,
|
|
"nodeType": "Return",
|
|
"src": "34410:96:0"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1947,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "34054:60:0",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "2978c10e",
|
|
"id": 1975,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "claimAndConvertFor2",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1961,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1950,
|
|
"mutability": "mutable",
|
|
"name": "_path",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1975,
|
|
"src": "34159:22:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
|
|
"typeString": "address[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 1948,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "34159:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1949,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "34159:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
|
|
"typeString": "address[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1952,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1975,
|
|
"src": "34192:15:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1951,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "34192:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1954,
|
|
"mutability": "mutable",
|
|
"name": "_minReturn",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1975,
|
|
"src": "34218:18:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1953,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "34218:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1956,
|
|
"mutability": "mutable",
|
|
"name": "_beneficiary",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1975,
|
|
"src": "34247:28:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"typeName": {
|
|
"id": 1955,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "34247:15:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1958,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateAccount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1975,
|
|
"src": "34286:25:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1957,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "34286:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1960,
|
|
"mutability": "mutable",
|
|
"name": "_affiliateFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1975,
|
|
"src": "34322:21:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1959,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "34322:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "34148:202:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1964,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1963,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1975,
|
|
"src": "34385:7:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1962,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "34385:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "34384:9:0"
|
|
},
|
|
"scope": 1976,
|
|
"src": "34120:394:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
}
|
|
],
|
|
"scope": 1977,
|
|
"src": "1956:32561:0"
|
|
}
|
|
],
|
|
"src": "52:34467:0"
|
|
},
|
|
"compiler": {
|
|
"name": "solc",
|
|
"version": "0.6.12+commit.27d51765.Emscripten.clang"
|
|
},
|
|
"networks": {},
|
|
"schemaVersion": "3.2.3",
|
|
"updatedAt": "2020-10-20T08:24:47.639Z",
|
|
"devdoc": {
|
|
"kind": "dev",
|
|
"methods": {},
|
|
"version": 1
|
|
},
|
|
"userdoc": {
|
|
"kind": "user",
|
|
"methods": {},
|
|
"version": 1
|
|
}
|
|
} |