UNPKG

@bigmi/client

Version:

Reactive primitives for Bitcoin apps.

29 lines (28 loc) 1.83 kB
import { type Address } from '@bigmi/core'; import type { Compute } from '@bigmi/core'; import type { Client } from '@bigmi/core'; import type { Account } from '@bigmi/core'; import type { Config } from '../factories/createConfig.js'; import type { Connector } from '../types/connector.js'; export type ChainIdParameter<config extends Config, chainId extends config['chains'][number]['id'] | undefined = config['chains'][number]['id']> = { chainId?: (chainId extends config['chains'][number]['id'] ? chainId : undefined) | config['chains'][number]['id'] | undefined; }; export type GetConnectorClientReturnType<config extends Config = Config, chainId extends config['chains'][number]['id'] = config['chains'][number]['id']> = Compute<Client<config['_internal']['transports'][chainId], Extract<config['chains'][number], { id: chainId; }>, Account>>; export type ConnectorParameter = { connector?: Connector | undefined; }; export type GetConnectorClientParameters<config extends Config = Config, chainId extends config['chains'][number]['id'] = config['chains'][number]['id']> = Compute<ChainIdParameter<config, chainId> & ConnectorParameter & { /** * Account to use for the client. * * - `Account | Address`: An Account MUST exist on the connector. * - `null`: Account MAY NOT exist on the connector. This is useful for * actions that can infer the account from the connector (e.g. sending a * call without a connected account – the user will be prompted to select * an account within the wallet). */ account?: Address | null | undefined; }>; export declare function getConnectorClient<C extends Config, ChainId extends C['chains'][number]['id']>(config: C, parameters?: GetConnectorClientParameters<C, ChainId>): Promise<GetConnectorClientReturnType<C, ChainId>>;