El método de llamada deexchange.IO("api", "eth", ...)
La función se utiliza para llamar al método Ethereum RPC.
Elexchange.IO("api", "eth", ...)
La función devuelve el valor de retorno del método RPC llamado.
cadena, número, bool, objeto, matriz, nulo y todos los demás tipos compatibles con el sistema
exchange.IO(k, cadena de bloques, método rpc)exchange.IO(k, cadena de bloques, método rpc,...args)
Elk
Parámetro se utiliza para establecer la función de laexchange.IO()
función, fijada en"api"
indica que la función se utiliza para extender la solicitud de llamada.
el
verdadero
la cuerda
ElblockChain
Parámetro se utiliza para establecer la función de laexchange.IO()
función, fijada en"eth"
indica que la función se utiliza para las llamadas de métodos RPC en la red Ethereum.
el bloqueChain
verdadero
la cuerda
ElrpcMethod
Parámetro se utiliza para establecer el método RPC a ser llamado por elexchange.IO()
la función.
Método rpc
verdadero
la cuerda
Elarg
Parámetro se utiliza para especificar los parámetros del método RPC a ser llamado.arg
El tipo y el número dearg
Los parámetros dependen del método RPC especificado por elrpcMethod
el parámetro.
el
falsos
cadena, número, bool, objeto, matriz, función, nulo y todos los demás tipos compatibles con el 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()))
}
Compruebe el saldo de ETH en su billetera:
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 las transferencias de ETH, puede configurar el{gasPrice: 11, gasLimit: 111, nonce: 111}
Parámetro, que se establece en el último parámetro delexchange.IO()
En el caso de los productos que no se encuentran en la lista de productos, el número de productos que se encuentran en la lista de productos que se encuentran en la lista denonce
y utilizar el sistema por defecto, o dejargasLimit/gasPrice/nonce
desactivar y utilizar el valor predeterminado del 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)
}
CuestionariogasPrice
:
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)
}
Cuestionarioeth_estimateGas
:
El segundo parámetro delexchange.IO()
Función con"eth"
puede llamar directamente a los métodos RPC disponibles para el servidor de nodo Ethereum.
¿Por qué no lo haces?
En el caso de los Estados miembros, la Comisión debe adoptar las medidas necesarias. el intercambio.IO (("codificar",...)