В процессе загрузки ресурсов... загрузка...

exchange.IO("api", eth,...)

Способ вызоваexchange.IO("api", "eth", ...)функция используется для вызова метода Ethereum RPC.

Вexchange.IO("api", "eth", ...)функция возвращает возвращаемое значение метода RPC. string, number, bool, object, array, null и все другие типы, поддерживаемые системой

exchange.IO(k, blockChain, rpcMethod)exchange.IO(k, blockChain, rpcMethod,...args)

ВkПараметр используется для установки функцииexchange.IO()функция, установленная на"api"указывает, что функция используется для расширения запроса вызова. k неправда строка ВblockChainПараметр используется для установки функцииexchange.IO()функция, установленная на"eth"указывает, что функция используется для вызовов методов RPC в сети Ethereum. блок-цепочка Истинно строка ВrpcMethodПараметр используется для установки метода RPC, который должен быть вызванexchange.IO()Функция. Метод rpc неправда строка Вargпараметр используется для указания параметров метода RPC, который должен быть вызван.argтип и количествоargпараметры зависят от метода RPC, указанногоrpcMethodПараметр. арг ложное string, number, bool, object, array, function, null и все другие типы, поддерживаемые системой

function main() {
    // "owner" needs to be replaced with the specific wallet address
    // Parameter labels for the "latest" string position: 'latest', 'earliest' or 'pending', please refrer to https://eth.wiki/json-rpc/API#the-default-block-parameter
    // The return value ethBalance is a hexadecimal string: 0x9b19ce56113070
    var ethBalance = exchange.IO("api", "eth", "eth_getBalance", "owner", "latest")              

    // ETH has a precision unit of 1e18
    var ethDecimal = 18              

    // Because of the JavaScript language precision, it is necessary to use the system underlying package function BigInt, BigDecimal to process
    // Convert ethBalance to readable amount, 0x9b19ce56113070 to 0.043656995388076145
    Log(Number((BigDecimal(BigInt(ethBalance))/BigDecimal(Math.pow(10, ethDecimal))).toString()))
}

Проверьте баланс ETH в вашем кошельке:

function mian() {
    // ETH has a precision unit of 1e18
    var ethDecimal = 18  

    // Number of transfers, readable amount e.g. 0.01 ETH
    var sendAmount = 0.01  

    // Due to the JavaScript language precision, it is necessary to use the system underlying encapsulated functions BigInt, BigDecimal to process, and to convert the readable amount to the data processed on the chain
    var toAmount = (BigDecimal(sendAmount)*BigDecimal(Math.pow(10, ethDecimal))).toFixed(0)
    
    // "toAddress" is the address of the recipient's ETH wallet at the time of the transfer, which needs to be filled in specifically, and toAmount is the number of transfers
    exchange.IO("api", "eth", "send", "toAddress", toAmount)
}

Для переводов ETH вы можете установить{gasPrice: 11, gasLimit: 111, nonce: 111}параметр, который устанавливается на последнем параметреexchange.IO()Вы можете пропуститьnonceи использовать систему по умолчанию, или оставитьgasLimit/gasPrice/nonceотключить и использовать систему по умолчанию для всех.

function toAmount(s, decimals) {
    return Number((BigDecimal(BigInt(s))/BigDecimal(Math.pow(10, decimals))).toString())
}

function main() {
    var gasPrice = exchange.IO("api", "eth", "eth_gasPrice")
    Log("gasPrice:", toAmount(gasPrice, 0))   // 5000000000 , in wei (5 gwei)
}

ЗапросgasPrice:

function toAmount(s, decimals) {
    // The toAmount function can convert hex-encoded values to decimal values
    return Number((BigDecimal(BigInt(s))/BigDecimal(Math.pow(10, decimals))).toString())
}                

function main() {
    // Coding approve (authorization) method calls
    var data = exchange.IO("encode", "0x111111111117dC0aa78b770fA6A738034120C302", "approve", "0xe592427a0aece92de3edee1f18e0157c05861564", "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")
    Log("data:", data)
    var gasPrice = exchange.IO("api", "eth", "eth_gasPrice")
    Log("gasPrice:", toAmount(gasPrice, 0))
    var obj = {
        "from" : "0x0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",   // walletAddress
        "to"  : "0x111111111117dC0aa78b770fA6A738034120C302",
        "gasPrice" : gasPrice,
        "value" : "0x0",
        "data" : "0x" + data,
    }
    
    var gasLimit = exchange.IO("api", "eth", "eth_estimateGas", obj)
    Log("gasLimit:", toAmount(gasLimit, 0))
    Log("gas fee", toAmount(gasLimit, 0) * toAmount(gasPrice, 0) / 1e18)
}

Запросeth_estimateGas:

Второй параметрexchange.IO()функция с"eth"может напрямую вызвать методы RPC, доступные серверу узла Ethereum.

# # Забавный Большой Десятиметровый # # Забавный Большой Интеллект #

обмен. обмен.IO (("код",...)