@leapwallet/embedded-wallet-sdk-react
Version:
A react library for integrating metamask snaps on a cosmos dApp
87 lines (86 loc) • 2.47 kB
TypeScript
import BigNumber from "bignumber.js";
export type cachedRemoteDataArgs = {
remoteUrl: string;
storageKey: string;
expiration?: number;
};
export interface WithLastModified<T> {
data: T;
lastModified: number;
}
export type Amount = {
denom: string;
amount: string;
};
export type DenomData = {
coinDenom: string;
coinMinimalDenom: string;
coinDecimals: number;
icon: string;
chain: string;
coinGeckoId: string;
description?: string;
};
export type DenomTraceData = {
path: string;
baseDenom: string;
originChainId: string;
channelId: string;
sourceChainId: string;
};
type ChainBaseData<T> = {
chainName: string;
icon: string;
rpcUrl: string;
} & T;
export declare enum PROVIDER {
NUMIA = "numia"
}
type NetworkUrl = {
rpcUrl: string;
restUrl: string;
};
export type CosmosChainData = ChainBaseData<{
chainId: string;
restUrl: string;
addressPrefix: string;
baseDenom: string;
chainType: "cosmos";
coinType: string;
privateInfra?: Record<PROVIDER, NetworkUrl>;
associatedAssets?: unknown;
}>;
export declare const withLastModified: <T>(data: T, lastModified: number) => WithLastModified<T>;
export declare const cachedRemoteDataWithLastModified: <T>({ remoteUrl, storageKey, }: cachedRemoteDataArgs) => Promise<T>;
export type DenomDataRecord = Record<string, DenomData>;
export type DenomTraceDataRecord = Record<string, DenomTraceData>;
export declare const getDenoms: () => Promise<DenomDataRecord>;
export declare const getDenomTrace: () => Promise<DenomTraceDataRecord>;
export declare const getChains: () => Promise<Array<Omit<CosmosChainData, "chainType">>>;
export type NMSUrls = {
[key: string]: {
nodeUrl: string;
nodeProvider: null;
}[];
};
export type NodeUrls = {
rest: NMSUrls | null;
rpc: NMSUrls | null;
};
export declare const getNMSRestURLs: () => Promise<NMSUrls>;
export declare const getNMSRpcURLs: () => Promise<NMSUrls>;
export type TokenBalanceData = {
coin: Amount;
denomData: DenomData;
denomTrace?: {
path: string;
baseDenom: string;
};
amount: BigNumber;
chainName: string;
chainId?: string;
usdPrice?: BigNumber;
usdValue?: BigNumber;
};
export declare const getTokenData: (token: Amount, chain: CosmosChainData, denoms: Record<string, DenomData>, originChainId?: string) => Promise<TokenBalanceData | undefined>;
export {};