@debridge-finance/solana-contracts-client
Version:
[Docs](docs/README.md)
69 lines • 3.5 kB
TypeScript
/// <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