import {ValueOf} from "@chainsafe/ssz"; import * as ssz from "./sszTypes.js"; // Each type exported here contains both a compile-time type // (a typescript interface) and a run-time ssz type (a javascript variable) // For more information, see ./index.ts export type Bytes4 = ValueOf; export type Bytes8 = ValueOf; export type Bytes20 = ValueOf; export type Bytes32 = ValueOf; export type Bytes48 = ValueOf; export type Bytes96 = ValueOf; export type Uint8 = ValueOf; export type Uint16 = ValueOf; export type Uint32 = ValueOf; export type UintNum64 = ValueOf; export type UintNumInf64 = ValueOf; export type UintBn64 = ValueOf; export type UintBn128 = ValueOf; export type UintBn256 = ValueOf; // Custom types, defined for type hinting and readability export type Slot = UintNumInf64; export type Epoch = UintNumInf64; export type SyncPeriod = UintNum64; export type CommitteeIndex = UintNum64; export type SubcommitteeIndex = UintNum64; export type ValidatorIndex = UintNum64; export type WithdrawalIndex = UintNum64; export type Gwei = UintBn64; export type Wei = UintBn256; export type Root = Bytes32; export type Version = Bytes4; export type DomainType = Bytes4; export type ForkDigest = Bytes4; export type Domain = Bytes32; export type BLSPubkey = Bytes48; export type BLSSecretKey = Bytes32; export type BLSSignature = Bytes96; export type ParticipationFlags = Uint8; export type ExecutionAddress = Bytes20; /** Common non-spec type to represent roots as strings */ export type RootHex = string; /** Non-spec type to signal time is represented in seconds */ export type TimeSeconds = number;