UNPKG

@abstraxn/relayer

Version:

Abstraxn Relayer package for handling gas-less transactions, facilitating smart contract interactions, and relaying user transactions efficiently.

72 lines (71 loc) 2.79 kB
import { RelayerConfig, BuildRelayerTxResponse, BuildRelayerTxParams, SendRelayerTxParams, RelayerResponse, RelayerTxStatus, SendRelayerTxWithWebSocketParams, RelayerWebSocketEvents, TransactionInfo, SendSafeRelayerTxParams, SendSafeRelayerTxWithWebSocketParams } from "./utils/Types.js"; import { IRelayer } from "./interfaces/IRelayer.js"; export declare class Relayer implements IRelayer { readonly relayerConfig: RelayerConfig; private relayerUrl; private chainId?; private signer?; private provider?; private isSafeTx; private webSocketManager; constructor(relayerConfig: RelayerConfig); private getRelayerUrl; buildRelayerTx(params: BuildRelayerTxParams): Promise<BuildRelayerTxResponse>; buildRelayerTxEIP712(params: BuildRelayerTxParams): Promise<BuildRelayerTxResponse>; sendRelayerTx(txParams: SendRelayerTxParams): Promise<RelayerResponse>; sendSafeRelayerTx(txParams: SendSafeRelayerTxParams): Promise<RelayerResponse>; getRelayerTxStatus(transactionId: string): Promise<RelayerTxStatus>; /** * Extract key transaction information from the full transaction status */ extractTransactionInfo(txStatus: RelayerTxStatus): TransactionInfo; /** * Check if transaction is confirmed (has hash and receipt) */ isTransactionConfirmed(txStatus: RelayerTxStatus): boolean; /** * Check if transaction is pending (no hash yet) */ isTransactionPending(txStatus: RelayerTxStatus): boolean; /** * Check if transaction failed */ isTransactionFailed(txStatus: RelayerTxStatus): boolean; /** * Get transaction hash safely (returns null if not available) */ getTransactionHash(txStatus: RelayerTxStatus): string | null; /** * Send relayer transaction with real-time updates via WebSocket */ sendRelayerTxWithRealTimeUpdates(params: SendRelayerTxWithWebSocketParams): Promise<RelayerResponse>; sendSafeRelayerTxWithRealTimeUpdates(params: SendSafeRelayerTxWithWebSocketParams): Promise<RelayerResponse>; /** * Subscribe to real-time transaction updates */ subscribeToTransaction(transactionId: string, events?: RelayerWebSocketEvents): Promise<void>; /** * Unsubscribe from transaction updates */ unsubscribeFromTransaction(transactionId: string): void; /** * Connect to WebSocket server */ connectWebSocket(): void; /** * Disconnect from WebSocket server */ disconnectWebSocket(): void; /** * Check if WebSocket is connected */ isWebSocketConnected(): boolean; /** * Get WebSocket connection information */ getWebSocketInfo(): { connected: boolean; subscribedTransactions: number; url: string; }; }