UNPKG

@puzzlehq/types

Version:

Puzzle <3 Typescript

110 lines (94 loc) 2.44 kB
import z from 'zod'; export const containsAleoAddressRegex = /aleo1[a-z0-9]{58}/gi; export const aleoAddressRegex = /^aleo1[a-z0-9]{58}$/i; export const aleoViewKeyRegex = /^AViewKey1[a-z0-9]{44}$/i; export const aleoPrivateKeyRegex = /^APrivateKey1[a-z0-9]{47}$/i; export const aleoTransitionIdRegex = /^au1[a-z0-9]{58}$/i; export const aleoTransactionIdRegex = /^at1[a-z0-9]{58}$/i; export const aleoFieldRegex = /^\d+field$/; export const aleoU32 = /^\d+u32$/; export const aleoU64 = /^\d+u64$/; export const zodAddress = z.string().regex(aleoAddressRegex); export const zodViewKey = z.string().regex(aleoViewKeyRegex); export const zodPrivateKey = z.string().regex(aleoPrivateKeyRegex); export const zodTransitionId = z.string().regex(aleoTransitionIdRegex); export const zodTransactionId = z.string().regex(aleoTransactionIdRegex); export const zodField = z.string().regex(aleoFieldRegex); export const zodU32 = z.string().regex(aleoU32); export const zodU64 = z.string().regex(aleoU64); export type Block = { header: Header; transactions: TransactionWrapper[]; aborted_transaction_ids: string[]; }; export type Header = { metadata: Metadata; }; export type Metadata = { height: number; timestamp: number; }; export type TransactionWrapper = { status: string; type: string; index: number; transaction: Transaction; finalize: any[]; }; export type Transaction = { type: string; id: string; execution?: Execution; deployment?: Deployment; owner?: Owner; fee?: Fee; }; export type Execution = { transitions: Transition[]; global_state_root: string; proof: string; }; export type Deployment = { edition: number; program: string; }; export type Owner = { address: string; }; export type Fee = { transition: Transition; global_state_root: string; proof: string; }; export type Transition = { id: string; program: string; function: string; inputs: Input[]; outputs: Output[]; finalize?: string[]; tpk: string; tcm: string; scm: string; }; export type Input = { type: InputOutputType; id: string; tag?: string; value?: string; }; export type Output = { type: InputOutputType; id: string; value: string; checksum?: string; }; export enum InputOutputType { Record = 'record', OutputRecord = 'outputRecord', Public = 'public', Private = 'private', Constant = 'constant', Future = 'future', ExternalRecord = 'external_record', }