UNPKG

@debridge-finance/solana-contracts-client

Version:
69 lines 3.5 kB
/// <reference types="node" /> /// <reference types="node" /> import { AccountInfo, Commitment, Connection, PublicKey } from "@solana/web3.js"; import { AccountStructByName, ConfirmationStorageType, ExternalCallMetaType, SubmissionInfoType } from "./interfaces"; import { DebridgeProgram } from "./idl/debridge_program_v31"; import { DebridgeSettingsProgram } from "./idl/debridge_settings_program_v31"; import { Decoder } from "./decoder"; import { UpdatableAccountInfo } from "./accounts"; export declare enum UpdateActions { ExternalCallStorage = "externalCallStorage", ExternalCallMeta = "externalCallMeta", ConfirmationStorage = "confirmationStorage", Submission = "submission", CorrectCalldata = "correctCalldata" } type ActionMap = { [UpdateActions.ExternalCallStorage]: Buffer; [UpdateActions.ExternalCallMeta]: ExternalCallMetaType; [UpdateActions.ConfirmationStorage]: ConfirmationStorageType; [UpdateActions.Submission]: SubmissionInfoType; [UpdateActions.CorrectCalldata]: null; }; type TypedCallback<Action extends UpdateActions> = (data: ActionMap[Action] | null) => unknown; export declare class SubmissionState<WithExtCall extends boolean = boolean> { protected decoder: Decoder<DebridgeProgram | DebridgeSettingsProgram>; protected connection: Connection; submissionId: Buffer; accounts: { confirmationStorage: PublicKey; submission: PublicKey; externalCall: WithExtCall extends true ? { externalCallMeta: PublicKey; externalCallStorage: PublicKey; } : null; commitment?: Commitment; }; private logFn?; private subManager; private nativeSubscriptions; confirmationStorage: UpdatableAccountInfo<AccountStructByName<DebridgeSettingsProgram, "confirmationStorage">>; submission: UpdatableAccountInfo<AccountStructByName<DebridgeProgram, "submissionAccount">>; externalCallStorage: WithExtCall extends true ? UpdatableAccountInfo<Buffer> : null; externalCallMeta: WithExtCall extends true ? UpdatableAccountInfo<AccountStructByName<DebridgeProgram, "externalCallMeta">> : null; private expectedCalldata?; onAction<Action extends Exclude<UpdateActions, UpdateActions.CorrectCalldata>>(type: Action, callback: TypedCallback<Action>, repeat: "unlimited" | number): void; onActionOnce<Action extends Exclude<UpdateActions, UpdateActions.CorrectCalldata>>(type: Action, callback: TypedCallback<Action>): void; onCorrectCalldataOnce(expected: Buffer, callback: () => unknown): void; private updateListener; constructor(decoder: Decoder<DebridgeProgram | DebridgeSettingsProgram>, connection: Connection, submissionId: Buffer, accounts: { confirmationStorage: PublicKey; submission: PublicKey; externalCall: WithExtCall extends true ? { externalCallMeta: PublicKey; externalCallStorage: PublicKey; } : null; commitment?: Commitment; }, logFn?: ((...args: any[]) => unknown) | undefined, initialState?: { confirmationStorage: AccountInfo<Buffer> | null; submission: AccountInfo<Buffer> | null; externalCall: WithExtCall extends true ? { meta: AccountInfo<Buffer> | null; storage: AccountInfo<Buffer> | null; } : null; }, subscriptionCommitment?: Commitment); getInitialState(): Promise<this>; unsubscribe(): Promise<void[]>; } export {}; //# sourceMappingURL=submission.d.ts.map