@bigmi/client
Version:
Reactive primitives for Bitcoin apps.
29 lines (28 loc) • 1.83 kB
TypeScript
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>>;