/// import { TransactionSignerPair } from '@certusone/wormhole-sdk/lib/cjs/algorand'; import { Algodv2 } from "algosdk"; import { BigNumberish, ContractReceipt, ethers, PayableOverrides, Signer } from "ethers"; import { ChainName, WormholeEnvironment, WormholeNetwork, XAssetId, XContractAddress, XRecipientId } from "./types"; import { WormholeDictionary } from "./dictionary"; import { Connection, PublicKey, PublicKeyInitData, Transaction, TransactionResponse, TransactionSignature, VersionedTransactionResponse } from "@solana/web3.js"; import type { SolanaSignTxCallback } from "../tools"; export type SolanaRedeemProgress = { verifySigTxs?: Transaction[]; postVaaTx?: Transaction; signers?: any[]; successTxCount: number; totalTxCount: number; }; export type CreateSolanaAtaAccountInfo = { created: boolean; signature: string; }; export interface WormholeService { getMirrorAsset(xAsset: XAssetId, dest: ChainName, provider?: ethers.providers.Provider | ethers.Signer): Promise; createWormholeTxForEthereumRedeem(sender: XRecipientId, vaa: Uint8Array, signer: Signer, overrides?: ethers.Overrides): Promise; createWormholeTxForSolanaRedeem(asset: XAssetId, signedVAA: Uint8Array, connection: Connection, payerAccount: PublicKey, signCallback: SolanaSignTxCallback, transactionProgress: SolanaRedeemProgress, postVaaMaxRetries?: number, multiplier?: number, maxPriorityFeeCap?: number, minPriorityFee?: number): Promise; redeemOnAlgorand(sender: XRecipientId, vaa: Uint8Array): Promise; createWormholeTxForEvmNetworkDeposit(toAddress: XRecipientId, asset: XAssetId, amount: BigNumberish, repayAmount: bigint, signer: Signer, receiver: string, overrides?: PayableOverrides): Promise; createWormholeTxForEvmNetworkDeposit_CCTP(toAddress: XRecipientId, asset: XAssetId, amount: BigNumberish, repayAmount: bigint, signer: Signer, receiver: string, hubAddress: string, overrides?: PayableOverrides): Promise; createWormholeTxForAlgorandNetworkWithdraw(fromXAddress: XRecipientId, toXAddress: XRecipientId, xAsset: XContractAddress, amount: bigint, fee: bigint, optionalArgs?: any): Promise; createWormholeTxForAlgorandNetworkWithdraw_CCTP(fromXAddress: XRecipientId, toXAddress: XRecipientId, xAsset: XContractAddress, amount: bigint, fee: bigint, hubAddress: string, optionalArgs?: any): Promise; createWormholeTxForSolanaNetworkDeposit(connection: Connection, publicKey: PublicKey, signCallback: SolanaSignTxCallback, toAddress: XRecipientId, asset: XAssetId, amount: bigint, repayAmount: bigint, receiver: string): Promise; fetchVaaFromSource(evmSourceChain: ChainName, vaaSequence: bigint, retryTimeout?: number, maxRetryCount?: number, rpcOptions?: Record): Promise; getWormholeVaaSequenceFromEthereumTx(chain: ChainName, txReceipt: ethers.ContractReceipt): string; getWormholeVaaSequenceFromAlgorandTx(txId: string): Promise; getWormholeVaaSequenceFromSolanaTx(transactionResponse: TransactionResponse | VersionedTransactionResponse): Promise; getDictionary(): WormholeDictionary; isEthereumTransferComplete(signer: ethers.Signer | ethers.providers.Provider, signedVAA: Uint8Array, evmDestChain: ChainName): Promise; isAlgorandTransferComplete(signedVAA: Uint8Array): Promise; isSolanaTransferComplete(connection: Connection, signedVAA: Uint8Array): Promise; getNetwork(): WormholeNetwork; isVaaEnqueued(sourceChain: ChainName, vaaSequence: bigint, retryTimeout?: number, maxRetryCount?: number, rpcOptions?: Record): Promise; createSolanaAtaAccount(connection: Connection, associatedTokenAddress: PublicKey, ownerPublicKey: PublicKey, payerSignCallback: SolanaSignTxCallback, mint: PublicKey, payer?: PublicKey): Promise; solanaAtaExistsFromOwner(connection: Connection, ownerAddr: string, tokenAddress: string): Promise; getSolanaAssociatedTokenAddress(xAsset: XContractAddress, owner: XContractAddress): Promise; getSolanaAssociatedTokenAddressRaw(mint: PublicKeyInitData, owner: PublicKeyInitData): PublicKey; } export declare class WormholeServiceImpl implements WormholeService { private wormholeEnvironment; private algodClient; private dictionary; constructor(wormholeEnvironment: WormholeEnvironment, algodClient: Algodv2); getDictionary(): WormholeDictionary; getNetwork(): WormholeNetwork; buildDepositCallData(asset: XAssetId, toAddress: XRecipientId, repayAmount: bigint, receiver: string, sender: string): { payload: Buffer; recipient: XRecipientId; }; createWormholeTxForEvmNetworkDeposit(toAddress: XRecipientId, asset: XAssetId, amount: BigNumberish, repayAmount: bigint, signer: Signer, receiver: string, overrides?: PayableOverrides): Promise; createWormholeTxForSolanaNetworkDeposit(connection: Connection, publicKey: PublicKey, signCallback: SolanaSignTxCallback, toAddress: XRecipientId, asset: XAssetId, amount: bigint, repayAmount: bigint, receiver: string): Promise; createWormholeTxForEvmNetworkDeposit_CCTP(toAddress: XRecipientId, asset: XAssetId, amount: BigNumberish, repayAmount: bigint, signer: Signer, receiver: string, hubAddress: string, overrides?: PayableOverrides): Promise; createWormholeTxForAlgorandNetworkWithdraw(fromXAddress: XRecipientId, toXAddress: XRecipientId, xAsset: XContractAddress, amount: bigint, fee: bigint, optionalArgs?: any): Promise; createWormholeTxForAlgorandNetworkWithdraw_CCTP(fromXAddress: XRecipientId, toXAddress: XRecipientId, xAsset: XContractAddress, amount: bigint, fee: bigint, hubAddress: string, optionalArgs?: any): Promise; getWormholeVaaSequenceFromEthereumTx(chain: ChainName, txReceipt: ethers.ContractReceipt): string; getWormholeVaaSequenceFromAlgorandTx(txId: string): Promise; getWormholeVaaSequenceFromSolanaTx(transactionResponse: TransactionResponse | VersionedTransactionResponse): Promise; /** * Returns the mirrored asset for a given destination chain. * @param xAsset The asset to query for. It's chain must be different from the destination chain. * @param dest The destination chain to map. * @param provider The RPC provider to use for the query, if needed. This must match the destination chain to query if it's an EVM chain. * @returns The mirrored asset for the destination chain. */ getMirrorAsset(xAsset: XAssetId, dest: ChainName, provider?: ethers.providers.Provider | ethers.Signer): Promise; fetchVaaFromSource(sourceChain: ChainName, vaaSequence: bigint, retryTimeout?: number, maxRetryCount?: number, rpcOptions?: Record): Promise; createWormholeTxForEthereumRedeem(asset: XAssetId, signedVAA: Uint8Array, signer: ethers.Signer, overrides?: ethers.Overrides): Promise; /** * Creates a transaction for withdraw assets on Solana. * @remarks The transactionProgress object is modified in place, beware of any concurrency issues. */ createWormholeTxForSolanaRedeem(asset: XAssetId, signedVAA: Uint8Array, connection: Connection, payerAccount: PublicKey, signCallback: SolanaSignTxCallback, transactionProgress: SolanaRedeemProgress, postVaaMaxRetries?: number, multiplier?: number, maxPriorityFeeCap?: number, minPriorityFee?: number): Promise; redeemOnAlgorand(asset: XAssetId, vaa: Uint8Array): Promise; isEthereumTransferComplete(signer: ethers.Signer | ethers.providers.Provider, signedVAA: Uint8Array, evmDestChain: ChainName): Promise; isAlgorandTransferComplete(signedVAA: Uint8Array): Promise; isSolanaTransferComplete(connection: Connection, signedVAA: Uint8Array): Promise; isVaaEnqueued(sourceChain: ChainName, vaaSequence: bigint, retryTimeout?: number, maxRetryCount?: number, rpcOptions?: Record): Promise; /** * Gets the ATA Address for a specific token and owner tuple. * * @param asa The token to get the ATA for. * @param owner The owner of the ATA. This must be a Solana address enconded in hex (not base58 string) * @returns The associated token address for the owner. */ getSolanaAssociatedTokenAddress(asa: XContractAddress, owner: XContractAddress): Promise; getSolanaAssociatedTokenAddressRaw(mint: PublicKeyInitData, owner: PublicKeyInitData): PublicKey; solanaAtaExistsFromOwner(connection: Connection, ownerAddress: string, tokenAddress: string): Promise; createSolanaAtaAccount(connection: Connection, associatedTokenAddress: PublicKey, ownerPublicKey: PublicKey, payerSignCallback: SolanaSignTxCallback, mint: PublicKey, payer?: PublicKey): Promise; } //# sourceMappingURL=service.d.ts.map