@wormhole-foundation/sdk-connect
Version:
The core package for the Connect SDK, used in conjunction with 1 or more of the chain packages
108 lines • 5.63 kB
TypeScript
import type { Chain } from "@wormhole-foundation/sdk-base";
import type { Attestation, AttestationId, ProtocolName, TokenId, TransactionId } from "@wormhole-foundation/sdk-definitions";
import type { QuoteWarning } from "./warnings.js";
export declare enum TransferState {
Failed = -1,
Created = 0,// The TokenTransfer object is created
SourceInitiated = 1,// Source chain transactions are submitted
SourceFinalized = 2,// Source chain transactions are finalized or whenever we have a message id
InReview = 3,// Transfer is in review (e.g. held by governor)
Attested = 4,// VAA or Circle Attestation is available
Refunded = 5,// Transfer failed and was refunded on the source chain
DestinationInitiated = 6,// Attestation is submitted to destination chain
DestinationQueued = 7,// Transfer is queued on destination chain
DestinationFinalized = 8
}
export type AttestationReceipt<PN extends ProtocolName = ProtocolName> = {
id: AttestationId<PN>;
attestation?: Attestation<PN>;
};
interface BaseTransferReceipt<SC extends Chain, DC extends Chain> {
from: SC;
to: DC;
state: TransferState;
}
export interface CreatedTransferReceipt<SC extends Chain = Chain, DC extends Chain = Chain> extends BaseTransferReceipt<SC, DC> {
state: TransferState.Created;
}
export interface SourceInitiatedTransferReceipt<SC extends Chain = Chain, DC extends Chain = Chain> extends BaseTransferReceipt<SC, DC> {
state: TransferState.SourceInitiated;
originTxs: TransactionId<SC>[];
}
export interface SourceFinalizedTransferReceipt<AT, SC extends Chain = Chain, DC extends Chain = Chain> extends BaseTransferReceipt<SC, DC> {
state: TransferState.SourceFinalized;
originTxs: TransactionId<SC>[];
attestation: AT;
}
export interface InReviewTransferReceipt<AT, SC extends Chain = Chain, DC extends Chain = Chain> extends BaseTransferReceipt<SC, DC> {
state: TransferState.InReview;
originTxs: TransactionId<SC>[];
attestation: AT;
}
export interface AttestedTransferReceipt<AT, SC extends Chain = Chain, DC extends Chain = Chain> extends BaseTransferReceipt<SC, DC> {
state: TransferState.Attested;
originTxs: TransactionId<SC>[];
attestation: Required<AT>;
}
export interface RefundedTransferReceipt<AT, SC extends Chain = Chain, DC extends Chain = Chain> extends BaseTransferReceipt<SC, DC> {
state: TransferState.Refunded;
originTxs: TransactionId<SC>[];
refundTxs: TransactionId<SC>[];
attestation: AT;
}
export interface RedeemedTransferReceipt<AT, SC extends Chain = Chain, DC extends Chain = Chain> extends BaseTransferReceipt<SC, DC> {
state: TransferState.DestinationInitiated;
originTxs: TransactionId<SC>[];
attestation: Required<AT>;
destinationTxs?: TransactionId<DC>[];
}
export interface DestinationQueuedTransferReceipt<AT, SC extends Chain = Chain, DC extends Chain = Chain> extends BaseTransferReceipt<SC, DC> {
state: TransferState.DestinationQueued;
originTxs: TransactionId<SC>[];
attestation: Required<AT>;
destinationTxs?: TransactionId<DC>[];
queueReleaseTime: Date;
}
export interface CompletedTransferReceipt<AT, SC extends Chain = Chain, DC extends Chain = Chain> extends BaseTransferReceipt<SC, DC> {
state: TransferState.DestinationFinalized;
originTxs: TransactionId<SC>[];
attestation: AT;
destinationTxs?: TransactionId<DC>[];
}
export interface FailedTransferReceipt<AT, SC extends Chain = Chain, DC extends Chain = Chain> extends BaseTransferReceipt<SC, DC> {
state: TransferState.Failed;
originTxs: TransactionId<SC>[];
destinationTxs?: TransactionId<DC>[];
attestation?: AT;
error: string | Error;
}
export declare function isSourceInitiated<AT>(receipt: TransferReceipt<AT>): receipt is SourceInitiatedTransferReceipt;
export declare function isSourceFinalized<AT>(receipt: TransferReceipt<AT>): receipt is SourceFinalizedTransferReceipt<AT>;
export declare function isInReview<AT>(receipt: TransferReceipt<AT>): receipt is InReviewTransferReceipt<AT>;
export declare function isAttested<AT>(receipt: TransferReceipt<AT>): receipt is AttestedTransferReceipt<AT>;
export declare function isRefunded<AT>(receipt: TransferReceipt<AT>): receipt is RefundedTransferReceipt<AT>;
export declare function isRedeemed<AT>(receipt: TransferReceipt<AT>): receipt is RedeemedTransferReceipt<AT>;
export declare function isDestinationQueued<AT>(receipt: TransferReceipt<AT>): receipt is DestinationQueuedTransferReceipt<AT>;
export declare function isCompleted<AT>(receipt: TransferReceipt<AT>): receipt is CompletedTransferReceipt<AT>;
export declare function isFailed<AT>(receipt: TransferReceipt<AT>): receipt is FailedTransferReceipt<AT>;
export type TransferReceipt<AT, SC extends Chain = Chain, DC extends Chain = Chain> = FailedTransferReceipt<AT, SC, DC> | CreatedTransferReceipt<SC, DC> | SourceInitiatedTransferReceipt<SC, DC> | SourceFinalizedTransferReceipt<AT, SC, DC> | InReviewTransferReceipt<AT, SC, DC> | AttestedTransferReceipt<AT, SC, DC> | RefundedTransferReceipt<AT, SC, DC> | RedeemedTransferReceipt<AT, SC, DC> | DestinationQueuedTransferReceipt<AT, SC, DC> | CompletedTransferReceipt<AT, SC, DC>;
export interface TransferQuote {
sourceToken: {
token: TokenId;
amount: bigint;
};
destinationToken: {
token: TokenId;
amount: bigint;
};
relayFee?: {
token: TokenId;
amount: bigint;
};
destinationNativeGas?: bigint;
warnings?: QuoteWarning[];
eta?: number;
expires?: Date;
}
export {};
//# sourceMappingURL=types.d.ts.map