Metode panggilan dariexchange.IO("api", "eth", ...)
fungsi digunakan untuk memanggil metode Ethereum RPC.
Peraturanexchange.IO("api", "eth", ...)
fungsi mengembalikan nilai yang dikembalikan dari metode RPC yang disebut.
string, number, bool, object, array, null dan semua tipe lain yang didukung oleh sistem
exchange.IO(k, blockChain, rpcMethod)exchange.IO(k, blockChain, rpcMethod,...args)
Peraturank
parameter digunakan untuk mengatur fungsi dariexchange.IO()
fungsi, diatur untuk"api"
menunjukkan bahwa fungsi digunakan untuk memperluas permintaan panggilan.
k
benar
string
PeraturanblockChain
parameter digunakan untuk mengatur fungsi dariexchange.IO()
fungsi, diatur untuk"eth"
menunjukkan bahwa fungsi ini digunakan untuk panggilan metode RPC di Jaringan Ethereum.
blockChain
benar
string
PeraturanrpcMethod
Parameter digunakan untuk mengatur metode RPC yang akan dipanggil olehexchange.IO()
fungsi.
rpcMethod
benar
string
Peraturanarg
parameter digunakan untuk menentukan parameter metode RPC yang akan dipanggil.arg
Jenis dan jumlaharg
parameter tergantung pada metode RPC yang ditentukan olehrpcMethod
Parameter.
arg
palsu
string, number, bool, object, array, function, null, dan semua tipe lain yang didukung oleh sistem
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()))
}
Periksa saldo ETH di dompet Anda:
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)
}
Untuk transfer ETH, Anda dapat mengatur{gasPrice: 11, gasLimit: 111, nonce: 111}
parameter, yang ditetapkan pada parameter terakhir dariexchange.IO()
Anda dapat melewatkannonce
dan menggunakan sistem default, atau meninggalkangasLimit/gasPrice/nonce
Unduh dan gunakan nilai default sistem untuk semua.
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)
}
PertanyaangasPrice
:
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)
}
Pertanyaaneth_estimateGas
:
Parameter kedua dariexchange.IO()
fungsi dengan"eth"
dapat langsung memanggil metode RPC yang tersedia untuk server node Ethereum.
{@fun BigDecimal}, {@fun BigInt}
pertukaran.IO (("abi",...) exchange.IO (("encode",...)