@bnb-chain/canonical-bridge-sdk
Version:
canonical bridge sdk
57 lines (55 loc) • 2.77 kB
TypeScript
import { IBaseBridgeConfigOptions, IBaseBridgeConfig } from '../../core/types';
import { IDeBridgeCreateQuoteResponse, IDeBridgeEstimatedFeesInput, IDeBridgeTokenValidateParams, ISendDebridgeTokenInput } from './types';
import { Hash } from 'viem';
export interface IDeBridgeConfigOptions extends IBaseBridgeConfigOptions {
statsEndpoint: string;
}
export interface IDeBridgeConfig extends IBaseBridgeConfig {
statsEndpoint: string;
}
export declare function deBridgeConfig(options: IDeBridgeConfigOptions): IDeBridgeConfig;
export declare class DeBridge {
private client?;
private statsClient?;
constructor(config: IDeBridgeConfigOptions);
createTxQuote(urlParams: any): Promise<IDeBridgeCreateQuoteResponse>;
/**
* Get estimated fees from transaction quote API
* @param {number} fromChainId - Chain ID of the source chain
* @param {Address} fromTokenAddress - Address of ERC20 token on the source chain
* @param {BigInt} amount - Send amount
* @param {number} toChainId - Chain ID of the destination chain
* @param {Address} toTokenAddress - Address of ERC20 token on the destination chain
* @param {Address} userAddress - user/account address
*/
getEstimatedFees({ fromChainId, fromTokenAddress, amount, toChainId, toTokenAddress, userAddress, toUserAddress, affiliateFeePercent, accesstoken, referralCode, prependOperatingExpenses, }: IDeBridgeEstimatedFeesInput): Promise<IDeBridgeCreateQuoteResponse>;
getOrder({ id }: {
id: string;
}): Promise<any>;
/**
* Get list of orders by filters
* @param address Account address
* @param pageId Page number
* @param pageSize Records per page
* @param fromChainIds Source chain IDs
* @param toChainIds Destination chain IDs
*/
getStatsHistory({ address, pageId, pageSize, fromChainIds, toChainIds, }: {
address: string;
pageId: number;
pageSize: number;
fromChainIds: number[];
toChainIds: number[];
}): Promise<any>;
/**
* Send token via DeBridge
* @param {WalletClient} walletClient Wallet client
* @param {Address} bridgeAddress Bridge address
* @param {String} data Transaction data
* @param {BigInt} amount Send amount
* @param {Address} address wallet/account address
* @returns {Hash} transaction hash
*/
sendToken({ walletClient, bridgeAddress, data, amount, address, }: ISendDebridgeTokenInput): Promise<Hash>;
validateDeBridgeToken: ({ fromChainId, fromChainType, toChainId, toChainType, fromTokenAddress, fromTokenSymbol, fromTokenDecimals, fromBridgeAddress, toTokenAddress, toTokenSymbol, toTokenDecimals, amount, deBridgeEndpoint, }: IDeBridgeTokenValidateParams) => Promise<boolean>;
}