ox
Version:
Ethereum Standard Library
26 lines (22 loc) • 754 B
text/typescript
/* eslint-disable jsdoc-js/require-jsdoc, jsdoc-js/require-description, jsdoc-js/require-example */
import * as z_Address from './Address.js'
import * as z_Number from './Number.js'
import * as z_Uint from './Uint.js'
import * as z from 'zod/mini'
/** RPC withdrawal schema decoded to a withdrawal. */
export const Withdrawal = z.object(fields(z_Uint.Uint, z_Number.Number))
/** Encode-only withdrawal schema accepting numberish `toRpc` inputs. */
export const WithdrawalToRpc = z.object(
fields(z_Uint.UintToRpc, z_Number.NumberToRpc),
)
function fields<uint extends z.ZodMiniType, num extends z.ZodMiniType>(
uint: uint,
num: num,
) {
return {
address: z_Address.Address,
amount: uint,
index: num,
validatorIndex: num,
}
}