@wormhole-foundation/sdk-connect
Version:
The core package for the Connect SDK, used in conjunction with 1 or more of the chain packages
20 lines • 1.69 kB
TypeScript
import type { Chain, Network } from "@wormhole-foundation/sdk-base";
import type { AttestationId, ChainContext, CircleTransferDetails, GatewayTransferDetails, ProtocolName, Signer, TokenTransferDetails, TxHash } from "@wormhole-foundation/sdk-definitions";
import type { AttestationReceipt, TransferQuote, TransferReceipt, TransferState } from "../types.js";
import type { Wormhole } from "../wormhole.js";
export type TransferRequest<PN extends ProtocolName = ProtocolName> = PN extends "TokenBridge" | "AutomaticTokenBridge" ? TokenTransferDetails : PN extends "CircleBridge" | "AutomaticCircleBridge" ? CircleTransferDetails : PN extends "IbcBridge" ? GatewayTransferDetails : never;
export interface TransferProtocol<PN extends ProtocolName> {
isTransferComplete<N extends Network, C extends Chain>(toChain: ChainContext<N, C>, attestation: AttestationId<PN>): Promise<boolean>;
validateTransferDetails<N extends Network>(wh: Wormhole<N>, transfer: TransferRequest<PN>): Promise<void>;
quoteTransfer(xfer: WormholeTransfer<PN>): Promise<TransferQuote>;
getReceipt(xfer: WormholeTransfer<PN>): TransferReceipt<AttestationReceipt<PN>>;
track<N extends Network>(wh: Wormhole<N>, xfer: TransferReceipt<AttestationReceipt<PN>>, timeout: number): AsyncGenerator<TransferReceipt<AttestationReceipt<PN>>>;
}
export interface WormholeTransfer<PN extends ProtocolName> {
transfer: TransferRequest<PN>;
getTransferState(): TransferState;
initiateTransfer(signer: Signer): Promise<TxHash[]>;
fetchAttestation(timeout?: number): Promise<AttestationId[]>;
completeTransfer(signer: Signer): Promise<TxHash[]>;
}
//# sourceMappingURL=wormholeTransfer.d.ts.map