内置函数
结构体
内置变量与常量
通用约定
交易所
能力矩阵
中心化交易所
去中心化交易所
预测市场
证券与期货
链上与自定义接入
通用协议
Web3
exchange.IO("abi", ...)
exchange.IO("api", blockChain, ...)
exchange.IO("encode", ...)
exchange.IO("encodePacked", ...)
exchange.IO("decode", ...)
exchange.IO("hash", ...)
exchange.IO("key", ...)
exchange.IO("sign", ...)
exchange.IO("signTypedData", ...)
exchange.IO("signMessage", ...)
exchange.IO("api", ...)
exchange.IO("call", ...)
exchange.IO("multicall", ...)
exchange.IO("logs", ...)
exchange.IO("waitReceipt", ...)
exchange.IO("nonce", ...)
exchange.IO("speedUp", ...)
exchange.IO("cancelTx", ...)
exchange.IO("toUnits", ...)
exchange.IO("fromUnits", ...)
exchange.IO("uniswapV3", ...)
exchange.IO("contracts", ...)
exchange.IO("address")
exchange.IO("base", ...)
exchange.IO("sendBase", ...)
exchange.IO("fromUnits", ...)
将链上整数值换算为可读数量,整个换算过程基于字符串进行精确计算,不经过浮点数运算,避免精度损失。
exchange.IO(k, amount, decimals)示例
USDC与ETH的数量换算。
javascript
function main() {
var USDC = "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
// 可读数量 -> 链上整数,精度可以传数字,也可以传代币地址(自动读取 decimals)
Log(exchange.IO("toUnits", "1.5", 6))
// 输出:1500000
Log(exchange.IO("toUnits", "1.5", USDC))
// 输出:1500000
Log(exchange.IO("toUnits", "0.01", 18))
// 输出:10000000000000000
// 链上整数 -> 可读数量
Log(exchange.IO("fromUnits", "1500000", 6))
// 输出:1.5
var raw = exchange.IO("api", USDC, "balanceOf", exchange.IO("address"))
Log("USDC余额:", exchange.IO("fromUnits", raw, USDC))
// 小数位多于精度时报错,不会静默截断
Log(exchange.IO("toUnits", "1.0000001", 6), GetLastError())
}返回值
| 类型 | 描述 |
string | 返回可读数量(十进制字符串,已去除末尾多余的0)。 |
参数
| 名称 | 类型 | 必填 | 描述 |
k | string | 是 | 固定为 |
amount | string / number | 是 | 待换算的链上整数值,可以是十进制字符串、以 |
decimals | number / string | 是 | 精度,可以传入数值(例如USDC为6,ETH为18),也可以传入代币合约地址,此时将自动调用该代币合约的 |
参考
备注
与exchange.IO("toUnits", ...)互为逆运算。