@bnb-chain/canonical-bridge-sdk
Version:
canonical bridge sdk
59 lines (57 loc) • 2.92 kB
TypeScript
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>;
}