UNPKG

ox

Version:

Ethereum Standard Library

56 lines 1.79 kB
/* eslint-disable jsdoc-js/require-jsdoc, jsdoc-js/require-description, jsdoc-js/require-example */ import * as z_Address from '../Address.js'; import * as z_Hex from '../Hex.js'; import * as z_Number from '../Number.js'; import * as z_Uint from '../Uint.js'; import * as z from 'zod/mini'; /** Strict integer schema family (decode RPC hex to `bigint`/`number`). */ export const strict = { uint: z_Uint.Uint, num: z_Number.Number }; /** Numberish integer schema family for encode-only `*ToRpc` schemas. */ export const toRpc = { uint: z_Uint.UintToRpc, num: z_Number.NumberToRpc, }; export function type(input, output) { return z.codec(z.literal(input), z.literal(output), { decode: () => output, encode: () => input, }); } export function baseFields(type, uint, num) { return { chainId: num, data: z.optional(z_Hex.Hex), input: z.optional(z_Hex.Hex), from: z.optional(z_Address.Address), gas: z.optional(uint), nonce: z.optional(uint), to: z.optional(z.union([z_Address.Address, z.null()])), type, value: z.optional(uint), r: z.optional(z_Hex.Hex), s: z.optional(z_Hex.Hex), yParity: z.optional(num), v: z.optional(num), }; } export function signedBaseFields(type, uint, num) { return { ...baseFields(type, uint, num), r: z_Hex.Hex, s: z_Hex.Hex, }; } export function optionalChainIdFields(type, uint, num) { return { ...baseFields(type, uint, num), chainId: z.optional(num), }; } export function signedOptionalChainIdFields(type, uint, num) { return { ...signedBaseFields(type, uint, num), chainId: z.optional(num), }; } //# sourceMappingURL=TransactionEnvelope.js.map