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)
Ok
Parâ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
OblockChain
Parâ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
OrpcMethod
Parâmetro é usado para definir o método RPC a ser chamado peloexchange.IO()
função.
Método rpc
verdade
cordel
Oarg
O parâmetro é usado para especificar os parâmetros do método RPC a ser chamado.arg
O tipo e o número dearg
Os parâmetros dependem do método RPC especificado pelorpcMethod
Parâ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.nonce
e usar o sistema padrão, ou deixargasLimit/gasPrice/nonce
Desativar 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",...)