@wagmi/connectors 0.1.2 → 0.1.3
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/LICENSE +1 -1
- package/dist/{base-6b5431a5.d.ts → base-caae9601.d.ts} +1 -1
- package/dist/coinbaseWallet.d.ts +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/injected.d.ts +6 -6
- package/dist/ledger.d.ts +3 -3
- package/dist/metaMask.d.ts +3 -3
- package/dist/mock/index.d.ts +5 -5
- package/dist/walletConnect.d.ts +23 -6
- package/dist/walletConnect.js +172 -31
- package/package.json +3 -1
package/LICENSE
CHANGED
package/dist/coinbaseWallet.d.ts
CHANGED
|
@@ -2,11 +2,11 @@ import { CoinbaseWalletProvider } from '@coinbase/wallet-sdk';
|
|
|
2
2
|
import { CoinbaseWalletSDKOptions } from '@coinbase/wallet-sdk/dist/CoinbaseWalletSDK';
|
|
3
3
|
import { Chain } from '@wagmi/core/chains';
|
|
4
4
|
import { providers } from 'ethers';
|
|
5
|
-
import { C as Connector } from './base-
|
|
5
|
+
import { C as Connector } from './base-caae9601.js';
|
|
6
6
|
import 'abitype';
|
|
7
7
|
import 'eventemitter3';
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
type Options = CoinbaseWalletSDKOptions & {
|
|
10
10
|
/**
|
|
11
11
|
* Fallback Ethereum JSON RPC URL
|
|
12
12
|
* @default ""
|
package/dist/index.d.ts
CHANGED
package/dist/injected.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _wagmi_core_dist_index_37d6352e from '@wagmi/core/dist/index-37d6352e';
|
|
2
2
|
import { Chain } from '@wagmi/core/chains';
|
|
3
3
|
import { Address } from 'abitype';
|
|
4
4
|
import { providers } from 'ethers';
|
|
5
|
-
import { C as Connector } from './base-
|
|
5
|
+
import { C as Connector } from './base-caae9601.js';
|
|
6
6
|
import 'eventemitter3';
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
type InjectedConnectorOptions = {
|
|
9
9
|
/** Name of connector */
|
|
10
10
|
name?: string | ((detectedName: string | string[]) => string);
|
|
11
11
|
/**
|
|
@@ -27,7 +27,7 @@ declare type InjectedConnectorOptions = {
|
|
|
27
27
|
*/
|
|
28
28
|
shimDisconnect?: boolean;
|
|
29
29
|
};
|
|
30
|
-
|
|
30
|
+
type ConnectorOptions = InjectedConnectorOptions & Required<Pick<InjectedConnectorOptions, 'getProvider'>>;
|
|
31
31
|
declare class InjectedConnector extends Connector<Window['ethereum'], ConnectorOptions, providers.JsonRpcSigner> {
|
|
32
32
|
#private;
|
|
33
33
|
readonly id: string;
|
|
@@ -46,12 +46,12 @@ declare class InjectedConnector extends Connector<Window['ethereum'], ConnectorO
|
|
|
46
46
|
id: number;
|
|
47
47
|
unsupported: boolean;
|
|
48
48
|
};
|
|
49
|
-
provider:
|
|
49
|
+
provider: _wagmi_core_dist_index_37d6352e.E;
|
|
50
50
|
}>;
|
|
51
51
|
disconnect(): Promise<void>;
|
|
52
52
|
getAccount(): Promise<`0x${string}`>;
|
|
53
53
|
getChainId(): Promise<number>;
|
|
54
|
-
getProvider(): Promise<
|
|
54
|
+
getProvider(): Promise<_wagmi_core_dist_index_37d6352e.E | undefined>;
|
|
55
55
|
getSigner({ chainId }?: {
|
|
56
56
|
chainId?: number;
|
|
57
57
|
}): Promise<providers.JsonRpcSigner>;
|
package/dist/ledger.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { EthereumProvider } from '@ledgerhq/connect-kit-loader';
|
|
2
2
|
import { Chain } from '@wagmi/core';
|
|
3
3
|
import { providers } from 'ethers';
|
|
4
|
-
import { C as Connector, a as ConnectorData } from './base-
|
|
4
|
+
import { C as Connector, a as ConnectorData } from './base-caae9601.js';
|
|
5
5
|
import '@wagmi/core/chains';
|
|
6
6
|
import 'abitype';
|
|
7
7
|
import 'eventemitter3';
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
type LedgerConnectorOptions = {
|
|
10
10
|
bridge?: string;
|
|
11
11
|
chainId?: number;
|
|
12
12
|
enableDebugLogs?: boolean;
|
|
@@ -14,7 +14,7 @@ declare type LedgerConnectorOptions = {
|
|
|
14
14
|
[chainId: number]: string;
|
|
15
15
|
};
|
|
16
16
|
};
|
|
17
|
-
|
|
17
|
+
type LedgerSigner = providers.JsonRpcSigner;
|
|
18
18
|
declare class LedgerConnector extends Connector<EthereumProvider, LedgerConnectorOptions, LedgerSigner> {
|
|
19
19
|
#private;
|
|
20
20
|
readonly id = "ledger";
|
package/dist/metaMask.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Ethereum } from '@wagmi/core';
|
|
2
2
|
import { Chain } from '@wagmi/core/chains';
|
|
3
3
|
import { InjectedConnectorOptions, InjectedConnector } from './injected.js';
|
|
4
|
-
import '@wagmi/core/dist/index-
|
|
4
|
+
import '@wagmi/core/dist/index-37d6352e';
|
|
5
5
|
import 'abitype';
|
|
6
6
|
import 'ethers';
|
|
7
|
-
import './base-
|
|
7
|
+
import './base-caae9601.js';
|
|
8
8
|
import 'eventemitter3';
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
type MetaMaskConnectorOptions = Pick<InjectedConnectorOptions, 'shimChainChangedDisconnect' | 'shimDisconnect'> & {
|
|
11
11
|
/**
|
|
12
12
|
* While "disconnected" with `shimDisconnect`, allows user to select a different MetaMask account (than the currently connected account) when trying to connect.
|
|
13
13
|
*/
|
package/dist/mock/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as ethers from 'ethers';
|
|
2
2
|
import { providers } from 'ethers';
|
|
3
3
|
import { Chain } from '@wagmi/core/chains';
|
|
4
|
-
import { C as Connector, a as ConnectorData } from '../base-
|
|
4
|
+
import { C as Connector, a as ConnectorData } from '../base-caae9601.js';
|
|
5
5
|
import { Signer } from '@wagmi/core';
|
|
6
6
|
import EventEmitter from 'eventemitter3';
|
|
7
7
|
import 'abitype';
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
type MockProviderOptions = {
|
|
10
10
|
chainId: number;
|
|
11
11
|
flags?: {
|
|
12
12
|
isAuthorized?: boolean;
|
|
@@ -16,12 +16,12 @@ declare type MockProviderOptions = {
|
|
|
16
16
|
};
|
|
17
17
|
signer: Signer;
|
|
18
18
|
};
|
|
19
|
-
|
|
19
|
+
type Events = {
|
|
20
20
|
accountsChanged(accounts: string[]): void;
|
|
21
21
|
chainChanged(chainId: number | string): void;
|
|
22
22
|
disconnect(): void;
|
|
23
23
|
};
|
|
24
|
-
|
|
24
|
+
type Event = keyof Events;
|
|
25
25
|
declare class MockProvider extends providers.BaseProvider {
|
|
26
26
|
#private;
|
|
27
27
|
events: EventEmitter<Events, any>;
|
|
@@ -44,7 +44,7 @@ declare class MockProvider extends providers.BaseProvider {
|
|
|
44
44
|
toJSON(): string;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
type MockConnectorOptions = Omit<MockProviderOptions, 'chainId'> & {
|
|
48
48
|
chainId?: number;
|
|
49
49
|
};
|
|
50
50
|
declare class MockConnector extends Connector<MockProvider, MockConnectorOptions> {
|
package/dist/walletConnect.d.ts
CHANGED
|
@@ -1,13 +1,28 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as _walletconnect_universal_provider from '@walletconnect/universal-provider';
|
|
2
|
+
import { UniversalProvider as UniversalProvider$1, UniversalProviderOpts } from '@walletconnect/universal-provider';
|
|
3
|
+
import { Chain } from '@wagmi/core';
|
|
2
4
|
import WalletConnectProvider from '@walletconnect/ethereum-provider';
|
|
3
5
|
import { providers } from 'ethers';
|
|
4
|
-
import { C as Connector } from './base-
|
|
6
|
+
import { C as Connector } from './base-caae9601.js';
|
|
7
|
+
import '@wagmi/core/chains';
|
|
5
8
|
import 'abitype';
|
|
6
9
|
import 'eventemitter3';
|
|
7
10
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
type UniversalProvider = InstanceType<typeof UniversalProvider$1>;
|
|
12
|
+
type WalletConnectOptions = {
|
|
13
|
+
/** When `true`, uses default WalletConnect QR Code modal */
|
|
14
|
+
qrcode?: boolean;
|
|
15
|
+
} & (({
|
|
16
|
+
version?: '1';
|
|
17
|
+
} & ConstructorParameters<typeof WalletConnectProvider>[0]) | ({
|
|
18
|
+
/**
|
|
19
|
+
* Project ID associated with [WalletConnect account](https://cloud.walletconnect.com)
|
|
20
|
+
*/
|
|
21
|
+
projectId: NonNullable<UniversalProviderOpts['projectId']>;
|
|
22
|
+
version: '2';
|
|
23
|
+
} & Omit<UniversalProviderOpts, 'projectId'>));
|
|
24
|
+
type WalletConnectSigner = providers.JsonRpcSigner;
|
|
25
|
+
declare class WalletConnectConnector extends Connector<WalletConnectProvider | UniversalProvider, WalletConnectOptions, WalletConnectSigner> {
|
|
11
26
|
#private;
|
|
12
27
|
readonly id = "walletConnect";
|
|
13
28
|
readonly name = "WalletConnect";
|
|
@@ -16,6 +31,7 @@ declare class WalletConnectConnector extends Connector<WalletConnectProvider, Wa
|
|
|
16
31
|
chains?: Chain[];
|
|
17
32
|
options: WalletConnectOptions;
|
|
18
33
|
});
|
|
34
|
+
get version(): "1" | "2" | undefined;
|
|
19
35
|
connect({ chainId }?: {
|
|
20
36
|
chainId?: number;
|
|
21
37
|
}): Promise<{
|
|
@@ -32,7 +48,7 @@ declare class WalletConnectConnector extends Connector<WalletConnectProvider, Wa
|
|
|
32
48
|
getProvider({ chainId, create, }?: {
|
|
33
49
|
chainId?: number;
|
|
34
50
|
create?: boolean;
|
|
35
|
-
}): Promise<WalletConnectProvider>;
|
|
51
|
+
}): Promise<_walletconnect_universal_provider.default | WalletConnectProvider>;
|
|
36
52
|
getSigner({ chainId }?: {
|
|
37
53
|
chainId?: number;
|
|
38
54
|
}): Promise<providers.JsonRpcSigner>;
|
|
@@ -40,6 +56,7 @@ declare class WalletConnectConnector extends Connector<WalletConnectProvider, Wa
|
|
|
40
56
|
protected onAccountsChanged: (accounts: string[]) => void;
|
|
41
57
|
protected onChainChanged: (chainId: number | string) => void;
|
|
42
58
|
protected onDisconnect: () => void;
|
|
59
|
+
protected onDisplayUri: (uri: string) => void;
|
|
43
60
|
}
|
|
44
61
|
|
|
45
62
|
export { WalletConnectConnector };
|
package/dist/walletConnect.js
CHANGED
|
@@ -16,11 +16,22 @@ import {
|
|
|
16
16
|
} from "@wagmi/core";
|
|
17
17
|
import { providers } from "ethers";
|
|
18
18
|
import { getAddress, hexValue } from "ethers/lib/utils.js";
|
|
19
|
-
var
|
|
20
|
-
|
|
19
|
+
var defaultV2Config = {
|
|
20
|
+
namespace: "eip155",
|
|
21
|
+
methods: [
|
|
22
|
+
"eth_sendTransaction",
|
|
23
|
+
"eth_sign",
|
|
24
|
+
"eth_signTransaction",
|
|
25
|
+
"eth_signTypedData",
|
|
26
|
+
"personal_sign"
|
|
27
|
+
],
|
|
28
|
+
events: ["accountsChanged", "chainChanged"]
|
|
29
|
+
};
|
|
30
|
+
var _provider, _isChainsAuthorized, isChainsAuthorized_fn, _switchChain, switchChain_fn;
|
|
21
31
|
var WalletConnectConnector = class extends Connector {
|
|
22
32
|
constructor(config) {
|
|
23
33
|
super(config);
|
|
34
|
+
__privateAdd(this, _isChainsAuthorized);
|
|
24
35
|
__privateAdd(this, _switchChain);
|
|
25
36
|
__publicField(this, "id", "walletConnect");
|
|
26
37
|
__publicField(this, "name", "WalletConnect");
|
|
@@ -40,6 +51,14 @@ var WalletConnectConnector = class extends Connector {
|
|
|
40
51
|
__publicField(this, "onDisconnect", () => {
|
|
41
52
|
this.emit("disconnect");
|
|
42
53
|
});
|
|
54
|
+
__publicField(this, "onDisplayUri", (uri) => {
|
|
55
|
+
this.emit("message", { type: "display_uri", data: uri });
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
get version() {
|
|
59
|
+
if ("version" in this.options)
|
|
60
|
+
return this.options.version;
|
|
61
|
+
return "1";
|
|
43
62
|
}
|
|
44
63
|
async connect({ chainId } = {}) {
|
|
45
64
|
try {
|
|
@@ -56,13 +75,69 @@ var WalletConnectConnector = class extends Connector {
|
|
|
56
75
|
provider.on("accountsChanged", this.onAccountsChanged);
|
|
57
76
|
provider.on("chainChanged", this.onChainChanged);
|
|
58
77
|
provider.on("disconnect", this.onDisconnect);
|
|
78
|
+
if (this.version === "2") {
|
|
79
|
+
provider.on("session_delete", this.onDisconnect);
|
|
80
|
+
provider.on("display_uri", this.onDisplayUri);
|
|
81
|
+
const isChainsAuthorized = await __privateMethod(this, _isChainsAuthorized, isChainsAuthorized_fn).call(this);
|
|
82
|
+
if (provider.session && !isChainsAuthorized)
|
|
83
|
+
await provider.disconnect();
|
|
84
|
+
if (!provider.session || provider.session && !isChainsAuthorized) {
|
|
85
|
+
await Promise.race([
|
|
86
|
+
provider.connect({
|
|
87
|
+
namespaces: {
|
|
88
|
+
[defaultV2Config.namespace]: {
|
|
89
|
+
methods: defaultV2Config.methods,
|
|
90
|
+
events: defaultV2Config.events,
|
|
91
|
+
chains: this.chains.map(
|
|
92
|
+
(chain) => `${defaultV2Config.namespace}:${chain.id}`
|
|
93
|
+
),
|
|
94
|
+
rpcMap: this.chains.reduce(
|
|
95
|
+
(rpc, chain) => ({
|
|
96
|
+
...rpc,
|
|
97
|
+
[chain.id]: chain.rpcUrls.default.http[0]
|
|
98
|
+
}),
|
|
99
|
+
{}
|
|
100
|
+
)
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}),
|
|
104
|
+
...this.options.qrcode ? [
|
|
105
|
+
new Promise(
|
|
106
|
+
(_res, reject) => provider.on(
|
|
107
|
+
"display_uri",
|
|
108
|
+
async (uri) => (await import("@walletconnect/qrcode-modal")).default.open(
|
|
109
|
+
uri,
|
|
110
|
+
() => reject(new Error("user rejected"))
|
|
111
|
+
)
|
|
112
|
+
)
|
|
113
|
+
)
|
|
114
|
+
] : []
|
|
115
|
+
]);
|
|
116
|
+
if (this.options.qrcode)
|
|
117
|
+
(await import("@walletconnect/qrcode-modal")).default.close();
|
|
118
|
+
}
|
|
119
|
+
}
|
|
59
120
|
setTimeout(() => this.emit("message", { type: "connecting" }), 0);
|
|
60
|
-
const accounts = await
|
|
121
|
+
const accounts = await Promise.race([
|
|
122
|
+
provider.enable(),
|
|
123
|
+
...this.version === "1" && this.options.qrcode ? [
|
|
124
|
+
new Promise(
|
|
125
|
+
(_res, reject) => provider.connector.on(
|
|
126
|
+
"disconnect",
|
|
127
|
+
() => reject(new Error("user rejected"))
|
|
128
|
+
)
|
|
129
|
+
)
|
|
130
|
+
] : []
|
|
131
|
+
]);
|
|
61
132
|
const account = getAddress(accounts[0]);
|
|
62
133
|
const id = await this.getChainId();
|
|
63
134
|
const unsupported = this.isChainUnsupported(id);
|
|
64
|
-
|
|
65
|
-
|
|
135
|
+
if (this.version === "1") {
|
|
136
|
+
const walletName = provider.connector?.peerMeta?.name ?? "";
|
|
137
|
+
const switchChainAllowedRegex = /(imtoken|metamask|omni|rainbow|trust wallet)/i;
|
|
138
|
+
if (switchChainAllowedRegex.test(walletName))
|
|
139
|
+
this.switchChain = __privateMethod(this, _switchChain, switchChain_fn);
|
|
140
|
+
} else
|
|
66
141
|
this.switchChain = __privateMethod(this, _switchChain, switchChain_fn);
|
|
67
142
|
return {
|
|
68
143
|
account,
|
|
@@ -72,47 +147,82 @@ var WalletConnectConnector = class extends Connector {
|
|
|
72
147
|
)
|
|
73
148
|
};
|
|
74
149
|
} catch (error) {
|
|
75
|
-
if (
|
|
150
|
+
if (this.version === "2" && this.options.qrcode)
|
|
151
|
+
(await import("@walletconnect/qrcode-modal")).default.close();
|
|
152
|
+
if (/user closed modal|user rejected/i.test(
|
|
153
|
+
error?.message
|
|
154
|
+
)) {
|
|
76
155
|
throw new UserRejectedRequestError(error);
|
|
156
|
+
}
|
|
77
157
|
throw error;
|
|
78
158
|
}
|
|
79
159
|
}
|
|
80
160
|
async disconnect() {
|
|
81
161
|
const provider = await this.getProvider();
|
|
82
|
-
|
|
162
|
+
try {
|
|
163
|
+
await provider.disconnect();
|
|
164
|
+
} catch (error) {
|
|
165
|
+
if (!/No matching key/i.test(error.message))
|
|
166
|
+
throw error;
|
|
167
|
+
}
|
|
83
168
|
provider.removeListener("accountsChanged", this.onAccountsChanged);
|
|
84
169
|
provider.removeListener("chainChanged", this.onChainChanged);
|
|
85
170
|
provider.removeListener("disconnect", this.onDisconnect);
|
|
86
|
-
|
|
171
|
+
if (this.version === "1" && typeof localStorage !== "undefined")
|
|
172
|
+
localStorage.removeItem("walletconnect");
|
|
173
|
+
else {
|
|
174
|
+
provider.removeListener("session_delete", this.onDisconnect);
|
|
175
|
+
provider.removeListener("display_uri", this.onDisplayUri);
|
|
176
|
+
}
|
|
87
177
|
}
|
|
88
178
|
async getAccount() {
|
|
89
179
|
const provider = await this.getProvider();
|
|
90
|
-
|
|
180
|
+
let accounts;
|
|
181
|
+
if (this.version === "1")
|
|
182
|
+
accounts = provider.accounts;
|
|
183
|
+
else
|
|
184
|
+
accounts = await provider.request({
|
|
185
|
+
method: "eth_accounts"
|
|
186
|
+
});
|
|
91
187
|
return getAddress(accounts[0]);
|
|
92
188
|
}
|
|
93
189
|
async getChainId() {
|
|
94
190
|
const provider = await this.getProvider();
|
|
95
|
-
|
|
96
|
-
|
|
191
|
+
if (this.version === "1")
|
|
192
|
+
return normalizeChainId(provider.chainId);
|
|
193
|
+
return getClient().data?.chain?.id ?? normalizeChainId(await provider.request({ method: "eth_chainId" }));
|
|
97
194
|
}
|
|
98
195
|
async getProvider({
|
|
99
196
|
chainId,
|
|
100
197
|
create
|
|
101
198
|
} = {}) {
|
|
102
199
|
if (!__privateGet(this, _provider) || chainId || create) {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
rpc
|
|
115
|
-
|
|
200
|
+
if (this.options.version === "2") {
|
|
201
|
+
const WalletConnectProvider = (await import("@walletconnect/universal-provider")).default;
|
|
202
|
+
__privateSet(this, _provider, await WalletConnectProvider.init(
|
|
203
|
+
this.options
|
|
204
|
+
));
|
|
205
|
+
if (chainId)
|
|
206
|
+
__privateGet(this, _provider).setDefaultChain(
|
|
207
|
+
`${defaultV2Config.namespace}:${chainId}`
|
|
208
|
+
);
|
|
209
|
+
return __privateGet(this, _provider);
|
|
210
|
+
} else {
|
|
211
|
+
const rpc = !this.options?.infuraId ? this.chains.reduce(
|
|
212
|
+
(rpc2, chain) => ({
|
|
213
|
+
...rpc2,
|
|
214
|
+
[chain.id]: chain.rpcUrls.default.http[0]
|
|
215
|
+
}),
|
|
216
|
+
{}
|
|
217
|
+
) : {};
|
|
218
|
+
const WalletConnectProvider = (await import("@walletconnect/ethereum-provider")).default;
|
|
219
|
+
__privateSet(this, _provider, new WalletConnectProvider({
|
|
220
|
+
...this.options,
|
|
221
|
+
chainId,
|
|
222
|
+
rpc: { ...rpc, ...this.options?.rpc }
|
|
223
|
+
}));
|
|
224
|
+
return __privateGet(this, _provider);
|
|
225
|
+
}
|
|
116
226
|
}
|
|
117
227
|
return __privateGet(this, _provider);
|
|
118
228
|
}
|
|
@@ -121,21 +231,45 @@ var WalletConnectConnector = class extends Connector {
|
|
|
121
231
|
this.getProvider({ chainId }),
|
|
122
232
|
this.getAccount()
|
|
123
233
|
]);
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
234
|
+
let provider_ = provider;
|
|
235
|
+
if (this.version === "2") {
|
|
236
|
+
const chainId_ = await this.getChainId();
|
|
237
|
+
provider_ = {
|
|
238
|
+
...provider,
|
|
239
|
+
async request(args) {
|
|
240
|
+
return await provider.request(
|
|
241
|
+
args,
|
|
242
|
+
`${defaultV2Config.namespace}:${chainId ?? chainId_}`
|
|
243
|
+
);
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
return new providers.Web3Provider(provider_, chainId).getSigner(account);
|
|
128
248
|
}
|
|
129
249
|
async isAuthorized() {
|
|
130
250
|
try {
|
|
131
|
-
const account = await
|
|
132
|
-
|
|
251
|
+
const [account, isChainsAuthorized] = await Promise.all([
|
|
252
|
+
this.getAccount(),
|
|
253
|
+
__privateMethod(this, _isChainsAuthorized, isChainsAuthorized_fn).call(this)
|
|
254
|
+
]);
|
|
255
|
+
return !!account && isChainsAuthorized;
|
|
133
256
|
} catch {
|
|
134
257
|
return false;
|
|
135
258
|
}
|
|
136
259
|
}
|
|
137
260
|
};
|
|
138
261
|
_provider = new WeakMap();
|
|
262
|
+
_isChainsAuthorized = new WeakSet();
|
|
263
|
+
isChainsAuthorized_fn = async function() {
|
|
264
|
+
const provider = await this.getProvider();
|
|
265
|
+
if (this.version === "1")
|
|
266
|
+
return true;
|
|
267
|
+
const providerChains = provider.namespaces?.[defaultV2Config.namespace]?.chains || [];
|
|
268
|
+
const authorizedChainIds = providerChains.map(
|
|
269
|
+
(chain) => parseInt(chain.split(":")[1] || "")
|
|
270
|
+
);
|
|
271
|
+
return !this.chains.some(({ id }) => !authorizedChainIds.includes(id));
|
|
272
|
+
};
|
|
139
273
|
_switchChain = new WeakSet();
|
|
140
274
|
switchChain_fn = async function(chainId) {
|
|
141
275
|
const provider = await this.getProvider();
|
|
@@ -153,11 +287,18 @@ switchChain_fn = async function(chainId) {
|
|
|
153
287
|
})
|
|
154
288
|
)
|
|
155
289
|
]);
|
|
290
|
+
if (this.version === "2") {
|
|
291
|
+
;
|
|
292
|
+
provider.setDefaultChain(
|
|
293
|
+
`${defaultV2Config.namespace}:${chainId}`
|
|
294
|
+
);
|
|
295
|
+
this.onChainChanged(chainId);
|
|
296
|
+
}
|
|
156
297
|
return this.chains.find((x) => x.id === chainId) ?? {
|
|
157
298
|
id: chainId,
|
|
158
299
|
name: `Chain ${id}`,
|
|
159
300
|
network: `${id}`,
|
|
160
|
-
nativeCurrency: { name: "Ether",
|
|
301
|
+
nativeCurrency: { decimals: 18, name: "Ether", symbol: "ETH" },
|
|
161
302
|
rpcUrls: { default: { http: [""] } }
|
|
162
303
|
};
|
|
163
304
|
} catch (error) {
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@wagmi/connectors",
|
|
3
3
|
"description": "A collection of connectors for wagmi",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"version": "0.1.
|
|
5
|
+
"version": "0.1.3",
|
|
6
6
|
"peerDependencies": {
|
|
7
7
|
"@wagmi/core": "0.8.x",
|
|
8
8
|
"ethers": "^5.0.0"
|
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
"@coinbase/wallet-sdk": "^3.5.4",
|
|
17
17
|
"@ledgerhq/connect-kit-loader": "^1.0.1",
|
|
18
18
|
"@walletconnect/ethereum-provider": "^1.8.0",
|
|
19
|
+
"@walletconnect/qrcode-modal": "^1.8.0",
|
|
20
|
+
"@walletconnect/universal-provider": "^2.1.4",
|
|
19
21
|
"abitype": "^0.1.8",
|
|
20
22
|
"eventemitter3": "^4.0.7"
|
|
21
23
|
},
|