import {PublicKey} from "@solana/web3.js"; export type ProgramStatusType = | { normal: {} } | { halted: {} }; export class ProgramStatus { static readonly Normal: ProgramStatusType = {normal: {}}; static readonly Halted: ProgramStatusType = {halted: {}}; } export type VaultStatusType = | { normal: {} } | { halted: {} }; export class VaultStatus { static readonly Normal: VaultStatusType = {normal: {}}; static readonly Halted: VaultStatusType = {halted: {}}; } export type VaultBatchStatusType = | { draft: {} } | { batchOpen: {} } | { batchClose: {} }; export class VaultBatchStatus { static readonly Draft: VaultBatchStatusType = {draft: {}}; static readonly BatchOpen: VaultBatchStatusType = {batchOpen: {}}; static readonly BatchClose: VaultBatchStatusType = {batchClose: {}}; } export type BatchStatusType = | { open: {} } | { close: {} } | { concluded: {} }; export class BatchStatus { static readonly Open: BatchStatusType = {open: {}}; static readonly Close: BatchStatusType = {close: {}}; static readonly Concluded: BatchStatusType = {concluded: {}}; } export type UserStatusType = | { normal: {} } | { halted: {} }; export class UserStatus { static readonly Normal: UserStatusType = {normal: {}}; static readonly Halted: UserStatusType = {halted: {}}; } export type UserBatchStatusType = | { pending: {} } | { processed: {} }; export class UserBatchStatus { static readonly Pending: UserBatchStatusType = {pending: {}}; static readonly Processed: UserBatchStatusType = {processed: {}}; } export type UserWithdrawStatusType = | { pending: {} } | { canceled: {} } | { claimed: {} }; export class UserWithdrawStatus { static readonly Pending: UserWithdrawStatusType = {pending: {}}; static readonly Canceled: UserWithdrawStatusType = {canceled: {}}; static readonly Claimed: UserWithdrawStatusType = {claimed: {}}; } /// Other Type export interface FeeReceiverDetail { basePoint: number, receiver: PublicKey }