UNPKG

@bnb-chain/canonical-bridge-sdk

Version:
59 lines (57 loc) 2.92 kB
import { IBaseBridgeConfig, IBaseBridgeConfigOptions } from '../../core/types'; import { ISendTokenInput, IStargateBusDriveSettings, IStargateOFTQuote, IStargateQuoteOFT, IStargateTokenValidateParams } from './types'; import { Hash } from 'viem'; export * from './types'; export declare function stargateConfig(options: IBaseBridgeConfigOptions): IBaseBridgeConfig; export declare class Stargate { private client?; constructor(config: IBaseBridgeConfig); getBusQueueTime({ fromEndpointId, toEndpointId, }: { fromEndpointId: string; toEndpointId: string; }): Promise<IStargateBusDriveSettings>; getQuoteOFT({ publicClient, bridgeAddress, endPointId, receiver, amount, }: IStargateQuoteOFT): Promise<readonly [{ minAmountLD: bigint; maxAmountLD: bigint; }, readonly { feeAmountLD: bigint; description: string; }[], { amountSentLD: bigint; amountReceivedLD: bigint; }]>; getQuoteSend({ publicClient, bridgeAddress, endPointId, receiver, amount, minAmount, }: IStargateOFTQuote): Promise<{ nativeFee: bigint; lzTokenFee: bigint; }>; /** * Send token through Stargate bridge * @param {WalletClient} walletClient Wallet client * @param {PublicClient} publicClient Public client * @param {Address} bridgeAddress Bridge address * @param {Address} tokenAddress ERC-20 token address * @param {Number} endPointId Stargate end point ID * @param {Address} receiver Receiver address * @param {BigInt} amount Send amount * @returns {Hash} transaction hash */ sendToken({ walletClient, publicClient, bridgeAddress, tokenAddress, endPointId, receiver, amount, }: ISendTokenInput): Promise<Hash>; /** * Validate token information * @param {fromBridgeAddress} from chain bridge contract address * @param {fromTokenAddress} from token address * @param {fromTokenSymbol} from token symbol * @param {fromChainId} from chain id * @param {toTokenAddress} to token address * @param {toTokenSymbol} to token symbol * @param {toChainId} to chain id * @param {toBridgeAddress} to chain bridge contract address * @param {amount} send token amount * @param {toPublicClient} to chain public client * @param {fromPublicClient} from chain public client * @param {dstEndpointId} Stargate destination endpoint id * @param {stargateEndpoint} Stargate API endpoint * @returns {boolean} is token information valid or not */ validateStargateToken({ fromBridgeAddress, fromTokenAddress, fromTokenDecimals, fromTokenSymbol, fromChainId, toTokenAddress, toTokenSymbol, toTokenDecimals, toChainId, toBridgeAddress, amount, toPublicClient, fromPublicClient, dstEndpointId, stargateEndpoint, }: IStargateTokenValidateParams): Promise<boolean>; }