@wagmi/core 0.2.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/LICENSE +21 -0
  2. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.d.ts +1 -0
  3. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +252 -0
  4. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.js +7 -0
  5. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +252 -0
  6. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +230 -0
  7. package/connectors/coinbaseWallet/package.json +4 -0
  8. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.d.ts +1 -0
  9. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +304 -0
  10. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.js +7 -0
  11. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +304 -0
  12. package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +295 -0
  13. package/connectors/mock/package.json +4 -0
  14. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.d.ts +1 -0
  15. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +216 -0
  16. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.js +7 -0
  17. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +216 -0
  18. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +194 -0
  19. package/connectors/walletConnect/package.json +4 -0
  20. package/dist/base-09a653f3.cjs.dev.js +453 -0
  21. package/dist/base-824c3b6d.esm.js +430 -0
  22. package/dist/base-d8123d5f.cjs.prod.js +453 -0
  23. package/dist/classPrivateMethodGet-0e9a7925.cjs.prod.js +19 -0
  24. package/dist/classPrivateMethodGet-38b54c7a.cjs.dev.js +19 -0
  25. package/dist/classPrivateMethodGet-c9db96d6.esm.js +16 -0
  26. package/dist/declarations/src/actions/accounts/connect.d.ts +7 -0
  27. package/dist/declarations/src/actions/accounts/disconnect.d.ts +1 -0
  28. package/dist/declarations/src/actions/accounts/fetchBalance.d.ts +18 -0
  29. package/dist/declarations/src/actions/accounts/fetchSigner.d.ts +3 -0
  30. package/dist/declarations/src/actions/accounts/getAccount.d.ts +6 -0
  31. package/dist/declarations/src/actions/accounts/getNetwork.d.ts +9 -0
  32. package/dist/declarations/src/actions/accounts/index.d.ts +13 -0
  33. package/dist/declarations/src/actions/accounts/signMessage.d.ts +9 -0
  34. package/dist/declarations/src/actions/accounts/signTypedData.d.ts +13 -0
  35. package/dist/declarations/src/actions/accounts/switchNetwork.d.ts +6 -0
  36. package/dist/declarations/src/actions/accounts/watchAccount.d.ts +3 -0
  37. package/dist/declarations/src/actions/accounts/watchBalance.d.ts +3 -0
  38. package/dist/declarations/src/actions/accounts/watchNetwork.d.ts +3 -0
  39. package/dist/declarations/src/actions/accounts/watchSigner.d.ts +3 -0
  40. package/dist/declarations/src/actions/contracts/getContract.d.ts +11 -0
  41. package/dist/declarations/src/actions/contracts/index.d.ts +5 -0
  42. package/dist/declarations/src/actions/contracts/readContract.d.ts +11 -0
  43. package/dist/declarations/src/actions/contracts/watchContractEvent.d.ts +12 -0
  44. package/dist/declarations/src/actions/contracts/watchReadContract.d.ts +7 -0
  45. package/dist/declarations/src/actions/contracts/writeContract.d.ts +11 -0
  46. package/dist/declarations/src/actions/ens/fetchEnsAddress.d.ts +6 -0
  47. package/dist/declarations/src/actions/ens/fetchEnsAvatar.d.ts +6 -0
  48. package/dist/declarations/src/actions/ens/fetchEnsName.d.ts +6 -0
  49. package/dist/declarations/src/actions/ens/fetchEnsResolver.d.ts +7 -0
  50. package/dist/declarations/src/actions/ens/index.d.ts +8 -0
  51. package/dist/declarations/src/actions/ens/watchEnsAddress.d.ts +3 -0
  52. package/dist/declarations/src/actions/ens/watchEnsAvatar.d.ts +3 -0
  53. package/dist/declarations/src/actions/ens/watchEnsName.d.ts +3 -0
  54. package/dist/declarations/src/actions/ens/watchEnsResolver.d.ts +3 -0
  55. package/dist/declarations/src/actions/index.d.ts +7 -0
  56. package/dist/declarations/src/actions/network-status/fetchBlockNumber.d.ts +2 -0
  57. package/dist/declarations/src/actions/network-status/fetchFeeData.d.ts +14 -0
  58. package/dist/declarations/src/actions/network-status/index.d.ts +4 -0
  59. package/dist/declarations/src/actions/network-status/watchBlockNumber.d.ts +6 -0
  60. package/dist/declarations/src/actions/network-status/watchFeeData.d.ts +7 -0
  61. package/dist/declarations/src/actions/providers/getProvider.d.ts +3 -0
  62. package/dist/declarations/src/actions/providers/getWebSocketProvider.d.ts +3 -0
  63. package/dist/declarations/src/actions/providers/index.d.ts +4 -0
  64. package/dist/declarations/src/actions/providers/watchProvider.d.ts +3 -0
  65. package/dist/declarations/src/actions/providers/watchWebSocketProvider.d.ts +3 -0
  66. package/dist/declarations/src/actions/tokens/fetchToken.d.ts +24 -0
  67. package/dist/declarations/src/actions/tokens/index.d.ts +2 -0
  68. package/dist/declarations/src/actions/tokens/watchToken.d.ts +3 -0
  69. package/dist/declarations/src/actions/transactions/index.d.ts +2 -0
  70. package/dist/declarations/src/actions/transactions/sendTransaction.d.ts +7 -0
  71. package/dist/declarations/src/actions/transactions/waitForTransaction.d.ts +15 -0
  72. package/dist/declarations/src/client.d.ts +78 -0
  73. package/dist/declarations/src/connectors/base.d.ts +50 -0
  74. package/dist/declarations/src/connectors/coinbaseWallet.d.ts +43 -0
  75. package/dist/declarations/src/connectors/index.d.ts +2 -0
  76. package/dist/declarations/src/connectors/injected.d.ts +55 -0
  77. package/dist/declarations/src/connectors/mock/connector.d.ts +37 -0
  78. package/dist/declarations/src/connectors/mock/index.d.ts +2 -0
  79. package/dist/declarations/src/connectors/mock/provider.d.ts +40 -0
  80. package/dist/declarations/src/connectors/walletConnect.d.ts +32 -0
  81. package/dist/declarations/src/constants/abis/erc1155.d.ts +17 -0
  82. package/dist/declarations/src/constants/abis/erc20.d.ts +38 -0
  83. package/dist/declarations/src/constants/abis/erc721.d.ts +15 -0
  84. package/dist/declarations/src/constants/abis/index.d.ts +3 -0
  85. package/dist/declarations/src/constants/chains.d.ts +10 -0
  86. package/dist/declarations/src/constants/index.d.ts +3 -0
  87. package/dist/declarations/src/constants/units.d.ts +1 -0
  88. package/dist/declarations/src/errors.d.ts +28 -0
  89. package/dist/declarations/src/index.d.ts +9 -0
  90. package/dist/declarations/src/storage.d.ts +12 -0
  91. package/dist/declarations/src/types/declarations.d.ts +52 -0
  92. package/dist/declarations/src/types/index.d.ts +14 -0
  93. package/dist/declarations/src/utils/getInjectedName.d.ts +1 -0
  94. package/dist/declarations/src/utils/index.d.ts +2 -0
  95. package/dist/declarations/src/utils/normalizeChainId.d.ts +1 -0
  96. package/dist/wagmi-core.cjs.d.ts +1 -0
  97. package/dist/wagmi-core.cjs.dev.js +1689 -0
  98. package/dist/wagmi-core.cjs.js +7 -0
  99. package/dist/wagmi-core.cjs.prod.js +1689 -0
  100. package/dist/wagmi-core.esm.js +1623 -0
  101. package/package.json +67 -0
@@ -0,0 +1,11 @@
1
+ import type { TransactionResponse } from '@ethersproject/providers';
2
+ import { CallOverrides, Contract as EthersContract } from 'ethers/lib/ethers';
3
+ import { GetContractArgs } from './getContract';
4
+ export declare type WriteContractArgs = GetContractArgs;
5
+ export declare type WriteContractConfig = {
6
+ /** Arguments to pass contract method */
7
+ args?: any | any[];
8
+ overrides?: CallOverrides;
9
+ };
10
+ export declare type WriteContractResult = TransactionResponse;
11
+ export declare function writeContract<Contract extends EthersContract = EthersContract>(contractConfig: WriteContractArgs, functionName: string, { args, overrides }?: WriteContractConfig): Promise<WriteContractResult>;
@@ -0,0 +1,6 @@
1
+ export declare type FetchEnsAddressArgs = {
2
+ /** ENS name to resolve */
3
+ name: string;
4
+ };
5
+ export declare type FetchEnsAddressResult = string | null;
6
+ export declare function fetchEnsAddress({ name, }: FetchEnsAddressArgs): Promise<FetchEnsAddressResult>;
@@ -0,0 +1,6 @@
1
+ export declare type FetchEnsAvatarArgs = {
2
+ /** Address or ENS name */
3
+ addressOrName: string;
4
+ };
5
+ export declare type FetchEnsAvatarResult = string | null;
6
+ export declare function fetchEnsAvatar({ addressOrName, }: FetchEnsAvatarArgs): Promise<FetchEnsAvatarResult>;
@@ -0,0 +1,6 @@
1
+ export declare type FetchEnsNameArgs = {
2
+ /** Address to lookup */
3
+ address: string;
4
+ };
5
+ export declare type FetchEnsNameResult = string | null;
6
+ export declare function fetchEnsName({ address, }: FetchEnsNameArgs): Promise<FetchEnsNameResult>;
@@ -0,0 +1,7 @@
1
+ import type { Resolver } from '@ethersproject/providers';
2
+ export declare type FetchEnsResolverArgs = {
3
+ /** ENS name to resolve */
4
+ name: string;
5
+ };
6
+ export declare type FetchEnsResolverResult = Resolver | null;
7
+ export declare function fetchEnsResolver({ name, }: FetchEnsResolverArgs): Promise<FetchEnsResolverResult>;
@@ -0,0 +1,8 @@
1
+ export { fetchEnsAddress, type FetchEnsAddressArgs, type FetchEnsAddressResult, } from './fetchEnsAddress';
2
+ export { fetchEnsAvatar, type FetchEnsAvatarArgs, type FetchEnsAvatarResult, } from './fetchEnsAvatar';
3
+ export { fetchEnsName, type FetchEnsNameArgs, type FetchEnsNameResult, } from './fetchEnsName';
4
+ export { fetchEnsResolver, type FetchEnsResolverArgs, type FetchEnsResolverResult, } from './fetchEnsResolver';
5
+ export { watchEnsAddress, type WatchEnsAddressCallback, } from './watchEnsAddress';
6
+ export { type WatchEnsAvatarCallback, watchEnsAvatar } from './watchEnsAvatar';
7
+ export { type WatchEnsNameCallback, watchEnsName } from './watchEnsName';
8
+ export { watchEnsResolver, type WatchEnsResolverCallback, } from './watchEnsResolver';
@@ -0,0 +1,3 @@
1
+ import { FetchEnsAddressArgs, FetchEnsAddressResult } from './fetchEnsAddress';
2
+ export declare type WatchEnsAddressCallback = (address: FetchEnsAddressResult) => void;
3
+ export declare function watchEnsAddress(args: FetchEnsAddressArgs, callback: WatchEnsAddressCallback): () => void;
@@ -0,0 +1,3 @@
1
+ import { FetchEnsAvatarArgs, FetchEnsAvatarResult } from './fetchEnsAvatar';
2
+ export declare type WatchEnsAvatarCallback = (addressOrName: FetchEnsAvatarResult) => void;
3
+ export declare function watchEnsAvatar(args: FetchEnsAvatarArgs, callback: WatchEnsAvatarCallback): () => void;
@@ -0,0 +1,3 @@
1
+ import { FetchEnsNameArgs, FetchEnsNameResult } from './fetchEnsName';
2
+ export declare type WatchEnsNameCallback = (name: FetchEnsNameResult) => void;
3
+ export declare function watchEnsName(args: FetchEnsNameArgs, callback: WatchEnsNameCallback): () => void;
@@ -0,0 +1,3 @@
1
+ import { FetchEnsResolverArgs, FetchEnsResolverResult } from './fetchEnsResolver';
2
+ export declare type WatchEnsResolverCallback = (resolver: FetchEnsResolverResult) => void;
3
+ export declare function watchEnsResolver(args: FetchEnsResolverArgs, callback: WatchEnsResolverCallback): () => void;
@@ -0,0 +1,7 @@
1
+ export { connect, disconnect, fetchBalance, fetchSigner, getAccount, getNetwork, signMessage, signTypedData, switchNetwork, watchAccount, watchBalance, watchNetwork, watchSigner, type ConnectResult, type FetchBalanceArgs, type FetchBalanceResult, type FetchSignerResult, type GetAccountResult, type GetNetworkResult, type SignMessageArgs, type SignMessageResult, type SignTypedDataArgs, type SignTypedDataResult, type SwitchNetworkArgs, type SwitchNetworkResult, type WatchAccountCallback, type WatchBalanceCallback, type WatchNetworkCallback, type WatchSignerCallback, } from './accounts';
2
+ export { getContract, readContract, watchContractEvent, watchReadContract, writeContract, type GetContractArgs, type ReadContractArgs, type ReadContractConfig, type ReadContractResult, type WatchReadContractArgs, type WatchReadContractConfig, type WatchReadContractResult, type WriteContractArgs, type WriteContractConfig, type WriteContractResult, } from './contracts';
3
+ export { fetchEnsAddress, fetchEnsAvatar, fetchEnsName, fetchEnsResolver, watchEnsAddress, watchEnsAvatar, watchEnsName, watchEnsResolver, type FetchEnsAddressArgs, type FetchEnsAddressResult, type FetchEnsAvatarArgs, type FetchEnsAvatarResult, type FetchEnsNameArgs, type FetchEnsNameResult, type FetchEnsResolverArgs, type FetchEnsResolverResult, type WatchEnsAddressCallback, type WatchEnsAvatarCallback, type WatchEnsNameCallback, type WatchEnsResolverCallback, } from './ens';
4
+ export { fetchBlockNumber, fetchFeeData, watchBlockNumber, watchFeeData, type FetchBlockNumberResult, type FetchFeeDataArgs, type FetchFeeDataResult, type WatchBlockNumberArgs, type WatchBlockNumberCallback, type WatchFeeDataArgs, type WatchFeeDataCallback, } from './network-status';
5
+ export { getProvider, getWebSocketProvider, watchProvider, watchWebSocketProvider, type GetProviderResult, type GetWebSocketProviderResult, type WatchProviderCallback, type WatchWebSocketProviderCallback, } from './providers';
6
+ export { fetchToken, watchToken, type FetchTokenArgs, type FetchTokenResult, type WatchTokenCallback, } from './tokens';
7
+ export { sendTransaction, waitForTransaction, type SendTransactionArgs, type SendTransactionResult, type WaitForTransactionArgs, type WaitForTransactionResult, } from './transactions';
@@ -0,0 +1,2 @@
1
+ export declare type FetchBlockNumberResult = number;
2
+ export declare function fetchBlockNumber(): Promise<number>;
@@ -0,0 +1,14 @@
1
+ import type { FeeData } from '@ethersproject/providers';
2
+ import { Unit } from '../../types';
3
+ export declare type FetchFeeDataArgs = {
4
+ /** Units for formatting output */
5
+ formatUnits?: Unit | number;
6
+ };
7
+ export declare type FetchFeeDataResult = FeeData & {
8
+ formatted: {
9
+ gasPrice: string;
10
+ maxFeePerGas: string;
11
+ maxPriorityFeePerGas: string;
12
+ };
13
+ };
14
+ export declare function fetchFeeData({ formatUnits: units, }?: FetchFeeDataArgs): Promise<FetchFeeDataResult>;
@@ -0,0 +1,4 @@
1
+ export { fetchBlockNumber, type FetchBlockNumberResult, } from './fetchBlockNumber';
2
+ export { fetchFeeData, type FetchFeeDataResult, type FetchFeeDataArgs, } from './fetchFeeData';
3
+ export { watchFeeData, type WatchFeeDataArgs, type WatchFeeDataCallback, } from './watchFeeData';
4
+ export { watchBlockNumber, type WatchBlockNumberArgs, type WatchBlockNumberCallback, } from './watchBlockNumber';
@@ -0,0 +1,6 @@
1
+ import { FetchBlockNumberResult } from './fetchBlockNumber';
2
+ export declare type WatchBlockNumberArgs = {
3
+ listen: boolean;
4
+ };
5
+ export declare type WatchBlockNumberCallback = (blockNumber: FetchBlockNumberResult) => void;
6
+ export declare function watchBlockNumber(args: WatchBlockNumberArgs, callback: WatchBlockNumberCallback): () => void;
@@ -0,0 +1,7 @@
1
+ import { FetchFeeDataArgs, FetchFeeDataResult } from './fetchFeeData';
2
+ export declare type WatchFeeDataArgs = FetchFeeDataArgs & {
3
+ /** Watch for changes to block number */
4
+ listenToBlock?: boolean;
5
+ };
6
+ export declare type WatchFeeDataCallback = (feeData: FetchFeeDataResult) => void;
7
+ export declare function watchFeeData(args: WatchFeeDataArgs, callback: WatchFeeDataCallback): () => void;
@@ -0,0 +1,3 @@
1
+ import type { BaseProvider } from '@ethersproject/providers';
2
+ export declare type GetProviderResult = BaseProvider;
3
+ export declare function getProvider(): GetProviderResult;
@@ -0,0 +1,3 @@
1
+ import type { WebSocketProvider } from '@ethersproject/providers';
2
+ export declare type GetWebSocketProviderResult = WebSocketProvider | undefined;
3
+ export declare function getWebSocketProvider(): GetWebSocketProviderResult;
@@ -0,0 +1,4 @@
1
+ export { getProvider, type GetProviderResult } from './getProvider';
2
+ export { getWebSocketProvider, type GetWebSocketProviderResult, } from './getWebSocketProvider';
3
+ export { watchProvider, type WatchProviderCallback } from './watchProvider';
4
+ export { watchWebSocketProvider, type WatchWebSocketProviderCallback, } from './watchWebSocketProvider';
@@ -0,0 +1,3 @@
1
+ import { GetProviderResult } from './getProvider';
2
+ export declare type WatchProviderCallback = (provider: GetProviderResult) => void;
3
+ export declare function watchProvider(callback: WatchProviderCallback): () => void;
@@ -0,0 +1,3 @@
1
+ import { GetWebSocketProviderResult } from './getWebSocketProvider';
2
+ export declare type WatchWebSocketProviderCallback = (webSocketProvider: GetWebSocketProviderResult) => void;
3
+ export declare function watchWebSocketProvider(callback: WatchWebSocketProviderCallback): () => void;
@@ -0,0 +1,24 @@
1
+ import { BigNumber } from 'ethers/lib/ethers';
2
+ import { Unit } from '../../types';
3
+ export declare type FetchTokenArgs = {
4
+ address?: string;
5
+ formatUnits?: Unit | number;
6
+ };
7
+ export declare type FetchTokenResult = {
8
+ address: string;
9
+ decimals: number;
10
+ symbol: string;
11
+ totalSupply: {
12
+ formatted: string;
13
+ value: BigNumber;
14
+ };
15
+ };
16
+ export declare function fetchToken({ address, formatUnits: units, }: FetchTokenArgs): Promise<{
17
+ address: string;
18
+ decimals: any;
19
+ symbol: any;
20
+ totalSupply: {
21
+ formatted: string;
22
+ value: any;
23
+ };
24
+ }>;
@@ -0,0 +1,2 @@
1
+ export { fetchToken, type FetchTokenArgs, type FetchTokenResult, } from './fetchToken';
2
+ export { watchToken, type WatchTokenCallback } from './watchToken';
@@ -0,0 +1,3 @@
1
+ import { FetchTokenArgs, FetchTokenResult } from './fetchToken';
2
+ export declare type WatchTokenCallback = (address: FetchTokenResult) => void;
3
+ export declare function watchToken(args: FetchTokenArgs, callback: WatchTokenCallback): () => void;
@@ -0,0 +1,2 @@
1
+ export { sendTransaction, type SendTransactionArgs, type SendTransactionResult, } from './sendTransaction';
2
+ export { waitForTransaction, type WaitForTransactionArgs, type WaitForTransactionResult, } from './waitForTransaction';
@@ -0,0 +1,7 @@
1
+ import type { TransactionRequest, TransactionResponse } from '@ethersproject/providers';
2
+ export declare type SendTransactionArgs = {
3
+ /** Object to use when creating transaction */
4
+ request: TransactionRequest;
5
+ };
6
+ export declare type SendTransactionResult = TransactionResponse;
7
+ export declare function sendTransaction(args: SendTransactionArgs): Promise<SendTransactionResult>;
@@ -0,0 +1,15 @@
1
+ import type { TransactionReceipt, TransactionResponse } from '@ethersproject/providers';
2
+ export declare type WaitForTransactionArgs = {
3
+ /**
4
+ * Number of blocks to wait for after transaction is mined
5
+ * @default 1
6
+ */
7
+ confirmations?: number;
8
+ /** Transaction hash to monitor */
9
+ hash?: string;
10
+ timeout?: number;
11
+ /** Function resolving to transaction receipt */
12
+ wait?: TransactionResponse['wait'];
13
+ };
14
+ export declare type WaitForTransactionResult = TransactionReceipt;
15
+ export declare function waitForTransaction(args: WaitForTransactionArgs): Promise<WaitForTransactionResult>;
@@ -0,0 +1,78 @@
1
+ import type { BaseProvider, WebSocketProvider } from '@ethersproject/providers';
2
+ import { Mutate, StoreApi } from 'zustand/vanilla';
3
+ import { Connector, ConnectorData } from './connectors';
4
+ import { WagmiStorage } from './storage';
5
+ export declare type ClientConfig = {
6
+ /** Enables reconnecting to last used connector on init */
7
+ autoConnect?: boolean;
8
+ /**
9
+ * Connectors used for linking accounts
10
+ * @default [new InjectedConnector()]
11
+ */
12
+ connectors?: ((config: {
13
+ chainId?: number;
14
+ }) => Connector[]) | Connector[];
15
+ /**
16
+ * Interface for connecting to network
17
+ * @default (config) => getDefaultProvider(config.chainId)
18
+ */
19
+ provider?: ((config: {
20
+ chainId?: number;
21
+ }) => BaseProvider) | BaseProvider;
22
+ /**
23
+ * Custom storage for data persistance
24
+ * @default window.localStorage
25
+ */
26
+ storage?: WagmiStorage;
27
+ /** WebSocket interface for connecting to network */
28
+ webSocketProvider?: ((config: {
29
+ chainId?: number;
30
+ }) => WebSocketProvider | undefined) | WebSocketProvider;
31
+ };
32
+ export declare type Data = ConnectorData<BaseProvider>;
33
+ export declare type State = {
34
+ connector?: Connector;
35
+ connectors: Connector[];
36
+ data?: Data;
37
+ error?: Error;
38
+ provider: BaseProvider;
39
+ status: 'connected' | 'connecting' | 'reconnecting' | 'disconnected';
40
+ webSocketProvider?: WebSocketProvider;
41
+ };
42
+ export declare class Client {
43
+ #private;
44
+ config: Partial<ClientConfig>;
45
+ storage: WagmiStorage;
46
+ store: Mutate<StoreApi<State>, [
47
+ [
48
+ 'zustand/subscribeWithSelector',
49
+ never
50
+ ],
51
+ [
52
+ 'zustand/persist',
53
+ Partial<State>
54
+ ]
55
+ ]>;
56
+ constructor({ autoConnect, connectors, provider, storage, webSocketProvider, }?: ClientConfig);
57
+ get connectors(): Connector<any, any>[];
58
+ get connector(): Connector<any, any> | undefined;
59
+ get data(): Data | undefined;
60
+ get error(): Error | undefined;
61
+ get provider(): BaseProvider;
62
+ get status(): "connected" | "connecting" | "reconnecting" | "disconnected";
63
+ get subscribe(): {
64
+ (listener: (selectedState: State, previousSelectedState: State) => void): () => void;
65
+ <U>(selector: (state: State) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
66
+ equalityFn?: ((a: U, b: U) => boolean) | undefined;
67
+ fireImmediately?: boolean | undefined;
68
+ } | undefined): () => void;
69
+ };
70
+ get webSocketProvider(): WebSocketProvider | undefined;
71
+ setState(updater: State | ((state: State) => State)): void;
72
+ clearState(): void;
73
+ destroy(): Promise<void>;
74
+ autoConnect(): Promise<Data | undefined>;
75
+ setLastUsedConnector(lastUsedConnector?: string | null): void;
76
+ }
77
+ export declare let client: Client;
78
+ export declare function createClient(config?: ClientConfig): Client;
@@ -0,0 +1,50 @@
1
+ import { default as EventEmitter } from 'eventemitter3';
2
+ import { Signer } from 'ethers/lib/ethers';
3
+ import { Chain } from '../types';
4
+ export declare type ConnectorData<Provider = any> = {
5
+ account?: string;
6
+ chain?: {
7
+ id: number;
8
+ unsupported: boolean;
9
+ };
10
+ provider?: Provider;
11
+ };
12
+ export interface ConnectorEvents<Provider = any> {
13
+ change(data: ConnectorData<Provider>): void;
14
+ connect(data: ConnectorData<Provider>): void;
15
+ disconnect(): void;
16
+ error(error: Error): void;
17
+ }
18
+ export declare abstract class Connector<Provider = any, Options = any> extends EventEmitter<ConnectorEvents<Provider>> {
19
+ /** Unique connector id */
20
+ abstract readonly id: string;
21
+ /** Connector name */
22
+ abstract readonly name: string;
23
+ /** Chains connector supports */
24
+ readonly chains: Chain[];
25
+ /** Options to use with connector */
26
+ readonly options: Options;
27
+ /** Whether connector is usable */
28
+ abstract readonly ready: boolean;
29
+ constructor({ chains, options, }: {
30
+ chains?: Chain[];
31
+ options: Options;
32
+ });
33
+ abstract connect(): Promise<ConnectorData>;
34
+ abstract disconnect(): Promise<void>;
35
+ abstract getAccount(): Promise<string>;
36
+ abstract getChainId(): Promise<number>;
37
+ abstract getProvider(create?: boolean): Promise<Provider>;
38
+ abstract getSigner(): Promise<Signer>;
39
+ abstract isAuthorized(): Promise<boolean>;
40
+ switchChain?(chainId: number): Promise<Chain>;
41
+ watchAsset?(asset: {
42
+ address: string;
43
+ image?: string;
44
+ symbol: string;
45
+ }): Promise<boolean>;
46
+ protected abstract onAccountsChanged(accounts: string[]): void;
47
+ protected abstract onChainChanged(chain: number | string): void;
48
+ protected abstract onDisconnect(error: Error): void;
49
+ protected isChainUnsupported(chainId: number): boolean;
50
+ }
@@ -0,0 +1,43 @@
1
+ import { providers } from 'ethers';
2
+ import type { CoinbaseWalletProvider } from '@coinbase/wallet-sdk';
3
+ import type { CoinbaseWalletSDKOptions } from '@coinbase/wallet-sdk/dist/CoinbaseWalletSDK';
4
+ import { Chain } from '../types';
5
+ import { Connector } from './base';
6
+ declare type Options = CoinbaseWalletSDKOptions & {
7
+ jsonRpcUrl?: string;
8
+ };
9
+ export declare class CoinbaseWalletConnector extends Connector<CoinbaseWalletProvider, Options> {
10
+ #private;
11
+ readonly id = "coinbaseWallet";
12
+ readonly name = "Coinbase Wallet";
13
+ readonly ready: boolean;
14
+ constructor(config: {
15
+ chains?: Chain[];
16
+ options: Options;
17
+ });
18
+ connect(): Promise<{
19
+ account: string;
20
+ chain: {
21
+ id: number;
22
+ unsupported: boolean;
23
+ };
24
+ provider: providers.Web3Provider;
25
+ }>;
26
+ disconnect(): Promise<void>;
27
+ getAccount(): Promise<string>;
28
+ getChainId(): Promise<number>;
29
+ getProvider(): Promise<CoinbaseWalletProvider>;
30
+ getSigner(): Promise<providers.JsonRpcSigner>;
31
+ isAuthorized(): Promise<boolean>;
32
+ switchChain(chainId: number): Promise<Chain>;
33
+ watchAsset({ address, decimals, image, symbol, }: {
34
+ address: string;
35
+ decimals?: number;
36
+ image?: string;
37
+ symbol: string;
38
+ }): Promise<boolean>;
39
+ protected onAccountsChanged: (accounts: string[]) => void;
40
+ protected onChainChanged: (chainId: number | string) => void;
41
+ protected onDisconnect: () => void;
42
+ }
43
+ export {};
@@ -0,0 +1,2 @@
1
+ export { InjectedConnector } from './injected';
2
+ export { Connector, type ConnectorData, type ConnectorEvents } from './base';
@@ -0,0 +1,55 @@
1
+ import { providers } from 'ethers';
2
+ import { Chain } from '../types';
3
+ import { Connector } from './base';
4
+ declare type InjectedConnectorOptions = {
5
+ /**
6
+ * MetaMask and other injected providers do not support programmatic disconnect.
7
+ * This flag simulates the disconnect behavior by keeping track of connection status in storage.
8
+ * @see https://github.com/MetaMask/metamask-extension/issues/10353
9
+ * @default true
10
+ */
11
+ shimDisconnect?: boolean;
12
+ };
13
+ export declare class InjectedConnector extends Connector<Window['ethereum'], InjectedConnectorOptions | undefined> {
14
+ #private;
15
+ readonly id = "injected";
16
+ readonly name: string;
17
+ readonly ready: boolean;
18
+ constructor(config?: {
19
+ chains?: Chain[];
20
+ options?: InjectedConnectorOptions;
21
+ });
22
+ connect(): Promise<{
23
+ account: string;
24
+ chain: {
25
+ id: number;
26
+ unsupported: boolean;
27
+ };
28
+ provider: InjectedProviders & {
29
+ on?: ((...args: any[]) => void) | undefined;
30
+ removeListener?: ((...args: any[]) => void) | undefined;
31
+ request<T = any>(args: RequestArguments): Promise<T>;
32
+ };
33
+ }>;
34
+ disconnect(): Promise<void>;
35
+ getAccount(): Promise<string>;
36
+ getChainId(): Promise<number>;
37
+ getProvider(): Promise<(InjectedProviders & {
38
+ on?: ((...args: any[]) => void) | undefined;
39
+ removeListener?: ((...args: any[]) => void) | undefined;
40
+ request<T = any>(args: RequestArguments): Promise<T>;
41
+ }) | undefined>;
42
+ getSigner(): Promise<providers.JsonRpcSigner>;
43
+ isAuthorized(): Promise<boolean>;
44
+ switchChain(chainId: number): Promise<Chain>;
45
+ watchAsset({ address, decimals, image, symbol, }: {
46
+ address: string;
47
+ decimals?: number;
48
+ image?: string;
49
+ symbol: string;
50
+ }): Promise<any>;
51
+ protected onAccountsChanged: (accounts: string[]) => void;
52
+ protected onChainChanged: (chainId: number | string) => void;
53
+ protected onDisconnect: () => void;
54
+ }
55
+ export {};
@@ -0,0 +1,37 @@
1
+ import { Chain } from '../../types';
2
+ import { Connector } from '../base';
3
+ import { MockProvider, MockProviderOptions } from './provider';
4
+ export declare class MockConnector extends Connector<MockProvider, MockProviderOptions> {
5
+ #private;
6
+ readonly id = "mock";
7
+ readonly name = "Mock";
8
+ readonly ready = true;
9
+ constructor(config: {
10
+ chains: Chain[];
11
+ options: MockProviderOptions;
12
+ });
13
+ connect(): Promise<{
14
+ account: string;
15
+ chain: {
16
+ id: number;
17
+ unsupported: boolean;
18
+ };
19
+ provider: MockProvider;
20
+ }>;
21
+ disconnect(): Promise<void>;
22
+ getAccount(): Promise<string>;
23
+ getChainId(): Promise<number>;
24
+ getProvider(): Promise<MockProvider>;
25
+ getSigner(): Promise<import("ethers").Signer>;
26
+ isAuthorized(): Promise<boolean>;
27
+ watchAsset(asset: {
28
+ address: string;
29
+ decimals?: number;
30
+ image?: string;
31
+ symbol: string;
32
+ }): Promise<boolean>;
33
+ protected onAccountsChanged: (accounts: string[]) => void;
34
+ protected onChainChanged: (chainId: number | string) => void;
35
+ protected onDisconnect: () => void;
36
+ toJSON(): string;
37
+ }
@@ -0,0 +1,2 @@
1
+ export { MockConnector } from './connector';
2
+ export { type MockProviderOptions, MockProvider } from './provider';
@@ -0,0 +1,40 @@
1
+ import { default as EventEmitter } from 'eventemitter3';
2
+ import { Signer } from 'ethers/lib/ethers';
3
+ import type { Listener } from '@ethersproject/providers';
4
+ import { providers } from 'ethers';
5
+ export declare type MockProviderOptions = {
6
+ flags?: {
7
+ failConnect?: boolean;
8
+ failSwitchChain?: boolean;
9
+ };
10
+ network?: number | string;
11
+ signer: Signer;
12
+ };
13
+ declare type Events = {
14
+ accountsChanged(accounts: string[]): void;
15
+ chainChanged(chainId: number | string): void;
16
+ disconnect(): void;
17
+ };
18
+ declare type Event = keyof Events;
19
+ export declare class MockProvider extends providers.BaseProvider {
20
+ #private;
21
+ events: EventEmitter<Events, any>;
22
+ constructor(options: MockProviderOptions);
23
+ enable(): Promise<string[]>;
24
+ disconnect(): Promise<void>;
25
+ getAccounts(): Promise<string[]>;
26
+ getSigner(): Signer;
27
+ switchChain(chainId: number): Promise<void>;
28
+ watchAsset(_asset: {
29
+ address: string;
30
+ decimals?: number;
31
+ image?: string;
32
+ symbol: string;
33
+ }): Promise<boolean>;
34
+ on(event: Event, listener: Listener): this;
35
+ once(event: Event, listener: Listener): this;
36
+ removeListener(event: Event, listener: Listener): this;
37
+ off(event: Event, listener: Listener): this;
38
+ toJSON(): string;
39
+ }
40
+ export {};
@@ -0,0 +1,32 @@
1
+ import { providers } from 'ethers';
2
+ import type WalletConnectProvider from '@walletconnect/ethereum-provider';
3
+ import type { IWCEthRpcConnectionOptions } from '@walletconnect/types';
4
+ import { Chain } from '../types';
5
+ import { Connector } from './base';
6
+ export declare class WalletConnectConnector extends Connector<WalletConnectProvider, IWCEthRpcConnectionOptions> {
7
+ #private;
8
+ readonly id = "walletConnect";
9
+ readonly name = "WalletConnect";
10
+ readonly ready = true;
11
+ constructor(config: {
12
+ chains?: Chain[];
13
+ options: IWCEthRpcConnectionOptions;
14
+ });
15
+ connect(): Promise<{
16
+ account: string;
17
+ chain: {
18
+ id: number;
19
+ unsupported: boolean;
20
+ };
21
+ provider: providers.Web3Provider;
22
+ }>;
23
+ disconnect(): Promise<void>;
24
+ getAccount(): Promise<string>;
25
+ getChainId(): Promise<number>;
26
+ getProvider(create?: boolean): Promise<WalletConnectProvider>;
27
+ getSigner(): Promise<providers.JsonRpcSigner>;
28
+ isAuthorized(): Promise<boolean>;
29
+ protected onAccountsChanged: (accounts: string[]) => void;
30
+ protected onChainChanged: (chainId: number | string) => void;
31
+ protected onDisconnect: () => void;
32
+ }
@@ -0,0 +1,17 @@
1
+ export declare const erc1155ABI: {
2
+ constant: boolean;
3
+ inputs: {
4
+ internalType: string;
5
+ name: string;
6
+ type: string;
7
+ }[];
8
+ name: string;
9
+ outputs: {
10
+ internalType: string;
11
+ name: string;
12
+ type: string;
13
+ }[];
14
+ payable: boolean;
15
+ stateMutability: string;
16
+ type: string;
17
+ }[];
@@ -0,0 +1,38 @@
1
+ export declare const erc20ABI: ({
2
+ constant: boolean;
3
+ inputs: {
4
+ name: string;
5
+ type: string;
6
+ }[];
7
+ name: string;
8
+ outputs: {
9
+ name: string;
10
+ type: string;
11
+ }[];
12
+ payable: boolean;
13
+ stateMutability: string;
14
+ type: string;
15
+ anonymous?: undefined;
16
+ } | {
17
+ payable: boolean;
18
+ stateMutability: string;
19
+ type: string;
20
+ constant?: undefined;
21
+ inputs?: undefined;
22
+ name?: undefined;
23
+ outputs?: undefined;
24
+ anonymous?: undefined;
25
+ } | {
26
+ anonymous: boolean;
27
+ inputs: {
28
+ indexed: boolean;
29
+ name: string;
30
+ type: string;
31
+ }[];
32
+ name: string;
33
+ type: string;
34
+ constant?: undefined;
35
+ outputs?: undefined;
36
+ payable?: undefined;
37
+ stateMutability?: undefined;
38
+ })[];
@@ -0,0 +1,15 @@
1
+ export declare const erc721ABI: {
2
+ inputs: {
3
+ internalType: string;
4
+ name: string;
5
+ type: string;
6
+ }[];
7
+ name: string;
8
+ outputs: {
9
+ internalType: string;
10
+ name: string;
11
+ type: string;
12
+ }[];
13
+ stateMutability: string;
14
+ type: string;
15
+ }[];