28012 lines
1.1 MiB
28012 lines
1.1 MiB
{
|
|
"contractName": "ConverterBase",
|
|
"abi": [
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "uint16",
|
|
"name": "_type",
|
|
"type": "uint16"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "contract IConverterAnchor",
|
|
"name": "_anchor",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bool",
|
|
"name": "_activated",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"name": "Activation",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "contract IERC20Token",
|
|
"name": "_fromToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "contract IERC20Token",
|
|
"name": "_toToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "_trader",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "_amount",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "_return",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "int256",
|
|
"name": "_conversionFee",
|
|
"type": "int256"
|
|
}
|
|
],
|
|
"name": "Conversion",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint32",
|
|
"name": "_prevFee",
|
|
"type": "uint32"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint32",
|
|
"name": "_newFee",
|
|
"type": "uint32"
|
|
}
|
|
],
|
|
"name": "ConversionFeeUpdate",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "_prevOwner",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "_newOwner",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "OwnerUpdate",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "contract IERC20Token",
|
|
"name": "_token1",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "contract IERC20Token",
|
|
"name": "_token2",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "_rateN",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "_rateD",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "TokenRateUpdate",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "acceptOwnership",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "anchor",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract IConverterAnchor",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "conversionFee",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint32",
|
|
"name": "",
|
|
"type": "uint32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "conversionWhitelist",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract IWhitelist",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "conversionsEnabled",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "maxConversionFee",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint32",
|
|
"name": "",
|
|
"type": "uint32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "newOwner",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "onlyOwnerCanUpdateRegistry",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "owner",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "prevRegistry",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract IContractRegistry",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "registry",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract IContractRegistry",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "reserveRatio",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint32",
|
|
"name": "",
|
|
"type": "uint32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "reserveTokens",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract IERC20Token",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "contract IERC20Token",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "reserves",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "balance",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint32",
|
|
"name": "weight",
|
|
"type": "uint32"
|
|
},
|
|
{
|
|
"internalType": "bool",
|
|
"name": "deprecated1",
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"internalType": "bool",
|
|
"name": "deprecated2",
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"internalType": "bool",
|
|
"name": "isSet",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "restoreRegistry",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "_onlyOwnerCanUpdateRegistry",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"name": "restrictRegistryUpdate",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "_newOwner",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "transferOwnership",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "updateRegistry",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "version",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint16",
|
|
"name": "",
|
|
"type": "uint16"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"stateMutability": "payable",
|
|
"type": "receive"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "converterType",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint16",
|
|
"name": "",
|
|
"type": "uint16"
|
|
}
|
|
],
|
|
"stateMutability": "pure",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "contract IERC20Token",
|
|
"name": "_sourceToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "contract IERC20Token",
|
|
"name": "_targetToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "_amount",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "targetAmountAndFee",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address payable",
|
|
"name": "_to",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "withdrawETH",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "isV28OrHigher",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "pure",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "contract IWhitelist",
|
|
"name": "_whitelist",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "setConversionWhitelist",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "isActive",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "_newOwner",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "transferAnchorOwnership",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "acceptAnchorOwnership",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "contract IERC20Token",
|
|
"name": "_token",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "_to",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "_amount",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "withdrawFromAnchor",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint32",
|
|
"name": "_conversionFee",
|
|
"type": "uint32"
|
|
}
|
|
],
|
|
"name": "setConversionFee",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "contract IERC20Token",
|
|
"name": "_token",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "_to",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "_amount",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "withdrawTokens",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "upgrade",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "reserveTokenCount",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint16",
|
|
"name": "",
|
|
"type": "uint16"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "contract IERC20Token",
|
|
"name": "_token",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint32",
|
|
"name": "_weight",
|
|
"type": "uint32"
|
|
}
|
|
],
|
|
"name": "addReserve",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "contract IERC20Token",
|
|
"name": "_reserveToken",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "reserveWeight",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint32",
|
|
"name": "",
|
|
"type": "uint32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "contract IERC20Token",
|
|
"name": "_reserveToken",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "reserveBalance",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "hasETHReserve",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "contract IERC20Token",
|
|
"name": "_sourceToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "contract IERC20Token",
|
|
"name": "_targetToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "_amount",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "_trader",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address payable",
|
|
"name": "_beneficiary",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "convert",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "payable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "token",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract IConverterAnchor",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "_newOwner",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "transferTokenOwnership",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "acceptTokenOwnership",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "contract IERC20Token",
|
|
"name": "_address",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "connectors",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint32",
|
|
"name": "",
|
|
"type": "uint32"
|
|
},
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "_index",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "connectorTokens",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract IERC20Token",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "connectorTokenCount",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint16",
|
|
"name": "",
|
|
"type": "uint16"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "contract IERC20Token",
|
|
"name": "_connectorToken",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "getConnectorBalance",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "contract IERC20Token",
|
|
"name": "_sourceToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "contract IERC20Token",
|
|
"name": "_targetToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "_amount",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "getReturn",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
}
|
|
],
|
|
"metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"indexed\":true,\"internalType\":\"contract IConverterAnchor\",\"name\":\"_anchor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"_activated\",\"type\":\"bool\"}],\"name\":\"Activation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IERC20Token\",\"name\":\"_fromToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IERC20Token\",\"name\":\"_toToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_trader\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_return\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"_conversionFee\",\"type\":\"int256\"}],\"name\":\"Conversion\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"_prevFee\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"_newFee\",\"type\":\"uint32\"}],\"name\":\"ConversionFeeUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_prevOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"OwnerUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IERC20Token\",\"name\":\"_token1\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IERC20Token\",\"name\":\"_token2\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_rateN\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_rateD\",\"type\":\"uint256\"}],\"name\":\"TokenRateUpdate\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptAnchorOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptTokenOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20Token\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_weight\",\"type\":\"uint32\"}],\"name\":\"addReserve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"anchor\",\"outputs\":[{\"internalType\":\"contract IConverterAnchor\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"connectorTokenCount\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"connectorTokens\",\"outputs\":[{\"internalType\":\"contract IERC20Token\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20Token\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"connectors\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"conversionFee\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"conversionWhitelist\",\"outputs\":[{\"internalType\":\"contract IWhitelist\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"conversionsEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20Token\",\"name\":\"_sourceToken\",\"type\":\"address\"},{\"internalType\":\"contract IERC20Token\",\"name\":\"_targetToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_trader\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"name\":\"convert\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"converterType\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20Token\",\"name\":\"_connectorToken\",\"type\":\"address\"}],\"name\":\"getConnectorBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20Token\",\"name\":\"_sourceToken\",\"type\":\"address\"},{\"internalType\":\"contract IERC20Token\",\"name\":\"_targetToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"getReturn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hasETHReserve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isV28OrHigher\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxConversionFee\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"newOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onlyOwnerCanUpdateRegistry\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"prevRegistry\",\"outputs\":[{\"internalType\":\"contract IContractRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IContractRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20Token\",\"name\":\"_reserveToken\",\"type\":\"address\"}],\"name\":\"reserveBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reserveRatio\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reserveTokenCount\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"reserveTokens\",\"outputs\":[{\"internalType\":\"contract IERC20Token\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20Token\",\"name\":\"_reserveToken\",\"type\":\"address\"}],\"name\":\"reserveWeight\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20Token\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"reserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"weight\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"deprecated1\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"deprecated2\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSet\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"restoreRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_onlyOwnerCanUpdateRegistry\",\"type\":\"bool\"}],\"name\":\"restrictRegistryUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_conversionFee\",\"type\":\"uint32\"}],\"name\":\"setConversionFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IWhitelist\",\"name\":\"_whitelist\",\"type\":\"address\"}],\"name\":\"setConversionWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20Token\",\"name\":\"_sourceToken\",\"type\":\"address\"},{\"internalType\":\"contract IERC20Token\",\"name\":\"_targetToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"targetAmountAndFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"contract IConverterAnchor\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferAnchorOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferTokenOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"withdrawETH\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20Token\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawFromAnchor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20Token\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"ConverterBase The converter contains the main logic for conversions between different ERC20 tokens. It is also the upgradable part of the mechanism (note that upgrades are opt-in). The anchor must be set on construction and cannot be changed afterwards. Wrappers are provided for some of the anchor's functions, for easier access. Once the converter accepts ownership of the anchor, it becomes the anchor's sole controller and can execute any of its functions. To upgrade the converter, anchor ownership must be transferred to a new converter, along with any relevant data. Note that the converter can transfer anchor ownership to a new converter that doesn't allow upgrades anymore, for finalizing the relationship between the converter and the anchor. Converter types (defined as uint16 type) - 0 = liquid token converter 1 = liquidity pool v1 converter 2 = liquidity pool v2 converter Note that converters don't currently support tokens with transfer fees.\",\"events\":{\"Activation(uint16,address,bool)\":{\"details\":\"triggered when the converter is activated\",\"params\":{\"_activated\":\"true if the converter was activated, false if it was deactivated\",\"_anchor\":\"converter anchor\",\"_type\":\"converter type\"}},\"Conversion(address,address,address,uint256,uint256,int256)\":{\"details\":\"triggered when a conversion between two tokens occurs\",\"params\":{\"_amount\":\"amount converted, in the source token\",\"_conversionFee\":\"conversion fee\",\"_fromToken\":\"source ERC20 token\",\"_return\":\"amount returned, minus conversion fee\",\"_toToken\":\"target ERC20 token\",\"_trader\":\"wallet that initiated the trade\"}},\"ConversionFeeUpdate(uint32,uint32)\":{\"details\":\"triggered when the conversion fee is updated\",\"params\":{\"_newFee\":\"new fee percentage, represented in ppm\",\"_prevFee\":\"previous fee percentage, represented in ppm\"}},\"TokenRateUpdate(address,address,uint256,uint256)\":{\"details\":\"triggered when the rate between two tokens in the converter changes note that the event might be dispatched for rate updates between any two tokens in the converter note that prior to version 28, you should use the 'PriceDataUpdate' event instead\",\"params\":{\"_rateD\":\"rate of 1 unit of `_token1` in `_token2` (denominator)\",\"_rateN\":\"rate of 1 unit of `_token1` in `_token2` (numerator)\",\"_token1\":\"address of the first token\",\"_token2\":\"address of the second token\"}}},\"kind\":\"dev\",\"methods\":{\"acceptAnchorOwnership()\":{\"details\":\"accepts ownership of the anchor after an ownership transfer most converters are also activated as soon as they accept the anchor ownership can only be called by the contract owner note that prior to version 28, you should use 'acceptTokenOwnership' instead\"},\"acceptOwnership()\":{\"details\":\"used by a new owner to accept an ownership transfer\"},\"acceptTokenOwnership()\":{\"details\":\"deprecated, backward compatibility\"},\"addReserve(address,uint32)\":{\"details\":\"defines a new reserve token for the converter can only be called by the owner while the converter is inactive\",\"params\":{\"_token\":\"address of the reserve token\",\"_weight\":\"reserve weight, represented in ppm, 1-1000000\"}},\"connectorTokenCount()\":{\"details\":\"deprecated, backward compatibility\"},\"connectorTokens(uint256)\":{\"details\":\"deprecated, backward compatibility\"},\"connectors(address)\":{\"details\":\"deprecated, backward compatibility\"},\"constructor\":{\"details\":\"used by sub-contracts to initialize a new converter\",\"params\":{\"_anchor\":\"anchor governed by the converter\",\"_maxConversionFee\":\"maximum conversion fee, represented in ppm\",\"_registry\":\"address of a contract registry contract\"}},\"convert(address,address,uint256,address,address)\":{\"details\":\"converts a specific amount of source tokens to target tokens can only be called by the bancor network contract\",\"params\":{\"_amount\":\"amount of tokens to convert (in units of the source token)\",\"_beneficiary\":\"wallet to receive the conversion result\",\"_sourceToken\":\"source ERC20 token\",\"_targetToken\":\"target ERC20 token\",\"_trader\":\"address of the caller who executed the conversion\"},\"returns\":{\"_0\":\"amount of tokens received (in units of the target token)\"}},\"getConnectorBalance(address)\":{\"details\":\"deprecated, backward compatibility\"},\"getReturn(address,address,uint256)\":{\"details\":\"deprecated, backward compatibility\"},\"hasETHReserve()\":{\"details\":\"checks whether or not the converter has an ETH reserve\",\"returns\":{\"_0\":\"true if the converter has an ETH reserve, false otherwise\"}},\"isActive()\":{\"details\":\"returns true if the converter is active, false otherwise\",\"returns\":{\"_0\":\"true if the converter is active, false otherwise\"}},\"isV28OrHigher()\":{\"details\":\"checks whether or not the converter version is 28 or higher\",\"returns\":{\"_0\":\"true, since the converter version is 28 or higher\"}},\"reserveBalance(address)\":{\"details\":\"returns the reserve's balance note that prior to version 17, you should use 'getConnectorBalance' instead\",\"params\":{\"_reserveToken\":\"reserve token contract address\"},\"returns\":{\"_0\":\"reserve balance\"}},\"reserveTokenCount()\":{\"details\":\"returns the number of reserve tokens defined note that prior to version 17, you should use 'connectorTokenCount' instead\",\"returns\":{\"_0\":\"number of reserve tokens\"}},\"reserveWeight(address)\":{\"details\":\"returns the reserve's weight added in version 28\",\"params\":{\"_reserveToken\":\"reserve token contract address\"},\"returns\":{\"_0\":\"reserve weight\"}},\"restoreRegistry()\":{\"details\":\"restores the previous contract-registry\"},\"restrictRegistryUpdate(bool)\":{\"details\":\"restricts the permission to update the contract-registry\",\"params\":{\"_onlyOwnerCanUpdateRegistry\":\"indicates whether or not permission is restricted to owner only\"}},\"setConversionFee(uint32)\":{\"details\":\"updates the current conversion fee can only be called by the contract owner\",\"params\":{\"_conversionFee\":\"new conversion fee, represented in ppm\"}},\"setConversionWhitelist(address)\":{\"details\":\"allows the owner to update & enable the conversion whitelist contract address when set, only addresses that are whitelisted are actually allowed to use the converter note that the whitelist check is actually done by the BancorNetwork contract\",\"params\":{\"_whitelist\":\"address of a whitelist contract\"}},\"token()\":{\"details\":\"deprecated since version 28, backward compatibility - use only for earlier versions\"},\"transferAnchorOwnership(address)\":{\"details\":\"transfers the anchor ownership the new owner needs to accept the transfer can only be called by the converter upgrder while the upgrader is the owner note that prior to version 28, you should use 'transferAnchorOwnership' instead\",\"params\":{\"_newOwner\":\"new token owner\"}},\"transferOwnership(address)\":{\"details\":\"allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner\",\"params\":{\"_newOwner\":\"new contract owner\"}},\"transferTokenOwnership(address)\":{\"details\":\"deprecated, backward compatibility\"},\"updateRegistry()\":{\"details\":\"updates to the new contract-registry\"},\"upgrade()\":{\"details\":\"upgrades the converter to the latest version can only be called by the owner note that the owner needs to call acceptOwnership on the new converter after the upgrade\"},\"withdrawETH(address)\":{\"details\":\"withdraws ether can only be called by the owner if the converter is inactive or by upgrader contract can only be called after the upgrader contract has accepted the ownership of this contract can only be called if the converter has an ETH reserve\",\"params\":{\"_to\":\"address to send the ETH to\"}},\"withdrawFromAnchor(address,address,uint256)\":{\"details\":\"withdraws tokens held by the anchor and sends them to an account can only be called by the owner\",\"params\":{\"_amount\":\"amount to withdraw\",\"_to\":\"account to receive the new amount\",\"_token\":\"ERC20 token contract address\"}},\"withdrawTokens(address,address,uint256)\":{\"details\":\"withdraws tokens held by the converter and sends them to an account can only be called by the owner note that reserve tokens can only be withdrawn by the owner while the converter is inactive unless the owner is the converter upgrader contract\",\"params\":{\"_amount\":\"amount to withdraw\",\"_to\":\"account to receive the new amount\",\"_token\":\"ERC20 token contract address\"}}},\"stateVariables\":{\"version\":{\"details\":\"version number\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/ConverterBase.sol\":\"ConverterBase\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/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/ConverterBase.sol\":{\"keccak256\":\"0x242211f471f27635fa98bdeed238429942c55fc9a5e824c1a30cd88fad727f9b\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://f9769299a5e13c363d102c4c08b09e3a87ec053124dcc157be0a6448c13e3320\",\"dweb:/ipfs/QmUC2CaAr6emVkJN62xXBY83r1f7Hxj62UAavZsCSWcqUb\"]},\"/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/converter/interfaces/IConverterUpgrader.sol\":{\"keccak256\":\"0x456faf61358bfd76498892509cc99f9729f310c9450e28b0d03b5e7cd9752802\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://01f7b3f24cc895a948ea44f8e067d312b55ef1e9cf491908f3fb948d02b914da\",\"dweb:/ipfs/QmfSwZrWFWmT8xeX3iwSq75Vs8pQaQBGkmxJEHehUiPP1N\"]},\"/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/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 \"./interfaces/IConverter.sol\";\r\nimport \"./interfaces/IConverterAnchor.sol\";\r\nimport \"./interfaces/IConverterUpgrader.sol\";\r\nimport \"./interfaces/IBancorFormula.sol\";\r\nimport \"../utility/ContractRegistryClient.sol\";\r\nimport \"../utility/ReentrancyGuard.sol\";\r\nimport \"../utility/SafeMath.sol\";\r\nimport \"../utility/TokenHandler.sol\";\r\nimport \"../utility/TokenHolder.sol\";\r\nimport \"../token/interfaces/IEtherToken.sol\";\r\nimport \"../bancorx/interfaces/IBancorX.sol\";\r\n\r\n/**\r\n * @dev ConverterBase\r\n *\r\n * The converter contains the main logic for conversions between different ERC20 tokens.\r\n *\r\n * It is also the upgradable part of the mechanism (note that upgrades are opt-in).\r\n *\r\n * The anchor must be set on construction and cannot be changed afterwards.\r\n * Wrappers are provided for some of the anchor's functions, for easier access.\r\n *\r\n * Once the converter accepts ownership of the anchor, it becomes the anchor's sole controller\r\n * and can execute any of its functions.\r\n *\r\n * To upgrade the converter, anchor ownership must be transferred to a new converter, along with\r\n * any relevant data.\r\n *\r\n * Note that the converter can transfer anchor ownership to a new converter that\r\n * doesn't allow upgrades anymore, for finalizing the relationship between the converter\r\n * and the anchor.\r\n *\r\n * Converter types (defined as uint16 type) -\r\n * 0 = liquid token converter\r\n * 1 = liquidity pool v1 converter\r\n * 2 = liquidity pool v2 converter\r\n *\r\n * Note that converters don't currently support tokens with transfer fees.\r\n*/\r\nabstract contract ConverterBase is IConverter, TokenHandler, TokenHolder, ContractRegistryClient, ReentrancyGuard {\r\n using SafeMath for uint256;\r\n\r\n uint32 internal constant PPM_RESOLUTION = 1000000;\r\n IERC20Token internal constant ETH_RESERVE_ADDRESS = IERC20Token(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE);\r\n\r\n struct Reserve {\r\n uint256 balance; // reserve balance\r\n uint32 weight; // reserve weight, represented in ppm, 1-1000000\r\n bool deprecated1; // deprecated\r\n bool deprecated2; // deprecated\r\n bool isSet; // true if the reserve is valid, false otherwise\r\n }\r\n\r\n /**\r\n * @dev version number\r\n */\r\n uint16 public constant version = 39;\r\n\r\n IConverterAnchor public override anchor; // converter anchor contract\r\n IWhitelist public override conversionWhitelist; // whitelist contract with list of addresses that are allowed to use the converter\r\n IERC20Token[] public reserveTokens; // ERC20 standard token addresses (prior version 17, use 'connectorTokens' instead)\r\n mapping (IERC20Token => Reserve) public reserves; // reserve token addresses -> reserve data (prior version 17, use 'connectors' instead)\r\n uint32 public reserveRatio = 0; // ratio between the reserves and the market cap, equal to the total reserve weights\r\n uint32 public override maxConversionFee = 0; // maximum conversion fee for the lifetime of the contract,\r\n // represented in ppm, 0...1000000 (0 = no fee, 100 = 0.01%, 1000000 = 100%)\r\n uint32 public override conversionFee = 0; // current conversion fee, represented in ppm, 0...maxConversionFee\r\n bool public constant conversionsEnabled = true; // deprecated, backward compatibility\r\n\r\n /**\r\n * @dev triggered when the converter is activated\r\n *\r\n * @param _type converter type\r\n * @param _anchor converter anchor\r\n * @param _activated true if the converter was activated, false if it was deactivated\r\n */\r\n event Activation(uint16 indexed _type, IConverterAnchor indexed _anchor, bool indexed _activated);\r\n\r\n /**\r\n * @dev triggered when a conversion between two tokens occurs\r\n *\r\n * @param _fromToken source ERC20 token\r\n * @param _toToken target ERC20 token\r\n * @param _trader wallet that initiated the trade\r\n * @param _amount amount converted, in the source token\r\n * @param _return amount returned, minus conversion fee\r\n * @param _conversionFee conversion fee\r\n */\r\n event Conversion(\r\n IERC20Token indexed _fromToken,\r\n IERC20Token indexed _toToken,\r\n address indexed _trader,\r\n uint256 _amount,\r\n uint256 _return,\r\n int256 _conversionFee\r\n );\r\n\r\n /**\r\n * @dev triggered when the rate between two tokens in the converter changes\r\n * note that the event might be dispatched for rate updates between any two tokens in the converter\r\n * note that prior to version 28, you should use the 'PriceDataUpdate' event instead\r\n *\r\n * @param _token1 address of the first token\r\n * @param _token2 address of the second token\r\n * @param _rateN rate of 1 unit of `_token1` in `_token2` (numerator)\r\n * @param _rateD rate of 1 unit of `_token1` in `_token2` (denominator)\r\n */\r\n event TokenRateUpdate(\r\n IERC20Token indexed _token1,\r\n IERC20Token indexed _token2,\r\n uint256 _rateN,\r\n uint256 _rateD\r\n );\r\n\r\n /**\r\n * @dev triggered when the conversion fee is updated\r\n *\r\n * @param _prevFee previous fee percentage, represented in ppm\r\n * @param _newFee new fee percentage, represented in ppm\r\n */\r\n event ConversionFeeUpdate(uint32 _prevFee, uint32 _newFee);\r\n\r\n /**\r\n * @dev used by sub-contracts to initialize a new converter\r\n *\r\n * @param _anchor anchor governed by the converter\r\n * @param _registry address of a contract registry contract\r\n * @param _maxConversionFee maximum conversion fee, represented in ppm\r\n */\r\n constructor(\r\n IConverterAnchor _anchor,\r\n IContractRegistry _registry,\r\n uint32 _maxConversionFee\r\n )\r\n validAddress(address(_anchor))\r\n ContractRegistryClient(_registry)\r\n internal\r\n validConversionFee(_maxConversionFee)\r\n {\r\n anchor = _anchor;\r\n maxConversionFee = _maxConversionFee;\r\n }\r\n\r\n // ensures that the converter is active\r\n modifier active() {\r\n _active();\r\n _;\r\n }\r\n\r\n // error message binary size optimization\r\n function _active() internal view {\r\n require(isActive(), \"ERR_INACTIVE\");\r\n }\r\n\r\n // ensures that the converter is not active\r\n modifier inactive() {\r\n _inactive();\r\n _;\r\n }\r\n\r\n // error message binary size optimization\r\n function _inactive() internal view {\r\n require(!isActive(), \"ERR_ACTIVE\");\r\n }\r\n\r\n // validates a reserve token address - verifies that the address belongs to one of the reserve tokens\r\n modifier validReserve(IERC20Token _address) {\r\n _validReserve(_address);\r\n _;\r\n }\r\n\r\n // error message binary size optimization\r\n function _validReserve(IERC20Token _address) internal view {\r\n require(reserves[_address].isSet, \"ERR_INVALID_RESERVE\");\r\n }\r\n\r\n // validates conversion fee\r\n modifier validConversionFee(uint32 _conversionFee) {\r\n _validConversionFee(_conversionFee);\r\n _;\r\n }\r\n\r\n // error message binary size optimization\r\n function _validConversionFee(uint32 _conversionFee) internal pure {\r\n require(_conversionFee <= PPM_RESOLUTION, \"ERR_INVALID_CONVERSION_FEE\");\r\n }\r\n\r\n // validates reserve weight\r\n modifier validReserveWeight(uint32 _weight) {\r\n _validReserveWeight(_weight);\r\n _;\r\n }\r\n\r\n // error message binary size optimization\r\n function _validReserveWeight(uint32 _weight) internal pure {\r\n require(_weight > 0 && _weight <= PPM_RESOLUTION, \"ERR_INVALID_RESERVE_WEIGHT\");\r\n }\r\n\r\n // overrides interface declaration\r\n function converterType() public pure virtual override returns (uint16);\r\n\r\n // overrides interface declaration\r\n function targetAmountAndFee(IERC20Token _sourceToken, IERC20Token _targetToken, uint256 _amount)\r\n public\r\n view\r\n virtual\r\n override\r\n returns (uint256, uint256);\r\n\r\n /**\r\n * @dev deposits ether\r\n * can only be called if the converter has an ETH reserve\r\n */\r\n receive() external override payable {\r\n require(reserves[ETH_RESERVE_ADDRESS].isSet, \"ERR_INVALID_RESERVE\"); // require(hasETHReserve(), \"ERR_INVALID_RESERVE\");\r\n // a workaround for a problem when running solidity-coverage\r\n // see https://github.com/sc-forks/solidity-coverage/issues/487\r\n }\r\n\r\n /**\r\n * @dev withdraws ether\r\n * can only be called by the owner if the converter is inactive or by upgrader contract\r\n * can only be called after the upgrader contract has accepted the ownership of this contract\r\n * can only be called if the converter has an ETH reserve\r\n *\r\n * @param _to address to send the ETH to\r\n */\r\n function withdrawETH(address payable _to)\r\n public\r\n override\r\n protected\r\n ownerOnly\r\n validReserve(ETH_RESERVE_ADDRESS)\r\n {\r\n address converterUpgrader = addressOf(CONVERTER_UPGRADER);\r\n\r\n // verify that the converter is inactive or that the owner is the upgrader contract\r\n require(!isActive() || owner == converterUpgrader, \"ERR_ACCESS_DENIED\");\r\n _to.transfer(address(this).balance);\r\n\r\n // sync the ETH reserve balance\r\n syncReserveBalance(ETH_RESERVE_ADDRESS);\r\n }\r\n\r\n /**\r\n * @dev checks whether or not the converter version is 28 or higher\r\n *\r\n * @return true, since the converter version is 28 or higher\r\n */\r\n function isV28OrHigher() public pure returns (bool) {\r\n return true;\r\n }\r\n\r\n /**\r\n * @dev allows the owner to update & enable the conversion whitelist contract address\r\n * when set, only addresses that are whitelisted are actually allowed to use the converter\r\n * note that the whitelist check is actually done by the BancorNetwork contract\r\n *\r\n * @param _whitelist address of a whitelist contract\r\n */\r\n function setConversionWhitelist(IWhitelist _whitelist)\r\n public\r\n override\r\n ownerOnly\r\n notThis(address(_whitelist))\r\n {\r\n conversionWhitelist = _whitelist;\r\n }\r\n\r\n /**\r\n * @dev returns true if the converter is active, false otherwise\r\n *\r\n * @return true if the converter is active, false otherwise\r\n */\r\n function isActive() public view virtual override returns (bool) {\r\n return anchor.owner() == address(this);\r\n }\r\n\r\n /**\r\n * @dev transfers the anchor ownership\r\n * the new owner needs to accept the transfer\r\n * can only be called by the converter upgrder while the upgrader is the owner\r\n * note that prior to version 28, you should use 'transferAnchorOwnership' instead\r\n *\r\n * @param _newOwner new token owner\r\n */\r\n function transferAnchorOwnership(address _newOwner)\r\n public\r\n override\r\n ownerOnly\r\n only(CONVERTER_UPGRADER)\r\n {\r\n anchor.transferOwnership(_newOwner);\r\n }\r\n\r\n /**\r\n * @dev accepts ownership of the anchor after an ownership transfer\r\n * most converters are also activated as soon as they accept the anchor ownership\r\n * can only be called by the contract owner\r\n * note that prior to version 28, you should use 'acceptTokenOwnership' instead\r\n */\r\n function acceptAnchorOwnership() public virtual override ownerOnly {\r\n // verify the the converter has at least one reserve\r\n require(reserveTokenCount() > 0, \"ERR_INVALID_RESERVE_COUNT\");\r\n anchor.acceptOwnership();\r\n syncReserveBalances();\r\n }\r\n\r\n /**\r\n * @dev withdraws tokens held by the anchor and sends them to an account\r\n * can only be called by the owner\r\n *\r\n * @param _token ERC20 token contract address\r\n * @param _to account to receive the new amount\r\n * @param _amount amount to withdraw\r\n */\r\n function withdrawFromAnchor(IERC20Token _token, address _to, uint256 _amount) public ownerOnly {\r\n anchor.withdrawTokens(_token, _to, _amount);\r\n }\r\n\r\n /**\r\n * @dev updates the current conversion fee\r\n * can only be called by the contract owner\r\n *\r\n * @param _conversionFee new conversion fee, represented in ppm\r\n */\r\n function setConversionFee(uint32 _conversionFee) public override ownerOnly {\r\n require(_conversionFee <= maxConversionFee, \"ERR_INVALID_CONVERSION_FEE\");\r\n emit ConversionFeeUpdate(conversionFee, _conversionFee);\r\n conversionFee = _conversionFee;\r\n }\r\n\r\n /**\r\n * @dev withdraws tokens held by the converter and sends them to an account\r\n * can only be called by the owner\r\n * note that reserve tokens can only be withdrawn by the owner while the converter is inactive\r\n * unless the owner is the converter upgrader contract\r\n *\r\n * @param _token ERC20 token contract address\r\n * @param _to account to receive the new amount\r\n * @param _amount amount to withdraw\r\n */\r\n function withdrawTokens(IERC20Token _token, address _to, uint256 _amount)\r\n public\r\n override(IConverter, TokenHolder)\r\n protected\r\n ownerOnly\r\n {\r\n address converterUpgrader = addressOf(CONVERTER_UPGRADER);\r\n\r\n // if the token is not a reserve token, allow withdrawal\r\n // otherwise verify that the converter is inactive or that the owner is the upgrader contract\r\n require(!reserves[_token].isSet || !isActive() || owner == converterUpgrader, \"ERR_ACCESS_DENIED\");\r\n super.withdrawTokens(_token, _to, _amount);\r\n\r\n // if the token is a reserve token, sync the reserve balance\r\n if (reserves[_token].isSet)\r\n syncReserveBalance(_token);\r\n }\r\n\r\n /**\r\n * @dev upgrades the converter to the latest version\r\n * can only be called by the owner\r\n * note that the owner needs to call acceptOwnership on the new converter after the upgrade\r\n */\r\n function upgrade() public ownerOnly {\r\n IConverterUpgrader converterUpgrader = IConverterUpgrader(addressOf(CONVERTER_UPGRADER));\r\n\r\n // trigger de-activation event\r\n emit Activation(converterType(), anchor, false);\r\n\r\n transferOwnership(address(converterUpgrader));\r\n converterUpgrader.upgrade(version);\r\n acceptOwnership();\r\n }\r\n\r\n /**\r\n * @dev returns the number of reserve tokens defined\r\n * note that prior to version 17, you should use 'connectorTokenCount' instead\r\n *\r\n * @return number of reserve tokens\r\n */\r\n function reserveTokenCount() public view returns (uint16) {\r\n return uint16(reserveTokens.length);\r\n }\r\n\r\n /**\r\n * @dev defines a new reserve token for the converter\r\n * can only be called by the owner while the converter is inactive\r\n *\r\n * @param _token address of the reserve token\r\n * @param _weight reserve weight, represented in ppm, 1-1000000\r\n */\r\n function addReserve(IERC20Token _token, uint32 _weight)\r\n public\r\n virtual\r\n override\r\n ownerOnly\r\n inactive\r\n validAddress(address(_token))\r\n notThis(address(_token))\r\n validReserveWeight(_weight)\r\n {\r\n // validate input\r\n require(address(_token) != address(anchor) && !reserves[_token].isSet, \"ERR_INVALID_RESERVE\");\r\n require(_weight <= PPM_RESOLUTION - reserveRatio, \"ERR_INVALID_RESERVE_WEIGHT\");\r\n require(reserveTokenCount() < uint16(-1), \"ERR_INVALID_RESERVE_COUNT\");\r\n\r\n Reserve storage newReserve = reserves[_token];\r\n newReserve.balance = 0;\r\n newReserve.weight = _weight;\r\n newReserve.isSet = true;\r\n reserveTokens.push(_token);\r\n reserveRatio += _weight;\r\n }\r\n\r\n /**\r\n * @dev returns the reserve's weight\r\n * added in version 28\r\n *\r\n * @param _reserveToken reserve token contract address\r\n *\r\n * @return reserve weight\r\n */\r\n function reserveWeight(IERC20Token _reserveToken)\r\n public\r\n view\r\n validReserve(_reserveToken)\r\n returns (uint32)\r\n {\r\n return reserves[_reserveToken].weight;\r\n }\r\n\r\n /**\r\n * @dev returns the reserve's balance\r\n * note that prior to version 17, you should use 'getConnectorBalance' instead\r\n *\r\n * @param _reserveToken reserve token contract address\r\n *\r\n * @return reserve balance\r\n */\r\n function reserveBalance(IERC20Token _reserveToken)\r\n public\r\n override\r\n view\r\n validReserve(_reserveToken)\r\n returns (uint256)\r\n {\r\n return reserves[_reserveToken].balance;\r\n }\r\n\r\n /**\r\n * @dev checks whether or not the converter has an ETH reserve\r\n *\r\n * @return true if the converter has an ETH reserve, false otherwise\r\n */\r\n function hasETHReserve() public view returns (bool) {\r\n return reserves[ETH_RESERVE_ADDRESS].isSet;\r\n }\r\n\r\n /**\r\n * @dev converts a specific amount of source tokens to target tokens\r\n * can only be called by the bancor network contract\r\n *\r\n * @param _sourceToken source ERC20 token\r\n * @param _targetToken target ERC20 token\r\n * @param _amount amount of tokens to convert (in units of the source token)\r\n * @param _trader address of the caller who executed the conversion\r\n * @param _beneficiary wallet to receive the conversion result\r\n *\r\n * @return amount of tokens received (in units of the target token)\r\n */\r\n function convert(IERC20Token _sourceToken, IERC20Token _targetToken, uint256 _amount, address _trader, address payable _beneficiary)\r\n public\r\n override\r\n payable\r\n protected\r\n only(BANCOR_NETWORK)\r\n returns (uint256)\r\n {\r\n // validate input\r\n require(_sourceToken != _targetToken, \"ERR_SAME_SOURCE_TARGET\");\r\n\r\n // if a whitelist is set, verify that both and trader and the beneficiary are whitelisted\r\n require(address(conversionWhitelist) == address(0) ||\r\n (conversionWhitelist.isWhitelisted(_trader) && conversionWhitelist.isWhitelisted(_beneficiary)),\r\n \"ERR_NOT_WHITELISTED\");\r\n\r\n return doConvert(_sourceToken, _targetToken, _amount, _trader, _beneficiary);\r\n }\r\n\r\n /**\r\n * @dev converts a specific amount of source tokens to target tokens\r\n * called by ConverterBase and allows the inherited contracts to implement custom conversion logic\r\n *\r\n * @param _sourceToken source ERC20 token\r\n * @param _targetToken target ERC20 token\r\n * @param _amount amount of tokens to convert (in units of the source token)\r\n * @param _trader address of the caller who executed the conversion\r\n * @param _beneficiary wallet to receive the conversion result\r\n *\r\n * @return amount of tokens received (in units of the target token)\r\n */\r\n function doConvert(\r\n IERC20Token _sourceToken,\r\n IERC20Token _targetToken,\r\n uint256 _amount,\r\n address _trader,\r\n address payable _beneficiary)\r\n internal\r\n virtual\r\n returns (uint256);\r\n\r\n /**\r\n * @dev returns the conversion fee for a given target amount\r\n *\r\n * @param _targetAmount target amount\r\n *\r\n * @return conversion fee\r\n */\r\n function calculateFee(uint256 _targetAmount) internal view returns (uint256) {\r\n return _targetAmount.mul(conversionFee).div(PPM_RESOLUTION);\r\n }\r\n\r\n /**\r\n * @dev syncs the stored reserve balance for a given reserve with the real reserve balance\r\n *\r\n * @param _reserveToken address of the reserve token\r\n */\r\n function syncReserveBalance(IERC20Token _reserveToken) internal validReserve(_reserveToken) {\r\n if (_reserveToken == ETH_RESERVE_ADDRESS)\r\n reserves[_reserveToken].balance = address(this).balance;\r\n else\r\n reserves[_reserveToken].balance = _reserveToken.balanceOf(address(this));\r\n }\r\n\r\n /**\r\n * @dev syncs all stored reserve balances\r\n */\r\n function syncReserveBalances() internal {\r\n uint256 reserveCount = reserveTokens.length;\r\n for (uint256 i = 0; i < reserveCount; i++)\r\n syncReserveBalance(reserveTokens[i]);\r\n }\r\n\r\n /**\r\n * @dev helper, dispatches the Conversion event\r\n *\r\n * @param _sourceToken source ERC20 token\r\n * @param _targetToken target ERC20 token\r\n * @param _trader address of the caller who executed the conversion\r\n * @param _amount amount purchased/sold (in the source token)\r\n * @param _returnAmount amount returned (in the target token)\r\n */\r\n function dispatchConversionEvent(\r\n IERC20Token _sourceToken,\r\n IERC20Token _targetToken,\r\n address _trader,\r\n uint256 _amount,\r\n uint256 _returnAmount,\r\n uint256 _feeAmount)\r\n internal\r\n {\r\n // fee amount is converted to 255 bits -\r\n // negative amount means the fee is taken from the source token, positive amount means its taken from the target token\r\n // currently the fee is always taken from the target token\r\n // since we convert it to a signed number, we first ensure that it's capped at 255 bits to prevent overflow\r\n assert(_feeAmount < 2 ** 255);\r\n emit Conversion(_sourceToken, _targetToken, _trader, _amount, _returnAmount, int256(_feeAmount));\r\n }\r\n\r\n /**\r\n * @dev deprecated since version 28, backward compatibility - use only for earlier versions\r\n */\r\n function token() public view override returns (IConverterAnchor) {\r\n return anchor;\r\n }\r\n\r\n /**\r\n * @dev deprecated, backward compatibility\r\n */\r\n function transferTokenOwnership(address _newOwner) public override ownerOnly {\r\n transferAnchorOwnership(_newOwner);\r\n }\r\n\r\n /**\r\n * @dev deprecated, backward compatibility\r\n */\r\n function acceptTokenOwnership() public override ownerOnly {\r\n acceptAnchorOwnership();\r\n }\r\n\r\n /**\r\n * @dev deprecated, backward compatibility\r\n */\r\n function connectors(IERC20Token _address) public view override returns (uint256, uint32, bool, bool, bool) {\r\n Reserve memory reserve = reserves[_address];\r\n return(reserve.balance, reserve.weight, false, false, reserve.isSet);\r\n }\r\n\r\n /**\r\n * @dev deprecated, backward compatibility\r\n */\r\n function connectorTokens(uint256 _index) public view override returns (IERC20Token) {\r\n return ConverterBase.reserveTokens[_index];\r\n }\r\n\r\n /**\r\n * @dev deprecated, backward compatibility\r\n */\r\n function connectorTokenCount() public view override returns (uint16) {\r\n return reserveTokenCount();\r\n }\r\n\r\n /**\r\n * @dev deprecated, backward compatibility\r\n */\r\n function getConnectorBalance(IERC20Token _connectorToken) public view override returns (uint256) {\r\n return reserveBalance(_connectorToken);\r\n }\r\n\r\n /**\r\n * @dev deprecated, backward compatibility\r\n */\r\n function getReturn(IERC20Token _sourceToken, IERC20Token _targetToken, uint256 _amount) public view returns (uint256, uint256) {\r\n return targetAmountAndFee(_sourceToken, _targetToken, _amount);\r\n }\r\n}\r\n",
|
|
"sourcePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/ConverterBase.sol",
|
|
"ast": {
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/ConverterBase.sol",
|
|
"exportedSymbols": {
|
|
"ConverterBase": [
|
|
10039
|
|
]
|
|
},
|
|
"id": 10040,
|
|
"license": "SEE LICENSE IN LICENSE",
|
|
"nodeType": "SourceUnit",
|
|
"nodes": [
|
|
{
|
|
"id": 8979,
|
|
"literals": [
|
|
"solidity",
|
|
"0.6",
|
|
".12"
|
|
],
|
|
"nodeType": "PragmaDirective",
|
|
"src": "52:23:8"
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/IConverter.sol",
|
|
"file": "./interfaces/IConverter.sol",
|
|
"id": 8980,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 10040,
|
|
"sourceUnit": 13341,
|
|
"src": "77:37:8",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/IConverterAnchor.sol",
|
|
"file": "./interfaces/IConverterAnchor.sol",
|
|
"id": 8981,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 10040,
|
|
"sourceUnit": 13350,
|
|
"src": "116:43:8",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/IConverterUpgrader.sol",
|
|
"file": "./interfaces/IConverterUpgrader.sol",
|
|
"id": 8982,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 10040,
|
|
"sourceUnit": 13661,
|
|
"src": "161:45:8",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/IBancorFormula.sol",
|
|
"file": "./interfaces/IBancorFormula.sol",
|
|
"id": 8983,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 10040,
|
|
"sourceUnit": 13178,
|
|
"src": "208:41:8",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/ContractRegistryClient.sol",
|
|
"file": "../utility/ContractRegistryClient.sol",
|
|
"id": 8984,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 10040,
|
|
"sourceUnit": 21720,
|
|
"src": "251:47:8",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/ReentrancyGuard.sol",
|
|
"file": "../utility/ReentrancyGuard.sol",
|
|
"id": 8985,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 10040,
|
|
"sourceUnit": 22243,
|
|
"src": "300:40:8",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/SafeMath.sol",
|
|
"file": "../utility/SafeMath.sol",
|
|
"id": 8986,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 10040,
|
|
"sourceUnit": 22355,
|
|
"src": "342:33:8",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/TokenHandler.sol",
|
|
"file": "../utility/TokenHandler.sol",
|
|
"id": 8987,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 10040,
|
|
"sourceUnit": 22527,
|
|
"src": "377:37:8",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/TokenHolder.sol",
|
|
"file": "../utility/TokenHolder.sol",
|
|
"id": 8988,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 10040,
|
|
"sourceUnit": 22576,
|
|
"src": "416:36:8",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/token/interfaces/IEtherToken.sol",
|
|
"file": "../token/interfaces/IEtherToken.sol",
|
|
"id": 8989,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 10040,
|
|
"sourceUnit": 21154,
|
|
"src": "454:45:8",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/bancorx/interfaces/IBancorX.sol",
|
|
"file": "../bancorx/interfaces/IBancorX.sol",
|
|
"id": 8990,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 10040,
|
|
"sourceUnit": 3552,
|
|
"src": "501:44:8",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"abstract": true,
|
|
"baseContracts": [
|
|
{
|
|
"arguments": null,
|
|
"baseName": {
|
|
"contractScope": null,
|
|
"id": 8992,
|
|
"name": "IConverter",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13340,
|
|
"src": "1683:10:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"id": 8993,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "1683:10:8"
|
|
},
|
|
{
|
|
"arguments": null,
|
|
"baseName": {
|
|
"contractScope": null,
|
|
"id": 8994,
|
|
"name": "TokenHandler",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22526,
|
|
"src": "1695:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_TokenHandler_$22526",
|
|
"typeString": "contract TokenHandler"
|
|
}
|
|
},
|
|
"id": 8995,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "1695:12:8"
|
|
},
|
|
{
|
|
"arguments": null,
|
|
"baseName": {
|
|
"contractScope": null,
|
|
"id": 8996,
|
|
"name": "TokenHolder",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22575,
|
|
"src": "1709:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_TokenHolder_$22575",
|
|
"typeString": "contract TokenHolder"
|
|
}
|
|
},
|
|
"id": 8997,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "1709:11:8"
|
|
},
|
|
{
|
|
"arguments": null,
|
|
"baseName": {
|
|
"contractScope": null,
|
|
"id": 8998,
|
|
"name": "ContractRegistryClient",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21719,
|
|
"src": "1722:22:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ContractRegistryClient_$21719",
|
|
"typeString": "contract ContractRegistryClient"
|
|
}
|
|
},
|
|
"id": 8999,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "1722:22:8"
|
|
},
|
|
{
|
|
"arguments": null,
|
|
"baseName": {
|
|
"contractScope": null,
|
|
"id": 9000,
|
|
"name": "ReentrancyGuard",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22242,
|
|
"src": "1746:15:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ReentrancyGuard_$22242",
|
|
"typeString": "contract ReentrancyGuard"
|
|
}
|
|
},
|
|
"id": 9001,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "1746:15:8"
|
|
}
|
|
],
|
|
"contractDependencies": [
|
|
13340,
|
|
21719,
|
|
21818,
|
|
22242,
|
|
22526,
|
|
22575,
|
|
22661,
|
|
22847,
|
|
22907
|
|
],
|
|
"contractKind": "contract",
|
|
"documentation": {
|
|
"id": 8991,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "549:1097:8",
|
|
"text": " @dev ConverterBase\n The converter contains the main logic for conversions between different ERC20 tokens.\n It is also the upgradable part of the mechanism (note that upgrades are opt-in).\n The anchor must be set on construction and cannot be changed afterwards.\n Wrappers are provided for some of the anchor's functions, for easier access.\n Once the converter accepts ownership of the anchor, it becomes the anchor's sole controller\n and can execute any of its functions.\n To upgrade the converter, anchor ownership must be transferred to a new converter, along with\n any relevant data.\n Note that the converter can transfer anchor ownership to a new converter that\n doesn't allow upgrades anymore, for finalizing the relationship between the converter\n and the anchor.\n Converter types (defined as uint16 type) -\n 0 = liquid token converter\n 1 = liquidity pool v1 converter\n 2 = liquidity pool v2 converter\n Note that converters don't currently support tokens with transfer fees."
|
|
},
|
|
"fullyImplemented": false,
|
|
"id": 10039,
|
|
"linearizedBaseContracts": [
|
|
10039,
|
|
22242,
|
|
21719,
|
|
22575,
|
|
22661,
|
|
21818,
|
|
22526,
|
|
22907,
|
|
13340,
|
|
22847
|
|
],
|
|
"name": "ConverterBase",
|
|
"nodeType": "ContractDefinition",
|
|
"nodes": [
|
|
{
|
|
"id": 9004,
|
|
"libraryName": {
|
|
"contractScope": null,
|
|
"id": 9002,
|
|
"name": "SafeMath",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22354,
|
|
"src": "1775:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_SafeMath_$22354",
|
|
"typeString": "library SafeMath"
|
|
}
|
|
},
|
|
"nodeType": "UsingForDirective",
|
|
"src": "1769:27:8",
|
|
"typeName": {
|
|
"id": 9003,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1788:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"constant": true,
|
|
"id": 9007,
|
|
"mutability": "constant",
|
|
"name": "PPM_RESOLUTION",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10039,
|
|
"src": "1804:49:8",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9005,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1804:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31303030303030",
|
|
"id": 9006,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1846:7:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1000000_by_1",
|
|
"typeString": "int_const 1000000"
|
|
},
|
|
"value": "1000000"
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"id": 9012,
|
|
"mutability": "constant",
|
|
"name": "ETH_RESERVE_ADDRESS",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10039,
|
|
"src": "1860:107:8",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9008,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "1860:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545",
|
|
"id": 9010,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1924:42:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"id": 9009,
|
|
"name": "IERC20Token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21127,
|
|
"src": "1912:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "type(contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 9011,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1912:55:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"canonicalName": "ConverterBase.Reserve",
|
|
"id": 9023,
|
|
"members": [
|
|
{
|
|
"constant": false,
|
|
"id": 9014,
|
|
"mutability": "mutable",
|
|
"name": "balance",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9023,
|
|
"src": "2002:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9013,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2002:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9016,
|
|
"mutability": "mutable",
|
|
"name": "weight",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9023,
|
|
"src": "2050:13:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9015,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2050:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9018,
|
|
"mutability": "mutable",
|
|
"name": "deprecated1",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9023,
|
|
"src": "2128:16:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 9017,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2128:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9020,
|
|
"mutability": "mutable",
|
|
"name": "deprecated2",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9023,
|
|
"src": "2171:16:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 9019,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2171:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9022,
|
|
"mutability": "mutable",
|
|
"name": "isSet",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9023,
|
|
"src": "2214:10:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 9021,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2214:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"name": "Reserve",
|
|
"nodeType": "StructDefinition",
|
|
"scope": 10039,
|
|
"src": "1976:313:8",
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"documentation": {
|
|
"id": 9024,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "2297:40:8",
|
|
"text": " @dev version number"
|
|
},
|
|
"functionSelector": "54fd4d50",
|
|
"id": 9027,
|
|
"mutability": "constant",
|
|
"name": "version",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10039,
|
|
"src": "2343:35:8",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
},
|
|
"typeName": {
|
|
"id": 9025,
|
|
"name": "uint16",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2343:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"hexValue": "3339",
|
|
"id": 9026,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2376:2:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_39_by_1",
|
|
"typeString": "int_const 39"
|
|
},
|
|
"value": "39"
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13195
|
|
],
|
|
"constant": false,
|
|
"functionSelector": "d3fb73b4",
|
|
"id": 9030,
|
|
"mutability": "mutable",
|
|
"name": "anchor",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": {
|
|
"id": 9029,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "2411:8:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "2387:39:8",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9028,
|
|
"name": "IConverterAnchor",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13349,
|
|
"src": "2387:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13233
|
|
],
|
|
"constant": false,
|
|
"functionSelector": "c45d3d92",
|
|
"id": 9033,
|
|
"mutability": "mutable",
|
|
"name": "conversionWhitelist",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": {
|
|
"id": 9032,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "2491:8:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "2473:46:8",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IWhitelist_$22917",
|
|
"typeString": "contract IWhitelist"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9031,
|
|
"name": "IWhitelist",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22917,
|
|
"src": "2473:10:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IWhitelist_$22917",
|
|
"typeString": "contract IWhitelist"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"functionSelector": "d031370b",
|
|
"id": 9036,
|
|
"mutability": "mutable",
|
|
"name": "reserveTokens",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10039,
|
|
"src": "2613:34:8",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_contract$_IERC20Token_$21127_$dyn_storage",
|
|
"typeString": "contract IERC20Token[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"contractScope": null,
|
|
"id": 9034,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "2613:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"id": 9035,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "2613:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_contract$_IERC20Token_$21127_$dyn_storage_ptr",
|
|
"typeString": "contract IERC20Token[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"functionSelector": "d66bd524",
|
|
"id": 9040,
|
|
"mutability": "mutable",
|
|
"name": "reserves",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10039,
|
|
"src": "2754:48:8",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve)"
|
|
},
|
|
"typeName": {
|
|
"id": 9039,
|
|
"keyType": {
|
|
"contractScope": null,
|
|
"id": 9037,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "2763:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "Mapping",
|
|
"src": "2754:32:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve)"
|
|
},
|
|
"valueType": {
|
|
"contractScope": null,
|
|
"id": 9038,
|
|
"name": "Reserve",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 9023,
|
|
"src": "2778:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage_ptr",
|
|
"typeString": "struct ConverterBase.Reserve"
|
|
}
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"functionSelector": "0c7d5cd8",
|
|
"id": 9043,
|
|
"mutability": "mutable",
|
|
"name": "reserveRatio",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10039,
|
|
"src": "2899:30:8",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9041,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2899:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 9042,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2928:1:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13243
|
|
],
|
|
"constant": false,
|
|
"functionSelector": "94c275ad",
|
|
"id": 9047,
|
|
"mutability": "mutable",
|
|
"name": "maxConversionFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": {
|
|
"id": 9045,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "3055:8:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "3041:43:8",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9044,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3041:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 9046,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3083:1:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13238
|
|
],
|
|
"constant": false,
|
|
"functionSelector": "579cd3ca",
|
|
"id": 9051,
|
|
"mutability": "mutable",
|
|
"name": "conversionFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": {
|
|
"id": 9049,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "3306:8:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "3292:40:8",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9048,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3292:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 9050,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3331:1:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"functionSelector": "bf754558",
|
|
"id": 9054,
|
|
"mutability": "constant",
|
|
"name": "conversionsEnabled",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10039,
|
|
"src": "3417:46:8",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 9052,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3417:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"hexValue": "74727565",
|
|
"id": 9053,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3459:4:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "true"
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"documentation": {
|
|
"id": 9055,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "3514:260:8",
|
|
"text": " @dev triggered when the converter is activated\n @param _type converter type\n @param _anchor converter anchor\n @param _activated true if the converter was activated, false if it was deactivated"
|
|
},
|
|
"id": 9063,
|
|
"name": "Activation",
|
|
"nodeType": "EventDefinition",
|
|
"parameters": {
|
|
"id": 9062,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9057,
|
|
"indexed": true,
|
|
"mutability": "mutable",
|
|
"name": "_type",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9063,
|
|
"src": "3797:20:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
},
|
|
"typeName": {
|
|
"id": 9056,
|
|
"name": "uint16",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3797:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9059,
|
|
"indexed": true,
|
|
"mutability": "mutable",
|
|
"name": "_anchor",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9063,
|
|
"src": "3819:32:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9058,
|
|
"name": "IConverterAnchor",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13349,
|
|
"src": "3819:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9061,
|
|
"indexed": true,
|
|
"mutability": "mutable",
|
|
"name": "_activated",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9063,
|
|
"src": "3853:23:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 9060,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3853:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "3796:81:8"
|
|
},
|
|
"src": "3780:98:8"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"documentation": {
|
|
"id": 9064,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "3886:447:8",
|
|
"text": " @dev triggered when a conversion between two tokens occurs\n @param _fromToken source ERC20 token\n @param _toToken target ERC20 token\n @param _trader wallet that initiated the trade\n @param _amount amount converted, in the source token\n @param _return amount returned, minus conversion fee\n @param _conversionFee conversion fee"
|
|
},
|
|
"id": 9078,
|
|
"name": "Conversion",
|
|
"nodeType": "EventDefinition",
|
|
"parameters": {
|
|
"id": 9077,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9066,
|
|
"indexed": true,
|
|
"mutability": "mutable",
|
|
"name": "_fromToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9078,
|
|
"src": "4366:30:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9065,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "4366:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9068,
|
|
"indexed": true,
|
|
"mutability": "mutable",
|
|
"name": "_toToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9078,
|
|
"src": "4407:28:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9067,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "4407:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9070,
|
|
"indexed": true,
|
|
"mutability": "mutable",
|
|
"name": "_trader",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9078,
|
|
"src": "4446:23:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 9069,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4446:7:8",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9072,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9078,
|
|
"src": "4480:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9071,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4480:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9074,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "_return",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9078,
|
|
"src": "4506:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9073,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4506:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9076,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "_conversionFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9078,
|
|
"src": "4532:21:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int256",
|
|
"typeString": "int256"
|
|
},
|
|
"typeName": {
|
|
"id": 9075,
|
|
"name": "int256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4532:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int256",
|
|
"typeString": "int256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "4355:205:8"
|
|
},
|
|
"src": "4339:222:8"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"documentation": {
|
|
"id": 9079,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "4569:562:8",
|
|
"text": " @dev triggered when the rate between two tokens in the converter changes\n note that the event might be dispatched for rate updates between any two tokens in the converter\n note that prior to version 28, you should use the 'PriceDataUpdate' event instead\n @param _token1 address of the first token\n @param _token2 address of the second token\n @param _rateN rate of 1 unit of `_token1` in `_token2` (numerator)\n @param _rateD rate of 1 unit of `_token1` in `_token2` (denominator)"
|
|
},
|
|
"id": 9089,
|
|
"name": "TokenRateUpdate",
|
|
"nodeType": "EventDefinition",
|
|
"parameters": {
|
|
"id": 9088,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9081,
|
|
"indexed": true,
|
|
"mutability": "mutable",
|
|
"name": "_token1",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9089,
|
|
"src": "5169:27:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9080,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "5169:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9083,
|
|
"indexed": true,
|
|
"mutability": "mutable",
|
|
"name": "_token2",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9089,
|
|
"src": "5207:27:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9082,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "5207:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9085,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "_rateN",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9089,
|
|
"src": "5245:14:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9084,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5245:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9087,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "_rateD",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9089,
|
|
"src": "5270:14:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9086,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5270:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "5158:133:8"
|
|
},
|
|
"src": "5137:155:8"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"documentation": {
|
|
"id": 9090,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "5300:220:8",
|
|
"text": " @dev triggered when the conversion fee is updated\n @param _prevFee previous fee percentage, represented in ppm\n @param _newFee new fee percentage, represented in ppm"
|
|
},
|
|
"id": 9096,
|
|
"name": "ConversionFeeUpdate",
|
|
"nodeType": "EventDefinition",
|
|
"parameters": {
|
|
"id": 9095,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9092,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "_prevFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9096,
|
|
"src": "5552:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9091,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5552:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9094,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "_newFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9096,
|
|
"src": "5569:14:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9093,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5569:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "5551:33:8"
|
|
},
|
|
"src": "5526:59:8"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9126,
|
|
"nodeType": "Block",
|
|
"src": "6192:82:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9120,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 9118,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9030,
|
|
"src": "6203:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 9119,
|
|
"name": "_anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9099,
|
|
"src": "6212:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"src": "6203:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"id": 9121,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6203:16:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9124,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 9122,
|
|
"name": "maxConversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9047,
|
|
"src": "6230:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 9123,
|
|
"name": "_maxConversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9103,
|
|
"src": "6249:17:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"src": "6230:36:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"id": 9125,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6230:36:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9097,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "5593:313:8",
|
|
"text": " @dev used by sub-contracts to initialize a new converter\n @param _anchor anchor governed by the converter\n @param _registry address of a contract registry contract\n @param _maxConversionFee maximum conversion fee, represented in ppm"
|
|
},
|
|
"id": 9127,
|
|
"implemented": true,
|
|
"kind": "constructor",
|
|
"modifiers": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9108,
|
|
"name": "_anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9099,
|
|
"src": "6069:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
],
|
|
"id": 9107,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "6061:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 9106,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "6061:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9109,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6061:16:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"id": 9110,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9105,
|
|
"name": "validAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22618,
|
|
"src": "6048:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_address_$",
|
|
"typeString": "modifier (address)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "6048:30:8"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9112,
|
|
"name": "_registry",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9101,
|
|
"src": "6111:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IContractRegistry_$22831",
|
|
"typeString": "contract IContractRegistry"
|
|
}
|
|
}
|
|
],
|
|
"id": 9113,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9111,
|
|
"name": "ContractRegistryClient",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21719,
|
|
"src": "6088:22:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_ContractRegistryClient_$21719_$",
|
|
"typeString": "type(contract ContractRegistryClient)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "6088:33:8"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9115,
|
|
"name": "_maxConversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9103,
|
|
"src": "6168:17:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
}
|
|
],
|
|
"id": 9116,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9114,
|
|
"name": "validConversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9196,
|
|
"src": "6149:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_uint32_$",
|
|
"typeString": "modifier (uint32)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "6149:37:8"
|
|
}
|
|
],
|
|
"name": "",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9104,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9099,
|
|
"mutability": "mutable",
|
|
"name": "_anchor",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9127,
|
|
"src": "5934:24:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9098,
|
|
"name": "IConverterAnchor",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13349,
|
|
"src": "5934:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9101,
|
|
"mutability": "mutable",
|
|
"name": "_registry",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9127,
|
|
"src": "5969:27:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IContractRegistry_$22831",
|
|
"typeString": "contract IContractRegistry"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9100,
|
|
"name": "IContractRegistry",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22831,
|
|
"src": "5969:17:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IContractRegistry_$22831",
|
|
"typeString": "contract IContractRegistry"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9103,
|
|
"mutability": "mutable",
|
|
"name": "_maxConversionFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9127,
|
|
"src": "6007:24:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9102,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "6007:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "5923:115:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9117,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "6192:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "5912:362:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9133,
|
|
"nodeType": "Block",
|
|
"src": "6345:40:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 9129,
|
|
"name": "_active",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9144,
|
|
"src": "6356:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$__$",
|
|
"typeString": "function () view"
|
|
}
|
|
},
|
|
"id": 9130,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6356:9:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9131,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6356:9:8"
|
|
},
|
|
{
|
|
"id": 9132,
|
|
"nodeType": "PlaceholderStatement",
|
|
"src": "6376:1:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 9134,
|
|
"name": "active",
|
|
"nodeType": "ModifierDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9128,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "6342:2:8"
|
|
},
|
|
"src": "6327:58:8",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9143,
|
|
"nodeType": "Block",
|
|
"src": "6473:54:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 9138,
|
|
"name": "isActive",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9362,
|
|
"src": "6492:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
|
|
"typeString": "function () view returns (bool)"
|
|
}
|
|
},
|
|
"id": 9139,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6492:10:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e414354495645",
|
|
"id": 9140,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6504:14:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_a22dd8039fb80c8642cf17389b806c873aa9fbdbf3f2bd8746d8ce373ef50f9e",
|
|
"typeString": "literal_string \"ERR_INACTIVE\""
|
|
},
|
|
"value": "ERR_INACTIVE"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_a22dd8039fb80c8642cf17389b806c873aa9fbdbf3f2bd8746d8ce373ef50f9e",
|
|
"typeString": "literal_string \"ERR_INACTIVE\""
|
|
}
|
|
],
|
|
"id": 9137,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "6484:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9141,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6484:35:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9142,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6484:35:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 9144,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "_active",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9135,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "6456:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9136,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "6473:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "6440:87:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9150,
|
|
"nodeType": "Block",
|
|
"src": "6604:42:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 9146,
|
|
"name": "_inactive",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9162,
|
|
"src": "6615:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$__$",
|
|
"typeString": "function () view"
|
|
}
|
|
},
|
|
"id": 9147,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6615:11:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9148,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6615:11:8"
|
|
},
|
|
{
|
|
"id": 9149,
|
|
"nodeType": "PlaceholderStatement",
|
|
"src": "6637:1:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 9151,
|
|
"name": "inactive",
|
|
"nodeType": "ModifierDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9145,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "6601:2:8"
|
|
},
|
|
"src": "6584:62:8",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9161,
|
|
"nodeType": "Block",
|
|
"src": "6736:53:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9157,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "!",
|
|
"prefix": true,
|
|
"src": "6755:11:8",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 9155,
|
|
"name": "isActive",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9362,
|
|
"src": "6756:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
|
|
"typeString": "function () view returns (bool)"
|
|
}
|
|
},
|
|
"id": 9156,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6756:10:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f414354495645",
|
|
"id": 9158,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6768:12:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_181d3d32638945611c2cb46b623de141c5e74a32dcd850864f64837aa849ee3f",
|
|
"typeString": "literal_string \"ERR_ACTIVE\""
|
|
},
|
|
"value": "ERR_ACTIVE"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_181d3d32638945611c2cb46b623de141c5e74a32dcd850864f64837aa849ee3f",
|
|
"typeString": "literal_string \"ERR_ACTIVE\""
|
|
}
|
|
],
|
|
"id": 9154,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "6747:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9159,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6747:34:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9160,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6747:34:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 9162,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "_inactive",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9152,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "6719:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9153,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "6736:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "6701:88:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9171,
|
|
"nodeType": "Block",
|
|
"src": "6948:54:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9167,
|
|
"name": "_address",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9164,
|
|
"src": "6973:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 9166,
|
|
"name": "_validReserve",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9186,
|
|
"src": "6959:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$21127_$returns$__$",
|
|
"typeString": "function (contract IERC20Token) view"
|
|
}
|
|
},
|
|
"id": 9168,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6959:23:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9169,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6959:23:8"
|
|
},
|
|
{
|
|
"id": 9170,
|
|
"nodeType": "PlaceholderStatement",
|
|
"src": "6993:1:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 9172,
|
|
"name": "validReserve",
|
|
"nodeType": "ModifierDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9165,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9164,
|
|
"mutability": "mutable",
|
|
"name": "_address",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9172,
|
|
"src": "6926:20:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9163,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "6926:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "6925:22:8"
|
|
},
|
|
"src": "6904:98:8",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9185,
|
|
"nodeType": "Block",
|
|
"src": "7116:75:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9178,
|
|
"name": "reserves",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9040,
|
|
"src": "7135:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve storage ref)"
|
|
}
|
|
},
|
|
"id": 9180,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9179,
|
|
"name": "_address",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9174,
|
|
"src": "7144:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "7135:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage",
|
|
"typeString": "struct ConverterBase.Reserve storage ref"
|
|
}
|
|
},
|
|
"id": 9181,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isSet",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9022,
|
|
"src": "7135:24:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f52455345525645",
|
|
"id": 9182,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "7161:21:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE\""
|
|
},
|
|
"value": "ERR_INVALID_RESERVE"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE\""
|
|
}
|
|
],
|
|
"id": 9177,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "7127:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9183,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7127:56:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9184,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7127:56:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 9186,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "_validReserve",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9175,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9174,
|
|
"mutability": "mutable",
|
|
"name": "_address",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9186,
|
|
"src": "7080:20:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9173,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "7080:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "7079:22:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9176,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "7116:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "7057:134:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9195,
|
|
"nodeType": "Block",
|
|
"src": "7283:66:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9191,
|
|
"name": "_conversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9188,
|
|
"src": "7314:14:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
],
|
|
"id": 9190,
|
|
"name": "_validConversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9209,
|
|
"src": "7294:19:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint32_$returns$__$",
|
|
"typeString": "function (uint32) pure"
|
|
}
|
|
},
|
|
"id": 9192,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7294:35:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9193,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7294:35:8"
|
|
},
|
|
{
|
|
"id": 9194,
|
|
"nodeType": "PlaceholderStatement",
|
|
"src": "7340:1:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 9196,
|
|
"name": "validConversionFee",
|
|
"nodeType": "ModifierDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9189,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9188,
|
|
"mutability": "mutable",
|
|
"name": "_conversionFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9196,
|
|
"src": "7260:21:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9187,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "7260:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "7259:23:8"
|
|
},
|
|
"src": "7232:117:8",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9208,
|
|
"nodeType": "Block",
|
|
"src": "7470:90:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"id": 9204,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9202,
|
|
"name": "_conversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9198,
|
|
"src": "7489:14:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9203,
|
|
"name": "PPM_RESOLUTION",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9007,
|
|
"src": "7507:14:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"src": "7489:32:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f434f4e56455253494f4e5f464545",
|
|
"id": 9205,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "7523:28:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_ae729833ea0b2cfd1b35fa1d075ae330e76860b5ab276fa04bde88b85e5c4d00",
|
|
"typeString": "literal_string \"ERR_INVALID_CONVERSION_FEE\""
|
|
},
|
|
"value": "ERR_INVALID_CONVERSION_FEE"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_ae729833ea0b2cfd1b35fa1d075ae330e76860b5ab276fa04bde88b85e5c4d00",
|
|
"typeString": "literal_string \"ERR_INVALID_CONVERSION_FEE\""
|
|
}
|
|
],
|
|
"id": 9201,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "7481:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9206,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7481:71:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9207,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7481:71:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 9209,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "_validConversionFee",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9199,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9198,
|
|
"mutability": "mutable",
|
|
"name": "_conversionFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9209,
|
|
"src": "7433:21:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9197,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "7433:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "7432:23:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9200,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "7470:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "7404:156:8",
|
|
"stateMutability": "pure",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9218,
|
|
"nodeType": "Block",
|
|
"src": "7645:59:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9214,
|
|
"name": "_weight",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9211,
|
|
"src": "7676:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
],
|
|
"id": 9213,
|
|
"name": "_validReserveWeight",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9236,
|
|
"src": "7656:19:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint32_$returns$__$",
|
|
"typeString": "function (uint32) pure"
|
|
}
|
|
},
|
|
"id": 9215,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7656:28:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9216,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7656:28:8"
|
|
},
|
|
{
|
|
"id": 9217,
|
|
"nodeType": "PlaceholderStatement",
|
|
"src": "7695:1:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 9219,
|
|
"name": "validReserveWeight",
|
|
"nodeType": "ModifierDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9212,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9211,
|
|
"mutability": "mutable",
|
|
"name": "_weight",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9219,
|
|
"src": "7629:14:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9210,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "7629:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "7628:16:8"
|
|
},
|
|
"src": "7601:103:8",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9235,
|
|
"nodeType": "Block",
|
|
"src": "7818:98:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 9231,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"id": 9227,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9225,
|
|
"name": "_weight",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9221,
|
|
"src": "7837:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 9226,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "7847:1:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "7837:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"id": 9230,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9228,
|
|
"name": "_weight",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9221,
|
|
"src": "7852:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9229,
|
|
"name": "PPM_RESOLUTION",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9007,
|
|
"src": "7863:14:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"src": "7852:25:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "7837:40:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f524553455256455f574549474854",
|
|
"id": 9232,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "7879:28:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\""
|
|
},
|
|
"value": "ERR_INVALID_RESERVE_WEIGHT"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\""
|
|
}
|
|
],
|
|
"id": 9224,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "7829:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9233,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7829:79:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9234,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7829:79:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 9236,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "_validReserveWeight",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9222,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9221,
|
|
"mutability": "mutable",
|
|
"name": "_weight",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9236,
|
|
"src": "7788:14:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9220,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "7788:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "7787:16:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9223,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "7818:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "7759:157:8",
|
|
"stateMutability": "pure",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13190
|
|
],
|
|
"body": null,
|
|
"documentation": null,
|
|
"functionSelector": "3e8ff43f",
|
|
"id": 9242,
|
|
"implemented": false,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "converterType",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9238,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "8009:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9237,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "7986:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9241,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9240,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9242,
|
|
"src": "8027:6:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
},
|
|
"typeName": {
|
|
"id": 9239,
|
|
"name": "uint16",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "8027:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "8026:8:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "7964:71:8",
|
|
"stateMutability": "pure",
|
|
"virtual": true,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13213
|
|
],
|
|
"body": null,
|
|
"documentation": null,
|
|
"functionSelector": "af94b8d8",
|
|
"id": 9256,
|
|
"implemented": false,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "targetAmountAndFee",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9250,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "8236:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9249,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9244,
|
|
"mutability": "mutable",
|
|
"name": "_sourceToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9256,
|
|
"src": "8111:24:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9243,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "8111:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9246,
|
|
"mutability": "mutable",
|
|
"name": "_targetToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9256,
|
|
"src": "8137:24:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9245,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "8137:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9248,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9256,
|
|
"src": "8163:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9247,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "8163:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "8110:69:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9255,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9252,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9256,
|
|
"src": "8263:7:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9251,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "8263:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9254,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9256,
|
|
"src": "8272:7:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9253,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "8272:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "8262:18:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "8083:198:8",
|
|
"stateMutability": "view",
|
|
"virtual": true,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13253
|
|
],
|
|
"body": {
|
|
"id": 9269,
|
|
"nodeType": "Block",
|
|
"src": "8435:281:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9262,
|
|
"name": "reserves",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9040,
|
|
"src": "8454:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve storage ref)"
|
|
}
|
|
},
|
|
"id": 9264,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9263,
|
|
"name": "ETH_RESERVE_ADDRESS",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9012,
|
|
"src": "8463:19:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "8454:29:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage",
|
|
"typeString": "struct ConverterBase.Reserve storage ref"
|
|
}
|
|
},
|
|
"id": 9265,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isSet",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9022,
|
|
"src": "8454:35:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f52455345525645",
|
|
"id": 9266,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "8491:21:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE\""
|
|
},
|
|
"value": "ERR_INVALID_RESERVE"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE\""
|
|
}
|
|
],
|
|
"id": 9261,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "8446:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9267,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "8446:67:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9268,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "8446:67:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9257,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "8289:104:8",
|
|
"text": " @dev deposits ether\n can only be called if the converter has an ETH reserve"
|
|
},
|
|
"id": 9270,
|
|
"implemented": true,
|
|
"kind": "receive",
|
|
"modifiers": [],
|
|
"name": "",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9259,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "8418:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9258,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "8406:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9260,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "8435:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "8399:317:8",
|
|
"stateMutability": "payable",
|
|
"virtual": false,
|
|
"visibility": "external"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13285
|
|
],
|
|
"body": {
|
|
"id": 9315,
|
|
"nodeType": "Block",
|
|
"src": "9248:392:8",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
9285
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 9285,
|
|
"mutability": "mutable",
|
|
"name": "converterUpgrader",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9315,
|
|
"src": "9259:25:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 9284,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9259:7:8",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 9289,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9287,
|
|
"name": "CONVERTER_UPGRADER",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21542,
|
|
"src": "9297:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
],
|
|
"id": 9286,
|
|
"name": "addressOf",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21718,
|
|
"src": "9287:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
|
|
"typeString": "function (bytes32) view returns (address)"
|
|
}
|
|
},
|
|
"id": 9288,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "9287:29:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "9259:57:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 9297,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9293,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "!",
|
|
"prefix": true,
|
|
"src": "9430:11:8",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 9291,
|
|
"name": "isActive",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9362,
|
|
"src": "9431:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
|
|
"typeString": "function () view returns (bool)"
|
|
}
|
|
},
|
|
"id": 9292,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "9431:10:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "||",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 9296,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9294,
|
|
"name": "owner",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21728,
|
|
"src": "9445:5:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9295,
|
|
"name": "converterUpgrader",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9285,
|
|
"src": "9454:17:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "9445:26:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "9430:41:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f4143434553535f44454e494544",
|
|
"id": 9298,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "9473:19:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666",
|
|
"typeString": "literal_string \"ERR_ACCESS_DENIED\""
|
|
},
|
|
"value": "ERR_ACCESS_DENIED"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666",
|
|
"typeString": "literal_string \"ERR_ACCESS_DENIED\""
|
|
}
|
|
],
|
|
"id": 9290,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "9422:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9299,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "9422:71:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9300,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "9422:71:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9306,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "9525:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ConverterBase_$10039",
|
|
"typeString": "contract ConverterBase"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_ConverterBase_$10039",
|
|
"typeString": "contract ConverterBase"
|
|
}
|
|
],
|
|
"id": 9305,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "9517:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 9304,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9517:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9307,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "9517:13:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"id": 9308,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "balance",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "9517:21:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9301,
|
|
"name": "_to",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9273,
|
|
"src": "9504:3:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"id": 9303,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "transfer",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "9504:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
|
|
"typeString": "function (uint256)"
|
|
}
|
|
},
|
|
"id": 9309,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "9504:35:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9310,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "9504:35:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9312,
|
|
"name": "ETH_RESERVE_ADDRESS",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9012,
|
|
"src": "9612:19:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 9311,
|
|
"name": "syncReserveBalance",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9844,
|
|
"src": "9593:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$returns$__$",
|
|
"typeString": "function (contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 9313,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "9593:39:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9314,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "9593:39:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9271,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "8724:356:8",
|
|
"text": " @dev withdraws ether\n can only be called by the owner if the converter is inactive or by upgrader contract\n can only be called after the upgrader contract has accepted the ownership of this contract\n can only be called if the converter has an ETH reserve\n @param _to address to send the ETH to"
|
|
},
|
|
"functionSelector": "690d8320",
|
|
"id": 9316,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 9277,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9276,
|
|
"name": "protected",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22231,
|
|
"src": "9171:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "9171:9:8"
|
|
},
|
|
{
|
|
"arguments": null,
|
|
"id": 9279,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9278,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "9190:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "9190:9:8"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9281,
|
|
"name": "ETH_RESERVE_ADDRESS",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9012,
|
|
"src": "9222:19:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"id": 9282,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9280,
|
|
"name": "validReserve",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9172,
|
|
"src": "9209:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "modifier (contract IERC20Token)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "9209:33:8"
|
|
}
|
|
],
|
|
"name": "withdrawETH",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9275,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "9153:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9274,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9273,
|
|
"mutability": "mutable",
|
|
"name": "_to",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9316,
|
|
"src": "9107:19:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"typeName": {
|
|
"id": 9272,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9107:15:8",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "9106:21:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9283,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "9248:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "9086:554:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9324,
|
|
"nodeType": "Block",
|
|
"src": "9867:30:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "74727565",
|
|
"id": 9322,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "9885:4:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "true"
|
|
},
|
|
"functionReturnParameters": 9321,
|
|
"id": 9323,
|
|
"nodeType": "Return",
|
|
"src": "9878:11:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9317,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "9648:161:8",
|
|
"text": " @dev checks whether or not the converter version is 28 or higher\n @return true, since the converter version is 28 or higher"
|
|
},
|
|
"functionSelector": "d260529c",
|
|
"id": 9325,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "isV28OrHigher",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9318,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "9837:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9321,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9320,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9325,
|
|
"src": "9861:4:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 9319,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9861:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "9860:6:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "9815:82:8",
|
|
"stateMutability": "pure",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13271
|
|
],
|
|
"body": {
|
|
"id": 9344,
|
|
"nodeType": "Block",
|
|
"src": "10419:51:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9342,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 9340,
|
|
"name": "conversionWhitelist",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9033,
|
|
"src": "10430:19:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IWhitelist_$22917",
|
|
"typeString": "contract IWhitelist"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 9341,
|
|
"name": "_whitelist",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9328,
|
|
"src": "10452:10:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IWhitelist_$22917",
|
|
"typeString": "contract IWhitelist"
|
|
}
|
|
},
|
|
"src": "10430:32:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IWhitelist_$22917",
|
|
"typeString": "contract IWhitelist"
|
|
}
|
|
},
|
|
"id": 9343,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "10430:32:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9326,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "9905:357:8",
|
|
"text": " @dev allows the owner to update & enable the conversion whitelist contract address\n when set, only addresses that are whitelisted are actually allowed to use the converter\n note that the whitelist check is actually done by the BancorNetwork contract\n @param _whitelist address of a whitelist contract"
|
|
},
|
|
"functionSelector": "4af80f0e",
|
|
"id": 9345,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 9332,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9331,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "10366:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "10366:9:8"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9336,
|
|
"name": "_whitelist",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9328,
|
|
"src": "10401:10:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IWhitelist_$22917",
|
|
"typeString": "contract IWhitelist"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IWhitelist_$22917",
|
|
"typeString": "contract IWhitelist"
|
|
}
|
|
],
|
|
"id": 9335,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "10393:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 9334,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "10393:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9337,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "10393:19:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"id": 9338,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9333,
|
|
"name": "notThis",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22644,
|
|
"src": "10385:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_address_$",
|
|
"typeString": "modifier (address)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "10385:28:8"
|
|
}
|
|
],
|
|
"name": "setConversionWhitelist",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9330,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "10348:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9329,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9328,
|
|
"mutability": "mutable",
|
|
"name": "_whitelist",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9345,
|
|
"src": "10300:21:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IWhitelist_$22917",
|
|
"typeString": "contract IWhitelist"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9327,
|
|
"name": "IWhitelist",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22917,
|
|
"src": "10300:10:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IWhitelist_$22917",
|
|
"typeString": "contract IWhitelist"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "10299:23:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9339,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "10419:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "10268:202:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13200
|
|
],
|
|
"body": {
|
|
"id": 9361,
|
|
"nodeType": "Block",
|
|
"src": "10705:57:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 9359,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9352,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9030,
|
|
"src": "10723:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"id": 9353,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "owner",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22838,
|
|
"src": "10723:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
|
|
"typeString": "function () view external returns (address)"
|
|
}
|
|
},
|
|
"id": 9354,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "10723:14:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9357,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "10749:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ConverterBase_$10039",
|
|
"typeString": "contract ConverterBase"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_ConverterBase_$10039",
|
|
"typeString": "contract ConverterBase"
|
|
}
|
|
],
|
|
"id": 9356,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "10741:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 9355,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "10741:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9358,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "10741:13:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "10723:31:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"functionReturnParameters": 9351,
|
|
"id": 9360,
|
|
"nodeType": "Return",
|
|
"src": "10716:38:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9346,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "10478:157:8",
|
|
"text": " @dev returns true if the converter is active, false otherwise\n @return true if the converter is active, false otherwise"
|
|
},
|
|
"functionSelector": "22f3e2d4",
|
|
"id": 9362,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "isActive",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9348,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "10681:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9347,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "10658:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9351,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9350,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9362,
|
|
"src": "10699:4:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 9349,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "10699:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "10698:6:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "10641:121:8",
|
|
"stateMutability": "view",
|
|
"virtual": true,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13258
|
|
],
|
|
"body": {
|
|
"id": 9380,
|
|
"nodeType": "Block",
|
|
"src": "11256:54:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9377,
|
|
"name": "_newOwner",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9365,
|
|
"src": "11292:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9374,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9030,
|
|
"src": "11267:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"id": 9376,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "transferOwnership",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22843,
|
|
"src": "11267:24:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
|
|
"typeString": "function (address) external"
|
|
}
|
|
},
|
|
"id": 9378,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "11267:35:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9379,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "11267:35:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9363,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "10770:336:8",
|
|
"text": " @dev transfers the anchor ownership\n the new owner needs to accept the transfer\n can only be called by the converter upgrder while the upgrader is the owner\n note that prior to version 28, you should use 'transferAnchorOwnership' instead\n @param _newOwner new token owner"
|
|
},
|
|
"functionSelector": "67b6d57c",
|
|
"id": 9381,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 9369,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9368,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "11207:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "11207:9:8"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9371,
|
|
"name": "CONVERTER_UPGRADER",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21542,
|
|
"src": "11231:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"id": 9372,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9370,
|
|
"name": "only",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21577,
|
|
"src": "11226:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_bytes32_$",
|
|
"typeString": "modifier (bytes32)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "11226:24:8"
|
|
}
|
|
],
|
|
"name": "transferAnchorOwnership",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9367,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "11189:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9366,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9365,
|
|
"mutability": "mutable",
|
|
"name": "_newOwner",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9381,
|
|
"src": "11145:17:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 9364,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "11145:7:8",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "11144:19:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9373,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "11256:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "11112:198:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13261
|
|
],
|
|
"body": {
|
|
"id": 9404,
|
|
"nodeType": "Block",
|
|
"src": "11700:209:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
},
|
|
"id": 9392,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 9389,
|
|
"name": "reserveTokenCount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9561,
|
|
"src": "11781:17:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint16_$",
|
|
"typeString": "function () view returns (uint16)"
|
|
}
|
|
},
|
|
"id": 9390,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "11781:19:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 9391,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "11803:1:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "11781:23:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f524553455256455f434f554e54",
|
|
"id": 9393,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "11806:27:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\""
|
|
},
|
|
"value": "ERR_INVALID_RESERVE_COUNT"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\""
|
|
}
|
|
],
|
|
"id": 9388,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "11773:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9394,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "11773:61:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9395,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "11773:61:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9396,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9030,
|
|
"src": "11845:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"id": 9398,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "acceptOwnership",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22846,
|
|
"src": "11845:22:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
|
|
"typeString": "function () external"
|
|
}
|
|
},
|
|
"id": 9399,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "11845:24:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9400,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "11845:24:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 9401,
|
|
"name": "syncReserveBalances",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9871,
|
|
"src": "11880:19:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
|
|
"typeString": "function ()"
|
|
}
|
|
},
|
|
"id": 9402,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "11880:21:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9403,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "11880:21:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9382,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "11318:309:8",
|
|
"text": " @dev accepts ownership of the anchor after an ownership transfer\n most converters are also activated as soon as they accept the anchor ownership\n can only be called by the contract owner\n note that prior to version 28, you should use 'acceptTokenOwnership' instead"
|
|
},
|
|
"functionSelector": "cdc91c69",
|
|
"id": 9405,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 9386,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9385,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "11690:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "11690:9:8"
|
|
}
|
|
],
|
|
"name": "acceptAnchorOwnership",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9384,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "11681:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9383,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "11663:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9387,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "11700:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "11633:276:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": true,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9425,
|
|
"nodeType": "Block",
|
|
"src": "12315:62:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9420,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9408,
|
|
"src": "12348:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9421,
|
|
"name": "_to",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9410,
|
|
"src": "12356:3:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9422,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9412,
|
|
"src": "12361:7:8",
|
|
"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"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9417,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9030,
|
|
"src": "12326:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"id": 9419,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "withdrawTokens",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22906,
|
|
"src": "12326:21:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (contract IERC20Token,address,uint256) external"
|
|
}
|
|
},
|
|
"id": 9423,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "12326:43:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9424,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "12326:43:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9406,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "11917:297:8",
|
|
"text": " @dev withdraws tokens held by the anchor and sends them to an account\n can only be called by the owner\n @param _token ERC20 token contract address\n @param _to account to receive the new amount\n @param _amount amount to withdraw"
|
|
},
|
|
"functionSelector": "395900d4",
|
|
"id": 9426,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 9415,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9414,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "12305:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "12305:9:8"
|
|
}
|
|
],
|
|
"name": "withdrawFromAnchor",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9413,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9408,
|
|
"mutability": "mutable",
|
|
"name": "_token",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9426,
|
|
"src": "12248:18:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9407,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "12248:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9410,
|
|
"mutability": "mutable",
|
|
"name": "_to",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9426,
|
|
"src": "12268:11:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 9409,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "12268:7:8",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9412,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9426,
|
|
"src": "12281:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9411,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "12281:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "12247:50:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9416,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "12315:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "12220:157:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13266
|
|
],
|
|
"body": {
|
|
"id": 9451,
|
|
"nodeType": "Block",
|
|
"src": "12655:199:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"id": 9438,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9436,
|
|
"name": "_conversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9429,
|
|
"src": "12674:14:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9437,
|
|
"name": "maxConversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9047,
|
|
"src": "12692:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"src": "12674:34:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f434f4e56455253494f4e5f464545",
|
|
"id": 9439,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "12710:28:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_ae729833ea0b2cfd1b35fa1d075ae330e76860b5ab276fa04bde88b85e5c4d00",
|
|
"typeString": "literal_string \"ERR_INVALID_CONVERSION_FEE\""
|
|
},
|
|
"value": "ERR_INVALID_CONVERSION_FEE"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_ae729833ea0b2cfd1b35fa1d075ae330e76860b5ab276fa04bde88b85e5c4d00",
|
|
"typeString": "literal_string \"ERR_INVALID_CONVERSION_FEE\""
|
|
}
|
|
],
|
|
"id": 9435,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "12666:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9440,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "12666:73:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9441,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "12666:73:8"
|
|
},
|
|
{
|
|
"eventCall": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9443,
|
|
"name": "conversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9051,
|
|
"src": "12775:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9444,
|
|
"name": "_conversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9429,
|
|
"src": "12790:14:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
],
|
|
"id": 9442,
|
|
"name": "ConversionFeeUpdate",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9096,
|
|
"src": "12755:19:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_event_nonpayable$_t_uint32_$_t_uint32_$returns$__$",
|
|
"typeString": "function (uint32,uint32)"
|
|
}
|
|
},
|
|
"id": 9445,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "12755:50:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9446,
|
|
"nodeType": "EmitStatement",
|
|
"src": "12750:55:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9449,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 9447,
|
|
"name": "conversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9051,
|
|
"src": "12816:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 9448,
|
|
"name": "_conversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9429,
|
|
"src": "12832:14:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"src": "12816:30:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"id": 9450,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "12816:30:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9427,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "12385:189:8",
|
|
"text": " @dev updates the current conversion fee\n can only be called by the contract owner\n @param _conversionFee new conversion fee, represented in ppm"
|
|
},
|
|
"functionSelector": "ecbca55d",
|
|
"id": 9452,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 9433,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9432,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "12645:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "12645:9:8"
|
|
}
|
|
],
|
|
"name": "setConversionFee",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9431,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "12636:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9430,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9429,
|
|
"mutability": "mutable",
|
|
"name": "_conversionFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9452,
|
|
"src": "12606:21:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9428,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "12606:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "12605:23:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9434,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "12655:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "12580:274:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13280,
|
|
22574
|
|
],
|
|
"body": {
|
|
"id": 9509,
|
|
"nodeType": "Block",
|
|
"src": "13506:559:8",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
9470
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 9470,
|
|
"mutability": "mutable",
|
|
"name": "converterUpgrader",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9509,
|
|
"src": "13517:25:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 9469,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "13517:7:8",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 9474,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9472,
|
|
"name": "CONVERTER_UPGRADER",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21542,
|
|
"src": "13555:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
],
|
|
"id": 9471,
|
|
"name": "addressOf",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21718,
|
|
"src": "13545:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
|
|
"typeString": "function (bytes32) view returns (address)"
|
|
}
|
|
},
|
|
"id": 9473,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "13545:29:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "13517:57:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 9488,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 9484,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9480,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "!",
|
|
"prefix": true,
|
|
"src": "13764:23:8",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9476,
|
|
"name": "reserves",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9040,
|
|
"src": "13765:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve storage ref)"
|
|
}
|
|
},
|
|
"id": 9478,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9477,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9455,
|
|
"src": "13774:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "13765:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage",
|
|
"typeString": "struct ConverterBase.Reserve storage ref"
|
|
}
|
|
},
|
|
"id": 9479,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isSet",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9022,
|
|
"src": "13765:22:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "||",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9483,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "!",
|
|
"prefix": true,
|
|
"src": "13791:11:8",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 9481,
|
|
"name": "isActive",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9362,
|
|
"src": "13792:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
|
|
"typeString": "function () view returns (bool)"
|
|
}
|
|
},
|
|
"id": 9482,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "13792:10:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "13764:38:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "||",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 9487,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9485,
|
|
"name": "owner",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21728,
|
|
"src": "13806:5:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9486,
|
|
"name": "converterUpgrader",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9470,
|
|
"src": "13815:17:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "13806:26:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "13764:68:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f4143434553535f44454e494544",
|
|
"id": 9489,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "13834:19:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666",
|
|
"typeString": "literal_string \"ERR_ACCESS_DENIED\""
|
|
},
|
|
"value": "ERR_ACCESS_DENIED"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666",
|
|
"typeString": "literal_string \"ERR_ACCESS_DENIED\""
|
|
}
|
|
],
|
|
"id": 9475,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "13756:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9490,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "13756:98:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9491,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "13756:98:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9495,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9455,
|
|
"src": "13886:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9496,
|
|
"name": "_to",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9457,
|
|
"src": "13894:3:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9497,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9459,
|
|
"src": "13899:7:8",
|
|
"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"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9492,
|
|
"name": "super",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -25,
|
|
"src": "13865:5:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_super$_ConverterBase_$10039",
|
|
"typeString": "contract super ConverterBase"
|
|
}
|
|
},
|
|
"id": 9494,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "withdrawTokens",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22574,
|
|
"src": "13865:20:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (contract IERC20Token,address,uint256)"
|
|
}
|
|
},
|
|
"id": 9498,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "13865:42:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9499,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "13865:42:8"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9500,
|
|
"name": "reserves",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9040,
|
|
"src": "13994:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve storage ref)"
|
|
}
|
|
},
|
|
"id": 9502,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9501,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9455,
|
|
"src": "14003:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "13994:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage",
|
|
"typeString": "struct ConverterBase.Reserve storage ref"
|
|
}
|
|
},
|
|
"id": 9503,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isSet",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9022,
|
|
"src": "13994:22:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 9508,
|
|
"nodeType": "IfStatement",
|
|
"src": "13990:67:8",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9505,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9455,
|
|
"src": "14050:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 9504,
|
|
"name": "syncReserveBalance",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9844,
|
|
"src": "14031:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$returns$__$",
|
|
"typeString": "function (contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 9506,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14031:26:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9507,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "14031:26:8"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9453,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "12862:462:8",
|
|
"text": " @dev withdraws tokens held by the converter and sends them to an account\n can only be called by the owner\n note that reserve tokens can only be withdrawn by the owner while the converter is inactive\n unless the owner is the converter upgrader contract\n @param _token ERC20 token contract address\n @param _to account to receive the new amount\n @param _amount amount to withdraw"
|
|
},
|
|
"functionSelector": "5e35359e",
|
|
"id": 9510,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 9465,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9464,
|
|
"name": "protected",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22231,
|
|
"src": "13472:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "13472:9:8"
|
|
},
|
|
{
|
|
"arguments": null,
|
|
"id": 9467,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9466,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "13491:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "13491:9:8"
|
|
}
|
|
],
|
|
"name": "withdrawTokens",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9463,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [
|
|
{
|
|
"contractScope": null,
|
|
"id": 9461,
|
|
"name": "IConverter",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13340,
|
|
"src": "13438:10:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
{
|
|
"contractScope": null,
|
|
"id": 9462,
|
|
"name": "TokenHolder",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22575,
|
|
"src": "13450:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_TokenHolder_$22575",
|
|
"typeString": "contract TokenHolder"
|
|
}
|
|
}
|
|
],
|
|
"src": "13429:33:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9460,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9455,
|
|
"mutability": "mutable",
|
|
"name": "_token",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9510,
|
|
"src": "13354:18:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9454,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "13354:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9457,
|
|
"mutability": "mutable",
|
|
"name": "_to",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9510,
|
|
"src": "13374:11:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 9456,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "13374:7:8",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9459,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9510,
|
|
"src": "13387:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9458,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "13387:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "13353:50:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9468,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "13506:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "13330:735:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9547,
|
|
"nodeType": "Block",
|
|
"src": "14324:338:8",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
9517
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 9517,
|
|
"mutability": "mutable",
|
|
"name": "converterUpgrader",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9547,
|
|
"src": "14335:36:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterUpgrader_$13660",
|
|
"typeString": "contract IConverterUpgrader"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9516,
|
|
"name": "IConverterUpgrader",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13660,
|
|
"src": "14335:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterUpgrader_$13660",
|
|
"typeString": "contract IConverterUpgrader"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 9523,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9520,
|
|
"name": "CONVERTER_UPGRADER",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21542,
|
|
"src": "14403:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
],
|
|
"id": 9519,
|
|
"name": "addressOf",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21718,
|
|
"src": "14393:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
|
|
"typeString": "function (bytes32) view returns (address)"
|
|
}
|
|
},
|
|
"id": 9521,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14393:29:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 9518,
|
|
"name": "IConverterUpgrader",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 13660,
|
|
"src": "14374:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IConverterUpgrader_$13660_$",
|
|
"typeString": "type(contract IConverterUpgrader)"
|
|
}
|
|
},
|
|
"id": 9522,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14374:49:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterUpgrader_$13660",
|
|
"typeString": "contract IConverterUpgrader"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "14335:88:8"
|
|
},
|
|
{
|
|
"eventCall": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 9525,
|
|
"name": "converterType",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9242,
|
|
"src": "14492:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$__$returns$_t_uint16_$",
|
|
"typeString": "function () pure returns (uint16)"
|
|
}
|
|
},
|
|
"id": 9526,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14492:15:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9527,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9030,
|
|
"src": "14509:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "66616c7365",
|
|
"id": 9528,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "14517:5:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "false"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
],
|
|
"id": 9524,
|
|
"name": "Activation",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9063,
|
|
"src": "14481:10:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_event_nonpayable$_t_uint16_$_t_contract$_IConverterAnchor_$13349_$_t_bool_$returns$__$",
|
|
"typeString": "function (uint16,contract IConverterAnchor,bool)"
|
|
}
|
|
},
|
|
"id": 9529,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14481:42:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9530,
|
|
"nodeType": "EmitStatement",
|
|
"src": "14476:47:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9534,
|
|
"name": "converterUpgrader",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9517,
|
|
"src": "14562:17:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterUpgrader_$13660",
|
|
"typeString": "contract IConverterUpgrader"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverterUpgrader_$13660",
|
|
"typeString": "contract IConverterUpgrader"
|
|
}
|
|
],
|
|
"id": 9533,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "14554:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 9532,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "14554:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9535,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14554:26:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 9531,
|
|
"name": "transferOwnership",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21787,
|
|
"src": "14536:17:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
|
|
"typeString": "function (address)"
|
|
}
|
|
},
|
|
"id": 9536,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14536:45:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9537,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "14536:45:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9541,
|
|
"name": "version",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9027,
|
|
"src": "14618:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9538,
|
|
"name": "converterUpgrader",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9517,
|
|
"src": "14592:17:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterUpgrader_$13660",
|
|
"typeString": "contract IConverterUpgrader"
|
|
}
|
|
},
|
|
"id": 9540,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "upgrade",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 13659,
|
|
"src": "14592:25:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_uint16_$returns$__$",
|
|
"typeString": "function (uint16) external"
|
|
}
|
|
},
|
|
"id": 9542,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14592:34:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9543,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "14592:34:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 9544,
|
|
"name": "acceptOwnership",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21817,
|
|
"src": "14637:15:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
|
|
"typeString": "function ()"
|
|
}
|
|
},
|
|
"id": 9545,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14637:17:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9546,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "14637:17:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9511,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "14073:209:8",
|
|
"text": " @dev upgrades the converter to the latest version\n can only be called by the owner\n note that the owner needs to call acceptOwnership on the new converter after the upgrade"
|
|
},
|
|
"functionSelector": "d55ec697",
|
|
"id": 9548,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 9514,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9513,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "14314:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "14314:9:8"
|
|
}
|
|
],
|
|
"name": "upgrade",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9512,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "14304:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9515,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "14324:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "14288:374:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9560,
|
|
"nodeType": "Block",
|
|
"src": "14940:54:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9556,
|
|
"name": "reserveTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9036,
|
|
"src": "14965:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_contract$_IERC20Token_$21127_$dyn_storage",
|
|
"typeString": "contract IERC20Token[] storage ref"
|
|
}
|
|
},
|
|
"id": 9557,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "14965:20:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 9555,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "14958:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_uint16_$",
|
|
"typeString": "type(uint16)"
|
|
},
|
|
"typeName": {
|
|
"id": 9554,
|
|
"name": "uint16",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "14958:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9558,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14958:28:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
},
|
|
"functionReturnParameters": 9553,
|
|
"id": 9559,
|
|
"nodeType": "Return",
|
|
"src": "14951:35:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9549,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "14670:206:8",
|
|
"text": " @dev returns the number of reserve tokens defined\n note that prior to version 17, you should use 'connectorTokenCount' instead\n @return number of reserve tokens"
|
|
},
|
|
"functionSelector": "9b99a8e2",
|
|
"id": 9561,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "reserveTokenCount",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9550,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "14908:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9553,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9552,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9561,
|
|
"src": "14932:6:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
},
|
|
"typeName": {
|
|
"id": 9551,
|
|
"name": "uint16",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "14932:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "14931:8:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "14882:112:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13292
|
|
],
|
|
"body": {
|
|
"id": 9663,
|
|
"nodeType": "Block",
|
|
"src": "15545:544:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 9604,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 9598,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9592,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9564,
|
|
"src": "15599:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 9591,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "15591:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 9590,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "15591:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9593,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "15591:15:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9596,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9030,
|
|
"src": "15618:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
],
|
|
"id": 9595,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "15610:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 9594,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "15610:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9597,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "15610:15:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "15591:34:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9603,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "!",
|
|
"prefix": true,
|
|
"src": "15629:23:8",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9599,
|
|
"name": "reserves",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9040,
|
|
"src": "15630:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve storage ref)"
|
|
}
|
|
},
|
|
"id": 9601,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9600,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9564,
|
|
"src": "15639:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "15630:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage",
|
|
"typeString": "struct ConverterBase.Reserve storage ref"
|
|
}
|
|
},
|
|
"id": 9602,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isSet",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9022,
|
|
"src": "15630:22:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "15591:61:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f52455345525645",
|
|
"id": 9605,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "15654:21:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE\""
|
|
},
|
|
"value": "ERR_INVALID_RESERVE"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE\""
|
|
}
|
|
],
|
|
"id": 9589,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "15583:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9606,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "15583:93:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9607,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "15583:93:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"id": 9613,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9609,
|
|
"name": "_weight",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9566,
|
|
"src": "15695:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"id": 9612,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9610,
|
|
"name": "PPM_RESOLUTION",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9007,
|
|
"src": "15706:14:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9611,
|
|
"name": "reserveRatio",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9043,
|
|
"src": "15723:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"src": "15706:29:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"src": "15695:40:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f524553455256455f574549474854",
|
|
"id": 9614,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "15737:28:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\""
|
|
},
|
|
"value": "ERR_INVALID_RESERVE_WEIGHT"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\""
|
|
}
|
|
],
|
|
"id": 9608,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "15687:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9615,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "15687:79:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9616,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "15687:79:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
},
|
|
"id": 9625,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 9618,
|
|
"name": "reserveTokenCount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9561,
|
|
"src": "15785:17:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint16_$",
|
|
"typeString": "function () view returns (uint16)"
|
|
}
|
|
},
|
|
"id": 9619,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "15785:19:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9623,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "-",
|
|
"prefix": true,
|
|
"src": "15814:2:8",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 9622,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "15815:1:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_minus_1_by_1",
|
|
"typeString": "int_const -1"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_minus_1_by_1",
|
|
"typeString": "int_const -1"
|
|
}
|
|
],
|
|
"id": 9621,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "15807:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_uint16_$",
|
|
"typeString": "type(uint16)"
|
|
},
|
|
"typeName": {
|
|
"id": 9620,
|
|
"name": "uint16",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "15807:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9624,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "15807:10:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
},
|
|
"src": "15785:32:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f524553455256455f434f554e54",
|
|
"id": 9626,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "15819:27:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\""
|
|
},
|
|
"value": "ERR_INVALID_RESERVE_COUNT"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\""
|
|
}
|
|
],
|
|
"id": 9617,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "15777:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9627,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "15777:70:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9628,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "15777:70:8"
|
|
},
|
|
{
|
|
"assignments": [
|
|
9630
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 9630,
|
|
"mutability": "mutable",
|
|
"name": "newReserve",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9663,
|
|
"src": "15860:26:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "storage",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage_ptr",
|
|
"typeString": "struct ConverterBase.Reserve"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9629,
|
|
"name": "Reserve",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 9023,
|
|
"src": "15860:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage_ptr",
|
|
"typeString": "struct ConverterBase.Reserve"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 9634,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9631,
|
|
"name": "reserves",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9040,
|
|
"src": "15889:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve storage ref)"
|
|
}
|
|
},
|
|
"id": 9633,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9632,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9564,
|
|
"src": "15898:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "15889:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage",
|
|
"typeString": "struct ConverterBase.Reserve storage ref"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "15860:45:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9639,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9635,
|
|
"name": "newReserve",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9630,
|
|
"src": "15916:10:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage_ptr",
|
|
"typeString": "struct ConverterBase.Reserve storage pointer"
|
|
}
|
|
},
|
|
"id": 9637,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "balance",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9014,
|
|
"src": "15916:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 9638,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "15937:1:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "15916:22:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 9640,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "15916:22:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9645,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9641,
|
|
"name": "newReserve",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9630,
|
|
"src": "15949:10:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage_ptr",
|
|
"typeString": "struct ConverterBase.Reserve storage pointer"
|
|
}
|
|
},
|
|
"id": 9643,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "weight",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9016,
|
|
"src": "15949:17:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 9644,
|
|
"name": "_weight",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9566,
|
|
"src": "15969:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"src": "15949:27:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"id": 9646,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "15949:27:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9651,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9647,
|
|
"name": "newReserve",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9630,
|
|
"src": "15987:10:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage_ptr",
|
|
"typeString": "struct ConverterBase.Reserve storage pointer"
|
|
}
|
|
},
|
|
"id": 9649,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "isSet",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9022,
|
|
"src": "15987:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "74727565",
|
|
"id": 9650,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "16006:4:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "true"
|
|
},
|
|
"src": "15987:23:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 9652,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "15987:23:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9656,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9564,
|
|
"src": "16040:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9653,
|
|
"name": "reserveTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9036,
|
|
"src": "16021:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_contract$_IERC20Token_$21127_$dyn_storage",
|
|
"typeString": "contract IERC20Token[] storage ref"
|
|
}
|
|
},
|
|
"id": 9655,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "push",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "16021:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_arraypush_nonpayable$_t_contract$_IERC20Token_$21127_$returns$__$",
|
|
"typeString": "function (contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 9657,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "16021:26:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9658,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "16021:26:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9661,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 9659,
|
|
"name": "reserveRatio",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9043,
|
|
"src": "16058:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "+=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 9660,
|
|
"name": "_weight",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9566,
|
|
"src": "16074:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"src": "16058:23:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"id": 9662,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "16058:23:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9562,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "15002:278:8",
|
|
"text": " @dev defines a new reserve token for the converter\n can only be called by the owner while the converter is inactive\n @param _token address of the reserve token\n @param _weight reserve weight, represented in ppm, 1-1000000"
|
|
},
|
|
"functionSelector": "6a49d2c4",
|
|
"id": 9664,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 9570,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9569,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "15402:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "15402:9:8"
|
|
},
|
|
{
|
|
"arguments": null,
|
|
"id": 9572,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9571,
|
|
"name": "inactive",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9151,
|
|
"src": "15421:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "15421:8:8"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9576,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9564,
|
|
"src": "15460:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 9575,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "15452:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 9574,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "15452:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9577,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "15452:15:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"id": 9578,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9573,
|
|
"name": "validAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22618,
|
|
"src": "15439:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_address_$",
|
|
"typeString": "modifier (address)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "15439:29:8"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9582,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9564,
|
|
"src": "15494:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 9581,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "15486:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 9580,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "15486:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9583,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "15486:15:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"id": 9584,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9579,
|
|
"name": "notThis",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22644,
|
|
"src": "15478:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_address_$",
|
|
"typeString": "modifier (address)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "15478:24:8"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9586,
|
|
"name": "_weight",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9566,
|
|
"src": "15531:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
}
|
|
],
|
|
"id": 9587,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9585,
|
|
"name": "validReserveWeight",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9219,
|
|
"src": "15512:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_uint32_$",
|
|
"typeString": "modifier (uint32)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "15512:27:8"
|
|
}
|
|
],
|
|
"name": "addReserve",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9568,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "15384:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9567,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9564,
|
|
"mutability": "mutable",
|
|
"name": "_token",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9664,
|
|
"src": "15306:18:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9563,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "15306:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9566,
|
|
"mutability": "mutable",
|
|
"name": "_weight",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9664,
|
|
"src": "15326:14:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9565,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "15326:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "15305:36:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9588,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "15545:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "15286:803:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": true,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9680,
|
|
"nodeType": "Block",
|
|
"src": "16448:56:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9675,
|
|
"name": "reserves",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9040,
|
|
"src": "16466:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve storage ref)"
|
|
}
|
|
},
|
|
"id": 9677,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9676,
|
|
"name": "_reserveToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9667,
|
|
"src": "16475:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "16466:23:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage",
|
|
"typeString": "struct ConverterBase.Reserve storage ref"
|
|
}
|
|
},
|
|
"id": 9678,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "weight",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9016,
|
|
"src": "16466:30:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"functionReturnParameters": 9674,
|
|
"id": 9679,
|
|
"nodeType": "Return",
|
|
"src": "16459:37:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9665,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "16097:197:8",
|
|
"text": " @dev returns the reserve's weight\n added in version 28\n @param _reserveToken reserve token contract address\n @return reserve weight"
|
|
},
|
|
"functionSelector": "1cfab290",
|
|
"id": 9681,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9670,
|
|
"name": "_reserveToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9667,
|
|
"src": "16402:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"id": 9671,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9669,
|
|
"name": "validReserve",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9172,
|
|
"src": "16389:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "modifier (contract IERC20Token)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "16389:27:8"
|
|
}
|
|
],
|
|
"name": "reserveWeight",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9668,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9667,
|
|
"mutability": "mutable",
|
|
"name": "_reserveToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9681,
|
|
"src": "16323:25:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9666,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "16323:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "16322:27:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9674,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9673,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9681,
|
|
"src": "16435:6:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9672,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "16435:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "16434:8:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "16300:204:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13250
|
|
],
|
|
"body": {
|
|
"id": 9698,
|
|
"nodeType": "Block",
|
|
"src": "16941:57:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9693,
|
|
"name": "reserves",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9040,
|
|
"src": "16959:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve storage ref)"
|
|
}
|
|
},
|
|
"id": 9695,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9694,
|
|
"name": "_reserveToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9684,
|
|
"src": "16968:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "16959:23:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage",
|
|
"typeString": "struct ConverterBase.Reserve storage ref"
|
|
}
|
|
},
|
|
"id": 9696,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "balance",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9014,
|
|
"src": "16959:31:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 9692,
|
|
"id": 9697,
|
|
"nodeType": "Return",
|
|
"src": "16952:38:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9682,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "16512:255:8",
|
|
"text": " @dev returns the reserve's balance\n note that prior to version 17, you should use 'getConnectorBalance' instead\n @param _reserveToken reserve token contract address\n @return reserve balance"
|
|
},
|
|
"functionSelector": "dc8de379",
|
|
"id": 9699,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9688,
|
|
"name": "_reserveToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9684,
|
|
"src": "16894:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"id": 9689,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9687,
|
|
"name": "validReserve",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9172,
|
|
"src": "16881:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "modifier (contract IERC20Token)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "16881:27:8"
|
|
}
|
|
],
|
|
"name": "reserveBalance",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9686,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "16849:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9685,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9684,
|
|
"mutability": "mutable",
|
|
"name": "_reserveToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9699,
|
|
"src": "16797:25:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9683,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "16797:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "16796:27:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9692,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9691,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9699,
|
|
"src": "16927:7:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9690,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "16927:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "16926:9:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "16773:225:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9710,
|
|
"nodeType": "Block",
|
|
"src": "17228:61:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9705,
|
|
"name": "reserves",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9040,
|
|
"src": "17246:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve storage ref)"
|
|
}
|
|
},
|
|
"id": 9707,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9706,
|
|
"name": "ETH_RESERVE_ADDRESS",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9012,
|
|
"src": "17255:19:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "17246:29:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage",
|
|
"typeString": "struct ConverterBase.Reserve storage ref"
|
|
}
|
|
},
|
|
"id": 9708,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isSet",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9022,
|
|
"src": "17246:35:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"functionReturnParameters": 9704,
|
|
"id": 9709,
|
|
"nodeType": "Return",
|
|
"src": "17239:42:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9700,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "17006:164:8",
|
|
"text": " @dev checks whether or not the converter has an ETH reserve\n @return true if the converter has an ETH reserve, false otherwise"
|
|
},
|
|
"functionSelector": "12c2aca4",
|
|
"id": 9711,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "hasETHReserve",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9701,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "17198:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9704,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9703,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9711,
|
|
"src": "17222:4:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 9702,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17222:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "17221:6:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "17176:113:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13228
|
|
],
|
|
"body": {
|
|
"id": 9772,
|
|
"nodeType": "Block",
|
|
"src": "18137:517:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"id": 9736,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9734,
|
|
"name": "_sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9714,
|
|
"src": "18183:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9735,
|
|
"name": "_targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9716,
|
|
"src": "18199:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"src": "18183:28:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f53414d455f534f555243455f544152474554",
|
|
"id": 9737,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "18213:24:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_238302f57e4481fe6a4c903e930919efa155f2aabe0b5da37da1448cea5fd634",
|
|
"typeString": "literal_string \"ERR_SAME_SOURCE_TARGET\""
|
|
},
|
|
"value": "ERR_SAME_SOURCE_TARGET"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_238302f57e4481fe6a4c903e930919efa155f2aabe0b5da37da1448cea5fd634",
|
|
"typeString": "literal_string \"ERR_SAME_SOURCE_TARGET\""
|
|
}
|
|
],
|
|
"id": 9733,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "18175:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9738,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18175:63:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9739,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "18175:63:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 9760,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 9749,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9743,
|
|
"name": "conversionWhitelist",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9033,
|
|
"src": "18366:19:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IWhitelist_$22917",
|
|
"typeString": "contract IWhitelist"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IWhitelist_$22917",
|
|
"typeString": "contract IWhitelist"
|
|
}
|
|
],
|
|
"id": 9742,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "18358:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 9741,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "18358:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9744,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18358:28:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 9747,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "18398:1:8",
|
|
"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": 9746,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "18390:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 9745,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "18390:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9748,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18390:10:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "18358:42:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "||",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"components": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 9758,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9752,
|
|
"name": "_trader",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9720,
|
|
"src": "18456:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9750,
|
|
"name": "conversionWhitelist",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9033,
|
|
"src": "18422:19:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IWhitelist_$22917",
|
|
"typeString": "contract IWhitelist"
|
|
}
|
|
},
|
|
"id": 9751,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isWhitelisted",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22916,
|
|
"src": "18422:33:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
|
|
"typeString": "function (address) view external returns (bool)"
|
|
}
|
|
},
|
|
"id": 9753,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18422:42:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9756,
|
|
"name": "_beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9722,
|
|
"src": "18502:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9754,
|
|
"name": "conversionWhitelist",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9033,
|
|
"src": "18468:19:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IWhitelist_$22917",
|
|
"typeString": "contract IWhitelist"
|
|
}
|
|
},
|
|
"id": 9755,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isWhitelisted",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22916,
|
|
"src": "18468:33:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
|
|
"typeString": "function (address) view external returns (bool)"
|
|
}
|
|
},
|
|
"id": 9757,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18468:47:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "18422:93:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"id": 9759,
|
|
"isConstant": false,
|
|
"isInlineArray": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "TupleExpression",
|
|
"src": "18421:95:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "18358:158:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f4e4f545f57484954454c4953544544",
|
|
"id": 9761,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "18535:21:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_d03711a645ac13b3887baa10c28f347997e96617340d7ffae036e653d4c59185",
|
|
"typeString": "literal_string \"ERR_NOT_WHITELISTED\""
|
|
},
|
|
"value": "ERR_NOT_WHITELISTED"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_d03711a645ac13b3887baa10c28f347997e96617340d7ffae036e653d4c59185",
|
|
"typeString": "literal_string \"ERR_NOT_WHITELISTED\""
|
|
}
|
|
],
|
|
"id": 9740,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "18350:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9762,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18350:207:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9763,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "18350:207:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9765,
|
|
"name": "_sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9714,
|
|
"src": "18587:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9766,
|
|
"name": "_targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9716,
|
|
"src": "18601:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9767,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9718,
|
|
"src": "18615:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9768,
|
|
"name": "_trader",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9720,
|
|
"src": "18624:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9769,
|
|
"name": "_beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9722,
|
|
"src": "18633:12:8",
|
|
"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",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"id": 9764,
|
|
"name": "doConvert",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9789,
|
|
"src": "18577:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_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) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 9770,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18577:69:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 9732,
|
|
"id": 9771,
|
|
"nodeType": "Return",
|
|
"src": "18570:76:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9712,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "17297:569:8",
|
|
"text": " @dev converts a specific amount of source tokens to target tokens\n can only be called by the bancor network contract\n @param _sourceToken source ERC20 token\n @param _targetToken target ERC20 token\n @param _amount amount of tokens to convert (in units of the source token)\n @param _trader address of the caller who executed the conversion\n @param _beneficiary wallet to receive the conversion result\n @return amount of tokens received (in units of the target token)"
|
|
},
|
|
"functionSelector": "e8dc12ff",
|
|
"id": 9773,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 9726,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9725,
|
|
"name": "protected",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22231,
|
|
"src": "18065:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "18065:9:8"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9728,
|
|
"name": "BANCOR_NETWORK",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21530,
|
|
"src": "18089:14:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"id": 9729,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9727,
|
|
"name": "only",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21577,
|
|
"src": "18084:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_bytes32_$",
|
|
"typeString": "modifier (bytes32)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "18084:20:8"
|
|
}
|
|
],
|
|
"name": "convert",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9724,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "18030:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9723,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9714,
|
|
"mutability": "mutable",
|
|
"name": "_sourceToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9773,
|
|
"src": "17889:24:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9713,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "17889:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9716,
|
|
"mutability": "mutable",
|
|
"name": "_targetToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9773,
|
|
"src": "17915:24:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9715,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "17915:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9718,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9773,
|
|
"src": "17941:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9717,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17941:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9720,
|
|
"mutability": "mutable",
|
|
"name": "_trader",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9773,
|
|
"src": "17958:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 9719,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17958:7:8",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9722,
|
|
"mutability": "mutable",
|
|
"name": "_beneficiary",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9773,
|
|
"src": "17975:28:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"typeName": {
|
|
"id": 9721,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17975:15:8",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "17888:116:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9732,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9731,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9773,
|
|
"src": "18123:7:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9730,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "18123:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "18122:9:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "17872:782:8",
|
|
"stateMutability": "payable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": null,
|
|
"documentation": {
|
|
"id": 9774,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "18662:615:8",
|
|
"text": " @dev converts a specific amount of source tokens to target tokens\n called by ConverterBase and allows the inherited contracts to implement custom conversion logic\n @param _sourceToken source ERC20 token\n @param _targetToken target ERC20 token\n @param _amount amount of tokens to convert (in units of the source token)\n @param _trader address of the caller who executed the conversion\n @param _beneficiary wallet to receive the conversion result\n @return amount of tokens received (in units of the target token)"
|
|
},
|
|
"id": 9789,
|
|
"implemented": false,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "doConvert",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9785,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9776,
|
|
"mutability": "mutable",
|
|
"name": "_sourceToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9789,
|
|
"src": "19312:24:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9775,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "19312:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9778,
|
|
"mutability": "mutable",
|
|
"name": "_targetToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9789,
|
|
"src": "19347:24:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9777,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "19347:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9780,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9789,
|
|
"src": "19382:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9779,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "19382:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9782,
|
|
"mutability": "mutable",
|
|
"name": "_trader",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9789,
|
|
"src": "19408:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 9781,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "19408:7:8",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9784,
|
|
"mutability": "mutable",
|
|
"name": "_beneficiary",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9789,
|
|
"src": "19434:28:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"typeName": {
|
|
"id": 9783,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "19434:15:8",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "19301:162:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9788,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9787,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9789,
|
|
"src": "19517:7:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9786,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "19517:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "19516:9:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "19283:243:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": true,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9805,
|
|
"nodeType": "Block",
|
|
"src": "19790:78:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9802,
|
|
"name": "PPM_RESOLUTION",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9007,
|
|
"src": "19845:14:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9799,
|
|
"name": "conversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9051,
|
|
"src": "19826:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9797,
|
|
"name": "_targetAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9792,
|
|
"src": "19808:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 9798,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "mul",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22327,
|
|
"src": "19808:17:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 9800,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "19808:32:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 9801,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "div",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22353,
|
|
"src": "19808:36:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 9803,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "19808:52:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 9796,
|
|
"id": 9804,
|
|
"nodeType": "Return",
|
|
"src": "19801:59:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9790,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "19534:173:8",
|
|
"text": " @dev returns the conversion fee for a given target amount\n @param _targetAmount target amount\n @return conversion fee"
|
|
},
|
|
"id": 9806,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "calculateFee",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9793,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9792,
|
|
"mutability": "mutable",
|
|
"name": "_targetAmount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9806,
|
|
"src": "19735:21:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9791,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "19735:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "19734:23:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9796,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9795,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9806,
|
|
"src": "19781:7:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9794,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "19781:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "19780:9:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "19713:155:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9843,
|
|
"nodeType": "Block",
|
|
"src": "20153:230:8",
|
|
"statements": [
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"id": 9817,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9815,
|
|
"name": "_reserveToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9809,
|
|
"src": "20168:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9816,
|
|
"name": "ETH_RESERVE_ADDRESS",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9012,
|
|
"src": "20185:19:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"src": "20168:36:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9840,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9829,
|
|
"name": "reserves",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9040,
|
|
"src": "20303:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve storage ref)"
|
|
}
|
|
},
|
|
"id": 9831,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9830,
|
|
"name": "_reserveToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9809,
|
|
"src": "20312:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "20303:23:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage",
|
|
"typeString": "struct ConverterBase.Reserve storage ref"
|
|
}
|
|
},
|
|
"id": 9832,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "balance",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9014,
|
|
"src": "20303:31:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9837,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "20369:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ConverterBase_$10039",
|
|
"typeString": "contract ConverterBase"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_ConverterBase_$10039",
|
|
"typeString": "contract ConverterBase"
|
|
}
|
|
],
|
|
"id": 9836,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "20361:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 9835,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "20361:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9838,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "20361:13:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9833,
|
|
"name": "_reserveToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9809,
|
|
"src": "20337:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"id": 9834,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "balanceOf",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21088,
|
|
"src": "20337:23:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
|
|
"typeString": "function (address) view external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 9839,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "20337:38:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "20303:72:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 9841,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "20303:72:8"
|
|
},
|
|
"id": 9842,
|
|
"nodeType": "IfStatement",
|
|
"src": "20164:211:8",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9827,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9818,
|
|
"name": "reserves",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9040,
|
|
"src": "20219:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve storage ref)"
|
|
}
|
|
},
|
|
"id": 9820,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9819,
|
|
"name": "_reserveToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9809,
|
|
"src": "20228:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "20219:23:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage",
|
|
"typeString": "struct ConverterBase.Reserve storage ref"
|
|
}
|
|
},
|
|
"id": 9821,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "balance",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9014,
|
|
"src": "20219:31:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9824,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "20261:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ConverterBase_$10039",
|
|
"typeString": "contract ConverterBase"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_ConverterBase_$10039",
|
|
"typeString": "contract ConverterBase"
|
|
}
|
|
],
|
|
"id": 9823,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "20253:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 9822,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "20253:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9825,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "20253:13:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"id": 9826,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "balance",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "20253:21:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "20219:55:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 9828,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "20219:55:8"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9807,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "19876:179:8",
|
|
"text": " @dev syncs the stored reserve balance for a given reserve with the real reserve balance\n @param _reserveToken address of the reserve token"
|
|
},
|
|
"id": 9844,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9812,
|
|
"name": "_reserveToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9809,
|
|
"src": "20138:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"id": 9813,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9811,
|
|
"name": "validReserve",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9172,
|
|
"src": "20125:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "modifier (contract IERC20Token)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "20125:27:8"
|
|
}
|
|
],
|
|
"name": "syncReserveBalance",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9810,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9809,
|
|
"mutability": "mutable",
|
|
"name": "_reserveToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9844,
|
|
"src": "20089:25:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9808,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "20089:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "20088:27:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9814,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "20153:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "20061:322:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9870,
|
|
"nodeType": "Block",
|
|
"src": "20496:165:8",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
9849
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 9849,
|
|
"mutability": "mutable",
|
|
"name": "reserveCount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9870,
|
|
"src": "20507:20:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9848,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "20507:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 9852,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9850,
|
|
"name": "reserveTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9036,
|
|
"src": "20530:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_contract$_IERC20Token_$21127_$dyn_storage",
|
|
"typeString": "contract IERC20Token[] storage ref"
|
|
}
|
|
},
|
|
"id": 9851,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "20530:20:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "20507:43:8"
|
|
},
|
|
{
|
|
"body": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9864,
|
|
"name": "reserveTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9036,
|
|
"src": "20636:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_contract$_IERC20Token_$21127_$dyn_storage",
|
|
"typeString": "contract IERC20Token[] storage ref"
|
|
}
|
|
},
|
|
"id": 9866,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9865,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9854,
|
|
"src": "20650:1:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "20636:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 9863,
|
|
"name": "syncReserveBalance",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9844,
|
|
"src": "20617:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$returns$__$",
|
|
"typeString": "function (contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 9867,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "20617:36:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9868,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "20617:36:8"
|
|
},
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 9859,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9857,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9854,
|
|
"src": "20581:1:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9858,
|
|
"name": "reserveCount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9849,
|
|
"src": "20585:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "20581:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 9869,
|
|
"initializationExpression": {
|
|
"assignments": [
|
|
9854
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 9854,
|
|
"mutability": "mutable",
|
|
"name": "i",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9869,
|
|
"src": "20566:9:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9853,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "20566:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 9856,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 9855,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "20578:1:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "20566:13:8"
|
|
},
|
|
"loopExpression": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9861,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "++",
|
|
"prefix": false,
|
|
"src": "20599:3:8",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9860,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9854,
|
|
"src": "20599:1:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 9862,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "20599:3:8"
|
|
},
|
|
"nodeType": "ForStatement",
|
|
"src": "20561:92:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9845,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "20391:59:8",
|
|
"text": " @dev syncs all stored reserve balances"
|
|
},
|
|
"id": 9871,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "syncReserveBalances",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9846,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "20484:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9847,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "20496:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "20456:205:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9907,
|
|
"nodeType": "Block",
|
|
"src": "21324:518:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 9892,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9888,
|
|
"name": "_feeAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9884,
|
|
"src": "21705:10:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1",
|
|
"typeString": "int_const 5789...(69 digits omitted)...9968"
|
|
},
|
|
"id": 9891,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 9889,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "21718:1:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "**",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "323535",
|
|
"id": 9890,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "21723:3:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_255_by_1",
|
|
"typeString": "int_const 255"
|
|
},
|
|
"value": "255"
|
|
},
|
|
"src": "21718:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1",
|
|
"typeString": "int_const 5789...(69 digits omitted)...9968"
|
|
}
|
|
},
|
|
"src": "21705:21:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
],
|
|
"id": 9887,
|
|
"name": "assert",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -3,
|
|
"src": "21698:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
|
|
"typeString": "function (bool) pure"
|
|
}
|
|
},
|
|
"id": 9893,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "21698:29:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9894,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "21698:29:8"
|
|
},
|
|
{
|
|
"eventCall": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9896,
|
|
"name": "_sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9874,
|
|
"src": "21754:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9897,
|
|
"name": "_targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9876,
|
|
"src": "21768:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9898,
|
|
"name": "_trader",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9878,
|
|
"src": "21782:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9899,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9880,
|
|
"src": "21791:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9900,
|
|
"name": "_returnAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9882,
|
|
"src": "21800:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9903,
|
|
"name": "_feeAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9884,
|
|
"src": "21822:10:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 9902,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "21815:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_int256_$",
|
|
"typeString": "type(int256)"
|
|
},
|
|
"typeName": {
|
|
"id": 9901,
|
|
"name": "int256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "21815:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9904,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "21815:18:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int256",
|
|
"typeString": "int256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_int256",
|
|
"typeString": "int256"
|
|
}
|
|
],
|
|
"id": 9895,
|
|
"name": "Conversion",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9078,
|
|
"src": "21743:10:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_event_nonpayable$_t_contract$_IERC20Token_$21127_$_t_contract$_IERC20Token_$21127_$_t_address_$_t_uint256_$_t_uint256_$_t_int256_$returns$__$",
|
|
"typeString": "function (contract IERC20Token,contract IERC20Token,address,uint256,uint256,int256)"
|
|
}
|
|
},
|
|
"id": 9905,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "21743:91:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9906,
|
|
"nodeType": "EmitStatement",
|
|
"src": "21738:96:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9872,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "20669:409:8",
|
|
"text": " @dev helper, dispatches the Conversion event\n @param _sourceToken source ERC20 token\n @param _targetToken target ERC20 token\n @param _trader address of the caller who executed the conversion\n @param _amount amount purchased/sold (in the source token)\n @param _returnAmount amount returned (in the target token)"
|
|
},
|
|
"id": 9908,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "dispatchConversionEvent",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9885,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9874,
|
|
"mutability": "mutable",
|
|
"name": "_sourceToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9908,
|
|
"src": "21127:24:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9873,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "21127:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9876,
|
|
"mutability": "mutable",
|
|
"name": "_targetToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9908,
|
|
"src": "21162:24:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9875,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "21162:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9878,
|
|
"mutability": "mutable",
|
|
"name": "_trader",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9908,
|
|
"src": "21197:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 9877,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "21197:7:8",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9880,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9908,
|
|
"src": "21223:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9879,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "21223:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9882,
|
|
"mutability": "mutable",
|
|
"name": "_returnAmount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9908,
|
|
"src": "21249:21:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9881,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "21249:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9884,
|
|
"mutability": "mutable",
|
|
"name": "_feeAmount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9908,
|
|
"src": "21281:18:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9883,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "21281:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "21116:184:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9886,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "21324:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "21084:758:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13297
|
|
],
|
|
"body": {
|
|
"id": 9917,
|
|
"nodeType": "Block",
|
|
"src": "22030:32:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9915,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9030,
|
|
"src": "22048:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"functionReturnParameters": 9914,
|
|
"id": 9916,
|
|
"nodeType": "Return",
|
|
"src": "22041:13:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9909,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "21850:109:8",
|
|
"text": " @dev deprecated since version 28, backward compatibility - use only for earlier versions"
|
|
},
|
|
"functionSelector": "fc0c546a",
|
|
"id": 9918,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "token",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9911,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "21994:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9910,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "21979:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9914,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9913,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9918,
|
|
"src": "22012:16:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9912,
|
|
"name": "IConverterAnchor",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13349,
|
|
"src": "22012:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "22011:18:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "21965:97:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13302
|
|
],
|
|
"body": {
|
|
"id": 9931,
|
|
"nodeType": "Block",
|
|
"src": "22213:53:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9928,
|
|
"name": "_newOwner",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9921,
|
|
"src": "22248:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 9927,
|
|
"name": "transferAnchorOwnership",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9381,
|
|
"src": "22224:23:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
|
|
"typeString": "function (address)"
|
|
}
|
|
},
|
|
"id": 9929,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "22224:34:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9930,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "22224:34:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9919,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "22070:60:8",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "21e6b53d",
|
|
"id": 9932,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 9925,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9924,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "22203:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "22203:9:8"
|
|
}
|
|
],
|
|
"name": "transferTokenOwnership",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9923,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "22194:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9922,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9921,
|
|
"mutability": "mutable",
|
|
"name": "_newOwner",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9932,
|
|
"src": "22168:17:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 9920,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "22168:7:8",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "22167:19:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9926,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "22213:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "22136:130:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13305
|
|
],
|
|
"body": {
|
|
"id": 9942,
|
|
"nodeType": "Block",
|
|
"src": "22398:42:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 9939,
|
|
"name": "acceptAnchorOwnership",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9405,
|
|
"src": "22409:21:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
|
|
"typeString": "function ()"
|
|
}
|
|
},
|
|
"id": 9940,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "22409:23:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9941,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "22409:23:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9933,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "22274:60:8",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "38a5e016",
|
|
"id": 9943,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 9937,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9936,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "22388:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "22388:9:8"
|
|
}
|
|
],
|
|
"name": "acceptTokenOwnership",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9935,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "22379:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9934,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "22369:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9938,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "22398:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "22340:100:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13320
|
|
],
|
|
"body": {
|
|
"id": 9976,
|
|
"nodeType": "Block",
|
|
"src": "22621:141:8",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
9961
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 9961,
|
|
"mutability": "mutable",
|
|
"name": "reserve",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9976,
|
|
"src": "22632:22:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_memory_ptr",
|
|
"typeString": "struct ConverterBase.Reserve"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9960,
|
|
"name": "Reserve",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 9023,
|
|
"src": "22632:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage_ptr",
|
|
"typeString": "struct ConverterBase.Reserve"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 9965,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9962,
|
|
"name": "reserves",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9040,
|
|
"src": "22657:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve storage ref)"
|
|
}
|
|
},
|
|
"id": 9964,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9963,
|
|
"name": "_address",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9946,
|
|
"src": "22666:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "22657:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage",
|
|
"typeString": "struct ConverterBase.Reserve storage ref"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "22632:43:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"components": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9966,
|
|
"name": "reserve",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9961,
|
|
"src": "22693:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_memory_ptr",
|
|
"typeString": "struct ConverterBase.Reserve memory"
|
|
}
|
|
},
|
|
"id": 9967,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "balance",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9014,
|
|
"src": "22693:15:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9968,
|
|
"name": "reserve",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9961,
|
|
"src": "22710:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_memory_ptr",
|
|
"typeString": "struct ConverterBase.Reserve memory"
|
|
}
|
|
},
|
|
"id": 9969,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "weight",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9016,
|
|
"src": "22710:14:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "66616c7365",
|
|
"id": 9970,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "22726:5:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "false"
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "66616c7365",
|
|
"id": 9971,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "22733:5:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "false"
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9972,
|
|
"name": "reserve",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9961,
|
|
"src": "22740:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_memory_ptr",
|
|
"typeString": "struct ConverterBase.Reserve memory"
|
|
}
|
|
},
|
|
"id": 9973,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isSet",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9022,
|
|
"src": "22740:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"id": 9974,
|
|
"isConstant": false,
|
|
"isInlineArray": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "TupleExpression",
|
|
"src": "22692:62:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint32_$_t_bool_$_t_bool_$_t_bool_$",
|
|
"typeString": "tuple(uint256,uint32,bool,bool,bool)"
|
|
}
|
|
},
|
|
"functionReturnParameters": 9959,
|
|
"id": 9975,
|
|
"nodeType": "Return",
|
|
"src": "22686:68:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9944,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "22448:60:8",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "0e53aae9",
|
|
"id": 9977,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "connectors",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9948,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "22568:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9947,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9946,
|
|
"mutability": "mutable",
|
|
"name": "_address",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9977,
|
|
"src": "22534:20:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9945,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "22534:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "22533:22:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9959,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9950,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9977,
|
|
"src": "22586:7:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9949,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "22586:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9952,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9977,
|
|
"src": "22595:6:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9951,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "22595:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9954,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9977,
|
|
"src": "22603:4:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 9953,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "22603:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9956,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9977,
|
|
"src": "22609:4:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 9955,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "22609:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9958,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9977,
|
|
"src": "22615:4:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 9957,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "22615:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "22585:35:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "22514:248:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13334
|
|
],
|
|
"body": {
|
|
"id": 9991,
|
|
"nodeType": "Block",
|
|
"src": "22920:61:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9986,
|
|
"name": "ConverterBase",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 10039,
|
|
"src": "22938:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_ConverterBase_$10039_$",
|
|
"typeString": "type(contract ConverterBase)"
|
|
}
|
|
},
|
|
"id": 9987,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "reserveTokens",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9036,
|
|
"src": "22938:27:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_contract$_IERC20Token_$21127_$dyn_storage",
|
|
"typeString": "contract IERC20Token[] storage ref"
|
|
}
|
|
},
|
|
"id": 9989,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9988,
|
|
"name": "_index",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9980,
|
|
"src": "22966:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "22938:35:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"functionReturnParameters": 9985,
|
|
"id": 9990,
|
|
"nodeType": "Return",
|
|
"src": "22931:42:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9978,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "22770:60:8",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "19b64015",
|
|
"id": 9992,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "connectorTokens",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9982,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "22889:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9981,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9980,
|
|
"mutability": "mutable",
|
|
"name": "_index",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9992,
|
|
"src": "22861:14:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9979,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "22861:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "22860:16:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9985,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9984,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9992,
|
|
"src": "22907:11:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9983,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "22907:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "22906:13:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "22836:145:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13339
|
|
],
|
|
"body": {
|
|
"id": 10002,
|
|
"nodeType": "Block",
|
|
"src": "23124:45:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 9999,
|
|
"name": "reserveTokenCount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9561,
|
|
"src": "23142:17:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint16_$",
|
|
"typeString": "function () view returns (uint16)"
|
|
}
|
|
},
|
|
"id": 10000,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "23142:19:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
},
|
|
"functionReturnParameters": 9998,
|
|
"id": 10001,
|
|
"nodeType": "Return",
|
|
"src": "23135:26:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9993,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "22989:60:8",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "71f52bf3",
|
|
"id": 10003,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "connectorTokenCount",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9995,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "23098:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9994,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "23083:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9998,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9997,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10003,
|
|
"src": "23116:6:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
},
|
|
"typeName": {
|
|
"id": 9996,
|
|
"name": "uint16",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "23116:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "23115:8:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "23055:114:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13327
|
|
],
|
|
"body": {
|
|
"id": 10016,
|
|
"nodeType": "Block",
|
|
"src": "23340:57:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 10013,
|
|
"name": "_connectorToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 10006,
|
|
"src": "23373:15:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 10012,
|
|
"name": "reserveBalance",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9699,
|
|
"src": "23358:14:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$21127_$returns$_t_uint256_$",
|
|
"typeString": "function (contract IERC20Token) view returns (uint256)"
|
|
}
|
|
},
|
|
"id": 10014,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "23358:31:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 10011,
|
|
"id": 10015,
|
|
"nodeType": "Return",
|
|
"src": "23351:38:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 10004,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "23177:60:8",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "d8959512",
|
|
"id": 10017,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "getConnectorBalance",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 10008,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "23313:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 10007,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 10006,
|
|
"mutability": "mutable",
|
|
"name": "_connectorToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10017,
|
|
"src": "23272:27:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 10005,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "23272:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "23271:29:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 10011,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 10010,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10017,
|
|
"src": "23331:7:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 10009,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "23331:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "23330:9:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "23243:154:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 10037,
|
|
"nodeType": "Block",
|
|
"src": "23598:81:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 10032,
|
|
"name": "_sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 10020,
|
|
"src": "23635:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 10033,
|
|
"name": "_targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 10022,
|
|
"src": "23649:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 10034,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 10024,
|
|
"src": "23663:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 10031,
|
|
"name": "targetAmountAndFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9256,
|
|
"src": "23616:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$21127_$_t_contract$_IERC20Token_$21127_$_t_uint256_$returns$_t_uint256_$_t_uint256_$",
|
|
"typeString": "function (contract IERC20Token,contract IERC20Token,uint256) view returns (uint256,uint256)"
|
|
}
|
|
},
|
|
"id": 10035,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "23616:55:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
|
|
"typeString": "tuple(uint256,uint256)"
|
|
}
|
|
},
|
|
"functionReturnParameters": 10030,
|
|
"id": 10036,
|
|
"nodeType": "Return",
|
|
"src": "23609:62:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 10018,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "23405:60:8",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "1e1401f8",
|
|
"id": 10038,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "getReturn",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 10025,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 10020,
|
|
"mutability": "mutable",
|
|
"name": "_sourceToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10038,
|
|
"src": "23490:24:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 10019,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "23490:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10022,
|
|
"mutability": "mutable",
|
|
"name": "_targetToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10038,
|
|
"src": "23516:24:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 10021,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "23516:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10024,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10038,
|
|
"src": "23542:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 10023,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "23542:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "23489:69:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 10030,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 10027,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10038,
|
|
"src": "23580:7:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 10026,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "23580:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10029,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10038,
|
|
"src": "23589:7:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 10028,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "23589:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "23579:18:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "23471:208:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
}
|
|
],
|
|
"scope": 10040,
|
|
"src": "1648:22034:8"
|
|
}
|
|
],
|
|
"src": "52:23632:8"
|
|
},
|
|
"legacyAST": {
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/ConverterBase.sol",
|
|
"exportedSymbols": {
|
|
"ConverterBase": [
|
|
10039
|
|
]
|
|
},
|
|
"id": 10040,
|
|
"license": "SEE LICENSE IN LICENSE",
|
|
"nodeType": "SourceUnit",
|
|
"nodes": [
|
|
{
|
|
"id": 8979,
|
|
"literals": [
|
|
"solidity",
|
|
"0.6",
|
|
".12"
|
|
],
|
|
"nodeType": "PragmaDirective",
|
|
"src": "52:23:8"
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/IConverter.sol",
|
|
"file": "./interfaces/IConverter.sol",
|
|
"id": 8980,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 10040,
|
|
"sourceUnit": 13341,
|
|
"src": "77:37:8",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/IConverterAnchor.sol",
|
|
"file": "./interfaces/IConverterAnchor.sol",
|
|
"id": 8981,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 10040,
|
|
"sourceUnit": 13350,
|
|
"src": "116:43:8",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/IConverterUpgrader.sol",
|
|
"file": "./interfaces/IConverterUpgrader.sol",
|
|
"id": 8982,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 10040,
|
|
"sourceUnit": 13661,
|
|
"src": "161:45:8",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/IBancorFormula.sol",
|
|
"file": "./interfaces/IBancorFormula.sol",
|
|
"id": 8983,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 10040,
|
|
"sourceUnit": 13178,
|
|
"src": "208:41:8",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/ContractRegistryClient.sol",
|
|
"file": "../utility/ContractRegistryClient.sol",
|
|
"id": 8984,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 10040,
|
|
"sourceUnit": 21720,
|
|
"src": "251:47:8",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/ReentrancyGuard.sol",
|
|
"file": "../utility/ReentrancyGuard.sol",
|
|
"id": 8985,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 10040,
|
|
"sourceUnit": 22243,
|
|
"src": "300:40:8",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/SafeMath.sol",
|
|
"file": "../utility/SafeMath.sol",
|
|
"id": 8986,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 10040,
|
|
"sourceUnit": 22355,
|
|
"src": "342:33:8",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/TokenHandler.sol",
|
|
"file": "../utility/TokenHandler.sol",
|
|
"id": 8987,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 10040,
|
|
"sourceUnit": 22527,
|
|
"src": "377:37:8",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/TokenHolder.sol",
|
|
"file": "../utility/TokenHolder.sol",
|
|
"id": 8988,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 10040,
|
|
"sourceUnit": 22576,
|
|
"src": "416:36:8",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/token/interfaces/IEtherToken.sol",
|
|
"file": "../token/interfaces/IEtherToken.sol",
|
|
"id": 8989,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 10040,
|
|
"sourceUnit": 21154,
|
|
"src": "454:45:8",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/bancorx/interfaces/IBancorX.sol",
|
|
"file": "../bancorx/interfaces/IBancorX.sol",
|
|
"id": 8990,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 10040,
|
|
"sourceUnit": 3552,
|
|
"src": "501:44:8",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"abstract": true,
|
|
"baseContracts": [
|
|
{
|
|
"arguments": null,
|
|
"baseName": {
|
|
"contractScope": null,
|
|
"id": 8992,
|
|
"name": "IConverter",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13340,
|
|
"src": "1683:10:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
"id": 8993,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "1683:10:8"
|
|
},
|
|
{
|
|
"arguments": null,
|
|
"baseName": {
|
|
"contractScope": null,
|
|
"id": 8994,
|
|
"name": "TokenHandler",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22526,
|
|
"src": "1695:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_TokenHandler_$22526",
|
|
"typeString": "contract TokenHandler"
|
|
}
|
|
},
|
|
"id": 8995,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "1695:12:8"
|
|
},
|
|
{
|
|
"arguments": null,
|
|
"baseName": {
|
|
"contractScope": null,
|
|
"id": 8996,
|
|
"name": "TokenHolder",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22575,
|
|
"src": "1709:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_TokenHolder_$22575",
|
|
"typeString": "contract TokenHolder"
|
|
}
|
|
},
|
|
"id": 8997,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "1709:11:8"
|
|
},
|
|
{
|
|
"arguments": null,
|
|
"baseName": {
|
|
"contractScope": null,
|
|
"id": 8998,
|
|
"name": "ContractRegistryClient",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21719,
|
|
"src": "1722:22:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ContractRegistryClient_$21719",
|
|
"typeString": "contract ContractRegistryClient"
|
|
}
|
|
},
|
|
"id": 8999,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "1722:22:8"
|
|
},
|
|
{
|
|
"arguments": null,
|
|
"baseName": {
|
|
"contractScope": null,
|
|
"id": 9000,
|
|
"name": "ReentrancyGuard",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22242,
|
|
"src": "1746:15:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ReentrancyGuard_$22242",
|
|
"typeString": "contract ReentrancyGuard"
|
|
}
|
|
},
|
|
"id": 9001,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "1746:15:8"
|
|
}
|
|
],
|
|
"contractDependencies": [
|
|
13340,
|
|
21719,
|
|
21818,
|
|
22242,
|
|
22526,
|
|
22575,
|
|
22661,
|
|
22847,
|
|
22907
|
|
],
|
|
"contractKind": "contract",
|
|
"documentation": {
|
|
"id": 8991,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "549:1097:8",
|
|
"text": " @dev ConverterBase\n The converter contains the main logic for conversions between different ERC20 tokens.\n It is also the upgradable part of the mechanism (note that upgrades are opt-in).\n The anchor must be set on construction and cannot be changed afterwards.\n Wrappers are provided for some of the anchor's functions, for easier access.\n Once the converter accepts ownership of the anchor, it becomes the anchor's sole controller\n and can execute any of its functions.\n To upgrade the converter, anchor ownership must be transferred to a new converter, along with\n any relevant data.\n Note that the converter can transfer anchor ownership to a new converter that\n doesn't allow upgrades anymore, for finalizing the relationship between the converter\n and the anchor.\n Converter types (defined as uint16 type) -\n 0 = liquid token converter\n 1 = liquidity pool v1 converter\n 2 = liquidity pool v2 converter\n Note that converters don't currently support tokens with transfer fees."
|
|
},
|
|
"fullyImplemented": false,
|
|
"id": 10039,
|
|
"linearizedBaseContracts": [
|
|
10039,
|
|
22242,
|
|
21719,
|
|
22575,
|
|
22661,
|
|
21818,
|
|
22526,
|
|
22907,
|
|
13340,
|
|
22847
|
|
],
|
|
"name": "ConverterBase",
|
|
"nodeType": "ContractDefinition",
|
|
"nodes": [
|
|
{
|
|
"id": 9004,
|
|
"libraryName": {
|
|
"contractScope": null,
|
|
"id": 9002,
|
|
"name": "SafeMath",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22354,
|
|
"src": "1775:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_SafeMath_$22354",
|
|
"typeString": "library SafeMath"
|
|
}
|
|
},
|
|
"nodeType": "UsingForDirective",
|
|
"src": "1769:27:8",
|
|
"typeName": {
|
|
"id": 9003,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1788:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"constant": true,
|
|
"id": 9007,
|
|
"mutability": "constant",
|
|
"name": "PPM_RESOLUTION",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10039,
|
|
"src": "1804:49:8",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9005,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1804:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31303030303030",
|
|
"id": 9006,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1846:7:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1000000_by_1",
|
|
"typeString": "int_const 1000000"
|
|
},
|
|
"value": "1000000"
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"id": 9012,
|
|
"mutability": "constant",
|
|
"name": "ETH_RESERVE_ADDRESS",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10039,
|
|
"src": "1860:107:8",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9008,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "1860:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545",
|
|
"id": 9010,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1924:42:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"id": 9009,
|
|
"name": "IERC20Token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21127,
|
|
"src": "1912:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "type(contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 9011,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1912:55:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"canonicalName": "ConverterBase.Reserve",
|
|
"id": 9023,
|
|
"members": [
|
|
{
|
|
"constant": false,
|
|
"id": 9014,
|
|
"mutability": "mutable",
|
|
"name": "balance",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9023,
|
|
"src": "2002:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9013,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2002:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9016,
|
|
"mutability": "mutable",
|
|
"name": "weight",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9023,
|
|
"src": "2050:13:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9015,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2050:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9018,
|
|
"mutability": "mutable",
|
|
"name": "deprecated1",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9023,
|
|
"src": "2128:16:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 9017,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2128:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9020,
|
|
"mutability": "mutable",
|
|
"name": "deprecated2",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9023,
|
|
"src": "2171:16:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 9019,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2171:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9022,
|
|
"mutability": "mutable",
|
|
"name": "isSet",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9023,
|
|
"src": "2214:10:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 9021,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2214:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"name": "Reserve",
|
|
"nodeType": "StructDefinition",
|
|
"scope": 10039,
|
|
"src": "1976:313:8",
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"documentation": {
|
|
"id": 9024,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "2297:40:8",
|
|
"text": " @dev version number"
|
|
},
|
|
"functionSelector": "54fd4d50",
|
|
"id": 9027,
|
|
"mutability": "constant",
|
|
"name": "version",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10039,
|
|
"src": "2343:35:8",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
},
|
|
"typeName": {
|
|
"id": 9025,
|
|
"name": "uint16",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2343:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"hexValue": "3339",
|
|
"id": 9026,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2376:2:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_39_by_1",
|
|
"typeString": "int_const 39"
|
|
},
|
|
"value": "39"
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13195
|
|
],
|
|
"constant": false,
|
|
"functionSelector": "d3fb73b4",
|
|
"id": 9030,
|
|
"mutability": "mutable",
|
|
"name": "anchor",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": {
|
|
"id": 9029,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "2411:8:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "2387:39:8",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9028,
|
|
"name": "IConverterAnchor",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13349,
|
|
"src": "2387:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13233
|
|
],
|
|
"constant": false,
|
|
"functionSelector": "c45d3d92",
|
|
"id": 9033,
|
|
"mutability": "mutable",
|
|
"name": "conversionWhitelist",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": {
|
|
"id": 9032,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "2491:8:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "2473:46:8",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IWhitelist_$22917",
|
|
"typeString": "contract IWhitelist"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9031,
|
|
"name": "IWhitelist",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22917,
|
|
"src": "2473:10:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IWhitelist_$22917",
|
|
"typeString": "contract IWhitelist"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"functionSelector": "d031370b",
|
|
"id": 9036,
|
|
"mutability": "mutable",
|
|
"name": "reserveTokens",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10039,
|
|
"src": "2613:34:8",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_contract$_IERC20Token_$21127_$dyn_storage",
|
|
"typeString": "contract IERC20Token[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"contractScope": null,
|
|
"id": 9034,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "2613:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"id": 9035,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "2613:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_contract$_IERC20Token_$21127_$dyn_storage_ptr",
|
|
"typeString": "contract IERC20Token[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"functionSelector": "d66bd524",
|
|
"id": 9040,
|
|
"mutability": "mutable",
|
|
"name": "reserves",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10039,
|
|
"src": "2754:48:8",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve)"
|
|
},
|
|
"typeName": {
|
|
"id": 9039,
|
|
"keyType": {
|
|
"contractScope": null,
|
|
"id": 9037,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "2763:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "Mapping",
|
|
"src": "2754:32:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve)"
|
|
},
|
|
"valueType": {
|
|
"contractScope": null,
|
|
"id": 9038,
|
|
"name": "Reserve",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 9023,
|
|
"src": "2778:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage_ptr",
|
|
"typeString": "struct ConverterBase.Reserve"
|
|
}
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"functionSelector": "0c7d5cd8",
|
|
"id": 9043,
|
|
"mutability": "mutable",
|
|
"name": "reserveRatio",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10039,
|
|
"src": "2899:30:8",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9041,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2899:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 9042,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2928:1:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13243
|
|
],
|
|
"constant": false,
|
|
"functionSelector": "94c275ad",
|
|
"id": 9047,
|
|
"mutability": "mutable",
|
|
"name": "maxConversionFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": {
|
|
"id": 9045,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "3055:8:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "3041:43:8",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9044,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3041:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 9046,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3083:1:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13238
|
|
],
|
|
"constant": false,
|
|
"functionSelector": "579cd3ca",
|
|
"id": 9051,
|
|
"mutability": "mutable",
|
|
"name": "conversionFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": {
|
|
"id": 9049,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "3306:8:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "3292:40:8",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9048,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3292:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 9050,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3331:1:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"functionSelector": "bf754558",
|
|
"id": 9054,
|
|
"mutability": "constant",
|
|
"name": "conversionsEnabled",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10039,
|
|
"src": "3417:46:8",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 9052,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3417:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"hexValue": "74727565",
|
|
"id": 9053,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3459:4:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "true"
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"documentation": {
|
|
"id": 9055,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "3514:260:8",
|
|
"text": " @dev triggered when the converter is activated\n @param _type converter type\n @param _anchor converter anchor\n @param _activated true if the converter was activated, false if it was deactivated"
|
|
},
|
|
"id": 9063,
|
|
"name": "Activation",
|
|
"nodeType": "EventDefinition",
|
|
"parameters": {
|
|
"id": 9062,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9057,
|
|
"indexed": true,
|
|
"mutability": "mutable",
|
|
"name": "_type",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9063,
|
|
"src": "3797:20:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
},
|
|
"typeName": {
|
|
"id": 9056,
|
|
"name": "uint16",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3797:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9059,
|
|
"indexed": true,
|
|
"mutability": "mutable",
|
|
"name": "_anchor",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9063,
|
|
"src": "3819:32:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9058,
|
|
"name": "IConverterAnchor",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13349,
|
|
"src": "3819:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9061,
|
|
"indexed": true,
|
|
"mutability": "mutable",
|
|
"name": "_activated",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9063,
|
|
"src": "3853:23:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 9060,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3853:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "3796:81:8"
|
|
},
|
|
"src": "3780:98:8"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"documentation": {
|
|
"id": 9064,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "3886:447:8",
|
|
"text": " @dev triggered when a conversion between two tokens occurs\n @param _fromToken source ERC20 token\n @param _toToken target ERC20 token\n @param _trader wallet that initiated the trade\n @param _amount amount converted, in the source token\n @param _return amount returned, minus conversion fee\n @param _conversionFee conversion fee"
|
|
},
|
|
"id": 9078,
|
|
"name": "Conversion",
|
|
"nodeType": "EventDefinition",
|
|
"parameters": {
|
|
"id": 9077,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9066,
|
|
"indexed": true,
|
|
"mutability": "mutable",
|
|
"name": "_fromToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9078,
|
|
"src": "4366:30:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9065,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "4366:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9068,
|
|
"indexed": true,
|
|
"mutability": "mutable",
|
|
"name": "_toToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9078,
|
|
"src": "4407:28:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9067,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "4407:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9070,
|
|
"indexed": true,
|
|
"mutability": "mutable",
|
|
"name": "_trader",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9078,
|
|
"src": "4446:23:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 9069,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4446:7:8",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9072,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9078,
|
|
"src": "4480:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9071,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4480:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9074,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "_return",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9078,
|
|
"src": "4506:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9073,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4506:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9076,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "_conversionFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9078,
|
|
"src": "4532:21:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int256",
|
|
"typeString": "int256"
|
|
},
|
|
"typeName": {
|
|
"id": 9075,
|
|
"name": "int256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4532:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int256",
|
|
"typeString": "int256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "4355:205:8"
|
|
},
|
|
"src": "4339:222:8"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"documentation": {
|
|
"id": 9079,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "4569:562:8",
|
|
"text": " @dev triggered when the rate between two tokens in the converter changes\n note that the event might be dispatched for rate updates between any two tokens in the converter\n note that prior to version 28, you should use the 'PriceDataUpdate' event instead\n @param _token1 address of the first token\n @param _token2 address of the second token\n @param _rateN rate of 1 unit of `_token1` in `_token2` (numerator)\n @param _rateD rate of 1 unit of `_token1` in `_token2` (denominator)"
|
|
},
|
|
"id": 9089,
|
|
"name": "TokenRateUpdate",
|
|
"nodeType": "EventDefinition",
|
|
"parameters": {
|
|
"id": 9088,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9081,
|
|
"indexed": true,
|
|
"mutability": "mutable",
|
|
"name": "_token1",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9089,
|
|
"src": "5169:27:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9080,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "5169:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9083,
|
|
"indexed": true,
|
|
"mutability": "mutable",
|
|
"name": "_token2",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9089,
|
|
"src": "5207:27:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9082,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "5207:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9085,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "_rateN",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9089,
|
|
"src": "5245:14:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9084,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5245:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9087,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "_rateD",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9089,
|
|
"src": "5270:14:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9086,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5270:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "5158:133:8"
|
|
},
|
|
"src": "5137:155:8"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"documentation": {
|
|
"id": 9090,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "5300:220:8",
|
|
"text": " @dev triggered when the conversion fee is updated\n @param _prevFee previous fee percentage, represented in ppm\n @param _newFee new fee percentage, represented in ppm"
|
|
},
|
|
"id": 9096,
|
|
"name": "ConversionFeeUpdate",
|
|
"nodeType": "EventDefinition",
|
|
"parameters": {
|
|
"id": 9095,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9092,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "_prevFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9096,
|
|
"src": "5552:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9091,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5552:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9094,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "_newFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9096,
|
|
"src": "5569:14:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9093,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5569:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "5551:33:8"
|
|
},
|
|
"src": "5526:59:8"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9126,
|
|
"nodeType": "Block",
|
|
"src": "6192:82:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9120,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 9118,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9030,
|
|
"src": "6203:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 9119,
|
|
"name": "_anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9099,
|
|
"src": "6212:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"src": "6203:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"id": 9121,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6203:16:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9124,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 9122,
|
|
"name": "maxConversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9047,
|
|
"src": "6230:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 9123,
|
|
"name": "_maxConversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9103,
|
|
"src": "6249:17:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"src": "6230:36:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"id": 9125,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6230:36:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9097,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "5593:313:8",
|
|
"text": " @dev used by sub-contracts to initialize a new converter\n @param _anchor anchor governed by the converter\n @param _registry address of a contract registry contract\n @param _maxConversionFee maximum conversion fee, represented in ppm"
|
|
},
|
|
"id": 9127,
|
|
"implemented": true,
|
|
"kind": "constructor",
|
|
"modifiers": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9108,
|
|
"name": "_anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9099,
|
|
"src": "6069:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
],
|
|
"id": 9107,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "6061:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 9106,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "6061:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9109,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6061:16:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"id": 9110,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9105,
|
|
"name": "validAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22618,
|
|
"src": "6048:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_address_$",
|
|
"typeString": "modifier (address)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "6048:30:8"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9112,
|
|
"name": "_registry",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9101,
|
|
"src": "6111:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IContractRegistry_$22831",
|
|
"typeString": "contract IContractRegistry"
|
|
}
|
|
}
|
|
],
|
|
"id": 9113,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9111,
|
|
"name": "ContractRegistryClient",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21719,
|
|
"src": "6088:22:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_ContractRegistryClient_$21719_$",
|
|
"typeString": "type(contract ContractRegistryClient)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "6088:33:8"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9115,
|
|
"name": "_maxConversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9103,
|
|
"src": "6168:17:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
}
|
|
],
|
|
"id": 9116,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9114,
|
|
"name": "validConversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9196,
|
|
"src": "6149:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_uint32_$",
|
|
"typeString": "modifier (uint32)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "6149:37:8"
|
|
}
|
|
],
|
|
"name": "",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9104,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9099,
|
|
"mutability": "mutable",
|
|
"name": "_anchor",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9127,
|
|
"src": "5934:24:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9098,
|
|
"name": "IConverterAnchor",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13349,
|
|
"src": "5934:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9101,
|
|
"mutability": "mutable",
|
|
"name": "_registry",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9127,
|
|
"src": "5969:27:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IContractRegistry_$22831",
|
|
"typeString": "contract IContractRegistry"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9100,
|
|
"name": "IContractRegistry",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22831,
|
|
"src": "5969:17:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IContractRegistry_$22831",
|
|
"typeString": "contract IContractRegistry"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9103,
|
|
"mutability": "mutable",
|
|
"name": "_maxConversionFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9127,
|
|
"src": "6007:24:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9102,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "6007:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "5923:115:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9117,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "6192:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "5912:362:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9133,
|
|
"nodeType": "Block",
|
|
"src": "6345:40:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 9129,
|
|
"name": "_active",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9144,
|
|
"src": "6356:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$__$",
|
|
"typeString": "function () view"
|
|
}
|
|
},
|
|
"id": 9130,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6356:9:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9131,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6356:9:8"
|
|
},
|
|
{
|
|
"id": 9132,
|
|
"nodeType": "PlaceholderStatement",
|
|
"src": "6376:1:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 9134,
|
|
"name": "active",
|
|
"nodeType": "ModifierDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9128,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "6342:2:8"
|
|
},
|
|
"src": "6327:58:8",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9143,
|
|
"nodeType": "Block",
|
|
"src": "6473:54:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 9138,
|
|
"name": "isActive",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9362,
|
|
"src": "6492:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
|
|
"typeString": "function () view returns (bool)"
|
|
}
|
|
},
|
|
"id": 9139,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6492:10:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e414354495645",
|
|
"id": 9140,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6504:14:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_a22dd8039fb80c8642cf17389b806c873aa9fbdbf3f2bd8746d8ce373ef50f9e",
|
|
"typeString": "literal_string \"ERR_INACTIVE\""
|
|
},
|
|
"value": "ERR_INACTIVE"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_a22dd8039fb80c8642cf17389b806c873aa9fbdbf3f2bd8746d8ce373ef50f9e",
|
|
"typeString": "literal_string \"ERR_INACTIVE\""
|
|
}
|
|
],
|
|
"id": 9137,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "6484:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9141,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6484:35:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9142,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6484:35:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 9144,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "_active",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9135,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "6456:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9136,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "6473:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "6440:87:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9150,
|
|
"nodeType": "Block",
|
|
"src": "6604:42:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 9146,
|
|
"name": "_inactive",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9162,
|
|
"src": "6615:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$__$",
|
|
"typeString": "function () view"
|
|
}
|
|
},
|
|
"id": 9147,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6615:11:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9148,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6615:11:8"
|
|
},
|
|
{
|
|
"id": 9149,
|
|
"nodeType": "PlaceholderStatement",
|
|
"src": "6637:1:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 9151,
|
|
"name": "inactive",
|
|
"nodeType": "ModifierDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9145,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "6601:2:8"
|
|
},
|
|
"src": "6584:62:8",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9161,
|
|
"nodeType": "Block",
|
|
"src": "6736:53:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9157,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "!",
|
|
"prefix": true,
|
|
"src": "6755:11:8",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 9155,
|
|
"name": "isActive",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9362,
|
|
"src": "6756:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
|
|
"typeString": "function () view returns (bool)"
|
|
}
|
|
},
|
|
"id": 9156,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6756:10:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f414354495645",
|
|
"id": 9158,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6768:12:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_181d3d32638945611c2cb46b623de141c5e74a32dcd850864f64837aa849ee3f",
|
|
"typeString": "literal_string \"ERR_ACTIVE\""
|
|
},
|
|
"value": "ERR_ACTIVE"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_181d3d32638945611c2cb46b623de141c5e74a32dcd850864f64837aa849ee3f",
|
|
"typeString": "literal_string \"ERR_ACTIVE\""
|
|
}
|
|
],
|
|
"id": 9154,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "6747:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9159,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6747:34:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9160,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6747:34:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 9162,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "_inactive",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9152,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "6719:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9153,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "6736:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "6701:88:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9171,
|
|
"nodeType": "Block",
|
|
"src": "6948:54:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9167,
|
|
"name": "_address",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9164,
|
|
"src": "6973:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 9166,
|
|
"name": "_validReserve",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9186,
|
|
"src": "6959:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$21127_$returns$__$",
|
|
"typeString": "function (contract IERC20Token) view"
|
|
}
|
|
},
|
|
"id": 9168,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6959:23:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9169,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6959:23:8"
|
|
},
|
|
{
|
|
"id": 9170,
|
|
"nodeType": "PlaceholderStatement",
|
|
"src": "6993:1:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 9172,
|
|
"name": "validReserve",
|
|
"nodeType": "ModifierDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9165,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9164,
|
|
"mutability": "mutable",
|
|
"name": "_address",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9172,
|
|
"src": "6926:20:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9163,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "6926:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "6925:22:8"
|
|
},
|
|
"src": "6904:98:8",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9185,
|
|
"nodeType": "Block",
|
|
"src": "7116:75:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9178,
|
|
"name": "reserves",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9040,
|
|
"src": "7135:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve storage ref)"
|
|
}
|
|
},
|
|
"id": 9180,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9179,
|
|
"name": "_address",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9174,
|
|
"src": "7144:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "7135:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage",
|
|
"typeString": "struct ConverterBase.Reserve storage ref"
|
|
}
|
|
},
|
|
"id": 9181,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isSet",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9022,
|
|
"src": "7135:24:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f52455345525645",
|
|
"id": 9182,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "7161:21:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE\""
|
|
},
|
|
"value": "ERR_INVALID_RESERVE"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE\""
|
|
}
|
|
],
|
|
"id": 9177,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "7127:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9183,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7127:56:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9184,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7127:56:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 9186,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "_validReserve",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9175,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9174,
|
|
"mutability": "mutable",
|
|
"name": "_address",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9186,
|
|
"src": "7080:20:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9173,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "7080:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "7079:22:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9176,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "7116:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "7057:134:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9195,
|
|
"nodeType": "Block",
|
|
"src": "7283:66:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9191,
|
|
"name": "_conversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9188,
|
|
"src": "7314:14:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
],
|
|
"id": 9190,
|
|
"name": "_validConversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9209,
|
|
"src": "7294:19:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint32_$returns$__$",
|
|
"typeString": "function (uint32) pure"
|
|
}
|
|
},
|
|
"id": 9192,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7294:35:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9193,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7294:35:8"
|
|
},
|
|
{
|
|
"id": 9194,
|
|
"nodeType": "PlaceholderStatement",
|
|
"src": "7340:1:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 9196,
|
|
"name": "validConversionFee",
|
|
"nodeType": "ModifierDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9189,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9188,
|
|
"mutability": "mutable",
|
|
"name": "_conversionFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9196,
|
|
"src": "7260:21:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9187,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "7260:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "7259:23:8"
|
|
},
|
|
"src": "7232:117:8",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9208,
|
|
"nodeType": "Block",
|
|
"src": "7470:90:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"id": 9204,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9202,
|
|
"name": "_conversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9198,
|
|
"src": "7489:14:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9203,
|
|
"name": "PPM_RESOLUTION",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9007,
|
|
"src": "7507:14:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"src": "7489:32:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f434f4e56455253494f4e5f464545",
|
|
"id": 9205,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "7523:28:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_ae729833ea0b2cfd1b35fa1d075ae330e76860b5ab276fa04bde88b85e5c4d00",
|
|
"typeString": "literal_string \"ERR_INVALID_CONVERSION_FEE\""
|
|
},
|
|
"value": "ERR_INVALID_CONVERSION_FEE"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_ae729833ea0b2cfd1b35fa1d075ae330e76860b5ab276fa04bde88b85e5c4d00",
|
|
"typeString": "literal_string \"ERR_INVALID_CONVERSION_FEE\""
|
|
}
|
|
],
|
|
"id": 9201,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "7481:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9206,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7481:71:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9207,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7481:71:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 9209,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "_validConversionFee",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9199,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9198,
|
|
"mutability": "mutable",
|
|
"name": "_conversionFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9209,
|
|
"src": "7433:21:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9197,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "7433:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "7432:23:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9200,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "7470:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "7404:156:8",
|
|
"stateMutability": "pure",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9218,
|
|
"nodeType": "Block",
|
|
"src": "7645:59:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9214,
|
|
"name": "_weight",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9211,
|
|
"src": "7676:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
],
|
|
"id": 9213,
|
|
"name": "_validReserveWeight",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9236,
|
|
"src": "7656:19:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint32_$returns$__$",
|
|
"typeString": "function (uint32) pure"
|
|
}
|
|
},
|
|
"id": 9215,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7656:28:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9216,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7656:28:8"
|
|
},
|
|
{
|
|
"id": 9217,
|
|
"nodeType": "PlaceholderStatement",
|
|
"src": "7695:1:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 9219,
|
|
"name": "validReserveWeight",
|
|
"nodeType": "ModifierDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9212,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9211,
|
|
"mutability": "mutable",
|
|
"name": "_weight",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9219,
|
|
"src": "7629:14:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9210,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "7629:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "7628:16:8"
|
|
},
|
|
"src": "7601:103:8",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9235,
|
|
"nodeType": "Block",
|
|
"src": "7818:98:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 9231,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"id": 9227,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9225,
|
|
"name": "_weight",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9221,
|
|
"src": "7837:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 9226,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "7847:1:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "7837:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"id": 9230,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9228,
|
|
"name": "_weight",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9221,
|
|
"src": "7852:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9229,
|
|
"name": "PPM_RESOLUTION",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9007,
|
|
"src": "7863:14:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"src": "7852:25:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "7837:40:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f524553455256455f574549474854",
|
|
"id": 9232,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "7879:28:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\""
|
|
},
|
|
"value": "ERR_INVALID_RESERVE_WEIGHT"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\""
|
|
}
|
|
],
|
|
"id": 9224,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "7829:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9233,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7829:79:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9234,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7829:79:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 9236,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "_validReserveWeight",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9222,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9221,
|
|
"mutability": "mutable",
|
|
"name": "_weight",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9236,
|
|
"src": "7788:14:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9220,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "7788:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "7787:16:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9223,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "7818:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "7759:157:8",
|
|
"stateMutability": "pure",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13190
|
|
],
|
|
"body": null,
|
|
"documentation": null,
|
|
"functionSelector": "3e8ff43f",
|
|
"id": 9242,
|
|
"implemented": false,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "converterType",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9238,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "8009:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9237,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "7986:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9241,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9240,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9242,
|
|
"src": "8027:6:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
},
|
|
"typeName": {
|
|
"id": 9239,
|
|
"name": "uint16",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "8027:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "8026:8:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "7964:71:8",
|
|
"stateMutability": "pure",
|
|
"virtual": true,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13213
|
|
],
|
|
"body": null,
|
|
"documentation": null,
|
|
"functionSelector": "af94b8d8",
|
|
"id": 9256,
|
|
"implemented": false,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "targetAmountAndFee",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9250,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "8236:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9249,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9244,
|
|
"mutability": "mutable",
|
|
"name": "_sourceToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9256,
|
|
"src": "8111:24:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9243,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "8111:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9246,
|
|
"mutability": "mutable",
|
|
"name": "_targetToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9256,
|
|
"src": "8137:24:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9245,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "8137:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9248,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9256,
|
|
"src": "8163:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9247,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "8163:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "8110:69:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9255,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9252,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9256,
|
|
"src": "8263:7:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9251,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "8263:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9254,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9256,
|
|
"src": "8272:7:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9253,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "8272:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "8262:18:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "8083:198:8",
|
|
"stateMutability": "view",
|
|
"virtual": true,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13253
|
|
],
|
|
"body": {
|
|
"id": 9269,
|
|
"nodeType": "Block",
|
|
"src": "8435:281:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9262,
|
|
"name": "reserves",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9040,
|
|
"src": "8454:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve storage ref)"
|
|
}
|
|
},
|
|
"id": 9264,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9263,
|
|
"name": "ETH_RESERVE_ADDRESS",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9012,
|
|
"src": "8463:19:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "8454:29:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage",
|
|
"typeString": "struct ConverterBase.Reserve storage ref"
|
|
}
|
|
},
|
|
"id": 9265,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isSet",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9022,
|
|
"src": "8454:35:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f52455345525645",
|
|
"id": 9266,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "8491:21:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE\""
|
|
},
|
|
"value": "ERR_INVALID_RESERVE"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE\""
|
|
}
|
|
],
|
|
"id": 9261,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "8446:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9267,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "8446:67:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9268,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "8446:67:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9257,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "8289:104:8",
|
|
"text": " @dev deposits ether\n can only be called if the converter has an ETH reserve"
|
|
},
|
|
"id": 9270,
|
|
"implemented": true,
|
|
"kind": "receive",
|
|
"modifiers": [],
|
|
"name": "",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9259,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "8418:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9258,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "8406:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9260,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "8435:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "8399:317:8",
|
|
"stateMutability": "payable",
|
|
"virtual": false,
|
|
"visibility": "external"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13285
|
|
],
|
|
"body": {
|
|
"id": 9315,
|
|
"nodeType": "Block",
|
|
"src": "9248:392:8",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
9285
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 9285,
|
|
"mutability": "mutable",
|
|
"name": "converterUpgrader",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9315,
|
|
"src": "9259:25:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 9284,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9259:7:8",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 9289,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9287,
|
|
"name": "CONVERTER_UPGRADER",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21542,
|
|
"src": "9297:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
],
|
|
"id": 9286,
|
|
"name": "addressOf",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21718,
|
|
"src": "9287:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
|
|
"typeString": "function (bytes32) view returns (address)"
|
|
}
|
|
},
|
|
"id": 9288,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "9287:29:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "9259:57:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 9297,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9293,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "!",
|
|
"prefix": true,
|
|
"src": "9430:11:8",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 9291,
|
|
"name": "isActive",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9362,
|
|
"src": "9431:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
|
|
"typeString": "function () view returns (bool)"
|
|
}
|
|
},
|
|
"id": 9292,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "9431:10:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "||",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 9296,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9294,
|
|
"name": "owner",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21728,
|
|
"src": "9445:5:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9295,
|
|
"name": "converterUpgrader",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9285,
|
|
"src": "9454:17:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "9445:26:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "9430:41:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f4143434553535f44454e494544",
|
|
"id": 9298,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "9473:19:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666",
|
|
"typeString": "literal_string \"ERR_ACCESS_DENIED\""
|
|
},
|
|
"value": "ERR_ACCESS_DENIED"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666",
|
|
"typeString": "literal_string \"ERR_ACCESS_DENIED\""
|
|
}
|
|
],
|
|
"id": 9290,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "9422:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9299,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "9422:71:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9300,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "9422:71:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9306,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "9525:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ConverterBase_$10039",
|
|
"typeString": "contract ConverterBase"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_ConverterBase_$10039",
|
|
"typeString": "contract ConverterBase"
|
|
}
|
|
],
|
|
"id": 9305,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "9517:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 9304,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9517:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9307,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "9517:13:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"id": 9308,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "balance",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "9517:21:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9301,
|
|
"name": "_to",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9273,
|
|
"src": "9504:3:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"id": 9303,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "transfer",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "9504:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
|
|
"typeString": "function (uint256)"
|
|
}
|
|
},
|
|
"id": 9309,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "9504:35:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9310,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "9504:35:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9312,
|
|
"name": "ETH_RESERVE_ADDRESS",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9012,
|
|
"src": "9612:19:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 9311,
|
|
"name": "syncReserveBalance",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9844,
|
|
"src": "9593:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$returns$__$",
|
|
"typeString": "function (contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 9313,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "9593:39:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9314,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "9593:39:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9271,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "8724:356:8",
|
|
"text": " @dev withdraws ether\n can only be called by the owner if the converter is inactive or by upgrader contract\n can only be called after the upgrader contract has accepted the ownership of this contract\n can only be called if the converter has an ETH reserve\n @param _to address to send the ETH to"
|
|
},
|
|
"functionSelector": "690d8320",
|
|
"id": 9316,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 9277,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9276,
|
|
"name": "protected",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22231,
|
|
"src": "9171:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "9171:9:8"
|
|
},
|
|
{
|
|
"arguments": null,
|
|
"id": 9279,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9278,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "9190:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "9190:9:8"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9281,
|
|
"name": "ETH_RESERVE_ADDRESS",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9012,
|
|
"src": "9222:19:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"id": 9282,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9280,
|
|
"name": "validReserve",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9172,
|
|
"src": "9209:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "modifier (contract IERC20Token)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "9209:33:8"
|
|
}
|
|
],
|
|
"name": "withdrawETH",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9275,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "9153:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9274,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9273,
|
|
"mutability": "mutable",
|
|
"name": "_to",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9316,
|
|
"src": "9107:19:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"typeName": {
|
|
"id": 9272,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9107:15:8",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "9106:21:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9283,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "9248:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "9086:554:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9324,
|
|
"nodeType": "Block",
|
|
"src": "9867:30:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "74727565",
|
|
"id": 9322,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "9885:4:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "true"
|
|
},
|
|
"functionReturnParameters": 9321,
|
|
"id": 9323,
|
|
"nodeType": "Return",
|
|
"src": "9878:11:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9317,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "9648:161:8",
|
|
"text": " @dev checks whether or not the converter version is 28 or higher\n @return true, since the converter version is 28 or higher"
|
|
},
|
|
"functionSelector": "d260529c",
|
|
"id": 9325,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "isV28OrHigher",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9318,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "9837:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9321,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9320,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9325,
|
|
"src": "9861:4:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 9319,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9861:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "9860:6:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "9815:82:8",
|
|
"stateMutability": "pure",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13271
|
|
],
|
|
"body": {
|
|
"id": 9344,
|
|
"nodeType": "Block",
|
|
"src": "10419:51:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9342,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 9340,
|
|
"name": "conversionWhitelist",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9033,
|
|
"src": "10430:19:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IWhitelist_$22917",
|
|
"typeString": "contract IWhitelist"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 9341,
|
|
"name": "_whitelist",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9328,
|
|
"src": "10452:10:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IWhitelist_$22917",
|
|
"typeString": "contract IWhitelist"
|
|
}
|
|
},
|
|
"src": "10430:32:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IWhitelist_$22917",
|
|
"typeString": "contract IWhitelist"
|
|
}
|
|
},
|
|
"id": 9343,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "10430:32:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9326,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "9905:357:8",
|
|
"text": " @dev allows the owner to update & enable the conversion whitelist contract address\n when set, only addresses that are whitelisted are actually allowed to use the converter\n note that the whitelist check is actually done by the BancorNetwork contract\n @param _whitelist address of a whitelist contract"
|
|
},
|
|
"functionSelector": "4af80f0e",
|
|
"id": 9345,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 9332,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9331,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "10366:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "10366:9:8"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9336,
|
|
"name": "_whitelist",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9328,
|
|
"src": "10401:10:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IWhitelist_$22917",
|
|
"typeString": "contract IWhitelist"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IWhitelist_$22917",
|
|
"typeString": "contract IWhitelist"
|
|
}
|
|
],
|
|
"id": 9335,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "10393:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 9334,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "10393:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9337,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "10393:19:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"id": 9338,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9333,
|
|
"name": "notThis",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22644,
|
|
"src": "10385:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_address_$",
|
|
"typeString": "modifier (address)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "10385:28:8"
|
|
}
|
|
],
|
|
"name": "setConversionWhitelist",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9330,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "10348:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9329,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9328,
|
|
"mutability": "mutable",
|
|
"name": "_whitelist",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9345,
|
|
"src": "10300:21:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IWhitelist_$22917",
|
|
"typeString": "contract IWhitelist"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9327,
|
|
"name": "IWhitelist",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22917,
|
|
"src": "10300:10:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IWhitelist_$22917",
|
|
"typeString": "contract IWhitelist"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "10299:23:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9339,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "10419:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "10268:202:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13200
|
|
],
|
|
"body": {
|
|
"id": 9361,
|
|
"nodeType": "Block",
|
|
"src": "10705:57:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 9359,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9352,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9030,
|
|
"src": "10723:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"id": 9353,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "owner",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22838,
|
|
"src": "10723:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
|
|
"typeString": "function () view external returns (address)"
|
|
}
|
|
},
|
|
"id": 9354,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "10723:14:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9357,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "10749:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ConverterBase_$10039",
|
|
"typeString": "contract ConverterBase"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_ConverterBase_$10039",
|
|
"typeString": "contract ConverterBase"
|
|
}
|
|
],
|
|
"id": 9356,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "10741:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 9355,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "10741:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9358,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "10741:13:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "10723:31:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"functionReturnParameters": 9351,
|
|
"id": 9360,
|
|
"nodeType": "Return",
|
|
"src": "10716:38:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9346,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "10478:157:8",
|
|
"text": " @dev returns true if the converter is active, false otherwise\n @return true if the converter is active, false otherwise"
|
|
},
|
|
"functionSelector": "22f3e2d4",
|
|
"id": 9362,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "isActive",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9348,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "10681:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9347,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "10658:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9351,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9350,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9362,
|
|
"src": "10699:4:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 9349,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "10699:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "10698:6:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "10641:121:8",
|
|
"stateMutability": "view",
|
|
"virtual": true,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13258
|
|
],
|
|
"body": {
|
|
"id": 9380,
|
|
"nodeType": "Block",
|
|
"src": "11256:54:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9377,
|
|
"name": "_newOwner",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9365,
|
|
"src": "11292:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9374,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9030,
|
|
"src": "11267:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"id": 9376,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "transferOwnership",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22843,
|
|
"src": "11267:24:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
|
|
"typeString": "function (address) external"
|
|
}
|
|
},
|
|
"id": 9378,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "11267:35:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9379,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "11267:35:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9363,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "10770:336:8",
|
|
"text": " @dev transfers the anchor ownership\n the new owner needs to accept the transfer\n can only be called by the converter upgrder while the upgrader is the owner\n note that prior to version 28, you should use 'transferAnchorOwnership' instead\n @param _newOwner new token owner"
|
|
},
|
|
"functionSelector": "67b6d57c",
|
|
"id": 9381,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 9369,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9368,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "11207:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "11207:9:8"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9371,
|
|
"name": "CONVERTER_UPGRADER",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21542,
|
|
"src": "11231:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"id": 9372,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9370,
|
|
"name": "only",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21577,
|
|
"src": "11226:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_bytes32_$",
|
|
"typeString": "modifier (bytes32)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "11226:24:8"
|
|
}
|
|
],
|
|
"name": "transferAnchorOwnership",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9367,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "11189:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9366,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9365,
|
|
"mutability": "mutable",
|
|
"name": "_newOwner",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9381,
|
|
"src": "11145:17:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 9364,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "11145:7:8",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "11144:19:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9373,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "11256:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "11112:198:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13261
|
|
],
|
|
"body": {
|
|
"id": 9404,
|
|
"nodeType": "Block",
|
|
"src": "11700:209:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
},
|
|
"id": 9392,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 9389,
|
|
"name": "reserveTokenCount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9561,
|
|
"src": "11781:17:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint16_$",
|
|
"typeString": "function () view returns (uint16)"
|
|
}
|
|
},
|
|
"id": 9390,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "11781:19:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 9391,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "11803:1:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "11781:23:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f524553455256455f434f554e54",
|
|
"id": 9393,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "11806:27:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\""
|
|
},
|
|
"value": "ERR_INVALID_RESERVE_COUNT"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\""
|
|
}
|
|
],
|
|
"id": 9388,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "11773:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9394,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "11773:61:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9395,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "11773:61:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9396,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9030,
|
|
"src": "11845:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"id": 9398,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "acceptOwnership",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22846,
|
|
"src": "11845:22:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
|
|
"typeString": "function () external"
|
|
}
|
|
},
|
|
"id": 9399,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "11845:24:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9400,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "11845:24:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 9401,
|
|
"name": "syncReserveBalances",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9871,
|
|
"src": "11880:19:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
|
|
"typeString": "function ()"
|
|
}
|
|
},
|
|
"id": 9402,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "11880:21:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9403,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "11880:21:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9382,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "11318:309:8",
|
|
"text": " @dev accepts ownership of the anchor after an ownership transfer\n most converters are also activated as soon as they accept the anchor ownership\n can only be called by the contract owner\n note that prior to version 28, you should use 'acceptTokenOwnership' instead"
|
|
},
|
|
"functionSelector": "cdc91c69",
|
|
"id": 9405,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 9386,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9385,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "11690:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "11690:9:8"
|
|
}
|
|
],
|
|
"name": "acceptAnchorOwnership",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9384,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "11681:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9383,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "11663:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9387,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "11700:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "11633:276:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": true,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9425,
|
|
"nodeType": "Block",
|
|
"src": "12315:62:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9420,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9408,
|
|
"src": "12348:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9421,
|
|
"name": "_to",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9410,
|
|
"src": "12356:3:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9422,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9412,
|
|
"src": "12361:7:8",
|
|
"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"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9417,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9030,
|
|
"src": "12326:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"id": 9419,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "withdrawTokens",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22906,
|
|
"src": "12326:21:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (contract IERC20Token,address,uint256) external"
|
|
}
|
|
},
|
|
"id": 9423,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "12326:43:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9424,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "12326:43:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9406,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "11917:297:8",
|
|
"text": " @dev withdraws tokens held by the anchor and sends them to an account\n can only be called by the owner\n @param _token ERC20 token contract address\n @param _to account to receive the new amount\n @param _amount amount to withdraw"
|
|
},
|
|
"functionSelector": "395900d4",
|
|
"id": 9426,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 9415,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9414,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "12305:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "12305:9:8"
|
|
}
|
|
],
|
|
"name": "withdrawFromAnchor",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9413,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9408,
|
|
"mutability": "mutable",
|
|
"name": "_token",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9426,
|
|
"src": "12248:18:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9407,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "12248:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9410,
|
|
"mutability": "mutable",
|
|
"name": "_to",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9426,
|
|
"src": "12268:11:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 9409,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "12268:7:8",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9412,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9426,
|
|
"src": "12281:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9411,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "12281:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "12247:50:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9416,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "12315:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "12220:157:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13266
|
|
],
|
|
"body": {
|
|
"id": 9451,
|
|
"nodeType": "Block",
|
|
"src": "12655:199:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"id": 9438,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9436,
|
|
"name": "_conversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9429,
|
|
"src": "12674:14:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9437,
|
|
"name": "maxConversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9047,
|
|
"src": "12692:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"src": "12674:34:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f434f4e56455253494f4e5f464545",
|
|
"id": 9439,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "12710:28:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_ae729833ea0b2cfd1b35fa1d075ae330e76860b5ab276fa04bde88b85e5c4d00",
|
|
"typeString": "literal_string \"ERR_INVALID_CONVERSION_FEE\""
|
|
},
|
|
"value": "ERR_INVALID_CONVERSION_FEE"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_ae729833ea0b2cfd1b35fa1d075ae330e76860b5ab276fa04bde88b85e5c4d00",
|
|
"typeString": "literal_string \"ERR_INVALID_CONVERSION_FEE\""
|
|
}
|
|
],
|
|
"id": 9435,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "12666:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9440,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "12666:73:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9441,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "12666:73:8"
|
|
},
|
|
{
|
|
"eventCall": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9443,
|
|
"name": "conversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9051,
|
|
"src": "12775:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9444,
|
|
"name": "_conversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9429,
|
|
"src": "12790:14:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
],
|
|
"id": 9442,
|
|
"name": "ConversionFeeUpdate",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9096,
|
|
"src": "12755:19:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_event_nonpayable$_t_uint32_$_t_uint32_$returns$__$",
|
|
"typeString": "function (uint32,uint32)"
|
|
}
|
|
},
|
|
"id": 9445,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "12755:50:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9446,
|
|
"nodeType": "EmitStatement",
|
|
"src": "12750:55:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9449,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 9447,
|
|
"name": "conversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9051,
|
|
"src": "12816:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 9448,
|
|
"name": "_conversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9429,
|
|
"src": "12832:14:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"src": "12816:30:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"id": 9450,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "12816:30:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9427,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "12385:189:8",
|
|
"text": " @dev updates the current conversion fee\n can only be called by the contract owner\n @param _conversionFee new conversion fee, represented in ppm"
|
|
},
|
|
"functionSelector": "ecbca55d",
|
|
"id": 9452,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 9433,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9432,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "12645:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "12645:9:8"
|
|
}
|
|
],
|
|
"name": "setConversionFee",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9431,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "12636:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9430,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9429,
|
|
"mutability": "mutable",
|
|
"name": "_conversionFee",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9452,
|
|
"src": "12606:21:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9428,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "12606:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "12605:23:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9434,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "12655:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "12580:274:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13280,
|
|
22574
|
|
],
|
|
"body": {
|
|
"id": 9509,
|
|
"nodeType": "Block",
|
|
"src": "13506:559:8",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
9470
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 9470,
|
|
"mutability": "mutable",
|
|
"name": "converterUpgrader",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9509,
|
|
"src": "13517:25:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 9469,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "13517:7:8",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 9474,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9472,
|
|
"name": "CONVERTER_UPGRADER",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21542,
|
|
"src": "13555:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
],
|
|
"id": 9471,
|
|
"name": "addressOf",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21718,
|
|
"src": "13545:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
|
|
"typeString": "function (bytes32) view returns (address)"
|
|
}
|
|
},
|
|
"id": 9473,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "13545:29:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "13517:57:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 9488,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 9484,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9480,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "!",
|
|
"prefix": true,
|
|
"src": "13764:23:8",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9476,
|
|
"name": "reserves",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9040,
|
|
"src": "13765:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve storage ref)"
|
|
}
|
|
},
|
|
"id": 9478,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9477,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9455,
|
|
"src": "13774:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "13765:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage",
|
|
"typeString": "struct ConverterBase.Reserve storage ref"
|
|
}
|
|
},
|
|
"id": 9479,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isSet",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9022,
|
|
"src": "13765:22:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "||",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9483,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "!",
|
|
"prefix": true,
|
|
"src": "13791:11:8",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 9481,
|
|
"name": "isActive",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9362,
|
|
"src": "13792:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
|
|
"typeString": "function () view returns (bool)"
|
|
}
|
|
},
|
|
"id": 9482,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "13792:10:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "13764:38:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "||",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 9487,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9485,
|
|
"name": "owner",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21728,
|
|
"src": "13806:5:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9486,
|
|
"name": "converterUpgrader",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9470,
|
|
"src": "13815:17:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "13806:26:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "13764:68:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f4143434553535f44454e494544",
|
|
"id": 9489,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "13834:19:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666",
|
|
"typeString": "literal_string \"ERR_ACCESS_DENIED\""
|
|
},
|
|
"value": "ERR_ACCESS_DENIED"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666",
|
|
"typeString": "literal_string \"ERR_ACCESS_DENIED\""
|
|
}
|
|
],
|
|
"id": 9475,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "13756:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9490,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "13756:98:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9491,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "13756:98:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9495,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9455,
|
|
"src": "13886:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9496,
|
|
"name": "_to",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9457,
|
|
"src": "13894:3:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9497,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9459,
|
|
"src": "13899:7:8",
|
|
"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"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9492,
|
|
"name": "super",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -25,
|
|
"src": "13865:5:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_super$_ConverterBase_$10039",
|
|
"typeString": "contract super ConverterBase"
|
|
}
|
|
},
|
|
"id": 9494,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "withdrawTokens",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22574,
|
|
"src": "13865:20:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (contract IERC20Token,address,uint256)"
|
|
}
|
|
},
|
|
"id": 9498,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "13865:42:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9499,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "13865:42:8"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9500,
|
|
"name": "reserves",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9040,
|
|
"src": "13994:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve storage ref)"
|
|
}
|
|
},
|
|
"id": 9502,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9501,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9455,
|
|
"src": "14003:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "13994:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage",
|
|
"typeString": "struct ConverterBase.Reserve storage ref"
|
|
}
|
|
},
|
|
"id": 9503,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isSet",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9022,
|
|
"src": "13994:22:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 9508,
|
|
"nodeType": "IfStatement",
|
|
"src": "13990:67:8",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9505,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9455,
|
|
"src": "14050:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 9504,
|
|
"name": "syncReserveBalance",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9844,
|
|
"src": "14031:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$returns$__$",
|
|
"typeString": "function (contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 9506,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14031:26:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9507,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "14031:26:8"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9453,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "12862:462:8",
|
|
"text": " @dev withdraws tokens held by the converter and sends them to an account\n can only be called by the owner\n note that reserve tokens can only be withdrawn by the owner while the converter is inactive\n unless the owner is the converter upgrader contract\n @param _token ERC20 token contract address\n @param _to account to receive the new amount\n @param _amount amount to withdraw"
|
|
},
|
|
"functionSelector": "5e35359e",
|
|
"id": 9510,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 9465,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9464,
|
|
"name": "protected",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22231,
|
|
"src": "13472:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "13472:9:8"
|
|
},
|
|
{
|
|
"arguments": null,
|
|
"id": 9467,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9466,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "13491:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "13491:9:8"
|
|
}
|
|
],
|
|
"name": "withdrawTokens",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9463,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [
|
|
{
|
|
"contractScope": null,
|
|
"id": 9461,
|
|
"name": "IConverter",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13340,
|
|
"src": "13438:10:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverter_$13340",
|
|
"typeString": "contract IConverter"
|
|
}
|
|
},
|
|
{
|
|
"contractScope": null,
|
|
"id": 9462,
|
|
"name": "TokenHolder",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22575,
|
|
"src": "13450:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_TokenHolder_$22575",
|
|
"typeString": "contract TokenHolder"
|
|
}
|
|
}
|
|
],
|
|
"src": "13429:33:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9460,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9455,
|
|
"mutability": "mutable",
|
|
"name": "_token",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9510,
|
|
"src": "13354:18:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9454,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "13354:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9457,
|
|
"mutability": "mutable",
|
|
"name": "_to",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9510,
|
|
"src": "13374:11:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 9456,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "13374:7:8",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9459,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9510,
|
|
"src": "13387:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9458,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "13387:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "13353:50:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9468,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "13506:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "13330:735:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9547,
|
|
"nodeType": "Block",
|
|
"src": "14324:338:8",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
9517
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 9517,
|
|
"mutability": "mutable",
|
|
"name": "converterUpgrader",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9547,
|
|
"src": "14335:36:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterUpgrader_$13660",
|
|
"typeString": "contract IConverterUpgrader"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9516,
|
|
"name": "IConverterUpgrader",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13660,
|
|
"src": "14335:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterUpgrader_$13660",
|
|
"typeString": "contract IConverterUpgrader"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 9523,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9520,
|
|
"name": "CONVERTER_UPGRADER",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21542,
|
|
"src": "14403:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
],
|
|
"id": 9519,
|
|
"name": "addressOf",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21718,
|
|
"src": "14393:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
|
|
"typeString": "function (bytes32) view returns (address)"
|
|
}
|
|
},
|
|
"id": 9521,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14393:29:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 9518,
|
|
"name": "IConverterUpgrader",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 13660,
|
|
"src": "14374:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_IConverterUpgrader_$13660_$",
|
|
"typeString": "type(contract IConverterUpgrader)"
|
|
}
|
|
},
|
|
"id": 9522,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14374:49:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterUpgrader_$13660",
|
|
"typeString": "contract IConverterUpgrader"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "14335:88:8"
|
|
},
|
|
{
|
|
"eventCall": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 9525,
|
|
"name": "converterType",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9242,
|
|
"src": "14492:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$__$returns$_t_uint16_$",
|
|
"typeString": "function () pure returns (uint16)"
|
|
}
|
|
},
|
|
"id": 9526,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14492:15:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9527,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9030,
|
|
"src": "14509:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "66616c7365",
|
|
"id": 9528,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "14517:5:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "false"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
],
|
|
"id": 9524,
|
|
"name": "Activation",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9063,
|
|
"src": "14481:10:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_event_nonpayable$_t_uint16_$_t_contract$_IConverterAnchor_$13349_$_t_bool_$returns$__$",
|
|
"typeString": "function (uint16,contract IConverterAnchor,bool)"
|
|
}
|
|
},
|
|
"id": 9529,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14481:42:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9530,
|
|
"nodeType": "EmitStatement",
|
|
"src": "14476:47:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9534,
|
|
"name": "converterUpgrader",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9517,
|
|
"src": "14562:17:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterUpgrader_$13660",
|
|
"typeString": "contract IConverterUpgrader"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverterUpgrader_$13660",
|
|
"typeString": "contract IConverterUpgrader"
|
|
}
|
|
],
|
|
"id": 9533,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "14554:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 9532,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "14554:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9535,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14554:26:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 9531,
|
|
"name": "transferOwnership",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21787,
|
|
"src": "14536:17:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
|
|
"typeString": "function (address)"
|
|
}
|
|
},
|
|
"id": 9536,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14536:45:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9537,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "14536:45:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9541,
|
|
"name": "version",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9027,
|
|
"src": "14618:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9538,
|
|
"name": "converterUpgrader",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9517,
|
|
"src": "14592:17:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterUpgrader_$13660",
|
|
"typeString": "contract IConverterUpgrader"
|
|
}
|
|
},
|
|
"id": 9540,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "upgrade",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 13659,
|
|
"src": "14592:25:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_uint16_$returns$__$",
|
|
"typeString": "function (uint16) external"
|
|
}
|
|
},
|
|
"id": 9542,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14592:34:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9543,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "14592:34:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 9544,
|
|
"name": "acceptOwnership",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21817,
|
|
"src": "14637:15:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
|
|
"typeString": "function ()"
|
|
}
|
|
},
|
|
"id": 9545,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14637:17:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9546,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "14637:17:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9511,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "14073:209:8",
|
|
"text": " @dev upgrades the converter to the latest version\n can only be called by the owner\n note that the owner needs to call acceptOwnership on the new converter after the upgrade"
|
|
},
|
|
"functionSelector": "d55ec697",
|
|
"id": 9548,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 9514,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9513,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "14314:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "14314:9:8"
|
|
}
|
|
],
|
|
"name": "upgrade",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9512,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "14304:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9515,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "14324:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "14288:374:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9560,
|
|
"nodeType": "Block",
|
|
"src": "14940:54:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9556,
|
|
"name": "reserveTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9036,
|
|
"src": "14965:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_contract$_IERC20Token_$21127_$dyn_storage",
|
|
"typeString": "contract IERC20Token[] storage ref"
|
|
}
|
|
},
|
|
"id": 9557,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "14965:20:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 9555,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "14958:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_uint16_$",
|
|
"typeString": "type(uint16)"
|
|
},
|
|
"typeName": {
|
|
"id": 9554,
|
|
"name": "uint16",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "14958:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9558,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "14958:28:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
},
|
|
"functionReturnParameters": 9553,
|
|
"id": 9559,
|
|
"nodeType": "Return",
|
|
"src": "14951:35:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9549,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "14670:206:8",
|
|
"text": " @dev returns the number of reserve tokens defined\n note that prior to version 17, you should use 'connectorTokenCount' instead\n @return number of reserve tokens"
|
|
},
|
|
"functionSelector": "9b99a8e2",
|
|
"id": 9561,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "reserveTokenCount",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9550,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "14908:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9553,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9552,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9561,
|
|
"src": "14932:6:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
},
|
|
"typeName": {
|
|
"id": 9551,
|
|
"name": "uint16",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "14932:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "14931:8:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "14882:112:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13292
|
|
],
|
|
"body": {
|
|
"id": 9663,
|
|
"nodeType": "Block",
|
|
"src": "15545:544:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 9604,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 9598,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9592,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9564,
|
|
"src": "15599:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 9591,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "15591:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 9590,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "15591:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9593,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "15591:15:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9596,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9030,
|
|
"src": "15618:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
],
|
|
"id": 9595,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "15610:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 9594,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "15610:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9597,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "15610:15:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "15591:34:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9603,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "!",
|
|
"prefix": true,
|
|
"src": "15629:23:8",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9599,
|
|
"name": "reserves",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9040,
|
|
"src": "15630:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve storage ref)"
|
|
}
|
|
},
|
|
"id": 9601,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9600,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9564,
|
|
"src": "15639:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "15630:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage",
|
|
"typeString": "struct ConverterBase.Reserve storage ref"
|
|
}
|
|
},
|
|
"id": 9602,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isSet",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9022,
|
|
"src": "15630:22:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "15591:61:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f52455345525645",
|
|
"id": 9605,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "15654:21:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE\""
|
|
},
|
|
"value": "ERR_INVALID_RESERVE"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE\""
|
|
}
|
|
],
|
|
"id": 9589,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "15583:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9606,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "15583:93:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9607,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "15583:93:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"id": 9613,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9609,
|
|
"name": "_weight",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9566,
|
|
"src": "15695:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"id": 9612,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9610,
|
|
"name": "PPM_RESOLUTION",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9007,
|
|
"src": "15706:14:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9611,
|
|
"name": "reserveRatio",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9043,
|
|
"src": "15723:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"src": "15706:29:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"src": "15695:40:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f524553455256455f574549474854",
|
|
"id": 9614,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "15737:28:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\""
|
|
},
|
|
"value": "ERR_INVALID_RESERVE_WEIGHT"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\""
|
|
}
|
|
],
|
|
"id": 9608,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "15687:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9615,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "15687:79:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9616,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "15687:79:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
},
|
|
"id": 9625,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 9618,
|
|
"name": "reserveTokenCount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9561,
|
|
"src": "15785:17:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint16_$",
|
|
"typeString": "function () view returns (uint16)"
|
|
}
|
|
},
|
|
"id": 9619,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "15785:19:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9623,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "-",
|
|
"prefix": true,
|
|
"src": "15814:2:8",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 9622,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "15815:1:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_minus_1_by_1",
|
|
"typeString": "int_const -1"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_minus_1_by_1",
|
|
"typeString": "int_const -1"
|
|
}
|
|
],
|
|
"id": 9621,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "15807:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_uint16_$",
|
|
"typeString": "type(uint16)"
|
|
},
|
|
"typeName": {
|
|
"id": 9620,
|
|
"name": "uint16",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "15807:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9624,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "15807:10:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
},
|
|
"src": "15785:32:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f524553455256455f434f554e54",
|
|
"id": 9626,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "15819:27:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\""
|
|
},
|
|
"value": "ERR_INVALID_RESERVE_COUNT"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f",
|
|
"typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\""
|
|
}
|
|
],
|
|
"id": 9617,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "15777:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9627,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "15777:70:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9628,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "15777:70:8"
|
|
},
|
|
{
|
|
"assignments": [
|
|
9630
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 9630,
|
|
"mutability": "mutable",
|
|
"name": "newReserve",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9663,
|
|
"src": "15860:26:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "storage",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage_ptr",
|
|
"typeString": "struct ConverterBase.Reserve"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9629,
|
|
"name": "Reserve",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 9023,
|
|
"src": "15860:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage_ptr",
|
|
"typeString": "struct ConverterBase.Reserve"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 9634,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9631,
|
|
"name": "reserves",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9040,
|
|
"src": "15889:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve storage ref)"
|
|
}
|
|
},
|
|
"id": 9633,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9632,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9564,
|
|
"src": "15898:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "15889:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage",
|
|
"typeString": "struct ConverterBase.Reserve storage ref"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "15860:45:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9639,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9635,
|
|
"name": "newReserve",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9630,
|
|
"src": "15916:10:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage_ptr",
|
|
"typeString": "struct ConverterBase.Reserve storage pointer"
|
|
}
|
|
},
|
|
"id": 9637,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "balance",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9014,
|
|
"src": "15916:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 9638,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "15937:1:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "15916:22:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 9640,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "15916:22:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9645,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9641,
|
|
"name": "newReserve",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9630,
|
|
"src": "15949:10:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage_ptr",
|
|
"typeString": "struct ConverterBase.Reserve storage pointer"
|
|
}
|
|
},
|
|
"id": 9643,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "weight",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9016,
|
|
"src": "15949:17:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 9644,
|
|
"name": "_weight",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9566,
|
|
"src": "15969:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"src": "15949:27:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"id": 9646,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "15949:27:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9651,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9647,
|
|
"name": "newReserve",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9630,
|
|
"src": "15987:10:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage_ptr",
|
|
"typeString": "struct ConverterBase.Reserve storage pointer"
|
|
}
|
|
},
|
|
"id": 9649,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "isSet",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9022,
|
|
"src": "15987:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "74727565",
|
|
"id": 9650,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "16006:4:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "true"
|
|
},
|
|
"src": "15987:23:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 9652,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "15987:23:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9656,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9564,
|
|
"src": "16040:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9653,
|
|
"name": "reserveTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9036,
|
|
"src": "16021:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_contract$_IERC20Token_$21127_$dyn_storage",
|
|
"typeString": "contract IERC20Token[] storage ref"
|
|
}
|
|
},
|
|
"id": 9655,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "push",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "16021:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_arraypush_nonpayable$_t_contract$_IERC20Token_$21127_$returns$__$",
|
|
"typeString": "function (contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 9657,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "16021:26:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9658,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "16021:26:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9661,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 9659,
|
|
"name": "reserveRatio",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9043,
|
|
"src": "16058:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "+=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 9660,
|
|
"name": "_weight",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9566,
|
|
"src": "16074:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"src": "16058:23:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"id": 9662,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "16058:23:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9562,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "15002:278:8",
|
|
"text": " @dev defines a new reserve token for the converter\n can only be called by the owner while the converter is inactive\n @param _token address of the reserve token\n @param _weight reserve weight, represented in ppm, 1-1000000"
|
|
},
|
|
"functionSelector": "6a49d2c4",
|
|
"id": 9664,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 9570,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9569,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "15402:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "15402:9:8"
|
|
},
|
|
{
|
|
"arguments": null,
|
|
"id": 9572,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9571,
|
|
"name": "inactive",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9151,
|
|
"src": "15421:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "15421:8:8"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9576,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9564,
|
|
"src": "15460:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 9575,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "15452:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 9574,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "15452:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9577,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "15452:15:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"id": 9578,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9573,
|
|
"name": "validAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22618,
|
|
"src": "15439:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_address_$",
|
|
"typeString": "modifier (address)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "15439:29:8"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9582,
|
|
"name": "_token",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9564,
|
|
"src": "15494:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 9581,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "15486:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 9580,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "15486:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9583,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "15486:15:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"id": 9584,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9579,
|
|
"name": "notThis",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22644,
|
|
"src": "15478:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_address_$",
|
|
"typeString": "modifier (address)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "15478:24:8"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9586,
|
|
"name": "_weight",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9566,
|
|
"src": "15531:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
}
|
|
],
|
|
"id": 9587,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9585,
|
|
"name": "validReserveWeight",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9219,
|
|
"src": "15512:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_uint32_$",
|
|
"typeString": "modifier (uint32)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "15512:27:8"
|
|
}
|
|
],
|
|
"name": "addReserve",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9568,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "15384:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9567,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9564,
|
|
"mutability": "mutable",
|
|
"name": "_token",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9664,
|
|
"src": "15306:18:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9563,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "15306:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9566,
|
|
"mutability": "mutable",
|
|
"name": "_weight",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9664,
|
|
"src": "15326:14:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9565,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "15326:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "15305:36:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9588,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "15545:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "15286:803:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": true,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9680,
|
|
"nodeType": "Block",
|
|
"src": "16448:56:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9675,
|
|
"name": "reserves",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9040,
|
|
"src": "16466:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve storage ref)"
|
|
}
|
|
},
|
|
"id": 9677,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9676,
|
|
"name": "_reserveToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9667,
|
|
"src": "16475:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "16466:23:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage",
|
|
"typeString": "struct ConverterBase.Reserve storage ref"
|
|
}
|
|
},
|
|
"id": 9678,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "weight",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9016,
|
|
"src": "16466:30:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"functionReturnParameters": 9674,
|
|
"id": 9679,
|
|
"nodeType": "Return",
|
|
"src": "16459:37:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9665,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "16097:197:8",
|
|
"text": " @dev returns the reserve's weight\n added in version 28\n @param _reserveToken reserve token contract address\n @return reserve weight"
|
|
},
|
|
"functionSelector": "1cfab290",
|
|
"id": 9681,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9670,
|
|
"name": "_reserveToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9667,
|
|
"src": "16402:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"id": 9671,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9669,
|
|
"name": "validReserve",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9172,
|
|
"src": "16389:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "modifier (contract IERC20Token)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "16389:27:8"
|
|
}
|
|
],
|
|
"name": "reserveWeight",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9668,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9667,
|
|
"mutability": "mutable",
|
|
"name": "_reserveToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9681,
|
|
"src": "16323:25:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9666,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "16323:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "16322:27:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9674,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9673,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9681,
|
|
"src": "16435:6:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9672,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "16435:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "16434:8:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "16300:204:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13250
|
|
],
|
|
"body": {
|
|
"id": 9698,
|
|
"nodeType": "Block",
|
|
"src": "16941:57:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9693,
|
|
"name": "reserves",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9040,
|
|
"src": "16959:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve storage ref)"
|
|
}
|
|
},
|
|
"id": 9695,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9694,
|
|
"name": "_reserveToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9684,
|
|
"src": "16968:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "16959:23:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage",
|
|
"typeString": "struct ConverterBase.Reserve storage ref"
|
|
}
|
|
},
|
|
"id": 9696,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "balance",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9014,
|
|
"src": "16959:31:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 9692,
|
|
"id": 9697,
|
|
"nodeType": "Return",
|
|
"src": "16952:38:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9682,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "16512:255:8",
|
|
"text": " @dev returns the reserve's balance\n note that prior to version 17, you should use 'getConnectorBalance' instead\n @param _reserveToken reserve token contract address\n @return reserve balance"
|
|
},
|
|
"functionSelector": "dc8de379",
|
|
"id": 9699,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9688,
|
|
"name": "_reserveToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9684,
|
|
"src": "16894:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"id": 9689,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9687,
|
|
"name": "validReserve",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9172,
|
|
"src": "16881:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "modifier (contract IERC20Token)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "16881:27:8"
|
|
}
|
|
],
|
|
"name": "reserveBalance",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9686,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "16849:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9685,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9684,
|
|
"mutability": "mutable",
|
|
"name": "_reserveToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9699,
|
|
"src": "16797:25:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9683,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "16797:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "16796:27:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9692,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9691,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9699,
|
|
"src": "16927:7:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9690,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "16927:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "16926:9:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "16773:225:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9710,
|
|
"nodeType": "Block",
|
|
"src": "17228:61:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9705,
|
|
"name": "reserves",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9040,
|
|
"src": "17246:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve storage ref)"
|
|
}
|
|
},
|
|
"id": 9707,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9706,
|
|
"name": "ETH_RESERVE_ADDRESS",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9012,
|
|
"src": "17255:19:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "17246:29:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage",
|
|
"typeString": "struct ConverterBase.Reserve storage ref"
|
|
}
|
|
},
|
|
"id": 9708,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isSet",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9022,
|
|
"src": "17246:35:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"functionReturnParameters": 9704,
|
|
"id": 9709,
|
|
"nodeType": "Return",
|
|
"src": "17239:42:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9700,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "17006:164:8",
|
|
"text": " @dev checks whether or not the converter has an ETH reserve\n @return true if the converter has an ETH reserve, false otherwise"
|
|
},
|
|
"functionSelector": "12c2aca4",
|
|
"id": 9711,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "hasETHReserve",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9701,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "17198:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9704,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9703,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9711,
|
|
"src": "17222:4:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 9702,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17222:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "17221:6:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "17176:113:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13228
|
|
],
|
|
"body": {
|
|
"id": 9772,
|
|
"nodeType": "Block",
|
|
"src": "18137:517:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"id": 9736,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9734,
|
|
"name": "_sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9714,
|
|
"src": "18183:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9735,
|
|
"name": "_targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9716,
|
|
"src": "18199:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"src": "18183:28:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f53414d455f534f555243455f544152474554",
|
|
"id": 9737,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "18213:24:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_238302f57e4481fe6a4c903e930919efa155f2aabe0b5da37da1448cea5fd634",
|
|
"typeString": "literal_string \"ERR_SAME_SOURCE_TARGET\""
|
|
},
|
|
"value": "ERR_SAME_SOURCE_TARGET"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_238302f57e4481fe6a4c903e930919efa155f2aabe0b5da37da1448cea5fd634",
|
|
"typeString": "literal_string \"ERR_SAME_SOURCE_TARGET\""
|
|
}
|
|
],
|
|
"id": 9733,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "18175:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9738,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18175:63:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9739,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "18175:63:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 9760,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 9749,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9743,
|
|
"name": "conversionWhitelist",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9033,
|
|
"src": "18366:19:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IWhitelist_$22917",
|
|
"typeString": "contract IWhitelist"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IWhitelist_$22917",
|
|
"typeString": "contract IWhitelist"
|
|
}
|
|
],
|
|
"id": 9742,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "18358:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 9741,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "18358:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9744,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18358:28:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 9747,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "18398:1:8",
|
|
"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": 9746,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "18390:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 9745,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "18390:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9748,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18390:10:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "18358:42:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "||",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"components": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"id": 9758,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9752,
|
|
"name": "_trader",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9720,
|
|
"src": "18456:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9750,
|
|
"name": "conversionWhitelist",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9033,
|
|
"src": "18422:19:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IWhitelist_$22917",
|
|
"typeString": "contract IWhitelist"
|
|
}
|
|
},
|
|
"id": 9751,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isWhitelisted",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22916,
|
|
"src": "18422:33:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
|
|
"typeString": "function (address) view external returns (bool)"
|
|
}
|
|
},
|
|
"id": 9753,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18422:42:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9756,
|
|
"name": "_beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9722,
|
|
"src": "18502:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9754,
|
|
"name": "conversionWhitelist",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9033,
|
|
"src": "18468:19:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IWhitelist_$22917",
|
|
"typeString": "contract IWhitelist"
|
|
}
|
|
},
|
|
"id": 9755,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isWhitelisted",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22916,
|
|
"src": "18468:33:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
|
|
"typeString": "function (address) view external returns (bool)"
|
|
}
|
|
},
|
|
"id": 9757,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18468:47:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "18422:93:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"id": 9759,
|
|
"isConstant": false,
|
|
"isInlineArray": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "TupleExpression",
|
|
"src": "18421:95:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"src": "18358:158:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f4e4f545f57484954454c4953544544",
|
|
"id": 9761,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "18535:21:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_d03711a645ac13b3887baa10c28f347997e96617340d7ffae036e653d4c59185",
|
|
"typeString": "literal_string \"ERR_NOT_WHITELISTED\""
|
|
},
|
|
"value": "ERR_NOT_WHITELISTED"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_d03711a645ac13b3887baa10c28f347997e96617340d7ffae036e653d4c59185",
|
|
"typeString": "literal_string \"ERR_NOT_WHITELISTED\""
|
|
}
|
|
],
|
|
"id": 9740,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "18350:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 9762,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18350:207:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9763,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "18350:207:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9765,
|
|
"name": "_sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9714,
|
|
"src": "18587:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9766,
|
|
"name": "_targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9716,
|
|
"src": "18601:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9767,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9718,
|
|
"src": "18615:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9768,
|
|
"name": "_trader",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9720,
|
|
"src": "18624:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9769,
|
|
"name": "_beneficiary",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9722,
|
|
"src": "18633:12:8",
|
|
"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",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"id": 9764,
|
|
"name": "doConvert",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9789,
|
|
"src": "18577:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_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) returns (uint256)"
|
|
}
|
|
},
|
|
"id": 9770,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "18577:69:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 9732,
|
|
"id": 9771,
|
|
"nodeType": "Return",
|
|
"src": "18570:76:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9712,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "17297:569:8",
|
|
"text": " @dev converts a specific amount of source tokens to target tokens\n can only be called by the bancor network contract\n @param _sourceToken source ERC20 token\n @param _targetToken target ERC20 token\n @param _amount amount of tokens to convert (in units of the source token)\n @param _trader address of the caller who executed the conversion\n @param _beneficiary wallet to receive the conversion result\n @return amount of tokens received (in units of the target token)"
|
|
},
|
|
"functionSelector": "e8dc12ff",
|
|
"id": 9773,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 9726,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9725,
|
|
"name": "protected",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22231,
|
|
"src": "18065:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "18065:9:8"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9728,
|
|
"name": "BANCOR_NETWORK",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21530,
|
|
"src": "18089:14:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"id": 9729,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9727,
|
|
"name": "only",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21577,
|
|
"src": "18084:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_bytes32_$",
|
|
"typeString": "modifier (bytes32)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "18084:20:8"
|
|
}
|
|
],
|
|
"name": "convert",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9724,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "18030:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9723,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9714,
|
|
"mutability": "mutable",
|
|
"name": "_sourceToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9773,
|
|
"src": "17889:24:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9713,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "17889:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9716,
|
|
"mutability": "mutable",
|
|
"name": "_targetToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9773,
|
|
"src": "17915:24:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9715,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "17915:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9718,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9773,
|
|
"src": "17941:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9717,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17941:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9720,
|
|
"mutability": "mutable",
|
|
"name": "_trader",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9773,
|
|
"src": "17958:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 9719,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17958:7:8",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9722,
|
|
"mutability": "mutable",
|
|
"name": "_beneficiary",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9773,
|
|
"src": "17975:28:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"typeName": {
|
|
"id": 9721,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "17975:15:8",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "17888:116:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9732,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9731,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9773,
|
|
"src": "18123:7:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9730,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "18123:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "18122:9:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "17872:782:8",
|
|
"stateMutability": "payable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": null,
|
|
"documentation": {
|
|
"id": 9774,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "18662:615:8",
|
|
"text": " @dev converts a specific amount of source tokens to target tokens\n called by ConverterBase and allows the inherited contracts to implement custom conversion logic\n @param _sourceToken source ERC20 token\n @param _targetToken target ERC20 token\n @param _amount amount of tokens to convert (in units of the source token)\n @param _trader address of the caller who executed the conversion\n @param _beneficiary wallet to receive the conversion result\n @return amount of tokens received (in units of the target token)"
|
|
},
|
|
"id": 9789,
|
|
"implemented": false,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "doConvert",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9785,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9776,
|
|
"mutability": "mutable",
|
|
"name": "_sourceToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9789,
|
|
"src": "19312:24:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9775,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "19312:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9778,
|
|
"mutability": "mutable",
|
|
"name": "_targetToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9789,
|
|
"src": "19347:24:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9777,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "19347:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9780,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9789,
|
|
"src": "19382:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9779,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "19382:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9782,
|
|
"mutability": "mutable",
|
|
"name": "_trader",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9789,
|
|
"src": "19408:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 9781,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "19408:7:8",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9784,
|
|
"mutability": "mutable",
|
|
"name": "_beneficiary",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9789,
|
|
"src": "19434:28:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
"typeName": {
|
|
"id": 9783,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "19434:15:8",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "19301:162:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9788,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9787,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9789,
|
|
"src": "19517:7:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9786,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "19517:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "19516:9:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "19283:243:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": true,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9805,
|
|
"nodeType": "Block",
|
|
"src": "19790:78:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9802,
|
|
"name": "PPM_RESOLUTION",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9007,
|
|
"src": "19845:14:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9799,
|
|
"name": "conversionFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9051,
|
|
"src": "19826:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9797,
|
|
"name": "_targetAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9792,
|
|
"src": "19808:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 9798,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "mul",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22327,
|
|
"src": "19808:17:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 9800,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "19808:32:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 9801,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "div",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22353,
|
|
"src": "19808:36:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 9803,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "19808:52:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 9796,
|
|
"id": 9804,
|
|
"nodeType": "Return",
|
|
"src": "19801:59:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9790,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "19534:173:8",
|
|
"text": " @dev returns the conversion fee for a given target amount\n @param _targetAmount target amount\n @return conversion fee"
|
|
},
|
|
"id": 9806,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "calculateFee",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9793,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9792,
|
|
"mutability": "mutable",
|
|
"name": "_targetAmount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9806,
|
|
"src": "19735:21:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9791,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "19735:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "19734:23:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9796,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9795,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9806,
|
|
"src": "19781:7:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9794,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "19781:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "19780:9:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "19713:155:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9843,
|
|
"nodeType": "Block",
|
|
"src": "20153:230:8",
|
|
"statements": [
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"id": 9817,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9815,
|
|
"name": "_reserveToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9809,
|
|
"src": "20168:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9816,
|
|
"name": "ETH_RESERVE_ADDRESS",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9012,
|
|
"src": "20185:19:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"src": "20168:36:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9840,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9829,
|
|
"name": "reserves",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9040,
|
|
"src": "20303:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve storage ref)"
|
|
}
|
|
},
|
|
"id": 9831,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9830,
|
|
"name": "_reserveToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9809,
|
|
"src": "20312:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "20303:23:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage",
|
|
"typeString": "struct ConverterBase.Reserve storage ref"
|
|
}
|
|
},
|
|
"id": 9832,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "balance",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9014,
|
|
"src": "20303:31:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9837,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "20369:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ConverterBase_$10039",
|
|
"typeString": "contract ConverterBase"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_ConverterBase_$10039",
|
|
"typeString": "contract ConverterBase"
|
|
}
|
|
],
|
|
"id": 9836,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "20361:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 9835,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "20361:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9838,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "20361:13:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9833,
|
|
"name": "_reserveToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9809,
|
|
"src": "20337:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"id": 9834,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "balanceOf",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21088,
|
|
"src": "20337:23:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
|
|
"typeString": "function (address) view external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 9839,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "20337:38:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "20303:72:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 9841,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "20303:72:8"
|
|
},
|
|
"id": 9842,
|
|
"nodeType": "IfStatement",
|
|
"src": "20164:211:8",
|
|
"trueBody": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9827,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9818,
|
|
"name": "reserves",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9040,
|
|
"src": "20219:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve storage ref)"
|
|
}
|
|
},
|
|
"id": 9820,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9819,
|
|
"name": "_reserveToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9809,
|
|
"src": "20228:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "20219:23:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage",
|
|
"typeString": "struct ConverterBase.Reserve storage ref"
|
|
}
|
|
},
|
|
"id": 9821,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "balance",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9014,
|
|
"src": "20219:31:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9824,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -28,
|
|
"src": "20261:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ConverterBase_$10039",
|
|
"typeString": "contract ConverterBase"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_ConverterBase_$10039",
|
|
"typeString": "contract ConverterBase"
|
|
}
|
|
],
|
|
"id": 9823,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "20253:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 9822,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "20253:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9825,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "20253:13:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"id": 9826,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "balance",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "20253:21:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "20219:55:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 9828,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "20219:55:8"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9807,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "19876:179:8",
|
|
"text": " @dev syncs the stored reserve balance for a given reserve with the real reserve balance\n @param _reserveToken address of the reserve token"
|
|
},
|
|
"id": 9844,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9812,
|
|
"name": "_reserveToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9809,
|
|
"src": "20138:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"id": 9813,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9811,
|
|
"name": "validReserve",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9172,
|
|
"src": "20125:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$21127_$",
|
|
"typeString": "modifier (contract IERC20Token)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "20125:27:8"
|
|
}
|
|
],
|
|
"name": "syncReserveBalance",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9810,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9809,
|
|
"mutability": "mutable",
|
|
"name": "_reserveToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9844,
|
|
"src": "20089:25:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9808,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "20089:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "20088:27:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9814,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "20153:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "20061:322:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9870,
|
|
"nodeType": "Block",
|
|
"src": "20496:165:8",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
9849
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 9849,
|
|
"mutability": "mutable",
|
|
"name": "reserveCount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9870,
|
|
"src": "20507:20:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9848,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "20507:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 9852,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9850,
|
|
"name": "reserveTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9036,
|
|
"src": "20530:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_contract$_IERC20Token_$21127_$dyn_storage",
|
|
"typeString": "contract IERC20Token[] storage ref"
|
|
}
|
|
},
|
|
"id": 9851,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "20530:20:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "20507:43:8"
|
|
},
|
|
{
|
|
"body": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9864,
|
|
"name": "reserveTokens",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9036,
|
|
"src": "20636:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_contract$_IERC20Token_$21127_$dyn_storage",
|
|
"typeString": "contract IERC20Token[] storage ref"
|
|
}
|
|
},
|
|
"id": 9866,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9865,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9854,
|
|
"src": "20650:1:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "20636:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 9863,
|
|
"name": "syncReserveBalance",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9844,
|
|
"src": "20617:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$returns$__$",
|
|
"typeString": "function (contract IERC20Token)"
|
|
}
|
|
},
|
|
"id": 9867,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "20617:36:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9868,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "20617:36:8"
|
|
},
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 9859,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9857,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9854,
|
|
"src": "20581:1:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9858,
|
|
"name": "reserveCount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9849,
|
|
"src": "20585:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "20581:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 9869,
|
|
"initializationExpression": {
|
|
"assignments": [
|
|
9854
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 9854,
|
|
"mutability": "mutable",
|
|
"name": "i",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9869,
|
|
"src": "20566:9:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9853,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "20566:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 9856,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 9855,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "20578:1:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "20566:13:8"
|
|
},
|
|
"loopExpression": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9861,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "++",
|
|
"prefix": false,
|
|
"src": "20599:3:8",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9860,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9854,
|
|
"src": "20599:1:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 9862,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "20599:3:8"
|
|
},
|
|
"nodeType": "ForStatement",
|
|
"src": "20561:92:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9845,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "20391:59:8",
|
|
"text": " @dev syncs all stored reserve balances"
|
|
},
|
|
"id": 9871,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "syncReserveBalances",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9846,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "20484:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9847,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "20496:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "20456:205:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 9907,
|
|
"nodeType": "Block",
|
|
"src": "21324:518:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 9892,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9888,
|
|
"name": "_feeAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9884,
|
|
"src": "21705:10:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1",
|
|
"typeString": "int_const 5789...(69 digits omitted)...9968"
|
|
},
|
|
"id": 9891,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 9889,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "21718:1:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "**",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "323535",
|
|
"id": 9890,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "21723:3:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_255_by_1",
|
|
"typeString": "int_const 255"
|
|
},
|
|
"value": "255"
|
|
},
|
|
"src": "21718:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1",
|
|
"typeString": "int_const 5789...(69 digits omitted)...9968"
|
|
}
|
|
},
|
|
"src": "21705:21:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
],
|
|
"id": 9887,
|
|
"name": "assert",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -3,
|
|
"src": "21698:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
|
|
"typeString": "function (bool) pure"
|
|
}
|
|
},
|
|
"id": 9893,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "21698:29:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9894,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "21698:29:8"
|
|
},
|
|
{
|
|
"eventCall": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9896,
|
|
"name": "_sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9874,
|
|
"src": "21754:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9897,
|
|
"name": "_targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9876,
|
|
"src": "21768:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9898,
|
|
"name": "_trader",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9878,
|
|
"src": "21782:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9899,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9880,
|
|
"src": "21791:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9900,
|
|
"name": "_returnAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9882,
|
|
"src": "21800:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9903,
|
|
"name": "_feeAmount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9884,
|
|
"src": "21822:10:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 9902,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "21815:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_int256_$",
|
|
"typeString": "type(int256)"
|
|
},
|
|
"typeName": {
|
|
"id": 9901,
|
|
"name": "int256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "21815:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 9904,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "21815:18:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_int256",
|
|
"typeString": "int256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_int256",
|
|
"typeString": "int256"
|
|
}
|
|
],
|
|
"id": 9895,
|
|
"name": "Conversion",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9078,
|
|
"src": "21743:10:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_event_nonpayable$_t_contract$_IERC20Token_$21127_$_t_contract$_IERC20Token_$21127_$_t_address_$_t_uint256_$_t_uint256_$_t_int256_$returns$__$",
|
|
"typeString": "function (contract IERC20Token,contract IERC20Token,address,uint256,uint256,int256)"
|
|
}
|
|
},
|
|
"id": 9905,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "21743:91:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9906,
|
|
"nodeType": "EmitStatement",
|
|
"src": "21738:96:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9872,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "20669:409:8",
|
|
"text": " @dev helper, dispatches the Conversion event\n @param _sourceToken source ERC20 token\n @param _targetToken target ERC20 token\n @param _trader address of the caller who executed the conversion\n @param _amount amount purchased/sold (in the source token)\n @param _returnAmount amount returned (in the target token)"
|
|
},
|
|
"id": 9908,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "dispatchConversionEvent",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 9885,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9874,
|
|
"mutability": "mutable",
|
|
"name": "_sourceToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9908,
|
|
"src": "21127:24:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9873,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "21127:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9876,
|
|
"mutability": "mutable",
|
|
"name": "_targetToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9908,
|
|
"src": "21162:24:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9875,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "21162:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9878,
|
|
"mutability": "mutable",
|
|
"name": "_trader",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9908,
|
|
"src": "21197:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 9877,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "21197:7:8",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9880,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9908,
|
|
"src": "21223:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9879,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "21223:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9882,
|
|
"mutability": "mutable",
|
|
"name": "_returnAmount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9908,
|
|
"src": "21249:21:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9881,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "21249:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9884,
|
|
"mutability": "mutable",
|
|
"name": "_feeAmount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9908,
|
|
"src": "21281:18:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9883,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "21281:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "21116:184:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9886,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "21324:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "21084:758:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13297
|
|
],
|
|
"body": {
|
|
"id": 9917,
|
|
"nodeType": "Block",
|
|
"src": "22030:32:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9915,
|
|
"name": "anchor",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9030,
|
|
"src": "22048:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"functionReturnParameters": 9914,
|
|
"id": 9916,
|
|
"nodeType": "Return",
|
|
"src": "22041:13:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9909,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "21850:109:8",
|
|
"text": " @dev deprecated since version 28, backward compatibility - use only for earlier versions"
|
|
},
|
|
"functionSelector": "fc0c546a",
|
|
"id": 9918,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "token",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9911,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "21994:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9910,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "21979:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9914,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9913,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9918,
|
|
"src": "22012:16:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9912,
|
|
"name": "IConverterAnchor",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 13349,
|
|
"src": "22012:16:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IConverterAnchor_$13349",
|
|
"typeString": "contract IConverterAnchor"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "22011:18:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "21965:97:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13302
|
|
],
|
|
"body": {
|
|
"id": 9931,
|
|
"nodeType": "Block",
|
|
"src": "22213:53:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 9928,
|
|
"name": "_newOwner",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9921,
|
|
"src": "22248:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 9927,
|
|
"name": "transferAnchorOwnership",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9381,
|
|
"src": "22224:23:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
|
|
"typeString": "function (address)"
|
|
}
|
|
},
|
|
"id": 9929,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "22224:34:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9930,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "22224:34:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9919,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "22070:60:8",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "21e6b53d",
|
|
"id": 9932,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 9925,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9924,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "22203:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "22203:9:8"
|
|
}
|
|
],
|
|
"name": "transferTokenOwnership",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9923,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "22194:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9922,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9921,
|
|
"mutability": "mutable",
|
|
"name": "_newOwner",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9932,
|
|
"src": "22168:17:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 9920,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "22168:7:8",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "22167:19:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9926,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "22213:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "22136:130:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13305
|
|
],
|
|
"body": {
|
|
"id": 9942,
|
|
"nodeType": "Block",
|
|
"src": "22398:42:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 9939,
|
|
"name": "acceptAnchorOwnership",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9405,
|
|
"src": "22409:21:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
|
|
"typeString": "function ()"
|
|
}
|
|
},
|
|
"id": 9940,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "22409:23:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 9941,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "22409:23:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9933,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "22274:60:8",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "38a5e016",
|
|
"id": 9943,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 9937,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 9936,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "22388:9:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "22388:9:8"
|
|
}
|
|
],
|
|
"name": "acceptTokenOwnership",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9935,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "22379:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9934,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "22369:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9938,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "22398:0:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "22340:100:8",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13320
|
|
],
|
|
"body": {
|
|
"id": 9976,
|
|
"nodeType": "Block",
|
|
"src": "22621:141:8",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
9961
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 9961,
|
|
"mutability": "mutable",
|
|
"name": "reserve",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9976,
|
|
"src": "22632:22:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_memory_ptr",
|
|
"typeString": "struct ConverterBase.Reserve"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9960,
|
|
"name": "Reserve",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 9023,
|
|
"src": "22632:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage_ptr",
|
|
"typeString": "struct ConverterBase.Reserve"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 9965,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9962,
|
|
"name": "reserves",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9040,
|
|
"src": "22657:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_contract$_IERC20Token_$21127_$_t_struct$_Reserve_$9023_storage_$",
|
|
"typeString": "mapping(contract IERC20Token => struct ConverterBase.Reserve storage ref)"
|
|
}
|
|
},
|
|
"id": 9964,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9963,
|
|
"name": "_address",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9946,
|
|
"src": "22666:8:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "22657:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_storage",
|
|
"typeString": "struct ConverterBase.Reserve storage ref"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "22632:43:8"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"components": [
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9966,
|
|
"name": "reserve",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9961,
|
|
"src": "22693:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_memory_ptr",
|
|
"typeString": "struct ConverterBase.Reserve memory"
|
|
}
|
|
},
|
|
"id": 9967,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "balance",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9014,
|
|
"src": "22693:15:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9968,
|
|
"name": "reserve",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9961,
|
|
"src": "22710:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_memory_ptr",
|
|
"typeString": "struct ConverterBase.Reserve memory"
|
|
}
|
|
},
|
|
"id": 9969,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "weight",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9016,
|
|
"src": "22710:14:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "66616c7365",
|
|
"id": 9970,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "22726:5:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "false"
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "66616c7365",
|
|
"id": 9971,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "22733:5:8",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "false"
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9972,
|
|
"name": "reserve",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9961,
|
|
"src": "22740:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_Reserve_$9023_memory_ptr",
|
|
"typeString": "struct ConverterBase.Reserve memory"
|
|
}
|
|
},
|
|
"id": 9973,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "isSet",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9022,
|
|
"src": "22740:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
}
|
|
],
|
|
"id": 9974,
|
|
"isConstant": false,
|
|
"isInlineArray": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "TupleExpression",
|
|
"src": "22692:62:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint32_$_t_bool_$_t_bool_$_t_bool_$",
|
|
"typeString": "tuple(uint256,uint32,bool,bool,bool)"
|
|
}
|
|
},
|
|
"functionReturnParameters": 9959,
|
|
"id": 9975,
|
|
"nodeType": "Return",
|
|
"src": "22686:68:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9944,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "22448:60:8",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "0e53aae9",
|
|
"id": 9977,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "connectors",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9948,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "22568:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9947,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9946,
|
|
"mutability": "mutable",
|
|
"name": "_address",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9977,
|
|
"src": "22534:20:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9945,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "22534:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "22533:22:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9959,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9950,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9977,
|
|
"src": "22586:7:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9949,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "22586:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9952,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9977,
|
|
"src": "22595:6:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
},
|
|
"typeName": {
|
|
"id": 9951,
|
|
"name": "uint32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "22595:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint32",
|
|
"typeString": "uint32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9954,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9977,
|
|
"src": "22603:4:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 9953,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "22603:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9956,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9977,
|
|
"src": "22609:4:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 9955,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "22609:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 9958,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9977,
|
|
"src": "22615:4:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 9957,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "22615:4:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "22585:35:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "22514:248:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13334
|
|
],
|
|
"body": {
|
|
"id": 9991,
|
|
"nodeType": "Block",
|
|
"src": "22920:61:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 9986,
|
|
"name": "ConverterBase",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 10039,
|
|
"src": "22938:13:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_ConverterBase_$10039_$",
|
|
"typeString": "type(contract ConverterBase)"
|
|
}
|
|
},
|
|
"id": 9987,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "reserveTokens",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 9036,
|
|
"src": "22938:27:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_contract$_IERC20Token_$21127_$dyn_storage",
|
|
"typeString": "contract IERC20Token[] storage ref"
|
|
}
|
|
},
|
|
"id": 9989,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 9988,
|
|
"name": "_index",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9980,
|
|
"src": "22966:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "22938:35:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"functionReturnParameters": 9985,
|
|
"id": 9990,
|
|
"nodeType": "Return",
|
|
"src": "22931:42:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9978,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "22770:60:8",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "19b64015",
|
|
"id": 9992,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "connectorTokens",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9982,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "22889:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9981,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9980,
|
|
"mutability": "mutable",
|
|
"name": "_index",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9992,
|
|
"src": "22861:14:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 9979,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "22861:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "22860:16:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9985,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9984,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 9992,
|
|
"src": "22907:11:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 9983,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "22907:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "22906:13:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "22836:145:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13339
|
|
],
|
|
"body": {
|
|
"id": 10002,
|
|
"nodeType": "Block",
|
|
"src": "23124:45:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 9999,
|
|
"name": "reserveTokenCount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9561,
|
|
"src": "23142:17:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint16_$",
|
|
"typeString": "function () view returns (uint16)"
|
|
}
|
|
},
|
|
"id": 10000,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "23142:19:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
},
|
|
"functionReturnParameters": 9998,
|
|
"id": 10001,
|
|
"nodeType": "Return",
|
|
"src": "23135:26:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 9993,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "22989:60:8",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "71f52bf3",
|
|
"id": 10003,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "connectorTokenCount",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 9995,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "23098:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 9994,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "23083:2:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 9998,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 9997,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10003,
|
|
"src": "23116:6:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
},
|
|
"typeName": {
|
|
"id": 9996,
|
|
"name": "uint16",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "23116:6:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint16",
|
|
"typeString": "uint16"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "23115:8:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "23055:114:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
13327
|
|
],
|
|
"body": {
|
|
"id": 10016,
|
|
"nodeType": "Block",
|
|
"src": "23340:57:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 10013,
|
|
"name": "_connectorToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 10006,
|
|
"src": "23373:15:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
],
|
|
"id": 10012,
|
|
"name": "reserveBalance",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9699,
|
|
"src": "23358:14:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$21127_$returns$_t_uint256_$",
|
|
"typeString": "function (contract IERC20Token) view returns (uint256)"
|
|
}
|
|
},
|
|
"id": 10014,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "23358:31:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 10011,
|
|
"id": 10015,
|
|
"nodeType": "Return",
|
|
"src": "23351:38:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 10004,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "23177:60:8",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "d8959512",
|
|
"id": 10017,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "getConnectorBalance",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 10008,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "23313:8:8"
|
|
},
|
|
"parameters": {
|
|
"id": 10007,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 10006,
|
|
"mutability": "mutable",
|
|
"name": "_connectorToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10017,
|
|
"src": "23272:27:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 10005,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "23272:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "23271:29:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 10011,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 10010,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10017,
|
|
"src": "23331:7:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 10009,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "23331:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "23330:9:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "23243:154:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 10037,
|
|
"nodeType": "Block",
|
|
"src": "23598:81:8",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 10032,
|
|
"name": "_sourceToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 10020,
|
|
"src": "23635:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 10033,
|
|
"name": "_targetToken",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 10022,
|
|
"src": "23649:12:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 10034,
|
|
"name": "_amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 10024,
|
|
"src": "23663:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 10031,
|
|
"name": "targetAmountAndFee",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 9256,
|
|
"src": "23616:18:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$21127_$_t_contract$_IERC20Token_$21127_$_t_uint256_$returns$_t_uint256_$_t_uint256_$",
|
|
"typeString": "function (contract IERC20Token,contract IERC20Token,uint256) view returns (uint256,uint256)"
|
|
}
|
|
},
|
|
"id": 10035,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "23616:55:8",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
|
|
"typeString": "tuple(uint256,uint256)"
|
|
}
|
|
},
|
|
"functionReturnParameters": 10030,
|
|
"id": 10036,
|
|
"nodeType": "Return",
|
|
"src": "23609:62:8"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 10018,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "23405:60:8",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "1e1401f8",
|
|
"id": 10038,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "getReturn",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 10025,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 10020,
|
|
"mutability": "mutable",
|
|
"name": "_sourceToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10038,
|
|
"src": "23490:24:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 10019,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "23490:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10022,
|
|
"mutability": "mutable",
|
|
"name": "_targetToken",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10038,
|
|
"src": "23516:24:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 10021,
|
|
"name": "IERC20Token",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21127,
|
|
"src": "23516:11:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20Token_$21127",
|
|
"typeString": "contract IERC20Token"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10024,
|
|
"mutability": "mutable",
|
|
"name": "_amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10038,
|
|
"src": "23542:15:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 10023,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "23542:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "23489:69:8"
|
|
},
|
|
"returnParameters": {
|
|
"id": 10030,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 10027,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10038,
|
|
"src": "23580:7:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 10026,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "23580:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10029,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 10038,
|
|
"src": "23589:7:8",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 10028,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "23589:7:8",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "23579:18:8"
|
|
},
|
|
"scope": 10039,
|
|
"src": "23471:208:8",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
}
|
|
],
|
|
"scope": 10040,
|
|
"src": "1648:22034:8"
|
|
}
|
|
],
|
|
"src": "52:23632:8"
|
|
},
|
|
"compiler": {
|
|
"name": "solc",
|
|
"version": "0.6.12+commit.27d51765.Emscripten.clang"
|
|
},
|
|
"networks": {},
|
|
"schemaVersion": "3.2.3",
|
|
"updatedAt": "2020-10-20T08:24:47.712Z",
|
|
"devdoc": {
|
|
"details": "ConverterBase The converter contains the main logic for conversions between different ERC20 tokens. It is also the upgradable part of the mechanism (note that upgrades are opt-in). The anchor must be set on construction and cannot be changed afterwards. Wrappers are provided for some of the anchor's functions, for easier access. Once the converter accepts ownership of the anchor, it becomes the anchor's sole controller and can execute any of its functions. To upgrade the converter, anchor ownership must be transferred to a new converter, along with any relevant data. Note that the converter can transfer anchor ownership to a new converter that doesn't allow upgrades anymore, for finalizing the relationship between the converter and the anchor. Converter types (defined as uint16 type) - 0 = liquid token converter 1 = liquidity pool v1 converter 2 = liquidity pool v2 converter Note that converters don't currently support tokens with transfer fees.",
|
|
"events": {
|
|
"Activation(uint16,address,bool)": {
|
|
"details": "triggered when the converter is activated",
|
|
"params": {
|
|
"_activated": "true if the converter was activated, false if it was deactivated",
|
|
"_anchor": "converter anchor",
|
|
"_type": "converter type"
|
|
}
|
|
},
|
|
"Conversion(address,address,address,uint256,uint256,int256)": {
|
|
"details": "triggered when a conversion between two tokens occurs",
|
|
"params": {
|
|
"_amount": "amount converted, in the source token",
|
|
"_conversionFee": "conversion fee",
|
|
"_fromToken": "source ERC20 token",
|
|
"_return": "amount returned, minus conversion fee",
|
|
"_toToken": "target ERC20 token",
|
|
"_trader": "wallet that initiated the trade"
|
|
}
|
|
},
|
|
"ConversionFeeUpdate(uint32,uint32)": {
|
|
"details": "triggered when the conversion fee is updated",
|
|
"params": {
|
|
"_newFee": "new fee percentage, represented in ppm",
|
|
"_prevFee": "previous fee percentage, represented in ppm"
|
|
}
|
|
},
|
|
"TokenRateUpdate(address,address,uint256,uint256)": {
|
|
"details": "triggered when the rate between two tokens in the converter changes note that the event might be dispatched for rate updates between any two tokens in the converter note that prior to version 28, you should use the 'PriceDataUpdate' event instead",
|
|
"params": {
|
|
"_rateD": "rate of 1 unit of `_token1` in `_token2` (denominator)",
|
|
"_rateN": "rate of 1 unit of `_token1` in `_token2` (numerator)",
|
|
"_token1": "address of the first token",
|
|
"_token2": "address of the second token"
|
|
}
|
|
}
|
|
},
|
|
"kind": "dev",
|
|
"methods": {
|
|
"acceptAnchorOwnership()": {
|
|
"details": "accepts ownership of the anchor after an ownership transfer most converters are also activated as soon as they accept the anchor ownership can only be called by the contract owner note that prior to version 28, you should use 'acceptTokenOwnership' instead"
|
|
},
|
|
"acceptOwnership()": {
|
|
"details": "used by a new owner to accept an ownership transfer"
|
|
},
|
|
"acceptTokenOwnership()": {
|
|
"details": "deprecated, backward compatibility"
|
|
},
|
|
"addReserve(address,uint32)": {
|
|
"details": "defines a new reserve token for the converter can only be called by the owner while the converter is inactive",
|
|
"params": {
|
|
"_token": "address of the reserve token",
|
|
"_weight": "reserve weight, represented in ppm, 1-1000000"
|
|
}
|
|
},
|
|
"connectorTokenCount()": {
|
|
"details": "deprecated, backward compatibility"
|
|
},
|
|
"connectorTokens(uint256)": {
|
|
"details": "deprecated, backward compatibility"
|
|
},
|
|
"connectors(address)": {
|
|
"details": "deprecated, backward compatibility"
|
|
},
|
|
"constructor": {
|
|
"details": "used by sub-contracts to initialize a new converter",
|
|
"params": {
|
|
"_anchor": "anchor governed by the converter",
|
|
"_maxConversionFee": "maximum conversion fee, represented in ppm",
|
|
"_registry": "address of a contract registry contract"
|
|
}
|
|
},
|
|
"convert(address,address,uint256,address,address)": {
|
|
"details": "converts a specific amount of source tokens to target tokens can only be called by the bancor network contract",
|
|
"params": {
|
|
"_amount": "amount of tokens to convert (in units of the source token)",
|
|
"_beneficiary": "wallet to receive the conversion result",
|
|
"_sourceToken": "source ERC20 token",
|
|
"_targetToken": "target ERC20 token",
|
|
"_trader": "address of the caller who executed the conversion"
|
|
},
|
|
"returns": {
|
|
"_0": "amount of tokens received (in units of the target token)"
|
|
}
|
|
},
|
|
"getConnectorBalance(address)": {
|
|
"details": "deprecated, backward compatibility"
|
|
},
|
|
"getReturn(address,address,uint256)": {
|
|
"details": "deprecated, backward compatibility"
|
|
},
|
|
"hasETHReserve()": {
|
|
"details": "checks whether or not the converter has an ETH reserve",
|
|
"returns": {
|
|
"_0": "true if the converter has an ETH reserve, false otherwise"
|
|
}
|
|
},
|
|
"isActive()": {
|
|
"details": "returns true if the converter is active, false otherwise",
|
|
"returns": {
|
|
"_0": "true if the converter is active, false otherwise"
|
|
}
|
|
},
|
|
"isV28OrHigher()": {
|
|
"details": "checks whether or not the converter version is 28 or higher",
|
|
"returns": {
|
|
"_0": "true, since the converter version is 28 or higher"
|
|
}
|
|
},
|
|
"reserveBalance(address)": {
|
|
"details": "returns the reserve's balance note that prior to version 17, you should use 'getConnectorBalance' instead",
|
|
"params": {
|
|
"_reserveToken": "reserve token contract address"
|
|
},
|
|
"returns": {
|
|
"_0": "reserve balance"
|
|
}
|
|
},
|
|
"reserveTokenCount()": {
|
|
"details": "returns the number of reserve tokens defined note that prior to version 17, you should use 'connectorTokenCount' instead",
|
|
"returns": {
|
|
"_0": "number of reserve tokens"
|
|
}
|
|
},
|
|
"reserveWeight(address)": {
|
|
"details": "returns the reserve's weight added in version 28",
|
|
"params": {
|
|
"_reserveToken": "reserve token contract address"
|
|
},
|
|
"returns": {
|
|
"_0": "reserve weight"
|
|
}
|
|
},
|
|
"restoreRegistry()": {
|
|
"details": "restores the previous contract-registry"
|
|
},
|
|
"restrictRegistryUpdate(bool)": {
|
|
"details": "restricts the permission to update the contract-registry",
|
|
"params": {
|
|
"_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only"
|
|
}
|
|
},
|
|
"setConversionFee(uint32)": {
|
|
"details": "updates the current conversion fee can only be called by the contract owner",
|
|
"params": {
|
|
"_conversionFee": "new conversion fee, represented in ppm"
|
|
}
|
|
},
|
|
"setConversionWhitelist(address)": {
|
|
"details": "allows the owner to update & enable the conversion whitelist contract address when set, only addresses that are whitelisted are actually allowed to use the converter note that the whitelist check is actually done by the BancorNetwork contract",
|
|
"params": {
|
|
"_whitelist": "address of a whitelist contract"
|
|
}
|
|
},
|
|
"token()": {
|
|
"details": "deprecated since version 28, backward compatibility - use only for earlier versions"
|
|
},
|
|
"transferAnchorOwnership(address)": {
|
|
"details": "transfers the anchor ownership the new owner needs to accept the transfer can only be called by the converter upgrder while the upgrader is the owner note that prior to version 28, you should use 'transferAnchorOwnership' instead",
|
|
"params": {
|
|
"_newOwner": "new token owner"
|
|
}
|
|
},
|
|
"transferOwnership(address)": {
|
|
"details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner",
|
|
"params": {
|
|
"_newOwner": "new contract owner"
|
|
}
|
|
},
|
|
"transferTokenOwnership(address)": {
|
|
"details": "deprecated, backward compatibility"
|
|
},
|
|
"updateRegistry()": {
|
|
"details": "updates to the new contract-registry"
|
|
},
|
|
"upgrade()": {
|
|
"details": "upgrades the converter to the latest version can only be called by the owner note that the owner needs to call acceptOwnership on the new converter after the upgrade"
|
|
},
|
|
"withdrawETH(address)": {
|
|
"details": "withdraws ether can only be called by the owner if the converter is inactive or by upgrader contract can only be called after the upgrader contract has accepted the ownership of this contract can only be called if the converter has an ETH reserve",
|
|
"params": {
|
|
"_to": "address to send the ETH to"
|
|
}
|
|
},
|
|
"withdrawFromAnchor(address,address,uint256)": {
|
|
"details": "withdraws tokens held by the anchor and sends them to an account can only be called by the owner",
|
|
"params": {
|
|
"_amount": "amount to withdraw",
|
|
"_to": "account to receive the new amount",
|
|
"_token": "ERC20 token contract address"
|
|
}
|
|
},
|
|
"withdrawTokens(address,address,uint256)": {
|
|
"details": "withdraws tokens held by the converter and sends them to an account can only be called by the owner note that reserve tokens can only be withdrawn by the owner while the converter is inactive unless the owner is the converter upgrader contract",
|
|
"params": {
|
|
"_amount": "amount to withdraw",
|
|
"_to": "account to receive the new amount",
|
|
"_token": "ERC20 token contract address"
|
|
}
|
|
}
|
|
},
|
|
"stateVariables": {
|
|
"version": {
|
|
"details": "version number"
|
|
}
|
|
},
|
|
"version": 1
|
|
},
|
|
"userdoc": {
|
|
"kind": "user",
|
|
"methods": {},
|
|
"version": 1
|
|
}
|
|
} |