@smoothsend/sdk
Version:
Multi-chain gasless transaction SDK for seamless dApp integration
87 lines • 3.77 kB
TypeScript
import { SupportedChain, ChainConfig, ChainEcosystem, TransferRequest, TransferQuote, SignatureData, SignedTransferData, TransferResult, TokenBalance, TokenInfo, BatchTransferRequest, SmoothSendConfig, EventListener, ChainInfo, HealthResponse, GasEstimateResponse, DomainSeparatorResponse, TransferStatusResponse } from '../types';
export declare class SmoothSendSDK {
private adapters;
private eventListeners;
private config;
private initialized;
private initializationPromise;
constructor(config?: SmoothSendConfig);
/**
* Initialize adapters with dynamic or static configuration
*/
private initializeAdapters;
private _doInitialize;
private initializeDynamicAdapters;
private initializeStaticAdapters;
private createAdapter;
/**
* Fetch supported chains from both relayers
*/
private fetchSupportedChains;
/**
* Fetch chain configuration from the appropriate relayer
*/
private fetchChainConfig;
/**
* Get default configuration for a chain (fallback when dynamic config fails)
*/
private getDefaultChainConfig;
/**
* Refresh chain configurations from relayers
*/
refreshChainConfigs(): Promise<void>;
addEventListener(listener: EventListener): void;
removeEventListener(listener: EventListener): void;
private emitEvent;
getQuote(request: TransferRequest): Promise<TransferQuote>;
prepareTransfer(request: TransferRequest, quote: TransferQuote): Promise<SignatureData>;
executeTransfer(signedData: SignedTransferData, chain: SupportedChain): Promise<TransferResult>;
transfer(request: TransferRequest, signer: any): Promise<TransferResult>;
batchTransfer(request: BatchTransferRequest, signer: any): Promise<TransferResult[]>;
getBalance(chain: SupportedChain, address: string, token?: string): Promise<TokenBalance[]>;
getTokenInfo(chain: SupportedChain, token: string): Promise<TokenInfo>;
getNonce(chain: SupportedChain, address: string): Promise<string>;
getTransactionStatus(chain: SupportedChain, txHash: string): Promise<any>;
validateAddress(chain: SupportedChain, address: string): Promise<boolean>;
validateAmount(chain: SupportedChain, amount: string, token: string): Promise<boolean>;
getSupportedChains(): Promise<SupportedChain[]>;
getChainConfig(chain: SupportedChain): Promise<ChainConfig>;
isChainSupported(chain: string): Promise<boolean>;
/**
* Get supported tokens for a specific chain (from dynamic config)
*/
getSupportedTokens(chain: SupportedChain): Promise<string[]>;
/**
* Health check endpoint
*/
getHealth(): Promise<HealthResponse>;
/**
* Get supported blockchain networks
*/
getSupportedChainsInfo(): Promise<ChainInfo[]>;
/**
* Get supported tokens for a specific chain
*/
getSupportedTokensForChain(chainName: string): Promise<TokenInfo[]>;
/**
* Estimate gas cost for transfers
*/
estimateGas(chainName: string, transfers: any[]): Promise<GasEstimateResponse>;
/**
* Get EIP-712 domain separator for a specific chain
*/
getDomainSeparator(chainName: string): Promise<DomainSeparatorResponse>;
/**
* Check transfer execution status
*/
getTransferStatus(chainName: string, transferHash: string): Promise<TransferStatusResponse>;
/**
* Check if a chain belongs to a specific ecosystem
*/
getChainEcosystem(chain: SupportedChain): ChainEcosystem;
private getAdapter;
static getSupportedChains(): SupportedChain[];
static getChainConfig(chain: SupportedChain): ChainConfig;
static getAllChainConfigs(): Record<SupportedChain, ChainConfig>;
}
//# sourceMappingURL=SmoothSendSDK.d.ts.map