exchange.IO(“abi”, …)

在发明者量化交易平台中,主要通过 exchange.IO() 函数实现区块链相关的各种功能调用。以下文档将根据 exchange.IO() 函数的不同功能分别进行描述。exchange.IO("abi", ...) 函数调用方式用于注册 ABI。

  • 支持以太坊(eth)

  • 支持波场(tron)

exchange.IO(k, address, abiContent)

k 参数用于设置 exchange.IO() 函数的功能,设置为 "abi" 表示该函数用于注册 ABI。 k true string address 参数用于指定智能合约的地址。 address true string abiContent 参数用于指定智能合约的 ABI。 abiContent true string

function main() {
    // register Uniswap SwapRouter02 abi
    var routerAddress = "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45"
    var abi = `[{"inputs":[{"components":[{"internalType":"bytes","name":"path","type":"bytes"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMaximum","type":"uint256"}],"internalType":"struct IV3SwapRouter.ExactOutputParams","name":"params","type":"tuple"}],"name":"exactOutput","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"payable","type":"function"}]`

    // abi 仅使用了局部的 exactOutput 方法内容,完整的 abi 可以在网上搜索
    exchange.IO("abi", routerAddress, abi)
}```

如果调用的智能合约方法是标准 ERC20 方法,则无需注册。
获取合约的 `ABI` 内容可以通过以下 URL 获取,只需取 `result` 字段,例如:

```url
https://api.etherscan.io/api?module=contract&action=getabi&address=0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45