@wagmi/core 0.6.12 → 0.7.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/chains/package.json +2 -2
- package/connectors/coinbaseWallet/package.json +2 -2
- package/connectors/metaMask/package.json +2 -2
- package/connectors/mock/package.json +2 -2
- package/connectors/walletConnect/package.json +2 -2
- package/dist/{declarations/src/connectors/base.d.ts → base-5bd9b5ed.d.ts} +8 -5
- package/dist/chains.d.ts +3 -0
- package/dist/chains.js +29 -0
- package/dist/chunk-2EDVJWOA.js +3496 -0
- package/dist/chunk-4DNFSL2K.js +376 -0
- package/dist/chunk-MQXBDTVK.js +29 -0
- package/dist/{declarations/src/connectors → connectors}/coinbaseWallet.d.ts +10 -6
- package/dist/connectors/coinbaseWallet.js +215 -0
- package/dist/{declarations/src/connectors → connectors}/metaMask.d.ts +11 -4
- package/dist/connectors/metaMask.js +115 -0
- package/dist/connectors/mock/index.d.ts +78 -0
- package/dist/connectors/mock/index.js +190 -0
- package/dist/{declarations/src/connectors → connectors}/walletConnect.d.ts +9 -5
- package/dist/connectors/walletConnect.js +160 -0
- package/dist/{declarations/src/types/contracts.d.ts → contracts-fb6a6ff0.d.ts} +122 -17
- package/dist/{declarations/src/types/index.d.ts → index-bacc1c49.d.ts} +83 -15
- package/dist/index.d.ts +1738 -0
- package/dist/index.js +165 -0
- package/dist/{declarations/src/connectors/injected.d.ts → injected-6980e5c3.d.ts} +9 -6
- package/dist/internal.d.ts +8 -0
- package/dist/internal.js +8 -0
- package/dist/providers/alchemy.d.ts +11 -0
- package/dist/providers/alchemy.js +32 -0
- package/dist/providers/infura.d.ts +11 -0
- package/dist/providers/infura.js +32 -0
- package/dist/providers/jsonRpc.d.ts +14 -0
- package/dist/providers/jsonRpc.js +44 -0
- package/dist/providers/public.d.ts +8 -0
- package/dist/providers/public.js +30 -0
- package/internal/package.json +2 -2
- package/package.json +40 -51
- package/providers/alchemy/package.json +2 -2
- package/providers/infura/package.json +2 -2
- package/providers/jsonRpc/package.json +2 -2
- package/providers/public/package.json +2 -2
- package/chains/dist/wagmi-core-chains.cjs.d.ts +0 -1
- package/chains/dist/wagmi-core-chains.cjs.dev.js +0 -26
- package/chains/dist/wagmi-core-chains.cjs.js +0 -7
- package/chains/dist/wagmi-core-chains.cjs.prod.js +0 -26
- package/chains/dist/wagmi-core-chains.esm.js +0 -2
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.d.ts +0 -1
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +0 -274
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.js +0 -7
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +0 -274
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +0 -252
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.d.ts +0 -1
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.dev.js +0 -153
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.js +0 -7
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.prod.js +0 -153
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.esm.js +0 -149
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.d.ts +0 -1
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +0 -262
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.js +0 -7
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +0 -262
- package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +0 -253
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.d.ts +0 -1
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +0 -228
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.js +0 -7
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +0 -228
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +0 -206
- package/dist/chains-73cc6c23.cjs.prod.js +0 -526
- package/dist/chains-8fce19d8.esm.js +0 -502
- package/dist/chains-fe1f4131.cjs.dev.js +0 -526
- package/dist/debounce-0862bf88.esm.js +0 -18
- package/dist/debounce-2d836dc9.cjs.prod.js +0 -20
- package/dist/debounce-46ac0312.cjs.dev.js +0 -20
- package/dist/declarations/src/actions/accounts/connect.d.ts +0 -18
- package/dist/declarations/src/actions/accounts/disconnect.d.ts +0 -1
- package/dist/declarations/src/actions/accounts/fetchBalance.d.ts +0 -19
- package/dist/declarations/src/actions/accounts/fetchSigner.d.ts +0 -7
- package/dist/declarations/src/actions/accounts/getAccount.d.ts +0 -36
- package/dist/declarations/src/actions/accounts/getNetwork.d.ts +0 -8
- package/dist/declarations/src/actions/accounts/index.d.ts +0 -12
- package/dist/declarations/src/actions/accounts/signMessage.d.ts +0 -7
- package/dist/declarations/src/actions/accounts/signTypedData.d.ts +0 -23
- package/dist/declarations/src/actions/accounts/switchNetwork.d.ts +0 -6
- package/dist/declarations/src/actions/accounts/watchAccount.d.ts +0 -12
- package/dist/declarations/src/actions/accounts/watchNetwork.d.ts +0 -10
- package/dist/declarations/src/actions/accounts/watchSigner.d.ts +0 -5
- package/dist/declarations/src/actions/contracts/fetchToken.d.ts +0 -21
- package/dist/declarations/src/actions/contracts/getContract.d.ts +0 -113
- package/dist/declarations/src/actions/contracts/index.d.ts +0 -11
- package/dist/declarations/src/actions/contracts/multicall.d.ts +0 -17
- package/dist/declarations/src/actions/contracts/prepareWriteContract.d.ts +0 -47
- package/dist/declarations/src/actions/contracts/readContract.d.ts +0 -15
- package/dist/declarations/src/actions/contracts/readContracts.d.ts +0 -28
- package/dist/declarations/src/actions/contracts/watchContractEvent.d.ts +0 -28
- package/dist/declarations/src/actions/contracts/watchMulticall.d.ts +0 -10
- package/dist/declarations/src/actions/contracts/watchReadContract.d.ts +0 -7
- package/dist/declarations/src/actions/contracts/watchReadContracts.d.ts +0 -10
- package/dist/declarations/src/actions/contracts/writeContract.d.ts +0 -72
- package/dist/declarations/src/actions/ens/fetchEnsAddress.d.ts +0 -9
- package/dist/declarations/src/actions/ens/fetchEnsAvatar.d.ts +0 -8
- package/dist/declarations/src/actions/ens/fetchEnsName.d.ts +0 -9
- package/dist/declarations/src/actions/ens/fetchEnsResolver.d.ts +0 -9
- package/dist/declarations/src/actions/ens/index.d.ts +0 -4
- package/dist/declarations/src/actions/index.d.ts +0 -6
- package/dist/declarations/src/actions/network-status/fetchBlockNumber.d.ts +0 -5
- package/dist/declarations/src/actions/network-status/fetchFeeData.d.ts +0 -16
- package/dist/declarations/src/actions/network-status/index.d.ts +0 -3
- package/dist/declarations/src/actions/network-status/watchBlockNumber.d.ts +0 -7
- package/dist/declarations/src/actions/providers/getProvider.d.ts +0 -7
- package/dist/declarations/src/actions/providers/getWebSocketProvider.d.ts +0 -7
- package/dist/declarations/src/actions/providers/index.d.ts +0 -4
- package/dist/declarations/src/actions/providers/watchProvider.d.ts +0 -4
- package/dist/declarations/src/actions/providers/watchWebSocketProvider.d.ts +0 -4
- package/dist/declarations/src/actions/transactions/fetchTransaction.d.ts +0 -21
- package/dist/declarations/src/actions/transactions/index.d.ts +0 -4
- package/dist/declarations/src/actions/transactions/prepareSendTransaction.d.ts +0 -37
- package/dist/declarations/src/actions/transactions/sendTransaction.d.ts +0 -48
- package/dist/declarations/src/actions/transactions/waitForTransaction.d.ts +0 -18
- package/dist/declarations/src/chains.d.ts +0 -1
- package/dist/declarations/src/client.d.ts +0 -91
- package/dist/declarations/src/connectors/index.d.ts +0 -2
- package/dist/declarations/src/connectors/mock/connector.d.ts +0 -34
- package/dist/declarations/src/connectors/mock/index.d.ts +0 -2
- package/dist/declarations/src/connectors/mock/provider.d.ts +0 -41
- package/dist/declarations/src/constants/abis.d.ts +0 -941
- package/dist/declarations/src/constants/blockExplorers.d.ts +0 -9
- package/dist/declarations/src/constants/chains.d.ts +0 -64
- package/dist/declarations/src/constants/index.d.ts +0 -7
- package/dist/declarations/src/constants/rpcs.d.ts +0 -11
- package/dist/declarations/src/constants/units.d.ts +0 -1
- package/dist/declarations/src/errors.d.ts +0 -134
- package/dist/declarations/src/index.d.ts +0 -14
- package/dist/declarations/src/internal.d.ts +0 -3
- package/dist/declarations/src/providers/alchemy.d.ts +0 -6
- package/dist/declarations/src/providers/infura.d.ts +0 -6
- package/dist/declarations/src/providers/jsonRpc.d.ts +0 -10
- package/dist/declarations/src/providers/public.d.ts +0 -4
- package/dist/declarations/src/storage.d.ts +0 -12
- package/dist/declarations/src/types/utils.d.ts +0 -103
- package/dist/declarations/src/utils/assertActiveChain.d.ts +0 -5
- package/dist/declarations/src/utils/configureChains.d.ts +0 -26
- package/dist/declarations/src/utils/debounce.d.ts +0 -1
- package/dist/declarations/src/utils/deepEqual.d.ts +0 -2
- package/dist/declarations/src/utils/getInjectedName.d.ts +0 -2
- package/dist/declarations/src/utils/index.d.ts +0 -11
- package/dist/declarations/src/utils/logger.d.ts +0 -1
- package/dist/declarations/src/utils/minimizeContractInterface.d.ts +0 -5
- package/dist/declarations/src/utils/normalizeChainId.d.ts +0 -1
- package/dist/declarations/src/utils/normalizeFunctionName.d.ts +0 -17
- package/dist/declarations/src/utils/parseContractResult.d.ts +0 -7
- package/dist/getProvider-3b1af4e6.cjs.dev.js +0 -1143
- package/dist/getProvider-84f303a1.cjs.prod.js +0 -1143
- package/dist/getProvider-97db849e.esm.js +0 -1105
- package/dist/rpcs-38f4faba.cjs.prod.js +0 -57
- package/dist/rpcs-52ea3d8d.cjs.dev.js +0 -57
- package/dist/rpcs-d533516e.esm.js +0 -51
- package/dist/wagmi-core.cjs.d.ts +0 -1
- package/dist/wagmi-core.cjs.dev.js +0 -2683
- package/dist/wagmi-core.cjs.js +0 -7
- package/dist/wagmi-core.cjs.prod.js +0 -2683
- package/dist/wagmi-core.esm.js +0 -2599
- package/internal/dist/wagmi-core-internal.cjs.d.ts +0 -1
- package/internal/dist/wagmi-core-internal.cjs.dev.js +0 -9
- package/internal/dist/wagmi-core-internal.cjs.js +0 -7
- package/internal/dist/wagmi-core-internal.cjs.prod.js +0 -9
- package/internal/dist/wagmi-core-internal.esm.js +0 -1
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.d.ts +0 -1
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.dev.js +0 -36
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.js +0 -7
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.prod.js +0 -36
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.esm.js +0 -32
- package/providers/infura/dist/wagmi-core-providers-infura.cjs.d.ts +0 -1
- package/providers/infura/dist/wagmi-core-providers-infura.cjs.dev.js +0 -36
- package/providers/infura/dist/wagmi-core-providers-infura.cjs.js +0 -7
- package/providers/infura/dist/wagmi-core-providers-infura.cjs.prod.js +0 -36
- package/providers/infura/dist/wagmi-core-providers-infura.esm.js +0 -32
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.d.ts +0 -1
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.dev.js +0 -46
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.js +0 -7
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.prod.js +0 -46
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.esm.js +0 -42
- package/providers/public/dist/wagmi-core-providers-public.cjs.d.ts +0 -1
- package/providers/public/dist/wagmi-core-providers-public.cjs.dev.js +0 -32
- package/providers/public/dist/wagmi-core-providers-public.cjs.js +0 -7
- package/providers/public/dist/wagmi-core-providers-public.cjs.prod.js +0 -32
- package/providers/public/dist/wagmi-core-providers-public.esm.js +0 -28
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ConnectorNotFoundError,
|
|
3
|
+
InjectedConnector,
|
|
4
|
+
ResourceUnavailableError,
|
|
5
|
+
UserRejectedRequestError,
|
|
6
|
+
getClient
|
|
7
|
+
} from "../chunk-2EDVJWOA.js";
|
|
8
|
+
import "../chunk-4DNFSL2K.js";
|
|
9
|
+
import {
|
|
10
|
+
__privateAdd,
|
|
11
|
+
__privateGet,
|
|
12
|
+
__privateMethod,
|
|
13
|
+
__privateSet
|
|
14
|
+
} from "../chunk-MQXBDTVK.js";
|
|
15
|
+
|
|
16
|
+
// src/connectors/metaMask.ts
|
|
17
|
+
var _provider, _UNSTABLE_shimOnConnectSelectAccount, _getReady, getReady_fn, _findProvider, findProvider_fn;
|
|
18
|
+
var MetaMaskConnector = class extends InjectedConnector {
|
|
19
|
+
constructor({
|
|
20
|
+
chains,
|
|
21
|
+
options: options_
|
|
22
|
+
} = {}) {
|
|
23
|
+
const options = {
|
|
24
|
+
name: "MetaMask",
|
|
25
|
+
shimDisconnect: true,
|
|
26
|
+
shimChainChangedDisconnect: true,
|
|
27
|
+
...options_
|
|
28
|
+
};
|
|
29
|
+
super({ chains, options });
|
|
30
|
+
__privateAdd(this, _getReady);
|
|
31
|
+
__privateAdd(this, _findProvider);
|
|
32
|
+
this.id = "metaMask";
|
|
33
|
+
this.ready = typeof window != "undefined" && !!__privateMethod(this, _findProvider, findProvider_fn).call(this, window.ethereum);
|
|
34
|
+
__privateAdd(this, _provider, void 0);
|
|
35
|
+
__privateAdd(this, _UNSTABLE_shimOnConnectSelectAccount, void 0);
|
|
36
|
+
__privateSet(this, _UNSTABLE_shimOnConnectSelectAccount, options.UNSTABLE_shimOnConnectSelectAccount);
|
|
37
|
+
}
|
|
38
|
+
async connect({ chainId } = {}) {
|
|
39
|
+
try {
|
|
40
|
+
const provider = await this.getProvider();
|
|
41
|
+
if (!provider)
|
|
42
|
+
throw new ConnectorNotFoundError();
|
|
43
|
+
if (provider.on) {
|
|
44
|
+
provider.on("accountsChanged", this.onAccountsChanged);
|
|
45
|
+
provider.on("chainChanged", this.onChainChanged);
|
|
46
|
+
provider.on("disconnect", this.onDisconnect);
|
|
47
|
+
}
|
|
48
|
+
this.emit("message", { type: "connecting" });
|
|
49
|
+
if (__privateGet(this, _UNSTABLE_shimOnConnectSelectAccount) && this.options?.shimDisconnect && !getClient().storage?.getItem(this.shimDisconnectKey)) {
|
|
50
|
+
const accounts = await provider.request({
|
|
51
|
+
method: "eth_accounts"
|
|
52
|
+
}).catch(() => []);
|
|
53
|
+
const isConnected = !!accounts[0];
|
|
54
|
+
if (isConnected)
|
|
55
|
+
await provider.request({
|
|
56
|
+
method: "wallet_requestPermissions",
|
|
57
|
+
params: [{ eth_accounts: {} }]
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
const account = await this.getAccount();
|
|
61
|
+
let id = await this.getChainId();
|
|
62
|
+
let unsupported = this.isChainUnsupported(id);
|
|
63
|
+
if (chainId && id !== chainId) {
|
|
64
|
+
const chain = await this.switchChain(chainId);
|
|
65
|
+
id = chain.id;
|
|
66
|
+
unsupported = this.isChainUnsupported(id);
|
|
67
|
+
}
|
|
68
|
+
if (this.options?.shimDisconnect)
|
|
69
|
+
getClient().storage?.setItem(this.shimDisconnectKey, true);
|
|
70
|
+
return { account, chain: { id, unsupported }, provider };
|
|
71
|
+
} catch (error) {
|
|
72
|
+
if (this.isUserRejectedRequestError(error))
|
|
73
|
+
throw new UserRejectedRequestError(error);
|
|
74
|
+
if (error.code === -32002)
|
|
75
|
+
throw new ResourceUnavailableError(error);
|
|
76
|
+
throw error;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
async getProvider() {
|
|
80
|
+
if (typeof window !== "undefined") {
|
|
81
|
+
__privateSet(this, _provider, __privateMethod(this, _findProvider, findProvider_fn).call(this, window.ethereum));
|
|
82
|
+
}
|
|
83
|
+
return __privateGet(this, _provider);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
_provider = new WeakMap();
|
|
87
|
+
_UNSTABLE_shimOnConnectSelectAccount = new WeakMap();
|
|
88
|
+
_getReady = new WeakSet();
|
|
89
|
+
getReady_fn = function(ethereum) {
|
|
90
|
+
const isMetaMask = !!ethereum?.isMetaMask;
|
|
91
|
+
if (!isMetaMask)
|
|
92
|
+
return;
|
|
93
|
+
if (ethereum.isBraveWallet && !ethereum._events && !ethereum._state)
|
|
94
|
+
return;
|
|
95
|
+
if (ethereum.isAvalanche)
|
|
96
|
+
return;
|
|
97
|
+
if (ethereum.isKuCoinWallet)
|
|
98
|
+
return;
|
|
99
|
+
if (ethereum.isPortal)
|
|
100
|
+
return;
|
|
101
|
+
if (ethereum.isTokenPocket)
|
|
102
|
+
return;
|
|
103
|
+
if (ethereum.isTokenary)
|
|
104
|
+
return;
|
|
105
|
+
return ethereum;
|
|
106
|
+
};
|
|
107
|
+
_findProvider = new WeakSet();
|
|
108
|
+
findProvider_fn = function(ethereum) {
|
|
109
|
+
if (ethereum?.providers)
|
|
110
|
+
return ethereum.providers.find(__privateMethod(this, _getReady, getReady_fn));
|
|
111
|
+
return __privateMethod(this, _getReady, getReady_fn).call(this, ethereum);
|
|
112
|
+
};
|
|
113
|
+
export {
|
|
114
|
+
MetaMaskConnector
|
|
115
|
+
};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import * as ethers from 'ethers';
|
|
2
|
+
import { providers } from 'ethers';
|
|
3
|
+
import { S as Signer, C as Chain } from '../../index-bacc1c49.js';
|
|
4
|
+
import { C as Connector, a as ConnectorData } from '../../base-5bd9b5ed.js';
|
|
5
|
+
import EventEmitter from 'eventemitter3';
|
|
6
|
+
import 'abitype';
|
|
7
|
+
|
|
8
|
+
declare type MockProviderOptions = {
|
|
9
|
+
chainId?: number;
|
|
10
|
+
flags?: {
|
|
11
|
+
isAuthorized?: boolean;
|
|
12
|
+
failConnect?: boolean;
|
|
13
|
+
failSwitchChain?: boolean;
|
|
14
|
+
noSwitchChain?: boolean;
|
|
15
|
+
};
|
|
16
|
+
signer: Signer;
|
|
17
|
+
};
|
|
18
|
+
declare type Events = {
|
|
19
|
+
accountsChanged(accounts: string[]): void;
|
|
20
|
+
chainChanged(chainId: number | string): void;
|
|
21
|
+
disconnect(): void;
|
|
22
|
+
};
|
|
23
|
+
declare type Event = keyof Events;
|
|
24
|
+
declare class MockProvider extends providers.BaseProvider {
|
|
25
|
+
#private;
|
|
26
|
+
events: EventEmitter<Events, any>;
|
|
27
|
+
constructor(options: MockProviderOptions);
|
|
28
|
+
enable(): Promise<string[]>;
|
|
29
|
+
disconnect(): Promise<void>;
|
|
30
|
+
getAccounts(): Promise<`0x${string}`[]>;
|
|
31
|
+
getSigner(): ethers.Signer;
|
|
32
|
+
switchChain(chainId: number): Promise<void>;
|
|
33
|
+
watchAsset(_asset: {
|
|
34
|
+
address: string;
|
|
35
|
+
decimals?: number;
|
|
36
|
+
image?: string;
|
|
37
|
+
symbol: string;
|
|
38
|
+
}): Promise<boolean>;
|
|
39
|
+
on(event: Event, listener: providers.Listener): this;
|
|
40
|
+
once(event: Event, listener: providers.Listener): this;
|
|
41
|
+
removeListener(event: Event, listener: providers.Listener): this;
|
|
42
|
+
off(event: Event, listener: providers.Listener): this;
|
|
43
|
+
toJSON(): string;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
declare class MockConnector extends Connector<MockProvider, MockProviderOptions> {
|
|
47
|
+
#private;
|
|
48
|
+
readonly id = "mock";
|
|
49
|
+
readonly name = "Mock";
|
|
50
|
+
readonly ready = true;
|
|
51
|
+
constructor(config: {
|
|
52
|
+
chains?: Chain[];
|
|
53
|
+
options: MockProviderOptions;
|
|
54
|
+
});
|
|
55
|
+
connect({ chainId }?: {
|
|
56
|
+
chainId?: number;
|
|
57
|
+
}): Promise<Required<ConnectorData<any>>>;
|
|
58
|
+
disconnect(): Promise<void>;
|
|
59
|
+
getAccount(): Promise<`0x${string}`>;
|
|
60
|
+
getChainId(): Promise<number>;
|
|
61
|
+
getProvider({ chainId }?: {
|
|
62
|
+
chainId?: number;
|
|
63
|
+
}): Promise<MockProvider>;
|
|
64
|
+
getSigner(): Promise<ethers.Signer>;
|
|
65
|
+
isAuthorized(): Promise<boolean>;
|
|
66
|
+
watchAsset(asset: {
|
|
67
|
+
address: string;
|
|
68
|
+
decimals?: number;
|
|
69
|
+
image?: string;
|
|
70
|
+
symbol: string;
|
|
71
|
+
}): Promise<boolean>;
|
|
72
|
+
protected onAccountsChanged: (accounts: string[]) => void;
|
|
73
|
+
protected onChainChanged: (chainId: number | string) => void;
|
|
74
|
+
protected onDisconnect: () => void;
|
|
75
|
+
toJSON(): string;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export { MockConnector, MockProvider, MockProviderOptions };
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Connector,
|
|
3
|
+
UserRejectedRequestError,
|
|
4
|
+
normalizeChainId
|
|
5
|
+
} from "../../chunk-2EDVJWOA.js";
|
|
6
|
+
import "../../chunk-4DNFSL2K.js";
|
|
7
|
+
import {
|
|
8
|
+
__privateAdd,
|
|
9
|
+
__privateGet,
|
|
10
|
+
__privateMethod,
|
|
11
|
+
__privateSet
|
|
12
|
+
} from "../../chunk-MQXBDTVK.js";
|
|
13
|
+
|
|
14
|
+
// src/connectors/mock/connector.ts
|
|
15
|
+
import { getAddress as getAddress2 } from "ethers/lib/utils.js";
|
|
16
|
+
|
|
17
|
+
// src/connectors/mock/provider.ts
|
|
18
|
+
import { providers } from "ethers";
|
|
19
|
+
import { getAddress } from "ethers/lib/utils.js";
|
|
20
|
+
import { default as EventEmitter } from "eventemitter3";
|
|
21
|
+
var _options, _signer;
|
|
22
|
+
var MockProvider = class extends providers.BaseProvider {
|
|
23
|
+
constructor(options) {
|
|
24
|
+
super({ name: "Network", chainId: options.chainId ?? 1 });
|
|
25
|
+
this.events = new EventEmitter();
|
|
26
|
+
__privateAdd(this, _options, void 0);
|
|
27
|
+
__privateAdd(this, _signer, void 0);
|
|
28
|
+
__privateSet(this, _options, options);
|
|
29
|
+
}
|
|
30
|
+
async enable() {
|
|
31
|
+
if (__privateGet(this, _options).flags?.failConnect)
|
|
32
|
+
throw new UserRejectedRequestError(new Error("Failed to connect"));
|
|
33
|
+
if (!__privateGet(this, _signer))
|
|
34
|
+
__privateSet(this, _signer, __privateGet(this, _options).signer);
|
|
35
|
+
const address = await __privateGet(this, _signer).getAddress();
|
|
36
|
+
this.events.emit("accountsChanged", [address]);
|
|
37
|
+
return [address];
|
|
38
|
+
}
|
|
39
|
+
async disconnect() {
|
|
40
|
+
this.events.emit("disconnect");
|
|
41
|
+
__privateSet(this, _signer, void 0);
|
|
42
|
+
}
|
|
43
|
+
async getAccounts() {
|
|
44
|
+
const address = await __privateGet(this, _signer)?.getAddress();
|
|
45
|
+
if (!address)
|
|
46
|
+
return [];
|
|
47
|
+
return [getAddress(address)];
|
|
48
|
+
}
|
|
49
|
+
getSigner() {
|
|
50
|
+
const signer = __privateGet(this, _signer);
|
|
51
|
+
if (!signer)
|
|
52
|
+
throw new Error("Signer not found");
|
|
53
|
+
return signer;
|
|
54
|
+
}
|
|
55
|
+
async switchChain(chainId) {
|
|
56
|
+
if (__privateGet(this, _options).flags?.failSwitchChain)
|
|
57
|
+
throw new UserRejectedRequestError(new Error("Failed to switch chain"));
|
|
58
|
+
__privateGet(this, _options).chainId = chainId;
|
|
59
|
+
this.network.chainId = chainId;
|
|
60
|
+
this.events.emit("chainChanged", chainId);
|
|
61
|
+
}
|
|
62
|
+
async watchAsset(_asset) {
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
on(event, listener) {
|
|
66
|
+
this.events.on(event, listener);
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
once(event, listener) {
|
|
70
|
+
this.events.once(event, listener);
|
|
71
|
+
return this;
|
|
72
|
+
}
|
|
73
|
+
removeListener(event, listener) {
|
|
74
|
+
this.events.removeListener(event, listener);
|
|
75
|
+
return this;
|
|
76
|
+
}
|
|
77
|
+
off(event, listener) {
|
|
78
|
+
this.events.off(event, listener);
|
|
79
|
+
return this;
|
|
80
|
+
}
|
|
81
|
+
toJSON() {
|
|
82
|
+
return "<MockProvider>";
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
_options = new WeakMap();
|
|
86
|
+
_signer = new WeakMap();
|
|
87
|
+
|
|
88
|
+
// src/connectors/mock/connector.ts
|
|
89
|
+
var _provider, _switchChain, switchChain_fn;
|
|
90
|
+
var MockConnector = class extends Connector {
|
|
91
|
+
constructor(config) {
|
|
92
|
+
super(config);
|
|
93
|
+
__privateAdd(this, _switchChain);
|
|
94
|
+
this.id = "mock";
|
|
95
|
+
this.name = "Mock";
|
|
96
|
+
this.ready = true;
|
|
97
|
+
__privateAdd(this, _provider, void 0);
|
|
98
|
+
this.onAccountsChanged = (accounts) => {
|
|
99
|
+
if (accounts.length === 0)
|
|
100
|
+
this.emit("disconnect");
|
|
101
|
+
else
|
|
102
|
+
this.emit("change", { account: getAddress2(accounts[0]) });
|
|
103
|
+
};
|
|
104
|
+
this.onChainChanged = (chainId) => {
|
|
105
|
+
const id = normalizeChainId(chainId);
|
|
106
|
+
const unsupported = this.isChainUnsupported(id);
|
|
107
|
+
this.emit("change", { chain: { id, unsupported } });
|
|
108
|
+
};
|
|
109
|
+
this.onDisconnect = () => {
|
|
110
|
+
this.emit("disconnect");
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
async connect({ chainId } = {}) {
|
|
114
|
+
const provider = await this.getProvider({ chainId });
|
|
115
|
+
provider.on("accountsChanged", this.onAccountsChanged);
|
|
116
|
+
provider.on("chainChanged", this.onChainChanged);
|
|
117
|
+
provider.on("disconnect", this.onDisconnect);
|
|
118
|
+
this.emit("message", { type: "connecting" });
|
|
119
|
+
const accounts = await provider.enable();
|
|
120
|
+
const account = getAddress2(accounts[0]);
|
|
121
|
+
const id = normalizeChainId(provider._network.chainId);
|
|
122
|
+
const unsupported = this.isChainUnsupported(id);
|
|
123
|
+
const data = { account, chain: { id, unsupported }, provider };
|
|
124
|
+
if (!this.options.flags?.noSwitchChain)
|
|
125
|
+
this.switchChain = __privateMethod(this, _switchChain, switchChain_fn);
|
|
126
|
+
return new Promise(
|
|
127
|
+
(res) => setTimeout(() => res(data), 100)
|
|
128
|
+
);
|
|
129
|
+
}
|
|
130
|
+
async disconnect() {
|
|
131
|
+
const provider = await this.getProvider();
|
|
132
|
+
await provider.disconnect();
|
|
133
|
+
provider.removeListener("accountsChanged", this.onAccountsChanged);
|
|
134
|
+
provider.removeListener("chainChanged", this.onChainChanged);
|
|
135
|
+
provider.removeListener("disconnect", this.onDisconnect);
|
|
136
|
+
}
|
|
137
|
+
async getAccount() {
|
|
138
|
+
const provider = await this.getProvider();
|
|
139
|
+
const accounts = await provider.getAccounts();
|
|
140
|
+
const account = accounts[0];
|
|
141
|
+
if (!account)
|
|
142
|
+
throw new Error("Failed to get account");
|
|
143
|
+
return getAddress2(account);
|
|
144
|
+
}
|
|
145
|
+
async getChainId() {
|
|
146
|
+
const provider = await this.getProvider();
|
|
147
|
+
return normalizeChainId(provider.network.chainId);
|
|
148
|
+
}
|
|
149
|
+
async getProvider({ chainId } = {}) {
|
|
150
|
+
if (!__privateGet(this, _provider) || chainId)
|
|
151
|
+
__privateSet(this, _provider, new MockProvider({ ...this.options, chainId }));
|
|
152
|
+
return __privateGet(this, _provider);
|
|
153
|
+
}
|
|
154
|
+
async getSigner() {
|
|
155
|
+
const provider = await this.getProvider();
|
|
156
|
+
return provider.getSigner();
|
|
157
|
+
}
|
|
158
|
+
async isAuthorized() {
|
|
159
|
+
try {
|
|
160
|
+
const provider = await this.getProvider();
|
|
161
|
+
const account = await provider.getAccounts();
|
|
162
|
+
return this.options.flags?.isAuthorized ?? !!account;
|
|
163
|
+
} catch {
|
|
164
|
+
return false;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
async watchAsset(asset) {
|
|
168
|
+
const provider = await this.getProvider();
|
|
169
|
+
return provider.watchAsset(asset);
|
|
170
|
+
}
|
|
171
|
+
toJSON() {
|
|
172
|
+
return "<MockConnector>";
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
_provider = new WeakMap();
|
|
176
|
+
_switchChain = new WeakSet();
|
|
177
|
+
switchChain_fn = async function(chainId) {
|
|
178
|
+
const provider = await this.getProvider();
|
|
179
|
+
await provider.switchChain(chainId);
|
|
180
|
+
return this.chains.find((x) => x.id === chainId) ?? {
|
|
181
|
+
id: chainId,
|
|
182
|
+
name: `Chain ${chainId}`,
|
|
183
|
+
network: `${chainId}`,
|
|
184
|
+
rpcUrls: { default: "" }
|
|
185
|
+
};
|
|
186
|
+
};
|
|
187
|
+
export {
|
|
188
|
+
MockConnector,
|
|
189
|
+
MockProvider
|
|
190
|
+
};
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import WalletConnectProvider from '@walletconnect/ethereum-provider';
|
|
2
2
|
import { providers } from 'ethers';
|
|
3
|
-
import { Chain } from '../
|
|
4
|
-
import { Connector } from '
|
|
3
|
+
import { C as Chain } from '../index-bacc1c49.js';
|
|
4
|
+
import { C as Connector } from '../base-5bd9b5ed.js';
|
|
5
|
+
import 'abitype';
|
|
6
|
+
import 'eventemitter3';
|
|
7
|
+
|
|
5
8
|
declare type WalletConnectOptions = ConstructorParameters<typeof WalletConnectProvider>[0];
|
|
6
9
|
declare type WalletConnectSigner = providers.JsonRpcSigner;
|
|
7
|
-
|
|
10
|
+
declare class WalletConnectConnector extends Connector<WalletConnectProvider, WalletConnectOptions, WalletConnectSigner> {
|
|
8
11
|
#private;
|
|
9
12
|
readonly id = "walletConnect";
|
|
10
13
|
readonly name = "WalletConnect";
|
|
@@ -38,4 +41,5 @@ export declare class WalletConnectConnector extends Connector<WalletConnectProvi
|
|
|
38
41
|
protected onChainChanged: (chainId: number | string) => void;
|
|
39
42
|
protected onDisconnect: () => void;
|
|
40
43
|
}
|
|
41
|
-
|
|
44
|
+
|
|
45
|
+
export { WalletConnectConnector };
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Connector,
|
|
3
|
+
SwitchChainError,
|
|
4
|
+
UserRejectedRequestError,
|
|
5
|
+
getClient,
|
|
6
|
+
normalizeChainId
|
|
7
|
+
} from "../chunk-2EDVJWOA.js";
|
|
8
|
+
import "../chunk-4DNFSL2K.js";
|
|
9
|
+
import {
|
|
10
|
+
__privateAdd,
|
|
11
|
+
__privateGet,
|
|
12
|
+
__privateMethod,
|
|
13
|
+
__privateSet
|
|
14
|
+
} from "../chunk-MQXBDTVK.js";
|
|
15
|
+
|
|
16
|
+
// src/connectors/walletConnect.ts
|
|
17
|
+
import { providers } from "ethers";
|
|
18
|
+
import { getAddress, hexValue } from "ethers/lib/utils.js";
|
|
19
|
+
var switchChainAllowedRegex = /(imtoken|metamask|rainbow|trust wallet)/i;
|
|
20
|
+
var _provider, _switchChain, switchChain_fn;
|
|
21
|
+
var WalletConnectConnector = class extends Connector {
|
|
22
|
+
constructor(config) {
|
|
23
|
+
super(config);
|
|
24
|
+
__privateAdd(this, _switchChain);
|
|
25
|
+
this.id = "walletConnect";
|
|
26
|
+
this.name = "WalletConnect";
|
|
27
|
+
this.ready = true;
|
|
28
|
+
__privateAdd(this, _provider, void 0);
|
|
29
|
+
this.onAccountsChanged = (accounts) => {
|
|
30
|
+
if (accounts.length === 0)
|
|
31
|
+
this.emit("disconnect");
|
|
32
|
+
else
|
|
33
|
+
this.emit("change", { account: getAddress(accounts[0]) });
|
|
34
|
+
};
|
|
35
|
+
this.onChainChanged = (chainId) => {
|
|
36
|
+
const id = normalizeChainId(chainId);
|
|
37
|
+
const unsupported = this.isChainUnsupported(id);
|
|
38
|
+
this.emit("change", { chain: { id, unsupported } });
|
|
39
|
+
};
|
|
40
|
+
this.onDisconnect = () => {
|
|
41
|
+
this.emit("disconnect");
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
async connect({ chainId } = {}) {
|
|
45
|
+
try {
|
|
46
|
+
let targetChainId = chainId;
|
|
47
|
+
if (!targetChainId) {
|
|
48
|
+
const lastUsedChainId = getClient().lastUsedChainId;
|
|
49
|
+
if (lastUsedChainId && !this.isChainUnsupported(lastUsedChainId))
|
|
50
|
+
targetChainId = lastUsedChainId;
|
|
51
|
+
}
|
|
52
|
+
const provider = await this.getProvider({
|
|
53
|
+
chainId: targetChainId,
|
|
54
|
+
create: true
|
|
55
|
+
});
|
|
56
|
+
provider.on("accountsChanged", this.onAccountsChanged);
|
|
57
|
+
provider.on("chainChanged", this.onChainChanged);
|
|
58
|
+
provider.on("disconnect", this.onDisconnect);
|
|
59
|
+
setTimeout(() => this.emit("message", { type: "connecting" }), 0);
|
|
60
|
+
const accounts = await provider.enable();
|
|
61
|
+
const account = getAddress(accounts[0]);
|
|
62
|
+
const id = await this.getChainId();
|
|
63
|
+
const unsupported = this.isChainUnsupported(id);
|
|
64
|
+
const walletName = provider.connector?.peerMeta?.name ?? "";
|
|
65
|
+
if (switchChainAllowedRegex.test(walletName))
|
|
66
|
+
this.switchChain = __privateMethod(this, _switchChain, switchChain_fn);
|
|
67
|
+
return {
|
|
68
|
+
account,
|
|
69
|
+
chain: { id, unsupported },
|
|
70
|
+
provider: new providers.Web3Provider(
|
|
71
|
+
provider
|
|
72
|
+
)
|
|
73
|
+
};
|
|
74
|
+
} catch (error) {
|
|
75
|
+
if (/user closed modal/i.test(error.message))
|
|
76
|
+
throw new UserRejectedRequestError(error);
|
|
77
|
+
throw error;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
async disconnect() {
|
|
81
|
+
const provider = await this.getProvider();
|
|
82
|
+
await provider.disconnect();
|
|
83
|
+
provider.removeListener("accountsChanged", this.onAccountsChanged);
|
|
84
|
+
provider.removeListener("chainChanged", this.onChainChanged);
|
|
85
|
+
provider.removeListener("disconnect", this.onDisconnect);
|
|
86
|
+
typeof localStorage !== "undefined" && localStorage.removeItem("walletconnect");
|
|
87
|
+
}
|
|
88
|
+
async getAccount() {
|
|
89
|
+
const provider = await this.getProvider();
|
|
90
|
+
const accounts = provider.accounts;
|
|
91
|
+
return getAddress(accounts[0]);
|
|
92
|
+
}
|
|
93
|
+
async getChainId() {
|
|
94
|
+
const provider = await this.getProvider();
|
|
95
|
+
const chainId = normalizeChainId(provider.chainId);
|
|
96
|
+
return chainId;
|
|
97
|
+
}
|
|
98
|
+
async getProvider({
|
|
99
|
+
chainId,
|
|
100
|
+
create
|
|
101
|
+
} = {}) {
|
|
102
|
+
if (!__privateGet(this, _provider) || chainId || create) {
|
|
103
|
+
const rpc = !this.options?.infuraId ? this.chains.reduce(
|
|
104
|
+
(rpc2, chain) => ({ ...rpc2, [chain.id]: chain.rpcUrls.default }),
|
|
105
|
+
{}
|
|
106
|
+
) : {};
|
|
107
|
+
const WalletConnectProvider = (await import("@walletconnect/ethereum-provider")).default;
|
|
108
|
+
__privateSet(this, _provider, new WalletConnectProvider({
|
|
109
|
+
...this.options,
|
|
110
|
+
chainId,
|
|
111
|
+
rpc: { ...rpc, ...this.options?.rpc }
|
|
112
|
+
}));
|
|
113
|
+
}
|
|
114
|
+
return __privateGet(this, _provider);
|
|
115
|
+
}
|
|
116
|
+
async getSigner({ chainId } = {}) {
|
|
117
|
+
const [provider, account] = await Promise.all([
|
|
118
|
+
this.getProvider({ chainId }),
|
|
119
|
+
this.getAccount()
|
|
120
|
+
]);
|
|
121
|
+
return new providers.Web3Provider(
|
|
122
|
+
provider,
|
|
123
|
+
chainId
|
|
124
|
+
).getSigner(account);
|
|
125
|
+
}
|
|
126
|
+
async isAuthorized() {
|
|
127
|
+
try {
|
|
128
|
+
const account = await this.getAccount();
|
|
129
|
+
return !!account;
|
|
130
|
+
} catch {
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
_provider = new WeakMap();
|
|
136
|
+
_switchChain = new WeakSet();
|
|
137
|
+
switchChain_fn = async function(chainId) {
|
|
138
|
+
const provider = await this.getProvider();
|
|
139
|
+
const id = hexValue(chainId);
|
|
140
|
+
try {
|
|
141
|
+
await provider.request({
|
|
142
|
+
method: "wallet_switchEthereumChain",
|
|
143
|
+
params: [{ chainId: id }]
|
|
144
|
+
});
|
|
145
|
+
return this.chains.find((x) => x.id === chainId) ?? {
|
|
146
|
+
id: chainId,
|
|
147
|
+
name: `Chain ${id}`,
|
|
148
|
+
network: `${id}`,
|
|
149
|
+
rpcUrls: { default: "" }
|
|
150
|
+
};
|
|
151
|
+
} catch (error) {
|
|
152
|
+
const message = typeof error === "string" ? error : error?.message;
|
|
153
|
+
if (/user rejected request/i.test(message))
|
|
154
|
+
throw new UserRejectedRequestError(error);
|
|
155
|
+
throw new SwitchChainError(error);
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
export {
|
|
159
|
+
WalletConnectConnector
|
|
160
|
+
};
|