@bnb-chain/canonical-bridge-sdk
Version:
canonical bridge sdk
67 lines (65 loc) • 2.64 kB
TypeScript
import { IBaseAdapterCommonOptions, IBridgeProvider } from '../adapters/base/types';
import { CBridgeAdapter } from '../adapters/cBridge/adapter';
import { DeBridgeAdapter } from '../adapters/deBridge/adapter';
import { LayerZeroAdapter } from '../adapters/layerZero/adapter';
import { MesonAdapter } from '../adapters/meson/adapter';
import { StargateAdapter } from '../adapters/stargate/adapter';
import { BridgeType, IBridgeChain, IBridgeToken, INativeCurrency, ValueOf } from '../shared/types';
import { MayanAdapter } from '../adapters/mayan/adapter';
export interface Adapters {
cBridge: CBridgeAdapter;
deBridge: DeBridgeAdapter;
layerZero: LayerZeroAdapter;
meson: MesonAdapter;
stargate: StargateAdapter;
mayan: MayanAdapter;
}
export interface AggregatorOptions extends Omit<IBaseAdapterCommonOptions, 'nativeCurrencies'> {
providers: IBridgeProvider[];
chainSorter?: (a: IBridgeChain, b: IBridgeChain) => number;
tokenSorter?: (a: IBridgeToken, b: IBridgeToken) => number;
}
export declare class Aggregator {
private options;
adapters: Array<ValueOf<Adapters>>;
nativeCurrencies: Record<string, INativeCurrency>;
constructor(options: AggregatorOptions);
private initNativeCurrencies;
private initAdapters;
getAdapter<P extends BridgeType>(id: P): Adapters[P] | undefined;
getNativeCurrency(chainId?: number): INativeCurrency | undefined;
getFromChains(): IBridgeChain[];
getToChains({ fromChainId }: {
fromChainId: number;
}): IBridgeChain[];
getTokens({ fromChainId, toChainId, }: {
fromChainId: number;
toChainId: number;
}): IBridgeToken[];
getToTokens({ fromChainId, toChainId, tokenAddress, }: {
fromChainId: number;
toChainId: number;
tokenAddress: string;
}): IBridgeToken[];
getFromChainDetail({ fromChainId, toChainId, tokenAddress, }: {
fromChainId: number;
toChainId: number;
tokenAddress: string;
}): IBridgeChain | undefined;
getToChainDetail({ fromChainId, toChainId, tokenAddress, }: {
fromChainId: number;
toChainId: number;
tokenAddress: string;
}): IBridgeChain | undefined;
getTokenDetail({ fromChainId, toChainId, tokenAddress, }: {
fromChainId: number;
toChainId: number;
tokenAddress: string;
}): IBridgeToken | undefined;
getToTokenDetail({ fromChainId, toChainId, fromTokenAddress, toTokenAddress, }: {
fromChainId: number;
toChainId: number;
fromTokenAddress: string;
toTokenAddress: string;
}): IBridgeToken | undefined;
}