@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
TypeScript
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;
};
}