@bnb-chain/canonical-bridge-sdk
Version:
canonical bridge sdk
113 lines (111 loc) • 2.9 kB
TypeScript
import { PublicClient, WalletClient } from 'viem';
export interface IStargateChain {
chainId: number;
chainName: string;
network?: string;
}
export interface IStargateParams {
dstEid: number;
to: `0x${string}`;
amountLD: bigint;
minAmountLD: bigint;
extraOptions: `0x${string}`;
composeMsg: `0x${string}`;
oftCmd: `0x${string}`;
}
export interface IStargateQuoteSend {
nativeFee: bigint;
lzTokenFee: bigint;
}
export interface IStargateBusDriveSettings {
avgWaitTime: number;
maxWaitTime: number;
passengersToDrive: number;
}
export interface IStargateQuoteOFT {
publicClient: PublicClient;
bridgeAddress: `0x${string}`;
endPointId: number;
receiver: `0x${string}`;
amount: bigint;
}
export interface IStargateOFTQuote {
publicClient: PublicClient;
bridgeAddress: `0x${string}`;
endPointId: number;
receiver: `0x${string}`;
amount: bigint;
minAmount: bigint;
}
export interface ISendTokenInput {
walletClient: WalletClient;
publicClient: PublicClient;
bridgeAddress: `0x${string}`;
tokenAddress: `0x${string}`;
endPointId: number;
receiver: `0x${string}`;
amount: bigint;
}
export interface IStargateTokenValidateParams {
fromBridgeAddress: `0x${string}`;
toBridgeAddress: `0x${string}`;
fromTokenAddress: `0x${string}`;
fromTokenSymbol: string;
fromTokenDecimals: number;
fromChainId?: number;
toTokenAddress: `0x${string}`;
toTokenSymbol: string;
toTokenDecimals: number;
toChainId?: number;
amount: number;
toPublicClient: PublicClient;
fromPublicClient: PublicClient;
dstEndpointId: number;
stargateEndpoint: string;
}
export interface IStargateBridgeTokenInfo {
stargateType: string;
address: `0x${string}`;
token: {
address: `0x${string}`;
decimals: number;
symbol: string;
};
lpToken: {
address: `0x${string}`;
decimals: number;
symbol: string;
};
farm: {
stargateStaking: {
address: `0x${string}`;
rewardTokens: [
{
address: `0x${string}`;
decimals: number;
symbol: string;
},
{
address: `0x${string}`;
decimals: number;
symbol: string;
}
];
};
};
id: string;
assetId: string;
chainKey: string;
chainName: string;
chainId: number;
tokenMessaging: `0x${string}`;
sharedDecimals: number;
}
export interface IStargateTokenList {
v1: IStargateBridgeTokenInfo[];
v2: IStargateBridgeTokenInfo[];
}
export interface IStargateToken extends IStargateBridgeTokenInfo {
endpointID?: number;
}
export type IStargateTransferConfig = IStargateToken[];