Die Ressourcen sind geladen. Beförderung...

exchange.IO(Api, eth,...)

Die Anrufmethode vonexchange.IO("api", "eth", ...)Die Funktion wird verwendet, um die Methode Ethereum RPC aufzurufen.

Dieexchange.IO("api", "eth", ...)Funktion gibt den Rückgabewert der genannten RPC-Methode zurück. String, number, bool, object, array, null und alle anderen vom System unterstützten Typen

exchange.IO(k, BlockChain, rpcMethode)exchange.IO(k, BlockChain, rpcMethode,...args)

DiekParameter wird verwendet, um die Funktion derexchange.IO()Funktion, auf"api"zeigt an, dass die Funktion zur Erweiterung der Anrufanfrage verwendet wird. k wahr String DieblockChainParameter wird verwendet, um die Funktion derexchange.IO()Funktion, auf"eth"zeigt an, dass die Funktion für Anrufe der RPC-Methode im Ethereum-Netzwerk verwendet wird. BlockChain - Das stimmt. String DierpcMethodParameter wird verwendet, um die von derexchange.IO()Funktion. rpcMethode wahr String DieargParameter wird verwendet, um die Parameter der zu aufrufenden RPC-Methode anzugeben.argDie Art und Anzahl derargDie Parameter hängen von der von derrpcMethodParameter. Arg falsche String, number, bool, object, array, function, null und alle anderen vom System unterstützten Typen

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

Überprüfen Sie den ETH-Guthaben in Ihrer Brieftasche:

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

Für ETH-Überweisungen können Sie die{gasPrice: 11, gasLimit: 111, nonce: 111}Parameter, der auf den letzten Parameter desexchange.IO()Sie können dienonceund verwenden Sie die System-Standard, oder lassengasLimit/gasPrice/nonceDeaktivieren und verwenden Sie den Systemstandardwert für alle.

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

AbfragegasPrice:

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

Abfrageeth_estimateGas:

Der zweite Parameter derexchange.IO()Funktion mit"eth"kann direkt die RPC-Methoden aufrufen, die dem Ethereum-Node-Server zur Verfügung stehen.

Ich habe dich nicht gesehen.

Auswechselung. Auswechselung.IO (("Code",...)