O recurso está a ser carregado... Carregamento...

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

O método de chamada deexchange.IO("api", "eth", ...)função é usada para chamar o método Ethereum RPC.

Oexchange.IO("api", "eth", ...)A função retorna o valor de retorno do método RPC chamado. string, number, bool, object, array, null e todos os outros tipos suportados pelo sistema

exchange.IO(k, blockChain, rpcMétodo)exchange.IO(k, blockChain, rpcMethod,...args)

OkParâmetro utilizado para definir a função doexchange.IO()função, definida em"api"indica que a função é utilizada para estender a solicitação de chamada. k verdade cordel OblockChainParâmetro utilizado para definir a função doexchange.IO()função, definida em"eth"indica que a função é utilizada para chamadas de métodos RPC na Rede Ethereum. BlockChain verdade cordel OrpcMethodParâmetro é usado para definir o método RPC a ser chamado peloexchange.IO()função. Método rpc verdade cordel OargO parâmetro é usado para especificar os parâmetros do método RPC a ser chamado.argO tipo e o número deargOs parâmetros dependem do método RPC especificado pelorpcMethodParâmetro. arg Falso string, number, bool, object, array, function, null e todos os outros tipos suportados pelo sistema

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()))
}

Verifique o saldo de ETH na sua carteira:

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)
}

Para transferências de ETH, pode definir o{gasPrice: 11, gasLimit: 111, nonce: 111}Parâmetro, que é definido no último parâmetro doexchange.IO()A sua função, de acordo com as suas necessidades específicas.noncee usar o sistema padrão, ou deixargasLimit/gasPrice/nonceDesativar e usar o valor padrão do sistema para todos.

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)
}

PerguntagasPrice:

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)
}

Perguntaeth_estimateGas:

O segundo parâmetro doexchange.IO()função com"eth"pode chamar diretamente os métodos RPC disponíveis para o servidor de nó Ethereum.

- O que é que queres?

- O que é isso? intercâmbio.IO (("codificar",...)