Files
FrenoCorp/node_modules/ox/core/Withdrawal.ts
Michael Freno 7c684a42cc FRE-600: Fix code review blockers
- Consolidated duplicate UndoManagers to single instance
- Fixed connection promise to only resolve on 'connected' status
- Fixed WebSocketProvider import (WebsocketProvider)
- Added proper doc.destroy() cleanup
- Renamed isPresenceInitialized property to avoid conflict

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-25 00:08:01 -04:00

88 lines
2.5 KiB
TypeScript

import type * as Errors from './Errors.js'
import * as Hex from './Hex.js'
/** A Withdrawal as defined in the [Execution API specification](https://github.com/ethereum/execution-apis/blob/main/src/schemas/withdrawal.yaml). */
export type Withdrawal<bigintType = bigint, numberType = number> = {
address: Hex.Hex
amount: bigintType
index: numberType
validatorIndex: numberType
}
/** An RPC Withdrawal as defined in the [Execution API specification](https://github.com/ethereum/execution-apis/blob/main/src/schemas/withdrawal.yaml). */
export type Rpc = Withdrawal<Hex.Hex, Hex.Hex>
/**
* Converts a {@link ox#Withdrawal.Rpc} to an {@link ox#Withdrawal.Withdrawal}.
*
* @example
* ```ts twoslash
* import { Withdrawal } from 'ox'
*
* const withdrawal = Withdrawal.fromRpc({
* address: '0x00000000219ab540356cBB839Cbe05303d7705Fa',
* amount: '0x620323',
* index: '0x0',
* validatorIndex: '0x1',
* })
* // @log: {
* // @log: address: '0x00000000219ab540356cBB839Cbe05303d7705Fa',
* // @log: amount: 6423331n,
* // @log: index: 0,
* // @log: validatorIndex: 1
* // @log: }
* ```
*
* @param withdrawal - The RPC withdrawal to convert.
* @returns An instantiated {@link ox#Withdrawal.Withdrawal}.
*/
export function fromRpc(withdrawal: Rpc): Withdrawal {
return {
...withdrawal,
amount: BigInt(withdrawal.amount),
index: Number(withdrawal.index),
validatorIndex: Number(withdrawal.validatorIndex),
}
}
export declare namespace fromRpc {
export type ErrorType = Errors.GlobalErrorType
}
/**
* Converts a {@link ox#Withdrawal.Withdrawal} to an {@link ox#Withdrawal.Rpc}.
*
* @example
* ```ts twoslash
* import { Withdrawal } from 'ox'
*
* const withdrawal = Withdrawal.toRpc({
* address: '0x00000000219ab540356cBB839Cbe05303d7705Fa',
* amount: 6423331n,
* index: 0,
* validatorIndex: 1,
* })
* // @log: {
* // @log: address: '0x00000000219ab540356cBB839Cbe05303d7705Fa',
* // @log: amount: '0x620323',
* // @log: index: '0x0',
* // @log: validatorIndex: '0x1',
* // @log: }
* ```
*
* @param withdrawal - The Withdrawal to convert.
* @returns An RPC Withdrawal.
*/
export function toRpc(withdrawal: Withdrawal): Rpc {
return {
address: withdrawal.address,
amount: Hex.fromNumber(withdrawal.amount),
index: Hex.fromNumber(withdrawal.index),
validatorIndex: Hex.fromNumber(withdrawal.validatorIndex),
}
}
export declare namespace toRpc {
export type ErrorType = Errors.GlobalErrorType
}