@wagmi/connectors 0.3.18-cjs → 1.0.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.
- package/coinbaseWallet/package.json +1 -1
- package/dist/base-335f54fd.d.ts +129 -0
- package/dist/{chunk-IUFGJWTU.js → chunk-FMYAICWT.js} +93 -83
- package/dist/chunk-OQILYQDO.js +15 -0
- package/dist/{chunk-5NCTPR6C.js → chunk-QYMCVNHT.js} +18 -14
- package/dist/chunk-ZCAPXGBX.js +26 -0
- package/dist/coinbaseWallet.d.ts +775 -8
- package/dist/coinbaseWallet.js +70 -71
- package/dist/index.d.ts +18 -5
- package/dist/index.js +12 -6
- package/dist/injected.d.ts +777 -12
- package/dist/injected.js +9 -7
- package/dist/ledger.d.ts +775 -8
- package/dist/ledger.js +68 -63
- package/dist/metaMask.d.ts +8 -7
- package/dist/metaMask.js +37 -51
- package/dist/mock/index.d.ts +1512 -16
- package/dist/mock/index.js +78 -82
- package/dist/safe.d.ts +775 -6
- package/dist/safe.js +53 -47
- package/dist/walletConnect.d.ts +775 -9
- package/dist/walletConnect.js +116 -108
- package/dist/walletConnectLegacy.d.ts +775 -9
- package/dist/walletConnectLegacy.js +66 -61
- package/injected/package.json +1 -1
- package/ledger/package.json +1 -1
- package/metaMask/package.json +1 -1
- package/mock/package.json +1 -1
- package/package.json +53 -13
- package/safe/package.json +1 -1
- package/walletConnect/package.json +1 -1
- package/walletConnectLegacy/package.json +1 -1
- package/dist/base-84a689bb.d.ts +0 -65
- package/dist/types-9b7d2533.d.ts +0 -161
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { Chain as Chain$1 } from '@wagmi/chains';
|
|
2
|
+
import { Address } from 'abitype';
|
|
3
|
+
import EventEmitter from 'eventemitter3';
|
|
4
|
+
import { EIP1193Provider, Transport, Chain, Account, WalletClient as WalletClient$1 } from 'viem';
|
|
5
|
+
|
|
6
|
+
type InjectedProviderFlags = {
|
|
7
|
+
isApexWallet?: true;
|
|
8
|
+
isAvalanche?: true;
|
|
9
|
+
isBackpack?: true;
|
|
10
|
+
isBifrost?: true;
|
|
11
|
+
isBitKeep?: true;
|
|
12
|
+
isBitski?: true;
|
|
13
|
+
isBraveWallet?: true;
|
|
14
|
+
isCoinbaseWallet?: true;
|
|
15
|
+
isDawn?: true;
|
|
16
|
+
isExodus?: true;
|
|
17
|
+
isFrame?: true;
|
|
18
|
+
isFrontier?: true;
|
|
19
|
+
isGamestop?: true;
|
|
20
|
+
isHyperPay?: true;
|
|
21
|
+
isKuCoinWallet?: true;
|
|
22
|
+
isMathWallet?: true;
|
|
23
|
+
isMetaMask?: true;
|
|
24
|
+
isOkxWallet?: true;
|
|
25
|
+
isOKExWallet?: true;
|
|
26
|
+
isOneInchAndroidWallet?: true;
|
|
27
|
+
isOneInchIOSWallet?: true;
|
|
28
|
+
isOpera?: true;
|
|
29
|
+
isPhantom?: true;
|
|
30
|
+
isPortal?: true;
|
|
31
|
+
isRabby?: true;
|
|
32
|
+
isRainbow?: true;
|
|
33
|
+
isStatus?: true;
|
|
34
|
+
isTally?: true;
|
|
35
|
+
isTokenPocket?: true;
|
|
36
|
+
isTokenary?: true;
|
|
37
|
+
isTrust?: true;
|
|
38
|
+
isTrustWallet?: true;
|
|
39
|
+
isXDEFI?: true;
|
|
40
|
+
isZerion?: true;
|
|
41
|
+
};
|
|
42
|
+
type InjectedProviders = InjectedProviderFlags & {
|
|
43
|
+
isMetaMask: true;
|
|
44
|
+
/** Only exists in MetaMask as of 2022/04/03 */
|
|
45
|
+
_events: {
|
|
46
|
+
connect?: () => void;
|
|
47
|
+
};
|
|
48
|
+
/** Only exists in MetaMask as of 2022/04/03 */
|
|
49
|
+
_state?: {
|
|
50
|
+
accounts?: string[];
|
|
51
|
+
initialized?: boolean;
|
|
52
|
+
isConnected?: boolean;
|
|
53
|
+
isPermanentlyDisconnected?: boolean;
|
|
54
|
+
isUnlocked?: boolean;
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
interface WindowProvider extends InjectedProviders, EIP1193Provider {
|
|
58
|
+
providers?: WindowProvider[];
|
|
59
|
+
}
|
|
60
|
+
type WalletClient<TTransport extends Transport = Transport, TChain extends Chain = Chain, TAccount extends Account = Account> = WalletClient$1<TTransport, TChain, TAccount>;
|
|
61
|
+
type Storage = {
|
|
62
|
+
getItem<T>(key: string, defaultState?: T | null): T | null;
|
|
63
|
+
setItem<T>(key: string, value: T | null): void;
|
|
64
|
+
removeItem(key: string): void;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
type ConnectorData = {
|
|
68
|
+
account?: Address;
|
|
69
|
+
chain?: {
|
|
70
|
+
id: number;
|
|
71
|
+
unsupported: boolean;
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
interface ConnectorEvents {
|
|
75
|
+
change(data: ConnectorData): void;
|
|
76
|
+
connect(data: ConnectorData): void;
|
|
77
|
+
message({ type, data }: {
|
|
78
|
+
type: string;
|
|
79
|
+
data?: unknown;
|
|
80
|
+
}): void;
|
|
81
|
+
disconnect(): void;
|
|
82
|
+
error(error: Error): void;
|
|
83
|
+
}
|
|
84
|
+
declare abstract class Connector<Provider = any, Options = any> extends EventEmitter<ConnectorEvents> {
|
|
85
|
+
/** Unique connector id */
|
|
86
|
+
abstract readonly id: string;
|
|
87
|
+
/** Connector name */
|
|
88
|
+
abstract readonly name: string;
|
|
89
|
+
/** Chains connector supports */
|
|
90
|
+
readonly chains: Chain$1[];
|
|
91
|
+
/** Options to use with connector */
|
|
92
|
+
readonly options: Options;
|
|
93
|
+
/** Connector storage. */
|
|
94
|
+
protected storage?: Storage;
|
|
95
|
+
/** Whether connector is usable */
|
|
96
|
+
abstract readonly ready: boolean;
|
|
97
|
+
constructor({ chains, options, }: {
|
|
98
|
+
chains?: Chain$1[];
|
|
99
|
+
options: Options;
|
|
100
|
+
});
|
|
101
|
+
abstract connect(config?: {
|
|
102
|
+
chainId?: number;
|
|
103
|
+
}): Promise<Required<ConnectorData>>;
|
|
104
|
+
abstract disconnect(): Promise<void>;
|
|
105
|
+
abstract getAccount(): Promise<Address>;
|
|
106
|
+
abstract getChainId(): Promise<number>;
|
|
107
|
+
abstract getProvider(config?: {
|
|
108
|
+
chainId?: number;
|
|
109
|
+
}): Promise<Provider>;
|
|
110
|
+
abstract getWalletClient(config?: {
|
|
111
|
+
chainId?: number;
|
|
112
|
+
}): Promise<WalletClient>;
|
|
113
|
+
abstract isAuthorized(): Promise<boolean>;
|
|
114
|
+
switchChain?(chainId: number): Promise<Chain$1>;
|
|
115
|
+
watchAsset?(asset: {
|
|
116
|
+
address: string;
|
|
117
|
+
decimals?: number;
|
|
118
|
+
image?: string;
|
|
119
|
+
symbol: string;
|
|
120
|
+
}): Promise<boolean>;
|
|
121
|
+
protected abstract onAccountsChanged(accounts: Address[]): void;
|
|
122
|
+
protected abstract onChainChanged(chain: number | string): void;
|
|
123
|
+
protected abstract onDisconnect(error: Error): void;
|
|
124
|
+
protected getBlockExplorerUrls(chain: Chain$1): string[] | undefined;
|
|
125
|
+
protected isChainUnsupported(chainId: number): boolean;
|
|
126
|
+
setStorage(storage: Storage): void;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export { Connector as C, WindowProvider as W, ConnectorData as a, ConnectorEvents as b, WalletClient as c };
|
|
@@ -1,25 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import {
|
|
2
|
+
ChainNotConfiguredForConnectorError,
|
|
3
|
+
ConnectorNotFoundError
|
|
4
|
+
} from "./chunk-ZCAPXGBX.js";
|
|
5
|
+
import {
|
|
6
|
+
normalizeChainId
|
|
7
|
+
} from "./chunk-OQILYQDO.js";
|
|
8
|
+
import {
|
|
9
|
+
Connector,
|
|
10
|
+
__privateAdd,
|
|
11
|
+
__privateGet,
|
|
12
|
+
__privateSet,
|
|
13
|
+
__publicField
|
|
14
|
+
} from "./chunk-QYMCVNHT.js";
|
|
8
15
|
|
|
9
16
|
// src/injected.ts
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
var _core = require('@wagmi/core');
|
|
21
|
-
var _ethers = require('ethers');
|
|
22
|
-
var _utilsjs = require('ethers/lib/utils.js');
|
|
17
|
+
import {
|
|
18
|
+
ResourceNotFoundRpcError,
|
|
19
|
+
SwitchChainError,
|
|
20
|
+
UserRejectedRequestError,
|
|
21
|
+
createWalletClient,
|
|
22
|
+
custom,
|
|
23
|
+
getAddress,
|
|
24
|
+
numberToHex
|
|
25
|
+
} from "viem";
|
|
23
26
|
|
|
24
27
|
// src/utils/getInjectedName.ts
|
|
25
28
|
function getInjectedName(ethereum) {
|
|
@@ -38,8 +41,6 @@ function getInjectedName(ethereum) {
|
|
|
38
41
|
return "BitKeep";
|
|
39
42
|
if (provider.isBitski)
|
|
40
43
|
return "Bitski";
|
|
41
|
-
if (provider.isBlockWallet)
|
|
42
|
-
return "BlockWallet";
|
|
43
44
|
if (provider.isBraveWallet)
|
|
44
45
|
return "Brave Wallet";
|
|
45
46
|
if (provider.isCoinbaseWallet)
|
|
@@ -56,8 +57,6 @@ function getInjectedName(ethereum) {
|
|
|
56
57
|
return "GameStop Wallet";
|
|
57
58
|
if (provider.isHyperPay)
|
|
58
59
|
return "HyperPay Wallet";
|
|
59
|
-
if (provider.isImToken)
|
|
60
|
-
return "ImToken";
|
|
61
60
|
if (provider.isKuCoinWallet)
|
|
62
61
|
return "KuCoin Wallet";
|
|
63
62
|
if (provider.isMathWallet)
|
|
@@ -93,7 +92,7 @@ function getInjectedName(ethereum) {
|
|
|
93
92
|
if (provider.isMetaMask)
|
|
94
93
|
return "MetaMask";
|
|
95
94
|
};
|
|
96
|
-
if (
|
|
95
|
+
if (ethereum.providers?.length) {
|
|
97
96
|
const nameSet = /* @__PURE__ */ new Set();
|
|
98
97
|
let unknownCount = 1;
|
|
99
98
|
for (const provider of ethereum.providers) {
|
|
@@ -107,43 +106,50 @@ function getInjectedName(ethereum) {
|
|
|
107
106
|
const names = [...nameSet];
|
|
108
107
|
if (names.length)
|
|
109
108
|
return names;
|
|
110
|
-
return
|
|
109
|
+
return names[0] ?? "Injected";
|
|
111
110
|
}
|
|
112
|
-
return
|
|
111
|
+
return getName(ethereum) ?? "Injected";
|
|
113
112
|
}
|
|
114
113
|
|
|
115
114
|
// src/injected.ts
|
|
116
115
|
var _provider;
|
|
117
|
-
var InjectedConnector = class extends
|
|
116
|
+
var InjectedConnector = class extends Connector {
|
|
118
117
|
constructor({
|
|
119
118
|
chains,
|
|
120
119
|
options: options_
|
|
121
120
|
} = {}) {
|
|
122
121
|
const options = {
|
|
123
122
|
shimDisconnect: true,
|
|
124
|
-
getProvider
|
|
123
|
+
getProvider() {
|
|
124
|
+
if (typeof window === "undefined")
|
|
125
|
+
return;
|
|
126
|
+
const ethereum = window.ethereum;
|
|
127
|
+
if (ethereum?.providers)
|
|
128
|
+
return ethereum.providers[0];
|
|
129
|
+
return ethereum;
|
|
130
|
+
},
|
|
125
131
|
...options_
|
|
126
132
|
};
|
|
127
133
|
super({ chains, options });
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
+
__publicField(this, "id", "injected");
|
|
135
|
+
__publicField(this, "name");
|
|
136
|
+
__publicField(this, "ready");
|
|
137
|
+
__privateAdd(this, _provider, void 0);
|
|
138
|
+
__publicField(this, "shimDisconnectKey", `${this.id}.shimDisconnect`);
|
|
139
|
+
__publicField(this, "onAccountsChanged", (accounts) => {
|
|
134
140
|
if (accounts.length === 0)
|
|
135
141
|
this.emit("disconnect");
|
|
136
142
|
else
|
|
137
143
|
this.emit("change", {
|
|
138
|
-
account:
|
|
144
|
+
account: getAddress(accounts[0])
|
|
139
145
|
});
|
|
140
146
|
});
|
|
141
|
-
|
|
142
|
-
const id =
|
|
147
|
+
__publicField(this, "onChainChanged", (chainId) => {
|
|
148
|
+
const id = normalizeChainId(chainId);
|
|
143
149
|
const unsupported = this.isChainUnsupported(id);
|
|
144
150
|
this.emit("change", { chain: { id, unsupported } });
|
|
145
151
|
});
|
|
146
|
-
|
|
152
|
+
__publicField(this, "onDisconnect", async (error) => {
|
|
147
153
|
if (error.code === 1013) {
|
|
148
154
|
const provider = await this.getProvider();
|
|
149
155
|
if (provider) {
|
|
@@ -154,7 +160,7 @@ var InjectedConnector = class extends _chunk5NCTPR6Cjs.Connector {
|
|
|
154
160
|
}
|
|
155
161
|
this.emit("disconnect");
|
|
156
162
|
if (this.options.shimDisconnect)
|
|
157
|
-
|
|
163
|
+
this.storage?.removeItem(this.shimDisconnectKey);
|
|
158
164
|
});
|
|
159
165
|
const provider = options.getProvider();
|
|
160
166
|
if (typeof options.name === "string")
|
|
@@ -177,7 +183,7 @@ var InjectedConnector = class extends _chunk5NCTPR6Cjs.Connector {
|
|
|
177
183
|
try {
|
|
178
184
|
const provider = await this.getProvider();
|
|
179
185
|
if (!provider)
|
|
180
|
-
throw new
|
|
186
|
+
throw new ConnectorNotFoundError();
|
|
181
187
|
if (provider.on) {
|
|
182
188
|
provider.on("accountsChanged", this.onAccountsChanged);
|
|
183
189
|
provider.on("chainChanged", this.onChainChanged);
|
|
@@ -187,7 +193,7 @@ var InjectedConnector = class extends _chunk5NCTPR6Cjs.Connector {
|
|
|
187
193
|
const accounts = await provider.request({
|
|
188
194
|
method: "eth_requestAccounts"
|
|
189
195
|
});
|
|
190
|
-
const account =
|
|
196
|
+
const account = getAddress(accounts[0]);
|
|
191
197
|
let id = await this.getChainId();
|
|
192
198
|
let unsupported = this.isChainUnsupported(id);
|
|
193
199
|
if (chainId && id !== chainId) {
|
|
@@ -196,75 +202,79 @@ var InjectedConnector = class extends _chunk5NCTPR6Cjs.Connector {
|
|
|
196
202
|
unsupported = this.isChainUnsupported(id);
|
|
197
203
|
}
|
|
198
204
|
if (this.options.shimDisconnect)
|
|
199
|
-
|
|
200
|
-
return { account, chain: { id, unsupported }
|
|
205
|
+
this.storage?.setItem(this.shimDisconnectKey, true);
|
|
206
|
+
return { account, chain: { id, unsupported } };
|
|
201
207
|
} catch (error) {
|
|
202
208
|
if (this.isUserRejectedRequestError(error))
|
|
203
|
-
throw new
|
|
209
|
+
throw new UserRejectedRequestError(error);
|
|
204
210
|
if (error.code === -32002)
|
|
205
|
-
throw new (
|
|
211
|
+
throw new ResourceNotFoundRpcError(error);
|
|
206
212
|
throw error;
|
|
207
213
|
}
|
|
208
214
|
}
|
|
209
215
|
async disconnect() {
|
|
210
216
|
const provider = await this.getProvider();
|
|
211
|
-
if (!
|
|
217
|
+
if (!provider?.removeListener)
|
|
212
218
|
return;
|
|
213
219
|
provider.removeListener("accountsChanged", this.onAccountsChanged);
|
|
214
220
|
provider.removeListener("chainChanged", this.onChainChanged);
|
|
215
221
|
provider.removeListener("disconnect", this.onDisconnect);
|
|
216
222
|
if (this.options.shimDisconnect)
|
|
217
|
-
|
|
223
|
+
this.storage?.removeItem(this.shimDisconnectKey);
|
|
218
224
|
}
|
|
219
225
|
async getAccount() {
|
|
220
226
|
const provider = await this.getProvider();
|
|
221
227
|
if (!provider)
|
|
222
|
-
throw new
|
|
228
|
+
throw new ConnectorNotFoundError();
|
|
223
229
|
const accounts = await provider.request({
|
|
224
230
|
method: "eth_accounts"
|
|
225
231
|
});
|
|
226
|
-
return
|
|
232
|
+
return getAddress(accounts[0]);
|
|
227
233
|
}
|
|
228
234
|
async getChainId() {
|
|
229
235
|
const provider = await this.getProvider();
|
|
230
236
|
if (!provider)
|
|
231
|
-
throw new
|
|
232
|
-
return provider.request({ method: "eth_chainId" }).then(
|
|
237
|
+
throw new ConnectorNotFoundError();
|
|
238
|
+
return provider.request({ method: "eth_chainId" }).then(normalizeChainId);
|
|
233
239
|
}
|
|
234
240
|
async getProvider() {
|
|
235
241
|
const provider = this.options.getProvider();
|
|
236
242
|
if (provider)
|
|
237
|
-
|
|
238
|
-
return
|
|
243
|
+
__privateSet(this, _provider, provider);
|
|
244
|
+
return __privateGet(this, _provider);
|
|
239
245
|
}
|
|
240
|
-
async
|
|
246
|
+
async getWalletClient({ chainId } = {}) {
|
|
241
247
|
const [provider, account] = await Promise.all([
|
|
242
248
|
this.getProvider(),
|
|
243
249
|
this.getAccount()
|
|
244
250
|
]);
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
251
|
+
const chain = this.chains.find((x) => x.id === chainId) || this.chains[0];
|
|
252
|
+
if (!provider)
|
|
253
|
+
throw new Error("provider is required.");
|
|
254
|
+
return createWalletClient({
|
|
255
|
+
account,
|
|
256
|
+
chain,
|
|
257
|
+
transport: custom(provider)
|
|
258
|
+
});
|
|
249
259
|
}
|
|
250
260
|
async isAuthorized() {
|
|
251
261
|
try {
|
|
252
|
-
if (this.options.shimDisconnect && !
|
|
262
|
+
if (this.options.shimDisconnect && !this.storage?.getItem(this.shimDisconnectKey))
|
|
253
263
|
return false;
|
|
254
264
|
const provider = await this.getProvider();
|
|
255
265
|
if (!provider)
|
|
256
|
-
throw new
|
|
266
|
+
throw new ConnectorNotFoundError();
|
|
257
267
|
const account = await this.getAccount();
|
|
258
268
|
return !!account;
|
|
259
|
-
} catch
|
|
269
|
+
} catch {
|
|
260
270
|
return false;
|
|
261
271
|
}
|
|
262
272
|
}
|
|
263
273
|
async switchChain(chainId) {
|
|
264
274
|
const provider = await this.getProvider();
|
|
265
275
|
if (!provider)
|
|
266
|
-
throw new
|
|
267
|
-
const id =
|
|
276
|
+
throw new ConnectorNotFoundError();
|
|
277
|
+
const id = numberToHex(chainId);
|
|
268
278
|
try {
|
|
269
279
|
await Promise.all([
|
|
270
280
|
provider.request({
|
|
@@ -273,23 +283,26 @@ var InjectedConnector = class extends _chunk5NCTPR6Cjs.Connector {
|
|
|
273
283
|
}),
|
|
274
284
|
new Promise(
|
|
275
285
|
(res) => this.on("change", ({ chain }) => {
|
|
276
|
-
if (
|
|
286
|
+
if (chain?.id === chainId)
|
|
277
287
|
res();
|
|
278
288
|
})
|
|
279
289
|
)
|
|
280
290
|
]);
|
|
281
|
-
return
|
|
291
|
+
return this.chains.find((x) => x.id === chainId) ?? {
|
|
282
292
|
id: chainId,
|
|
283
293
|
name: `Chain ${id}`,
|
|
284
294
|
network: `${id}`,
|
|
285
295
|
nativeCurrency: { name: "Ether", decimals: 18, symbol: "ETH" },
|
|
286
296
|
rpcUrls: { default: { http: [""] }, public: { http: [""] } }
|
|
287
|
-
}
|
|
297
|
+
};
|
|
288
298
|
} catch (error) {
|
|
289
299
|
const chain = this.chains.find((x) => x.id === chainId);
|
|
290
300
|
if (!chain)
|
|
291
|
-
throw new (
|
|
292
|
-
|
|
301
|
+
throw new ChainNotConfiguredForConnectorError({
|
|
302
|
+
chainId,
|
|
303
|
+
connectorId: this.id
|
|
304
|
+
});
|
|
305
|
+
if (error.code === 4902 || error?.data?.originalError?.code === 4902) {
|
|
293
306
|
try {
|
|
294
307
|
await provider.request({
|
|
295
308
|
method: "wallet_addEthereumChain",
|
|
@@ -298,27 +311,24 @@ var InjectedConnector = class extends _chunk5NCTPR6Cjs.Connector {
|
|
|
298
311
|
chainId: id,
|
|
299
312
|
chainName: chain.name,
|
|
300
313
|
nativeCurrency: chain.nativeCurrency,
|
|
301
|
-
rpcUrls: [
|
|
314
|
+
rpcUrls: [chain.rpcUrls.public?.http[0] ?? ""],
|
|
302
315
|
blockExplorerUrls: this.getBlockExplorerUrls(chain)
|
|
303
316
|
}
|
|
304
317
|
]
|
|
305
318
|
});
|
|
306
319
|
const currentChainId = await this.getChainId();
|
|
307
320
|
if (currentChainId !== chainId)
|
|
308
|
-
throw new (
|
|
309
|
-
"User rejected switch after adding network."
|
|
310
|
-
{ code: 4001 }
|
|
321
|
+
throw new UserRejectedRequestError(
|
|
322
|
+
new Error("User rejected switch after adding network.")
|
|
311
323
|
);
|
|
312
324
|
return chain;
|
|
313
|
-
} catch (
|
|
314
|
-
|
|
315
|
-
throw new (0, _core.UserRejectedRequestError)(addError);
|
|
316
|
-
throw new (0, _core.AddChainError)();
|
|
325
|
+
} catch (error2) {
|
|
326
|
+
throw new UserRejectedRequestError(error2);
|
|
317
327
|
}
|
|
318
328
|
}
|
|
319
329
|
if (this.isUserRejectedRequestError(error))
|
|
320
|
-
throw new
|
|
321
|
-
throw new
|
|
330
|
+
throw new UserRejectedRequestError(error);
|
|
331
|
+
throw new SwitchChainError(error);
|
|
322
332
|
}
|
|
323
333
|
}
|
|
324
334
|
async watchAsset({
|
|
@@ -329,7 +339,7 @@ var InjectedConnector = class extends _chunk5NCTPR6Cjs.Connector {
|
|
|
329
339
|
}) {
|
|
330
340
|
const provider = await this.getProvider();
|
|
331
341
|
if (!provider)
|
|
332
|
-
throw new
|
|
342
|
+
throw new ConnectorNotFoundError();
|
|
333
343
|
return provider.request({
|
|
334
344
|
method: "wallet_watchAsset",
|
|
335
345
|
params: {
|
|
@@ -349,6 +359,6 @@ var InjectedConnector = class extends _chunk5NCTPR6Cjs.Connector {
|
|
|
349
359
|
};
|
|
350
360
|
_provider = new WeakMap();
|
|
351
361
|
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
362
|
+
export {
|
|
363
|
+
InjectedConnector
|
|
364
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// src/utils/normalizeChainId.ts
|
|
2
|
+
function normalizeChainId(chainId) {
|
|
3
|
+
if (typeof chainId === "string")
|
|
4
|
+
return Number.parseInt(
|
|
5
|
+
chainId,
|
|
6
|
+
chainId.trim().substring(0, 2) === "0x" ? 16 : 10
|
|
7
|
+
);
|
|
8
|
+
if (typeof chainId === "bigint")
|
|
9
|
+
return Number(chainId);
|
|
10
|
+
return chainId;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export {
|
|
14
|
+
normalizeChainId
|
|
15
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
3
|
var __publicField = (obj, key, value) => {
|
|
4
4
|
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
@@ -28,21 +28,22 @@ var __privateMethod = (obj, member, method) => {
|
|
|
28
28
|
};
|
|
29
29
|
|
|
30
30
|
// src/base.ts
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
var Connector = class extends
|
|
31
|
+
import { default as EventEmitter } from "eventemitter3";
|
|
32
|
+
import { goerli, mainnet } from "viem/chains";
|
|
33
|
+
var Connector = class extends EventEmitter {
|
|
34
34
|
constructor({
|
|
35
|
-
chains = [
|
|
35
|
+
chains = [mainnet, goerli],
|
|
36
36
|
options
|
|
37
37
|
}) {
|
|
38
38
|
super();
|
|
39
39
|
__publicField(this, "chains");
|
|
40
40
|
__publicField(this, "options");
|
|
41
|
+
__publicField(this, "storage");
|
|
41
42
|
this.chains = chains;
|
|
42
43
|
this.options = options;
|
|
43
44
|
}
|
|
44
45
|
getBlockExplorerUrls(chain) {
|
|
45
|
-
const { default: blockExplorer, ...blockExplorers } =
|
|
46
|
+
const { default: blockExplorer, ...blockExplorers } = chain.blockExplorers ?? {};
|
|
46
47
|
if (blockExplorer)
|
|
47
48
|
return [
|
|
48
49
|
blockExplorer.url,
|
|
@@ -52,13 +53,16 @@ var Connector = class extends _eventemitter32.default {
|
|
|
52
53
|
isChainUnsupported(chainId) {
|
|
53
54
|
return !this.chains.some((x) => x.id === chainId);
|
|
54
55
|
}
|
|
56
|
+
setStorage(storage) {
|
|
57
|
+
this.storage = storage;
|
|
58
|
+
}
|
|
55
59
|
};
|
|
56
60
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
export {
|
|
62
|
+
__publicField,
|
|
63
|
+
__privateGet,
|
|
64
|
+
__privateAdd,
|
|
65
|
+
__privateSet,
|
|
66
|
+
__privateMethod,
|
|
67
|
+
Connector
|
|
68
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__publicField
|
|
3
|
+
} from "./chunk-QYMCVNHT.js";
|
|
4
|
+
|
|
5
|
+
// src/errors.ts
|
|
6
|
+
var ChainNotConfiguredForConnectorError = class extends Error {
|
|
7
|
+
constructor({
|
|
8
|
+
chainId,
|
|
9
|
+
connectorId
|
|
10
|
+
}) {
|
|
11
|
+
super(`Chain "${chainId}" not configured for connector "${connectorId}".`);
|
|
12
|
+
__publicField(this, "name", "ChainNotConfiguredForConnectorError");
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
var ConnectorNotFoundError = class extends Error {
|
|
16
|
+
constructor() {
|
|
17
|
+
super(...arguments);
|
|
18
|
+
__publicField(this, "name", "ConnectorNotFoundError");
|
|
19
|
+
__publicField(this, "message", "Connector not found");
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export {
|
|
24
|
+
ChainNotConfiguredForConnectorError,
|
|
25
|
+
ConnectorNotFoundError
|
|
26
|
+
};
|