@hyperlane-xyz/widgets
Version:
Common react components for Hyperlane projects
49 lines • 1.68 kB
TypeScript
import { ChainName, IToken, TypedTransactionReceipt, WarpTypedTransaction } from '@hyperlane-xyz/sdk';
import { HexString, ProtocolType } from '@hyperlane-xyz/utils';
export interface ChainAddress {
address: string;
chainName?: ChainName;
}
export interface AccountInfo {
protocol: ProtocolType;
addresses: Array<ChainAddress>;
publicKey?: Promise<HexString>;
isReady: boolean;
}
export interface WalletDetails {
name?: string;
logoUrl?: string;
}
export interface ActiveChainInfo {
chainDisplayName?: string;
chainName?: ChainName;
}
export type SendTransactionFn<TxReq extends WarpTypedTransaction = WarpTypedTransaction, TxResp extends TypedTransactionReceipt = TypedTransactionReceipt> = (params: {
tx: TxReq;
chainName: ChainName;
activeChainName?: ChainName;
}) => Promise<{
hash: string;
confirm: () => Promise<TxResp>;
}>;
export type SendMultiTransactionFn<TxReq extends WarpTypedTransaction = WarpTypedTransaction, TxResp extends TypedTransactionReceipt = TypedTransactionReceipt> = (params: {
txs: TxReq[];
chainName: ChainName;
activeChainName?: ChainName;
}) => Promise<{
hash: string;
confirm: () => Promise<TxResp>;
}>;
export type SwitchNetworkFn = (chainName: ChainName) => Promise<void>;
export interface ChainTransactionFns {
sendTransaction: SendTransactionFn;
sendMultiTransaction: SendMultiTransactionFn;
switchNetwork?: SwitchNetworkFn;
}
export interface SwitchNetworkFns {
switchNetwork: SwitchNetworkFn;
}
export interface WatchAssetFns {
addAsset: (token: IToken, activeChainName: ChainName) => Promise<boolean>;
}
//# sourceMappingURL=types.d.ts.map