ox
Version:
Ethereum Standard Library
103 lines • 3.82 kB
JavaScript
import * as Quantity from './internal/quantity.js';
import * as Withdrawal from './Withdrawal.js';
/**
* Converts an {@link ox#BlockOverrides.Rpc} to an {@link ox#BlockOverrides.BlockOverrides}.
*
* @example
* ```ts twoslash
* import { BlockOverrides } from 'ox'
*
* const blockOverrides = BlockOverrides.fromRpc({
* baseFeePerGas: '0x1',
* blobBaseFee: '0x2',
* feeRecipient:
* '0x0000000000000000000000000000000000000000',
* gasLimit: '0x4',
* number: '0x5',
* prevRandao: '0x6',
* time: '0x1234567890',
* withdrawals: [
* {
* address: '0x0000000000000000000000000000000000000000',
* amount: '0x1',
* index: '0x0',
* validatorIndex: '0x1'
* }
* ]
* })
* ```
*
* @param rpcBlockOverrides - The RPC block overrides to convert.
* @returns An instantiated {@link ox#BlockOverrides.BlockOverrides}.
*/
export function fromRpc(rpcBlockOverrides) {
const overrides = {};
if (rpcBlockOverrides.baseFeePerGas !== undefined)
overrides.baseFeePerGas = Quantity.toBigInt(rpcBlockOverrides.baseFeePerGas);
if (rpcBlockOverrides.blobBaseFee !== undefined)
overrides.blobBaseFee = Quantity.toBigInt(rpcBlockOverrides.blobBaseFee);
if (rpcBlockOverrides.feeRecipient !== undefined)
overrides.feeRecipient = rpcBlockOverrides.feeRecipient;
if (rpcBlockOverrides.gasLimit !== undefined)
overrides.gasLimit = Quantity.toBigInt(rpcBlockOverrides.gasLimit);
if (rpcBlockOverrides.number !== undefined)
overrides.number = Quantity.toBigInt(rpcBlockOverrides.number);
if (rpcBlockOverrides.prevRandao !== undefined)
overrides.prevRandao = Quantity.toBigInt(rpcBlockOverrides.prevRandao);
if (rpcBlockOverrides.time !== undefined)
overrides.time = Quantity.toBigInt(rpcBlockOverrides.time);
if (rpcBlockOverrides.withdrawals !== undefined)
overrides.withdrawals = rpcBlockOverrides.withdrawals.map(Withdrawal.fromRpc);
return overrides;
}
/**
* Converts an {@link ox#BlockOverrides.BlockOverrides} to an {@link ox#BlockOverrides.Rpc}.
*
* @example
* ```ts twoslash
* import { BlockOverrides } from 'ox'
*
* const blockOverrides = BlockOverrides.toRpc({
* baseFeePerGas: 1n,
* blobBaseFee: 2n,
* feeRecipient:
* '0x0000000000000000000000000000000000000000',
* gasLimit: 4n,
* number: 5n,
* prevRandao: 6n,
* time: 78187493520n,
* withdrawals: [
* {
* address: '0x0000000000000000000000000000000000000000',
* amount: 1n,
* index: 0,
* validatorIndex: 1
* }
* ]
* })
* ```
*
* @param blockOverrides - The block overrides to convert.
* @returns An instantiated {@link ox#BlockOverrides.Rpc}.
*/
export function toRpc(blockOverrides) {
const rpc = {};
if (blockOverrides.baseFeePerGas !== undefined)
rpc.baseFeePerGas = Quantity.fromNumberish(blockOverrides.baseFeePerGas);
if (blockOverrides.blobBaseFee !== undefined)
rpc.blobBaseFee = Quantity.fromNumberish(blockOverrides.blobBaseFee);
if (typeof blockOverrides.feeRecipient === 'string')
rpc.feeRecipient = blockOverrides.feeRecipient;
if (blockOverrides.gasLimit !== undefined)
rpc.gasLimit = Quantity.fromNumberish(blockOverrides.gasLimit);
if (blockOverrides.number !== undefined)
rpc.number = Quantity.fromNumberish(blockOverrides.number);
if (blockOverrides.prevRandao !== undefined)
rpc.prevRandao = Quantity.fromNumberish(blockOverrides.prevRandao);
if (blockOverrides.time !== undefined)
rpc.time = Quantity.fromNumberish(blockOverrides.time);
if (blockOverrides.withdrawals !== undefined)
rpc.withdrawals = blockOverrides.withdrawals.map(Withdrawal.toRpc);
return rpc;
}
//# sourceMappingURL=BlockOverrides.js.map