Tài nguyên đang được tải lên... tải...

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

Phương pháp gọi củaexchange.IO("api", "eth", ...)hàm được sử dụng để gọi phương thức Ethereum RPC.

Cácexchange.IO("api", "eth", ...)hàm trả về giá trị trả về của phương thức RPC được gọi. chuỗi, số, bool, đối tượng, mảng, null và tất cả các loại khác được hỗ trợ bởi hệ thống

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

Cácktham số được sử dụng để thiết lập chức năng củaexchange.IO()chức năng, được thiết lập thành"api"chỉ ra rằng hàm được sử dụng để mở rộng yêu cầu gọi. k đúng chuỗi CácblockChaintham số được sử dụng để thiết lập chức năng củaexchange.IO()chức năng, được thiết lập thành"eth"chỉ ra rằng hàm được sử dụng cho các cuộc gọi phương thức RPC trên Mạng Ethereum. BlockChain đúng chuỗi CácrpcMethodtham số được sử dụng để thiết lập phương pháp RPC được gọi bởi cácexchange.IO()chức năng. phương pháp rpc đúng chuỗi Cácargtham số được sử dụng để chỉ định các tham số của phương thức RPC được gọi. Có thể có nhiều hơn mộtargLoại và số lượngargCác thông số phụ thuộc vào phương pháp RPC được chỉ định bởirpcMethodtham số. arg sai chuỗi, số, bool, đối tượng, mảng, hàm, null, và tất cả các loại khác được hỗ trợ bởi hệ thống

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

Kiểm tra số dư ETH trong ví của bạn:

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

Đối với chuyển tiền ETH, bạn có thể thiết lập{gasPrice: 11, gasLimit: 111, nonce: 111}tham số, được thiết lập trên tham số cuối cùng củaexchange.IO()Bạn có thể bỏ quanoncevà sử dụng hệ thống mặc định, hoặc để lạigasLimit/gasPrice/noncetắt và sử dụng giá trị mặc định của hệ thống cho tất cả.

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

Câu hỏigasPrice:

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

Câu hỏieth_estimateGas:

Các tham số thứ hai củaexchange.IO()chức năng với"eth"có thể trực tiếp gọi các phương pháp RPC có sẵn cho máy chủ node Ethereum.

{@fun BigDecimal}, {@fun BigInt}

trao đổi.IO (("abi",...) trao đổi.IO (("mã số",...)