@wagmi/core 0.2.3 → 0.3.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.
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +28 -10
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +28 -10
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +28 -10
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.dev.js +20 -11
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.prod.js +20 -11
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.esm.js +15 -6
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +7 -6
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +7 -6
- package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +5 -4
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +26 -8
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +26 -8
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +24 -6
- package/dist/{base-5812b724.cjs.dev.js → base-3a506159.cjs.dev.js} +129 -67
- package/dist/{base-159de546.esm.js → base-997b4fec.esm.js} +98 -38
- package/dist/{base-59f3457e.cjs.prod.js → base-cb4198f3.cjs.prod.js} +129 -67
- package/dist/{client-f77a08e4.cjs.dev.js → client-08120ec7.cjs.dev.js} +35 -23
- package/dist/{client-4d8337e7.cjs.prod.js → client-332f5c43.cjs.prod.js} +35 -23
- package/dist/{client-5d456446.esm.js → client-d8d4f4fc.esm.js} +33 -21
- package/dist/declarations/src/actions/accounts/connect.d.ts +4 -4
- package/dist/declarations/src/actions/accounts/getAccount.d.ts +3 -3
- package/dist/declarations/src/actions/accounts/signTypedData.d.ts +15 -6
- package/dist/declarations/src/actions/accounts/watchAccount.d.ts +3 -3
- package/dist/declarations/src/actions/providers/getProvider.d.ts +3 -3
- package/dist/declarations/src/actions/providers/getWebSocketProvider.d.ts +3 -3
- package/dist/declarations/src/actions/providers/watchProvider.d.ts +3 -3
- package/dist/declarations/src/actions/providers/watchWebSocketProvider.d.ts +3 -3
- package/dist/declarations/src/chains/configureChains.d.ts +20 -0
- package/dist/declarations/src/chains/index.d.ts +2 -0
- package/dist/declarations/src/client.d.ts +11 -11
- package/dist/declarations/src/connectors/injected.d.ts +1 -1
- package/dist/declarations/src/constants/index.d.ts +1 -1
- package/dist/declarations/src/errors.d.ts +48 -4
- package/dist/declarations/src/index.d.ts +8 -6
- package/dist/declarations/src/providers/alchemy.d.ts +7 -0
- package/dist/declarations/src/providers/infura.d.ts +7 -0
- package/dist/declarations/src/providers/jsonRpc.d.ts +11 -0
- package/dist/declarations/src/providers/public.d.ts +6 -0
- package/dist/declarations/src/storage.d.ts +2 -2
- package/dist/declarations/src/types/index.d.ts +67 -27
- package/dist/rpcs-7cfbd91c.esm.js +30 -0
- package/dist/rpcs-9c4eb960.cjs.dev.js +35 -0
- package/dist/rpcs-b3c52116.cjs.prod.js +35 -0
- package/dist/wagmi-core.cjs.dev.js +126 -27
- package/dist/wagmi-core.cjs.prod.js +126 -27
- package/dist/wagmi-core.esm.js +124 -26
- package/package.json +29 -8
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.d.ts +1 -0
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.dev.js +38 -0
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.js +7 -0
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.prod.js +38 -0
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.esm.js +34 -0
- package/providers/alchemy/package.json +4 -0
- package/providers/infura/dist/wagmi-core-providers-infura.cjs.d.ts +1 -0
- package/providers/infura/dist/wagmi-core-providers-infura.cjs.dev.js +38 -0
- package/providers/infura/dist/wagmi-core-providers-infura.cjs.js +7 -0
- package/providers/infura/dist/wagmi-core-providers-infura.cjs.prod.js +38 -0
- package/providers/infura/dist/wagmi-core-providers-infura.esm.js +34 -0
- package/providers/infura/package.json +4 -0
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.d.ts +1 -0
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.dev.js +45 -0
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.js +7 -0
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.prod.js +45 -0
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.esm.js +41 -0
- package/providers/jsonRpc/package.json +4 -0
- package/providers/public/dist/wagmi-core-providers-public.cjs.d.ts +1 -0
- package/providers/public/dist/wagmi-core-providers-public.cjs.dev.js +34 -0
- package/providers/public/dist/wagmi-core-providers-public.cjs.js +7 -0
- package/providers/public/dist/wagmi-core-providers-public.cjs.prod.js +34 -0
- package/providers/public/dist/wagmi-core-providers-public.esm.js +30 -0
- package/providers/public/package.json +4 -0
- package/dist/classPrivateMethodGet-55c9909f.esm.js +0 -16
- package/dist/classPrivateMethodGet-976c8120.cjs.dev.js +0 -19
- package/dist/classPrivateMethodGet-d7330ed7.cjs.prod.js +0 -19
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { WebSocketProvider } from '../../types';
|
|
2
2
|
import { GetWebSocketProviderArgs, GetWebSocketProviderResult } from './getWebSocketProvider';
|
|
3
|
-
export declare type WatchWebSocketProviderCallback<TWebSocketProvider extends
|
|
4
|
-
export declare function watchWebSocketProvider<TWebSocketProvider extends
|
|
3
|
+
export declare type WatchWebSocketProviderCallback<TWebSocketProvider extends WebSocketProvider = WebSocketProvider> = (webSocketProvider: GetWebSocketProviderResult<TWebSocketProvider>) => void;
|
|
4
|
+
export declare function watchWebSocketProvider<TWebSocketProvider extends WebSocketProvider = WebSocketProvider>(args: GetWebSocketProviderArgs, callback: WatchWebSocketProviderCallback<TWebSocketProvider>): () => void;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { providers } from 'ethers';
|
|
2
|
+
import { Chain, ChainProvider, Provider, WebSocketProvider } from '../types';
|
|
3
|
+
export declare type ConfigureChainsConfig = {
|
|
4
|
+
stallTimeout?: number;
|
|
5
|
+
} & ({
|
|
6
|
+
targetQuorum?: number;
|
|
7
|
+
minQuorum?: never;
|
|
8
|
+
} | {
|
|
9
|
+
targetQuorum: number;
|
|
10
|
+
minQuorum?: number;
|
|
11
|
+
});
|
|
12
|
+
export declare function configureChains<TProvider extends Provider = Provider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider>(defaultChains: Chain[], providers: ChainProvider<TProvider, TWebSocketProvider>[], { minQuorum, targetQuorum, stallTimeout }?: ConfigureChainsConfig): {
|
|
13
|
+
readonly chains: Chain[];
|
|
14
|
+
readonly provider: ({ chainId }: {
|
|
15
|
+
chainId?: number | undefined;
|
|
16
|
+
}) => TProvider | providers.FallbackProvider;
|
|
17
|
+
readonly webSocketProvider: ({ chainId }: {
|
|
18
|
+
chainId?: number | undefined;
|
|
19
|
+
}) => TWebSocketProvider | undefined;
|
|
20
|
+
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { providers } from 'ethers';
|
|
2
1
|
import { Mutate, StoreApi } from 'zustand/vanilla';
|
|
3
2
|
import { Connector, ConnectorData } from './connectors';
|
|
4
|
-
import {
|
|
5
|
-
|
|
3
|
+
import { ClientStorage } from './storage';
|
|
4
|
+
import { Provider, WebSocketProvider } from './types';
|
|
5
|
+
export declare type ClientConfig<TProvider extends Provider = Provider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider> = {
|
|
6
6
|
/** Enables reconnecting to last used connector on init */
|
|
7
7
|
autoConnect?: boolean;
|
|
8
8
|
/**
|
|
@@ -23,14 +23,14 @@ export declare type ClientConfig<TProvider extends providers.BaseProvider = prov
|
|
|
23
23
|
* Custom storage for data persistance
|
|
24
24
|
* @default window.localStorage
|
|
25
25
|
*/
|
|
26
|
-
storage?:
|
|
26
|
+
storage?: ClientStorage;
|
|
27
27
|
/** WebSocket interface for connecting to network */
|
|
28
28
|
webSocketProvider?: ((config: {
|
|
29
29
|
chainId?: number;
|
|
30
30
|
}) => TWebSocketProvider | undefined) | TWebSocketProvider;
|
|
31
31
|
};
|
|
32
|
-
export declare type Data<TProvider extends
|
|
33
|
-
export declare type State<TProvider extends
|
|
32
|
+
export declare type Data<TProvider extends Provider> = ConnectorData<TProvider>;
|
|
33
|
+
export declare type State<TProvider extends Provider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider> = {
|
|
34
34
|
chains?: Connector['chains'];
|
|
35
35
|
connector?: Connector;
|
|
36
36
|
connectors: Connector[];
|
|
@@ -40,10 +40,10 @@ export declare type State<TProvider extends providers.BaseProvider, TWebSocketPr
|
|
|
40
40
|
status: 'connected' | 'connecting' | 'reconnecting' | 'disconnected';
|
|
41
41
|
webSocketProvider?: TWebSocketProvider;
|
|
42
42
|
};
|
|
43
|
-
export declare class Client<TProvider extends
|
|
43
|
+
export declare class Client<TProvider extends Provider = Provider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider> {
|
|
44
44
|
#private;
|
|
45
45
|
config: Partial<ClientConfig<TProvider, TWebSocketProvider>>;
|
|
46
|
-
storage:
|
|
46
|
+
storage: ClientStorage;
|
|
47
47
|
store: Mutate<StoreApi<State<TProvider, TWebSocketProvider>>, [
|
|
48
48
|
[
|
|
49
49
|
'zustand/subscribeWithSelector',
|
|
@@ -76,6 +76,6 @@ export declare class Client<TProvider extends providers.BaseProvider = providers
|
|
|
76
76
|
autoConnect(): Promise<Data<TProvider> | undefined>;
|
|
77
77
|
setLastUsedConnector(lastUsedConnector?: string | null): void;
|
|
78
78
|
}
|
|
79
|
-
export declare let client: Client<
|
|
80
|
-
export declare function createClient<TProvider extends
|
|
81
|
-
export declare function getClient<TProvider extends
|
|
79
|
+
export declare let client: Client<Provider, WebSocketProvider>;
|
|
80
|
+
export declare function createClient<TProvider extends Provider = Provider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider>(config?: ClientConfig<TProvider, TWebSocketProvider>): Client<TProvider, TWebSocketProvider>;
|
|
81
|
+
export declare function getClient<TProvider extends Provider = Provider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider>(): Client<TProvider, TWebSocketProvider>;
|
|
@@ -41,7 +41,7 @@ export declare class InjectedConnector extends Connector<Window['ethereum'], Inj
|
|
|
41
41
|
decimals?: number;
|
|
42
42
|
image?: string;
|
|
43
43
|
symbol: string;
|
|
44
|
-
}): Promise<
|
|
44
|
+
}): Promise<boolean>;
|
|
45
45
|
protected onAccountsChanged: (accounts: string[]) => void;
|
|
46
46
|
protected onChainChanged: (chainId: number | string) => void;
|
|
47
47
|
protected onDisconnect: () => void;
|
|
@@ -2,6 +2,6 @@ export { erc20ABI, erc721ABI } from './abis';
|
|
|
2
2
|
export { etherscanBlockExplorers } from './blockExplorers';
|
|
3
3
|
export type { BlockExplorer, BlockExplorerName } from './blockExplorers';
|
|
4
4
|
export { chain, chainId, allChains, defaultChains, defaultL2Chains, } from './chains';
|
|
5
|
-
export { alchemyRpcUrls, infuraRpcUrls } from './rpcs';
|
|
5
|
+
export { alchemyRpcUrls, defaultAlchemyId, infuraRpcUrls, defaultInfuraId, } from './rpcs';
|
|
6
6
|
export type { RpcProviderName } from './rpcs';
|
|
7
7
|
export { units } from './units';
|
|
@@ -1,3 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error subclass implementing JSON RPC 2.0 errors and Ethereum RPC errors per EIP-1474.
|
|
3
|
+
* @see https://eips.ethereum.org/EIPS/eip-1474
|
|
4
|
+
*/
|
|
5
|
+
export declare class RpcError<T = undefined> extends Error {
|
|
6
|
+
readonly code: number;
|
|
7
|
+
readonly data?: T;
|
|
8
|
+
readonly internal?: unknown;
|
|
9
|
+
constructor(
|
|
10
|
+
/** Number error code */
|
|
11
|
+
code: number,
|
|
12
|
+
/** Human-readable string */
|
|
13
|
+
message: string,
|
|
14
|
+
/** Low-level error */
|
|
15
|
+
internal?: unknown,
|
|
16
|
+
/** Other useful information about error */
|
|
17
|
+
data?: T);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Error subclass implementing Ethereum Provider errors per EIP-1193.
|
|
21
|
+
* @see https://eips.ethereum.org/EIPS/eip-1193
|
|
22
|
+
*/
|
|
23
|
+
export declare class ProviderRpcError<T = undefined> extends RpcError<T> {
|
|
24
|
+
/**
|
|
25
|
+
* Create an Ethereum Provider JSON-RPC error.
|
|
26
|
+
* `code` must be an integer in the 1000 <= 4999 range.
|
|
27
|
+
*/
|
|
28
|
+
constructor(
|
|
29
|
+
/**
|
|
30
|
+
* Number error code
|
|
31
|
+
* @see https://eips.ethereum.org/EIPS/eip-1193#error-standards
|
|
32
|
+
*/
|
|
33
|
+
code: 4001 | 4100 | 4200 | 4900 | 4901 | 4902,
|
|
34
|
+
/** Human-readable string */
|
|
35
|
+
message: string,
|
|
36
|
+
/** Low-level error */
|
|
37
|
+
internal?: unknown,
|
|
38
|
+
/** Other useful information about error */
|
|
39
|
+
data?: T);
|
|
40
|
+
}
|
|
1
41
|
export declare class AddChainError extends Error {
|
|
2
42
|
name: string;
|
|
3
43
|
message: string;
|
|
@@ -14,15 +54,19 @@ export declare class ConnectorNotFoundError extends Error {
|
|
|
14
54
|
name: string;
|
|
15
55
|
message: string;
|
|
16
56
|
}
|
|
17
|
-
export declare class SwitchChainError extends
|
|
57
|
+
export declare class SwitchChainError extends ProviderRpcError {
|
|
18
58
|
name: string;
|
|
19
|
-
|
|
59
|
+
constructor(error: unknown);
|
|
20
60
|
}
|
|
21
61
|
export declare class SwitchChainNotSupportedError extends Error {
|
|
22
62
|
name: string;
|
|
23
63
|
message: string;
|
|
24
64
|
}
|
|
25
|
-
export declare class UserRejectedRequestError extends
|
|
65
|
+
export declare class UserRejectedRequestError extends ProviderRpcError {
|
|
26
66
|
name: string;
|
|
27
|
-
|
|
67
|
+
constructor(error: unknown);
|
|
68
|
+
}
|
|
69
|
+
export declare class ResourceUnavailableError extends RpcError {
|
|
70
|
+
name: string;
|
|
71
|
+
constructor(error: unknown);
|
|
28
72
|
}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
export { connect, disconnect, fetchBalance, fetchBlockNumber, fetchEnsAddress, fetchEnsAvatar, fetchEnsName, fetchEnsResolver, fetchFeeData, fetchSigner, fetchToken, getAccount, getContract, getNetwork, getProvider, getWebSocketProvider, readContract, sendTransaction, signMessage, signTypedData, switchNetwork, waitForTransaction, watchAccount, watchBlockNumber, watchContractEvent, watchNetwork, watchProvider, watchReadContract, watchSigner, watchWebSocketProvider, writeContract, } from './actions';
|
|
2
2
|
export type { ConnectArgs, ConnectResult, FetchBalanceArgs, FetchBalanceResult, FetchBlockNumberArgs, FetchBlockNumberResult, FetchEnsAddressArgs, FetchEnsAddressResult, FetchEnsAvatarArgs, FetchEnsAvatarResult, FetchEnsNameArgs, FetchEnsNameResult, FetchEnsResolverArgs, FetchEnsResolverResult, FetchFeeDataArgs, FetchFeeDataResult, FetchSignerResult, FetchTokenArgs, FetchTokenResult, GetAccountResult, GetContractArgs, GetNetworkResult, GetProviderArgs, GetProviderResult, GetWebSocketProviderArgs, GetWebSocketProviderResult, ReadContractArgs, ReadContractConfig, ReadContractResult, SendTransactionArgs, SendTransactionResult, SignMessageArgs, SignMessageResult, SignTypedDataArgs, SignTypedDataResult, SwitchNetworkArgs, SwitchNetworkResult, WaitForTransactionArgs, WaitForTransactionResult, WatchAccountCallback, WatchBlockNumberArgs, WatchBlockNumberCallback, WatchNetworkCallback, WatchReadContractArgs, WatchReadContractConfig, WatchReadContractResult, WatchSignerCallback, WriteContractArgs, WriteContractConfig, WriteContractResult, } from './actions';
|
|
3
|
-
export {
|
|
4
|
-
export type {
|
|
3
|
+
export { configureChains } from './chains';
|
|
4
|
+
export type { ConfigureChainsConfig } from './chains';
|
|
5
|
+
export { createClient, Client } from './client';
|
|
6
|
+
export type { ClientConfig } from './client';
|
|
5
7
|
export { Connector, InjectedConnector } from './connectors';
|
|
6
8
|
export type { ConnectorData, ConnectorEvents } from './connectors';
|
|
7
9
|
export { alchemyRpcUrls, allChains, chain, chainId, defaultChains, defaultL2Chains, erc20ABI, erc721ABI, etherscanBlockExplorers, infuraRpcUrls, units, } from './constants';
|
|
8
|
-
export { AddChainError, ChainNotConfiguredError, ConnectorAlreadyConnectedError, ConnectorNotFoundError, SwitchChainError, SwitchChainNotSupportedError, UserRejectedRequestError, } from './errors';
|
|
9
|
-
export { createStorage,
|
|
10
|
-
export type {
|
|
11
|
-
export type { Chain, Unit } from './types';
|
|
10
|
+
export { AddChainError, ChainNotConfiguredError, ConnectorAlreadyConnectedError, ConnectorNotFoundError, ProviderRpcError, ResourceUnavailableError, RpcError, SwitchChainError, SwitchChainNotSupportedError, UserRejectedRequestError, } from './errors';
|
|
11
|
+
export { createStorage, noopStorage } from './storage';
|
|
12
|
+
export type { ClientStorage as Storage } from './storage';
|
|
13
|
+
export type { Chain, ChainProvider, FallbackProviderConfig, ProviderWithFallbackConfig, Provider, Unit, WebSocketProvider, } from './types';
|
|
12
14
|
export { normalizeChainId } from './utils';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { providers } from 'ethers';
|
|
2
|
+
import { ChainProvider, FallbackProviderConfig } from '../types';
|
|
3
|
+
export declare type AlchemyProviderConfig = FallbackProviderConfig & {
|
|
4
|
+
alchemyId?: string;
|
|
5
|
+
pollingInterval?: number;
|
|
6
|
+
};
|
|
7
|
+
export declare function alchemyProvider({ alchemyId, pollingInterval, priority, stallTimeout, weight, }?: AlchemyProviderConfig): ChainProvider<providers.AlchemyProvider, providers.AlchemyWebSocketProvider>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { providers } from 'ethers';
|
|
2
|
+
import { ChainProvider, FallbackProviderConfig } from '../types';
|
|
3
|
+
export declare type InfuraProviderConfig = FallbackProviderConfig & {
|
|
4
|
+
infuraId?: string;
|
|
5
|
+
pollingInterval?: number;
|
|
6
|
+
};
|
|
7
|
+
export declare function infuraProvider({ infuraId, pollingInterval, priority, stallTimeout, weight, }?: InfuraProviderConfig): ChainProvider<providers.InfuraProvider, providers.InfuraWebSocketProvider>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { providers } from 'ethers';
|
|
2
|
+
import { Chain, ChainProvider, FallbackProviderConfig } from '../types';
|
|
3
|
+
export declare type JsonRpcProviderConfig = FallbackProviderConfig & {
|
|
4
|
+
pollingInterval?: number;
|
|
5
|
+
rpc: (chain: Chain) => {
|
|
6
|
+
http: string;
|
|
7
|
+
webSocket?: string;
|
|
8
|
+
} | null;
|
|
9
|
+
static?: boolean;
|
|
10
|
+
};
|
|
11
|
+
export declare function jsonRpcProvider({ pollingInterval, priority, rpc, stallTimeout, static: static_, weight, }: JsonRpcProviderConfig): ChainProvider<providers.JsonRpcProvider, providers.WebSocketProvider>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { providers } from 'ethers';
|
|
2
|
+
import { ChainProvider, FallbackProviderConfig } from '../types';
|
|
3
|
+
export declare type PublicProviderConfig = FallbackProviderConfig & {
|
|
4
|
+
pollingInterval?: number;
|
|
5
|
+
};
|
|
6
|
+
export declare function publicProvider({ pollingInterval, priority, stallTimeout, weight, }?: PublicProviderConfig): ChainProvider<providers.StaticJsonRpcProvider>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
declare type BaseStorage = Pick<Storage, 'getItem' | 'setItem' | 'removeItem'>;
|
|
2
|
-
export declare type
|
|
2
|
+
export declare type ClientStorage = {
|
|
3
3
|
getItem: <T>(key: string, defaultState?: T | null) => T | null;
|
|
4
4
|
setItem: <T>(key: string, value: T | null) => void;
|
|
5
5
|
removeItem: (key: string) => void;
|
|
@@ -8,5 +8,5 @@ export declare const noopStorage: BaseStorage;
|
|
|
8
8
|
export declare function createStorage({ storage, key: prefix, }: {
|
|
9
9
|
storage: BaseStorage;
|
|
10
10
|
key?: string;
|
|
11
|
-
}):
|
|
11
|
+
}): ClientStorage;
|
|
12
12
|
export {};
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { providers } from 'ethers';
|
|
1
2
|
import { BlockExplorer, BlockExplorerName, RpcProviderName, units } from '../constants';
|
|
2
3
|
export declare type Chain = {
|
|
3
4
|
id: number;
|
|
4
5
|
name: AddEthereumChainParameter['chainName'];
|
|
6
|
+
network: string;
|
|
5
7
|
nativeCurrency?: AddEthereumChainParameter['nativeCurrency'];
|
|
6
8
|
rpcUrls: {
|
|
7
9
|
[key in RpcProviderName]?: string;
|
|
@@ -17,56 +19,54 @@ export declare type Chain = {
|
|
|
17
19
|
};
|
|
18
20
|
testnet?: boolean;
|
|
19
21
|
};
|
|
22
|
+
export declare type ChainProvider<TProvider extends Provider = Provider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider> = (chain: Chain) => {
|
|
23
|
+
chain: Chain;
|
|
24
|
+
provider: () => ProviderWithFallbackConfig<TProvider>;
|
|
25
|
+
webSocketProvider?: () => TWebSocketProvider;
|
|
26
|
+
} | null;
|
|
27
|
+
export declare type FallbackProviderConfig = Omit<providers.FallbackProviderConfig, 'provider'>;
|
|
28
|
+
export declare type ProviderWithFallbackConfig<TProvider extends Provider = Provider> = TProvider & FallbackProviderConfig;
|
|
29
|
+
export declare type Provider = providers.BaseProvider;
|
|
30
|
+
export declare type WebSocketProvider = providers.WebSocketProvider;
|
|
20
31
|
export declare type Unit = typeof units[number];
|
|
21
32
|
declare global {
|
|
22
33
|
type AddEthereumChainParameter = {
|
|
34
|
+
/** A 0x-prefixed hexadecimal string */
|
|
23
35
|
chainId: string;
|
|
24
36
|
chainName: string;
|
|
25
37
|
nativeCurrency?: {
|
|
26
38
|
name: string;
|
|
39
|
+
/** 2-6 characters long */
|
|
27
40
|
symbol: string;
|
|
28
41
|
decimals: number;
|
|
29
42
|
};
|
|
30
43
|
rpcUrls: string[];
|
|
31
44
|
blockExplorerUrls?: string[];
|
|
45
|
+
/** Currently ignored. */
|
|
32
46
|
iconUrls?: string[];
|
|
33
47
|
};
|
|
34
48
|
type WatchAssetParams = {
|
|
49
|
+
/** In the future, other standards will be supported */
|
|
35
50
|
type: 'ERC20';
|
|
36
51
|
options: {
|
|
52
|
+
/** Address of token contract */
|
|
37
53
|
address: string;
|
|
54
|
+
/** Number of token decimals */
|
|
38
55
|
decimals: number;
|
|
56
|
+
/** String url of token logo */
|
|
39
57
|
image?: string;
|
|
58
|
+
/** A ticker symbol or shorthand, up to 5 characters */
|
|
40
59
|
symbol: string;
|
|
41
60
|
};
|
|
42
61
|
};
|
|
43
|
-
type RequestArguments = {
|
|
44
|
-
method: 'eth_accounts';
|
|
45
|
-
} | {
|
|
46
|
-
method: 'eth_chainId';
|
|
47
|
-
} | {
|
|
48
|
-
method: 'eth_requestAccounts';
|
|
49
|
-
} | {
|
|
50
|
-
method: 'personal_sign';
|
|
51
|
-
params: [string, string];
|
|
52
|
-
} | {
|
|
53
|
-
method: 'wallet_addEthereumChain';
|
|
54
|
-
params: AddEthereumChainParameter[];
|
|
55
|
-
} | {
|
|
56
|
-
method: 'wallet_switchEthereumChain';
|
|
57
|
-
params: [{
|
|
58
|
-
chainId: string;
|
|
59
|
-
}];
|
|
60
|
-
} | {
|
|
61
|
-
method: 'wallet_watchAsset';
|
|
62
|
-
params: WatchAssetParams;
|
|
63
|
-
};
|
|
64
62
|
type InjectedProviderFlags = {
|
|
65
63
|
isBraveWallet?: true;
|
|
66
64
|
isCoinbaseWallet?: true;
|
|
67
65
|
isFrame?: true;
|
|
68
66
|
isMetaMask?: true;
|
|
67
|
+
isOpera?: true;
|
|
69
68
|
isTally?: true;
|
|
69
|
+
isTokenary?: true;
|
|
70
70
|
isTrust?: true;
|
|
71
71
|
};
|
|
72
72
|
type InjectedProviders = InjectedProviderFlags & {
|
|
@@ -87,15 +87,55 @@ declare global {
|
|
|
87
87
|
interface Ethereum extends InjectedProviders {
|
|
88
88
|
on?: (...args: any[]) => void;
|
|
89
89
|
removeListener?: (...args: any[]) => void;
|
|
90
|
-
request<T = any>(args: RequestArguments): Promise<T>;
|
|
91
90
|
providers?: Ethereum[];
|
|
91
|
+
/**
|
|
92
|
+
* EIP-747: Add wallet_watchAsset to Provider
|
|
93
|
+
* https://eips.ethereum.org/EIPS/eip-747
|
|
94
|
+
*/
|
|
95
|
+
request(args: {
|
|
96
|
+
method: 'wallet_watchAsset';
|
|
97
|
+
params: WatchAssetParams;
|
|
98
|
+
}): Promise<boolean>;
|
|
99
|
+
/**
|
|
100
|
+
* EIP-1193: Ethereum Provider JavaScript API
|
|
101
|
+
* https://eips.ethereum.org/EIPS/eip-1193
|
|
102
|
+
*/
|
|
103
|
+
request(args: {
|
|
104
|
+
method: 'eth_accounts';
|
|
105
|
+
}): Promise<string[]>;
|
|
106
|
+
request(args: {
|
|
107
|
+
method: 'eth_chainId';
|
|
108
|
+
}): Promise<string>;
|
|
109
|
+
request(args: {
|
|
110
|
+
method: 'eth_requestAccounts';
|
|
111
|
+
}): Promise<string[]>;
|
|
112
|
+
/**
|
|
113
|
+
* EIP-1474: Remote procedure call specification
|
|
114
|
+
* https://eips.ethereum.org/EIPS/eip-1474
|
|
115
|
+
*/
|
|
116
|
+
request(args: {
|
|
117
|
+
method: 'web3_clientVersion';
|
|
118
|
+
}): Promise<string>;
|
|
119
|
+
/**
|
|
120
|
+
* EIP-3085: Wallet Add Ethereum Chain RPC Method
|
|
121
|
+
* https://eips.ethereum.org/EIPS/eip-3085
|
|
122
|
+
*/
|
|
123
|
+
request(args: {
|
|
124
|
+
method: 'wallet_addEthereumChain';
|
|
125
|
+
params: AddEthereumChainParameter[];
|
|
126
|
+
}): Promise<null>;
|
|
127
|
+
/**
|
|
128
|
+
* EIP-3326: Wallet Switch Ethereum Chain RPC Method
|
|
129
|
+
* https://eips.ethereum.org/EIPS/eip-3326
|
|
130
|
+
*/
|
|
131
|
+
request(args: {
|
|
132
|
+
method: 'wallet_switchEthereumChain';
|
|
133
|
+
params: [{
|
|
134
|
+
chainId: string;
|
|
135
|
+
}];
|
|
136
|
+
}): Promise<null>;
|
|
92
137
|
}
|
|
93
138
|
interface Window {
|
|
94
139
|
ethereum?: Ethereum;
|
|
95
140
|
}
|
|
96
|
-
interface ProviderRpcError extends Error {
|
|
97
|
-
code: 4001 | 4902;
|
|
98
|
-
data?: unknown;
|
|
99
|
-
message: string;
|
|
100
|
-
}
|
|
101
141
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
const defaultAlchemyId = '_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC';
|
|
2
|
+
const defaultInfuraId = '84842078b09946638c03157f83405213';
|
|
3
|
+
const alchemyRpcUrls = {
|
|
4
|
+
mainnet: 'https://eth-mainnet.alchemyapi.io/v2',
|
|
5
|
+
ropsten: 'https://eth-ropsten.alchemyapi.io/v2',
|
|
6
|
+
rinkeby: 'https://eth-rinkeby.alchemyapi.io/v2',
|
|
7
|
+
goerli: 'https://eth-goerli.alchemyapi.io/v2',
|
|
8
|
+
kovan: 'https://eth-kovan.alchemyapi.io/v2',
|
|
9
|
+
optimism: 'https://opt-mainnet.g.alchemy.com/v2',
|
|
10
|
+
optimismKovan: 'https://opt-kovan.g.alchemy.com/v2',
|
|
11
|
+
polygon: 'https://polygon-mainnet.g.alchemy.com/v2',
|
|
12
|
+
polygonMumbai: 'https://polygon-mumbai.g.alchemy.com/v2',
|
|
13
|
+
arbitrum: 'https://arb-mainnet.g.alchemy.com/v2',
|
|
14
|
+
arbitrumRinkeby: 'https://arb-rinkeby.g.alchemy.com/v2'
|
|
15
|
+
};
|
|
16
|
+
const infuraRpcUrls = {
|
|
17
|
+
mainnet: 'https://mainnet.infura.io/v3',
|
|
18
|
+
ropsten: 'https://ropsten.infura.io/v3',
|
|
19
|
+
rinkeby: 'https://rinkeby.infura.io/v3',
|
|
20
|
+
goerli: 'https://goerli.infura.io/v3',
|
|
21
|
+
kovan: 'https://kovan.infura.io/v3',
|
|
22
|
+
optimism: 'https://optimism-mainnet.infura.io/v3',
|
|
23
|
+
optimismKovan: 'https://optimism-kovan.infura.io/v3',
|
|
24
|
+
polygon: 'https://polygon-mainnet.infura.io/v3',
|
|
25
|
+
polygonMumbai: 'https://polygon-mumbai.infura.io/v3',
|
|
26
|
+
arbitrum: 'https://arbitrum-mainnet.infura.io/v3',
|
|
27
|
+
arbitrumRinkeby: 'https://arbitrum-rinkeby.infura.io/v3'
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export { alchemyRpcUrls as a, defaultInfuraId as b, defaultAlchemyId as d, infuraRpcUrls as i };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const defaultAlchemyId = '_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC';
|
|
4
|
+
const defaultInfuraId = '84842078b09946638c03157f83405213';
|
|
5
|
+
const alchemyRpcUrls = {
|
|
6
|
+
mainnet: 'https://eth-mainnet.alchemyapi.io/v2',
|
|
7
|
+
ropsten: 'https://eth-ropsten.alchemyapi.io/v2',
|
|
8
|
+
rinkeby: 'https://eth-rinkeby.alchemyapi.io/v2',
|
|
9
|
+
goerli: 'https://eth-goerli.alchemyapi.io/v2',
|
|
10
|
+
kovan: 'https://eth-kovan.alchemyapi.io/v2',
|
|
11
|
+
optimism: 'https://opt-mainnet.g.alchemy.com/v2',
|
|
12
|
+
optimismKovan: 'https://opt-kovan.g.alchemy.com/v2',
|
|
13
|
+
polygon: 'https://polygon-mainnet.g.alchemy.com/v2',
|
|
14
|
+
polygonMumbai: 'https://polygon-mumbai.g.alchemy.com/v2',
|
|
15
|
+
arbitrum: 'https://arb-mainnet.g.alchemy.com/v2',
|
|
16
|
+
arbitrumRinkeby: 'https://arb-rinkeby.g.alchemy.com/v2'
|
|
17
|
+
};
|
|
18
|
+
const infuraRpcUrls = {
|
|
19
|
+
mainnet: 'https://mainnet.infura.io/v3',
|
|
20
|
+
ropsten: 'https://ropsten.infura.io/v3',
|
|
21
|
+
rinkeby: 'https://rinkeby.infura.io/v3',
|
|
22
|
+
goerli: 'https://goerli.infura.io/v3',
|
|
23
|
+
kovan: 'https://kovan.infura.io/v3',
|
|
24
|
+
optimism: 'https://optimism-mainnet.infura.io/v3',
|
|
25
|
+
optimismKovan: 'https://optimism-kovan.infura.io/v3',
|
|
26
|
+
polygon: 'https://polygon-mainnet.infura.io/v3',
|
|
27
|
+
polygonMumbai: 'https://polygon-mumbai.infura.io/v3',
|
|
28
|
+
arbitrum: 'https://arbitrum-mainnet.infura.io/v3',
|
|
29
|
+
arbitrumRinkeby: 'https://arbitrum-rinkeby.infura.io/v3'
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
exports.alchemyRpcUrls = alchemyRpcUrls;
|
|
33
|
+
exports.defaultAlchemyId = defaultAlchemyId;
|
|
34
|
+
exports.defaultInfuraId = defaultInfuraId;
|
|
35
|
+
exports.infuraRpcUrls = infuraRpcUrls;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const defaultAlchemyId = '_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC';
|
|
4
|
+
const defaultInfuraId = '84842078b09946638c03157f83405213';
|
|
5
|
+
const alchemyRpcUrls = {
|
|
6
|
+
mainnet: 'https://eth-mainnet.alchemyapi.io/v2',
|
|
7
|
+
ropsten: 'https://eth-ropsten.alchemyapi.io/v2',
|
|
8
|
+
rinkeby: 'https://eth-rinkeby.alchemyapi.io/v2',
|
|
9
|
+
goerli: 'https://eth-goerli.alchemyapi.io/v2',
|
|
10
|
+
kovan: 'https://eth-kovan.alchemyapi.io/v2',
|
|
11
|
+
optimism: 'https://opt-mainnet.g.alchemy.com/v2',
|
|
12
|
+
optimismKovan: 'https://opt-kovan.g.alchemy.com/v2',
|
|
13
|
+
polygon: 'https://polygon-mainnet.g.alchemy.com/v2',
|
|
14
|
+
polygonMumbai: 'https://polygon-mumbai.g.alchemy.com/v2',
|
|
15
|
+
arbitrum: 'https://arb-mainnet.g.alchemy.com/v2',
|
|
16
|
+
arbitrumRinkeby: 'https://arb-rinkeby.g.alchemy.com/v2'
|
|
17
|
+
};
|
|
18
|
+
const infuraRpcUrls = {
|
|
19
|
+
mainnet: 'https://mainnet.infura.io/v3',
|
|
20
|
+
ropsten: 'https://ropsten.infura.io/v3',
|
|
21
|
+
rinkeby: 'https://rinkeby.infura.io/v3',
|
|
22
|
+
goerli: 'https://goerli.infura.io/v3',
|
|
23
|
+
kovan: 'https://kovan.infura.io/v3',
|
|
24
|
+
optimism: 'https://optimism-mainnet.infura.io/v3',
|
|
25
|
+
optimismKovan: 'https://optimism-kovan.infura.io/v3',
|
|
26
|
+
polygon: 'https://polygon-mainnet.infura.io/v3',
|
|
27
|
+
polygonMumbai: 'https://polygon-mumbai.infura.io/v3',
|
|
28
|
+
arbitrum: 'https://arbitrum-mainnet.infura.io/v3',
|
|
29
|
+
arbitrumRinkeby: 'https://arbitrum-rinkeby.infura.io/v3'
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
exports.alchemyRpcUrls = alchemyRpcUrls;
|
|
33
|
+
exports.defaultAlchemyId = defaultAlchemyId;
|
|
34
|
+
exports.defaultInfuraId = defaultInfuraId;
|
|
35
|
+
exports.infuraRpcUrls = infuraRpcUrls;
|