UNPKG

@axelar-network/axelarjs-sdk

Version:
201 lines 9.48 kB
import { AxelarRecoveryAPIConfig, EvmWalletDetails, AddGasOptions, TxResult, QueryGasFeeOptions, ApproveGatewayError, GMPRecoveryResponse, AxelarTxResponse, Environment } from "../types"; import { EvmChain } from "../../constants/EvmChain"; import { AxelarRecoveryApi } from "./AxelarRecoveryApi"; import { AxelarQueryAPI } from "../AxelarQueryAPI"; import { Transaction } from "@mysten/sui/transactions"; import { EventResponse } from "@axelar-network/axelarjs-types/axelar/evm/v1beta1/query"; import { ChainInfo } from "src/chains/types"; import { Coin, OfflineSigner } from "@cosmjs/proto-signing"; import { DeliverTxResponse, SigningStargateClient, StdFee } from "@cosmjs/stargate"; import { JsonRpcProvider } from "@ethersproject/providers"; export declare const GMPErrorMap: Record<string, ApproveGatewayError>; interface ConfirmTxSDKResponse { success: boolean; errorMessage?: string; infoLogs: string[]; commandId: string; confirmTx?: AxelarTxResponse; eventResponse?: EventResponse; } interface SignTxSDKResponse { success: boolean; errorMessage?: string; signCommandTx?: AxelarTxResponse; infoLogs: string[]; } interface BroadcastTxSDKResponse { success: boolean; errorMessage?: string; approveTx?: AxelarTxResponse; infoLogs: string[]; } export declare enum RouteDir { COSMOS_TO_EVM = "cosmos_to_evm", EVM_TO_COSMOS = "evm_to_cosmos", EVM_TO_EVM = "evm_to_evm", COSMOS_TO_COSMOS = "cosmos_to_cosmos" } export type SendOptions = { txFee: StdFee; environment: Environment; offlineSigner: OfflineSigner; rpcUrl?: string; timeoutTimestamp?: number; }; export type AddGasStellarParams = { senderAddress: string; tokenAddress?: string; contractAddress?: string; amount: string; spender: string; messageId: string; }; export type AutocalculateGasOptions = { gasMultipler?: number; }; export type AddGasParams = { txHash: string; chain: string; token: Coin | "autocalculate"; sendOptions: SendOptions; gasLimit: number; autocalculateGasOptions?: AutocalculateGasOptions; }; export type AddGasSuiParams = { amount?: string; refundAddress: string; messageId: string; gasParams: string; }; export type AddGasResponse = { success: boolean; info: string; broadcastResult?: DeliverTxResponse; }; export type GetFullFeeOptions = { environment: Environment; autocalculateGasOptions?: AutocalculateGasOptions | undefined; tx: any; chainConfig: any; }; export declare const getCosmosSigner: (rpcUrl: string, offlineDirectSigner: OfflineSigner) => Promise<SigningStargateClient>; export declare class AxelarGMPRecoveryAPI extends AxelarRecoveryApi { axelarQueryApi: AxelarQueryAPI; private staticInfo; constructor(config: AxelarRecoveryAPIConfig); getCidFromSrcTxHash(destChainId: string, messageId: string, eventIndex: number): string; doesTxMeetConfirmHt(chain: string, txHash: string, provider?: JsonRpcProvider): Promise<boolean | undefined>; isEVMEventFailed(eventResponse: EventResponse | undefined): boolean | undefined; isEVMEventConfirmed(eventResponse: EventResponse): boolean | undefined; isEVMEventCompleted(eventResponse: EventResponse): boolean | undefined; getEvmEvent(srcChainId: string, destChainId: string, srcTxHash: string, srcTxEventIndex: number | undefined, evmWalletDetails?: EvmWalletDetails): Promise<{ commandId: string; eventResponse: EventResponse; success: boolean; errorMessage: string; infoLog: string; }>; findEventAndConfirmIfNeeded(srcChain: string, destChain: string, txHash: string, txEventIndex: number | undefined, evmWalletDetails: EvmWalletDetails): Promise<ConfirmTxSDKResponse>; findBatchAndSignIfNeeded(commandId: string, destChainId: string): Promise<SignTxSDKResponse>; findBatchAndApproveGateway(commandId: string, destChainId: string, wallet: EvmWalletDetails): Promise<BroadcastTxSDKResponse>; manualRelayToDestChain(txHash: string, txLogIndex?: number | undefined, txEventIndex?: number | undefined, evmWalletDetails?: EvmWalletDetails, escapeAfterConfirm?: boolean, messageId?: string): Promise<GMPRecoveryResponse>; getRouteDir(srcChain: ChainInfo, destChain: ChainInfo): RouteDir; private recoverCosmosToCosmosTx; private recoverEvmToCosmosTx; private recoverCosmosToEvmTx; private recoverEvmToEvmTx; private signAndApproveGateway; /** * Check if given transaction is already executed. * @param txHash string - transaction hash * @returns Promise<boolean> - true if transaction is already executed */ isExecuted(txHash: string): Promise<boolean>; /** * Check if given transaction is already confirmed. * @param txHash string - transaction hash * @returns Promise<boolean> - true if transaction is already confirmed */ isConfirmed(txHash: string): Promise<boolean>; /** * Calculate the gas fee in native token for executing a transaction at the destination chain using the source chain's gas price. * @param txHash string - transaction hash * @param sourceChain EVMChain - source chain * @param destinationChain EVMChain - destination chain * @param gasTokenSymbol string - gas token symbol * @param options QueryGasFeeOptions - options * @returns Promise<string> - The gas fee to be paid at source chain */ calculateNativeGasFee(txHash: string, sourceChain: string, destinationChain: string, estimatedGasUsed: number, options: QueryGasFeeOptions): Promise<string>; /** * Calculate the gas fee in an ERC-20 tokens for executing a transaction at the destination chain using the source chain's gas price. * @param txHash string - transaction hash * @param sourceChain EVMChain - source chain * @param destinationChain EVMChain - destination chain * @param gasTokenSymbol string - gas token symbol * @param options QueryGasFeeOptions - options * @returns Promise<string> - The gas fee to be paid at source chain */ calculateGasFee(txHash: string, sourceChain: EvmChain, destinationChain: EvmChain, estimatedGasUsed: number, options: QueryGasFeeOptions): Promise<string>; getEventIndex(chain: string, txHash: string, evmWalletDetails?: EvmWalletDetails): Promise<Nullable<number>>; addGasToSuiChain(params: AddGasSuiParams): Promise<Transaction>; /** * Builds an XDR transaction to add gas payment to the Axelar Gas Service contract. * * This function creates a Stellar transaction that adds gas payment to the Axelar Gas Service. * The payment is made in native XLM token by default and is used to cover the execution costs of * cross-chain messages. * * @example * ```typescript * const xdr = await sdk.addGasToStellarChain{ * senderAddress: 'GCXXX...', // The address that sent the cross-chain message via the `axelar_gateway` * messageId: 'tx-123', * amount: '10000000', // the token amount to pay for the gas fee * spender: 'GXXX...' // The spender pays for the gas fee. * }); * * // Sign with Freighter wallet * const signedXDR = await window.freighter.signTransaction(xdr); * ``` * * @param {AddGasStellarParams} params - The parameters for the add gas transaction * @returns {Promise<string>} The transaction encoded as an XDR string, ready for signing */ addGasToStellarChain(params: AddGasStellarParams): Promise<string>; addGasToCosmosChain({ gasLimit, autocalculateGasOptions, sendOptions, ...params }: AddGasParams): Promise<AddGasResponse>; /** * Pay native token as gas fee for the given transaction hash. * If the transaction details is not valid, it will return an error with reason. * @param chain - source chain * @param txHash - transaction hash * @param estimatedGasUsed - estimated gas used * @param options - options * @returns */ addNativeGas(chain: EvmChain, txHash: string, estimatedGasUsed: number, options?: AddGasOptions): Promise<TxResult>; /** * Pay ERC20 token as gas fee for the given transaction hash. * If the transaction details or `gasTokenAddress` is not valid, it will return an error with reason. * * @param chain EvmChain - The source chain of the transaction hash. * @param txHash string - The transaction hash. * @param gasTokenAddress string - The address of the ERC20 token to pay as gas fee. * @param options AddGasOptions - The options to pay gas fee. * @returns */ addGas(chain: EvmChain, txHash: string, gasTokenAddress: string, estimatedGasUsed: number, options?: AddGasOptions): Promise<TxResult>; /** * Execute a transaction on the destination chain associated with given `srcTxHash`. * @param srcTxHash - The transaction hash on the source chain. * @param srcTxLogIndex - The log index of the transaction on the source chain. * @param evmWalletDetails - The wallet details to use for executing the transaction. * @returns The result of executing the transaction. */ execute(srcTxHash: string, srcTxLogIndex?: number, evmWalletDetails?: EvmWalletDetails): Promise<TxResult>; private subtractGasFee; private getSigner; getStaticInfo(): Promise<Record<string, any>>; } export {}; //# sourceMappingURL=AxelarGMPRecoveryAPI.d.ts.map