@tevm/actions
Version:
A typesafe library for writing forge scripts in typescript
30 lines (28 loc) • 1.25 kB
JavaScript
import { hexToBigInt } from '@tevm/utils'
import { ethSendTransactionHandler } from './ethSendTransactionHandler.js'
/**
* Request handler for eth_sendTransaction JSON-RPC requests.
* @param {import('@tevm/node').TevmNode} client
* @returns {import('./EthProcedure.js').EthSendTransactionJsonRpcProcedure}
*/
export const ethSendTransactionJsonRpcProcedure = (client) => {
return async (request) => {
const sendTransactionRequest = /** @type {import('./EthJsonRpcRequest.js').EthSendTransactionJsonRpcRequest}*/ (
request
)
const txHash = await ethSendTransactionHandler(client)({
...(request.params[0].from ? { from: request.params[0].from } : {}),
...(request.params[0].data ? { data: request.params[0].data } : {}),
...(request.params[0].to ? { to: request.params[0].to } : {}),
...(request.params[0].gas ? { gas: hexToBigInt(request.params[0].gas) } : {}),
...(request.params[0].gasPrice ? { gasPrice: hexToBigInt(request.params[0].gasPrice) } : {}),
...(request.params[0].value ? { value: hexToBigInt(request.params[0].value) } : {}),
})
return {
method: sendTransactionRequest.method,
result: txHash,
jsonrpc: '2.0',
...(sendTransactionRequest.id ? { id: sendTransactionRequest.id } : {}),
}
}
}