/// /// import type { PublicKeyInitData } from '@solana/web3.js'; import { PublicKey } from '@solana/web3.js'; import type { TokenBridge } from '@wormhole-foundation/sdk-connect'; /** * Base Config Account for Token Bridge program. */ export interface TokenBridgeBaseDerivedAccounts { /** * seeds = ["config"], seeds::program = tokenBridgeProgram */ tokenBridgeConfig: PublicKey; } /** * Accounts derived from Token Bridge program for native assets. */ export interface TokenBridgeBaseNativeDerivedAccounts extends TokenBridgeBaseDerivedAccounts { /** * seeds = ["custody_signer"], seeds::program = tokenBridgeProgram */ tokenBridgeCustodySigner: PublicKey; } export interface TokenBridgeBaseSenderDerivedAccounts extends TokenBridgeBaseDerivedAccounts { /** * seeds = ["authority_signer"], seeds::program = tokenBridgeProgram */ tokenBridgeAuthoritySigner: PublicKey; /** * seeds = ["sender"], seeds::program = cpiProgramId */ tokenBridgeSender: PublicKey; /** * seeds = ["Bridge"], seeds::program = wormholeProgram */ wormholeBridge: PublicKey; /** * seeds = ["emitter"], seeds::program = tokenBridgeProgram */ tokenBridgeEmitter: PublicKey; /** * seeds = ["Sequence", tokenBridgeEmitter], seeds::program = wormholeProgram */ tokenBridgeSequence: PublicKey; /** * seeds = ["fee_collector"], seeds::program = wormholeProgram */ wormholeFeeCollector: PublicKey; } export interface TokenBridgeNativeSenderDerivedAccounts extends TokenBridgeBaseNativeDerivedAccounts, TokenBridgeBaseSenderDerivedAccounts { } export interface TokenBridgeWrappedSenderDerivedAccounts extends TokenBridgeBaseSenderDerivedAccounts { } export interface TokenBridgeBaseRedeemerDerivedAccounts extends TokenBridgeBaseDerivedAccounts { /** * seeds = ["redeemer"], seeds::program = cpiProgramId */ tokenBridgeRedeemer: PublicKey; } export interface TokenBridgeNativeRedeemerDerivedAccounts extends TokenBridgeBaseNativeDerivedAccounts, TokenBridgeBaseRedeemerDerivedAccounts { } export interface TokenBridgeWrappedRedeemerDerivedAccounts extends TokenBridgeBaseRedeemerDerivedAccounts { /** * seeds = ["mint_signer"], seeds::program = tokenBridgeProgram */ tokenBridgeMintAuthority: PublicKey; } /** * Accounts derived from Token Bridge program. */ export interface TokenBridgeDerivedAccounts extends TokenBridgeNativeSenderDerivedAccounts, TokenBridgeWrappedSenderDerivedAccounts, TokenBridgeNativeRedeemerDerivedAccounts, TokenBridgeWrappedRedeemerDerivedAccounts { } /** * Generate Token Bridge PDAs. * * @param cpiProgramId * @param tokenBridgeProgramId * @param wormholeProgramId * @returns */ export declare function getTokenBridgeDerivedAccounts(cpiProgramId: PublicKeyInitData, tokenBridgeProgramId: PublicKeyInitData, wormholeProgramId: PublicKeyInitData): TokenBridgeDerivedAccounts; /** * Accounts needed to perform `transfer_native_with_payload` instruction. */ export interface TransferNativeWithPayloadCpiAccounts extends TokenBridgeNativeSenderDerivedAccounts { payer: PublicKey; /** * seeds = [mint], seeds::program = tokenBridgeProgram */ tokenBridgeCustody: PublicKey; /** * Token account where tokens reside */ fromTokenAccount: PublicKey; mint: PublicKey; wormholeMessage: PublicKey; clock: PublicKey; rent: PublicKey; systemProgram: PublicKey; tokenProgram: PublicKey; wormholeProgram: PublicKey; } /** * Generate accounts needed to perform `transfer_wrapped_with_payload` instruction * as cross-program invocation. * * @param cpiProgramId * @param tokenBridgeProgramId * @param wormholeProgramId * @param payer * @param message * @param fromTokenAccount * @param mint * @returns */ export declare function getTransferNativeWithPayloadCpiAccounts(cpiProgramId: PublicKeyInitData, tokenBridgeProgramId: PublicKeyInitData, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, message: PublicKeyInitData, fromTokenAccount: PublicKeyInitData, mint: PublicKeyInitData): TransferNativeWithPayloadCpiAccounts; /** * Accounts needed to perform `transfer_wrapped_with_payload` instruction. */ export interface TransferWrappedWithPayloadCpiAccounts extends TokenBridgeWrappedSenderDerivedAccounts { payer: PublicKey; /** * Token account where tokens reside */ fromTokenAccount: PublicKey; /** * Token account owner (usually cpiProgramId) */ fromTokenAccountOwner: PublicKey; /** * seeds = ["wrapped", token_chain, token_address], seeds::program = tokenBridgeProgram */ tokenBridgeWrappedMint: PublicKey; /** * seeds = ["meta", mint], seeds::program = tokenBridgeProgram */ tokenBridgeWrappedMeta: PublicKey; wormholeMessage: PublicKey; clock: PublicKey; rent: PublicKey; systemProgram: PublicKey; tokenProgram: PublicKey; wormholeProgram: PublicKey; } /** * Generate accounts needed to perform `transfer_wrapped_with_payload` instruction * as cross-program invocation. * * @param cpiProgramId * @param tokenBridgeProgramId * @param wormholeProgramId * @param payer * @param message * @param fromTokenAccount * @param tokenChain * @param tokenAddress * @param [fromTokenAccountOwner] * @returns */ export declare function getTransferWrappedWithPayloadCpiAccounts(cpiProgramId: PublicKeyInitData, tokenBridgeProgramId: PublicKeyInitData, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, message: PublicKeyInitData, fromTokenAccount: PublicKeyInitData, tokenChain: number, tokenAddress: Buffer | Uint8Array, fromTokenAccountOwner?: PublicKeyInitData): TransferWrappedWithPayloadCpiAccounts; /** * Accounts needed to perform `complete_native_with_payload` instruction. */ export interface CompleteTransferNativeWithPayloadCpiAccounts extends TokenBridgeNativeRedeemerDerivedAccounts { payer: PublicKey; /** * seeds = ["PostedVAA", vaa_hash], seeds::program = wormholeProgram */ vaa: PublicKey; /** * seeds = [emitter_address, emitter_chain, sequence], seeds::program = tokenBridgeProgram */ tokenBridgeClaim: PublicKey; /** * seeds = [emitter_chain, emitter_address], seeds::program = tokenBridgeProgram */ tokenBridgeForeignEndpoint: PublicKey; /** * Token account to receive tokens */ toTokenAccount: PublicKey; toFeesTokenAccount: PublicKey; /** * seeds = [mint], seeds::program = tokenBridgeProgram */ tokenBridgeCustody: PublicKey; mint: PublicKey; rent: PublicKey; systemProgram: PublicKey; tokenProgram: PublicKey; wormholeProgram: PublicKey; } /** * Generate accounts needed to perform `complete_native_with_payload` instruction * as cross-program invocation. * * Note: `toFeesTokenAccount` is the same as `toTokenAccount`. For your program, * you only need to pass your `toTokenAccount` into the complete transfer * instruction for the `toFeesTokenAccount`. * * @param tokenBridgeProgramId * @param wormholeProgramId * @param payer * @param vaa * @param toTokenAccount * @returns */ export declare function getCompleteTransferNativeWithPayloadCpiAccounts(tokenBridgeProgramId: PublicKeyInitData, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, vaa: TokenBridge.TransferVAA, toTokenAccount: PublicKeyInitData): CompleteTransferNativeWithPayloadCpiAccounts; /** * Accounts needed to perform `complete_wrapped_with_payload` instruction. */ export interface CompleteTransferWrappedWithPayloadCpiAccounts extends TokenBridgeWrappedRedeemerDerivedAccounts { payer: PublicKey; /** * seeds = ["PostedVAA", vaa_hash], seeds::program = wormholeProgram */ vaa: PublicKey; /** * seeds = [emitter_address, emitter_chain, sequence], seeds::program = tokenBridgeProgram */ tokenBridgeClaim: PublicKey; /** * seeds = [emitter_chain, emitter_address], seeds::program = tokenBridgeProgram */ tokenBridgeForeignEndpoint: PublicKey; /** * Token account to receive tokens */ toTokenAccount: PublicKey; toFeesTokenAccount: PublicKey; /** * seeds = ["wrapped", token_chain, token_address], seeds::program = tokenBridgeProgram */ tokenBridgeWrappedMint: PublicKey; /** * seeds = ["meta", mint], seeds::program = tokenBridgeProgram */ tokenBridgeWrappedMeta: PublicKey; rent: PublicKey; systemProgram: PublicKey; tokenProgram: PublicKey; wormholeProgram: PublicKey; } /** * Generate accounts needed to perform `complete_wrapped_with_payload` instruction * as cross-program invocation. * * Note: `toFeesTokenAccount` is the same as `toTokenAccount`. For your program, * you only need to pass your `toTokenAccount` into the complete transfer * instruction for the `toFeesTokenAccount`. * * @param cpiProgramId * @param tokenBridgeProgramId * @param wormholeProgramId * @param payer * @param vaa * @returns */ export declare function getCompleteTransferWrappedWithPayloadCpiAccounts(tokenBridgeProgramId: PublicKeyInitData, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, vaa: TokenBridge.TransferVAA, toTokenAccount: PublicKeyInitData): CompleteTransferWrappedWithPayloadCpiAccounts; //# sourceMappingURL=cpi.d.ts.map