@wagmi/core 2.6.18 → 2.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/dist/esm/actions/switchChain.js +5 -2
- package/dist/esm/actions/switchChain.js.map +1 -1
- package/dist/esm/connectors/createConnector.js.map +1 -1
- package/dist/esm/connectors/injected.js +42 -32
- package/dist/esm/connectors/injected.js.map +1 -1
- package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/types/actions/switchChain.d.ts +3 -2
- package/dist/types/actions/switchChain.d.ts.map +1 -1
- package/dist/types/connectors/createConnector.d.ts +5 -4
- package/dist/types/connectors/createConnector.d.ts.map +1 -1
- package/dist/types/connectors/injected.d.ts +5 -5
- package/dist/types/connectors/injected.d.ts.map +1 -1
- package/dist/types/query/switchChain.d.ts +11 -0
- package/dist/types/query/switchChain.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/version.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/actions/switchChain.ts +10 -3
- package/src/connectors/createConnector.ts +10 -2
- package/src/connectors/injected.ts +51 -36
- package/src/version.ts +1 -1
package/dist/esm/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '2.
|
|
1
|
+
export const version = '2.7.0';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/dist/esm/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAA"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { type SwitchChainErrorType as viem_SwitchChainErrorType, type UserRejectedRequestErrorType } from 'viem';
|
|
1
|
+
import { type AddEthereumChainParameter, type SwitchChainErrorType as viem_SwitchChainErrorType, type UserRejectedRequestErrorType } from 'viem';
|
|
2
2
|
import { type Config } from '../createConfig.js';
|
|
3
3
|
import type { BaseErrorType, ErrorType } from '../errors/base.js';
|
|
4
4
|
import { type ChainNotConfiguredErrorType } from '../errors/config.js';
|
|
5
5
|
import { type ProviderNotFoundErrorType, type SwitchChainNotSupportedErrorType } from '../errors/connector.js';
|
|
6
6
|
import type { ConnectorParameter } from '../types/properties.js';
|
|
7
|
-
import { type Evaluate } from '../types/utils.js';
|
|
7
|
+
import { type Evaluate, type ExactPartial } from '../types/utils.js';
|
|
8
8
|
export type SwitchChainParameters<config extends Config = Config, chainId extends config['chains'][number]['id'] = config['chains'][number]['id']> = Evaluate<ConnectorParameter & {
|
|
9
9
|
chainId: chainId | config['chains'][number]['id'];
|
|
10
|
+
addEthereumChainParameter?: Evaluate<ExactPartial<Omit<AddEthereumChainParameter, 'chainId'>>> | undefined;
|
|
10
11
|
}>;
|
|
11
12
|
export type SwitchChainReturnType<config extends Config = Config, chainId extends config['chains'][number]['id'] = config['chains'][number]['id']> = Extract<config['chains'][number], {
|
|
12
13
|
id: Config extends config ? number : chainId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switchChain.d.ts","sourceRoot":"","sources":["../../../src/actions/switchChain.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,oBAAoB,IAAI,yBAAyB,EACtD,KAAK,4BAA4B,EAClC,MAAM,MAAM,CAAA;AAEb,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,KAAK,yBAAyB,EAE9B,KAAK,gCAAgC,EACtC,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"switchChain.d.ts","sourceRoot":"","sources":["../../../src/actions/switchChain.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,IAAI,yBAAyB,EACtD,KAAK,4BAA4B,EAClC,MAAM,MAAM,CAAA;AAEb,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,KAAK,yBAAyB,EAE9B,KAAK,gCAAgC,EACtC,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEpE,MAAM,MAAM,qBAAqB,CAC/B,MAAM,SAAS,MAAM,GAAG,MAAM,EAC9B,OAAO,SAAS,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAC7E,QAAQ,CACV,kBAAkB,GAAG;IACnB,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAA;IACjD,yBAAyB,CAAC,EACtB,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAC,CAAC,GAClE,SAAS,CAAA;CACd,CACF,CAAA;AAED,MAAM,MAAM,qBAAqB,CAC/B,MAAM,SAAS,MAAM,GAAG,MAAM,EAC9B,OAAO,SAAS,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAC7E,OAAO,CACT,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,EACxB;IAAE,EAAE,EAAE,MAAM,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;CAAE,CACjD,CAAA;AAED,MAAM,MAAM,oBAAoB,GAC5B,gCAAgC,GAChC,2BAA2B,GAE3B,yBAAyB,GACzB,4BAA4B,GAE5B,aAAa,GACb,SAAS,GAET,yBAAyB,CAAA;AAE7B,oDAAoD;AACpD,wBAAsB,WAAW,CAC/B,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAE9C,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,GACjD,OAAO,CAAC,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAqBjD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { type Address, type Chain, type Client, type ProviderConnectInfo, type ProviderMessage } from 'viem';
|
|
1
|
+
import { type AddEthereumChainParameter, type Address, type Chain, type Client, type ProviderConnectInfo, type ProviderMessage } from 'viem';
|
|
2
2
|
import { Emitter } from '../createEmitter.js';
|
|
3
3
|
import { type Storage } from '../createStorage.js';
|
|
4
|
-
import { type Evaluate } from '../types/utils.js';
|
|
4
|
+
import { type Evaluate, type ExactPartial, type Omit } from '../types/utils.js';
|
|
5
5
|
export type ConnectorEventMap = {
|
|
6
6
|
change: {
|
|
7
7
|
accounts?: readonly Address[] | undefined;
|
|
@@ -47,9 +47,10 @@ export type CreateConnectorFn<provider = unknown, properties extends Record<stri
|
|
|
47
47
|
chainId?: number | undefined;
|
|
48
48
|
} | undefined): Promise<Client>;
|
|
49
49
|
isAuthorized(): Promise<boolean>;
|
|
50
|
-
switchChain?(parameters: {
|
|
50
|
+
switchChain?(parameters: Evaluate<{
|
|
51
|
+
addEthereumChainParameter?: ExactPartial<Omit<AddEthereumChainParameter, 'chainId'>> | undefined;
|
|
51
52
|
chainId: number;
|
|
52
|
-
}): Promise<Chain>;
|
|
53
|
+
}>): Promise<Chain>;
|
|
53
54
|
onAccountsChanged(accounts: string[]): void;
|
|
54
55
|
onChainChanged(chainId: string): void;
|
|
55
56
|
onConnect?(connectInfo: ProviderConnectInfo): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createConnector.d.ts","sourceRoot":"","sources":["../../../src/connectors/createConnector.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACrB,MAAM,MAAM,CAAA;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"createConnector.d.ts","sourceRoot":"","sources":["../../../src/connectors/createConnector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type AddEthereumChainParameter, type EIP1193Provider, type ProviderConnectInfo } from 'viem';
|
|
2
2
|
import { type Evaluate } from '../types/utils.js';
|
|
3
3
|
export type InjectedParameters = {
|
|
4
4
|
/**
|
|
@@ -14,8 +14,8 @@ export type InjectedParameters = {
|
|
|
14
14
|
target?: TargetId | Target | (() => Target | undefined) | undefined;
|
|
15
15
|
};
|
|
16
16
|
export declare function injected(parameters?: InjectedParameters): import("./createConnector.js").CreateConnectorFn<{
|
|
17
|
-
on: <TEvent extends keyof EIP1193EventMap>(event: TEvent, listener: EIP1193EventMap[TEvent]) => void;
|
|
18
|
-
removeListener: <TEvent_1 extends keyof EIP1193EventMap>(event: TEvent_1, listener: EIP1193EventMap[TEvent_1]) => void;
|
|
17
|
+
on: <TEvent extends keyof import("viem").EIP1193EventMap>(event: TEvent, listener: import("viem").EIP1193EventMap[TEvent]) => void;
|
|
18
|
+
removeListener: <TEvent_1 extends keyof import("viem").EIP1193EventMap>(event: TEvent_1, listener: import("viem").EIP1193EventMap[TEvent_1]) => void;
|
|
19
19
|
request: import("viem").EIP1193RequestFn<[{
|
|
20
20
|
Method: "web3_clientVersion";
|
|
21
21
|
Parameters?: undefined;
|
|
@@ -179,7 +179,7 @@ export declare function injected(parameters?: InjectedParameters): import("./cre
|
|
|
179
179
|
}, {
|
|
180
180
|
Method: "eth_newPendingTransactionFilter";
|
|
181
181
|
Parameters?: undefined;
|
|
182
|
-
ReturnType: `0x${string}`;
|
|
182
|
+
ReturnType: `0x${string}`;
|
|
183
183
|
}, {
|
|
184
184
|
Method: "eth_protocolVersion";
|
|
185
185
|
Parameters?: undefined;
|
|
@@ -238,7 +238,7 @@ export declare function injected(parameters?: InjectedParameters): import("./cre
|
|
|
238
238
|
ReturnType: `0x${string}`;
|
|
239
239
|
}, {
|
|
240
240
|
Method: "wallet_addEthereumChain";
|
|
241
|
-
Parameters: [chain:
|
|
241
|
+
Parameters: [chain: AddEthereumChainParameter];
|
|
242
242
|
ReturnType: null;
|
|
243
243
|
}, {
|
|
244
244
|
Method: "wallet_getPermissions";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injected.d.ts","sourceRoot":"","sources":["../../../src/connectors/injected.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"injected.d.ts","sourceRoot":"","sources":["../../../src/connectors/injected.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,17 @@ export declare function switchChainMutationOptions<config extends Config>(config
|
|
|
6
6
|
readonly mutationFn: (variables: {
|
|
7
7
|
connector?: import("../createConfig.js").Connector | undefined;
|
|
8
8
|
chainId: config["chains"][number]["id"];
|
|
9
|
+
addEthereumChainParameter?: {
|
|
10
|
+
chainName?: string | undefined;
|
|
11
|
+
nativeCurrency?: {
|
|
12
|
+
name: string;
|
|
13
|
+
symbol: string;
|
|
14
|
+
decimals: number;
|
|
15
|
+
} | undefined;
|
|
16
|
+
rpcUrls?: readonly string[] | undefined;
|
|
17
|
+
blockExplorerUrls?: string[] | undefined;
|
|
18
|
+
iconUrls?: string[] | undefined;
|
|
19
|
+
} | undefined;
|
|
9
20
|
}) => Promise<Extract<config["chains"][number], {
|
|
10
21
|
id: Config extends config ? number : config["chains"][number]["id"];
|
|
11
22
|
}>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switchChain.d.ts","sourceRoot":"","sources":["../../../src/query/switchChain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAwB,MAAM,sBAAsB,CAAA;AAE/E,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAE3B,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEjD,wBAAgB,0BAA0B,CAAC,MAAM,SAAS,MAAM,EAC9D,MAAM,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"switchChain.d.ts","sourceRoot":"","sources":["../../../src/query/switchChain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAwB,MAAM,sBAAsB,CAAA;AAE/E,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAE3B,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEjD,wBAAgB,0BAA0B,CAAC,MAAM,SAAS,MAAM,EAC9D,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;EAYf;AAED,MAAM,MAAM,eAAe,CACzB,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAC5C,QAAQ,CAAC,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAEpD,MAAM,MAAM,oBAAoB,CAC9B,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAC5C,QAAQ,CAAC,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAEpD,MAAM,MAAM,iBAAiB,CAAC,MAAM,SAAS,MAAM,EAAE,OAAO,GAAG,OAAO,IAAI,CACxE,OAAO,SAAS,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAE9C,SAAS,EAAE,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,EAChD,OAAO,CAAC,EACJ,QAAQ,CACN,aAAa,CACX,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,oBAAoB,EACpB,QAAQ,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAC/C,OAAO,CACR,CACF,GACD,SAAS,KACV,IAAI,CAAA;AAET,MAAM,MAAM,sBAAsB,CAAC,MAAM,SAAS,MAAM,EAAE,OAAO,GAAG,OAAO,IAAI,CAC7E,OAAO,SAAS,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAE9C,SAAS,EAAE,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,EAChD,OAAO,CAAC,EACJ,QAAQ,CACN,aAAa,CACX,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,oBAAoB,EACpB,QAAQ,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAC/C,OAAO,CACR,CACF,GACD,SAAS,KACV,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA"}
|
package/dist/types/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "2.
|
|
1
|
+
export declare const version = "2.7.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
+
type AddEthereumChainParameter,
|
|
2
3
|
type SwitchChainErrorType as viem_SwitchChainErrorType,
|
|
3
4
|
type UserRejectedRequestErrorType,
|
|
4
5
|
} from 'viem'
|
|
@@ -15,7 +16,7 @@ import {
|
|
|
15
16
|
type SwitchChainNotSupportedErrorType,
|
|
16
17
|
} from '../errors/connector.js'
|
|
17
18
|
import type { ConnectorParameter } from '../types/properties.js'
|
|
18
|
-
import { type Evaluate } from '../types/utils.js'
|
|
19
|
+
import { type Evaluate, type ExactPartial } from '../types/utils.js'
|
|
19
20
|
|
|
20
21
|
export type SwitchChainParameters<
|
|
21
22
|
config extends Config = Config,
|
|
@@ -23,6 +24,9 @@ export type SwitchChainParameters<
|
|
|
23
24
|
> = Evaluate<
|
|
24
25
|
ConnectorParameter & {
|
|
25
26
|
chainId: chainId | config['chains'][number]['id']
|
|
27
|
+
addEthereumChainParameter?:
|
|
28
|
+
| Evaluate<ExactPartial<Omit<AddEthereumChainParameter, 'chainId'>>>
|
|
29
|
+
| undefined
|
|
26
30
|
}
|
|
27
31
|
>
|
|
28
32
|
|
|
@@ -54,7 +58,7 @@ export async function switchChain<
|
|
|
54
58
|
config: config,
|
|
55
59
|
parameters: SwitchChainParameters<config, chainId>,
|
|
56
60
|
): Promise<SwitchChainReturnType<config, chainId>> {
|
|
57
|
-
const { chainId } = parameters
|
|
61
|
+
const { addEthereumChainParameter, chainId } = parameters
|
|
58
62
|
|
|
59
63
|
const connection = config.state.connections.get(
|
|
60
64
|
parameters.connector?.uid ?? config.state.current!,
|
|
@@ -63,7 +67,10 @@ export async function switchChain<
|
|
|
63
67
|
const connector = connection.connector
|
|
64
68
|
if (!connector.switchChain)
|
|
65
69
|
throw new SwitchChainNotSupportedError({ connector })
|
|
66
|
-
const chain = await connector.switchChain({
|
|
70
|
+
const chain = await connector.switchChain({
|
|
71
|
+
addEthereumChainParameter,
|
|
72
|
+
chainId,
|
|
73
|
+
})
|
|
67
74
|
return chain as SwitchChainReturnType<config, chainId>
|
|
68
75
|
}
|
|
69
76
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
+
type AddEthereumChainParameter,
|
|
2
3
|
type Address,
|
|
3
4
|
type Chain,
|
|
4
5
|
type Client,
|
|
@@ -8,7 +9,7 @@ import {
|
|
|
8
9
|
|
|
9
10
|
import { Emitter } from '../createEmitter.js'
|
|
10
11
|
import { type Storage } from '../createStorage.js'
|
|
11
|
-
import { type Evaluate } from '../types/utils.js'
|
|
12
|
+
import { type Evaluate, type ExactPartial, type Omit } from '../types/utils.js'
|
|
12
13
|
|
|
13
14
|
export type ConnectorEventMap = {
|
|
14
15
|
change: {
|
|
@@ -55,7 +56,14 @@ export type CreateConnectorFn<
|
|
|
55
56
|
parameters?: { chainId?: number | undefined } | undefined,
|
|
56
57
|
): Promise<Client>
|
|
57
58
|
isAuthorized(): Promise<boolean>
|
|
58
|
-
switchChain?(
|
|
59
|
+
switchChain?(
|
|
60
|
+
parameters: Evaluate<{
|
|
61
|
+
addEthereumChainParameter?:
|
|
62
|
+
| ExactPartial<Omit<AddEthereumChainParameter, 'chainId'>>
|
|
63
|
+
| undefined
|
|
64
|
+
chainId: number
|
|
65
|
+
}>,
|
|
66
|
+
): Promise<Chain>
|
|
59
67
|
|
|
60
68
|
onAccountsChanged(accounts: string[]): void
|
|
61
69
|
onChainChanged(chainId: string): void
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
|
+
type AddEthereumChainParameter,
|
|
2
3
|
type Address,
|
|
3
|
-
type EIP1193EventMap,
|
|
4
4
|
type EIP1193Provider,
|
|
5
5
|
type ProviderConnectInfo,
|
|
6
6
|
ProviderRpcError,
|
|
@@ -223,13 +223,13 @@ export function injected(parameters: InjectedParameters = {}) {
|
|
|
223
223
|
currentChainId = chain?.id ?? currentChainId
|
|
224
224
|
}
|
|
225
225
|
|
|
226
|
-
if
|
|
227
|
-
|
|
226
|
+
// Remove disconnected shim if it exists
|
|
227
|
+
if (shimDisconnect)
|
|
228
228
|
await config.storage?.removeItem(`${this.id}.disconnected`)
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
229
|
+
|
|
230
|
+
// Add connected shim if no target exists
|
|
231
|
+
if (!parameters.target)
|
|
232
|
+
await config.storage?.setItem('injected.connected', true)
|
|
233
233
|
|
|
234
234
|
return { accounts, chainId: currentChainId }
|
|
235
235
|
} catch (err) {
|
|
@@ -262,9 +262,10 @@ export function injected(parameters: InjectedParameters = {}) {
|
|
|
262
262
|
// Add shim signalling connector is disconnected
|
|
263
263
|
if (shimDisconnect) {
|
|
264
264
|
await config.storage?.setItem(`${this.id}.disconnected`, true)
|
|
265
|
-
if (!parameters.target)
|
|
266
|
-
await config.storage?.removeItem('injected.connected')
|
|
267
265
|
}
|
|
266
|
+
|
|
267
|
+
if (!parameters.target)
|
|
268
|
+
await config.storage?.removeItem('injected.connected')
|
|
268
269
|
},
|
|
269
270
|
async getAccounts() {
|
|
270
271
|
const provider = await this.getProvider()
|
|
@@ -373,7 +374,7 @@ export function injected(parameters: InjectedParameters = {}) {
|
|
|
373
374
|
return false
|
|
374
375
|
}
|
|
375
376
|
},
|
|
376
|
-
async switchChain({ chainId }) {
|
|
377
|
+
async switchChain({ addEthereumChainParameter, chainId }) {
|
|
377
378
|
const provider = await this.getProvider()
|
|
378
379
|
if (!provider) throw new ProviderNotFoundError()
|
|
379
380
|
|
|
@@ -382,20 +383,26 @@ export function injected(parameters: InjectedParameters = {}) {
|
|
|
382
383
|
|
|
383
384
|
try {
|
|
384
385
|
await Promise.all([
|
|
385
|
-
provider
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
386
|
+
provider
|
|
387
|
+
.request({
|
|
388
|
+
method: 'wallet_switchEthereumChain',
|
|
389
|
+
params: [{ chainId: numberToHex(chainId) }],
|
|
390
|
+
})
|
|
391
|
+
// During `'wallet_switchEthereumChain'`, MetaMask makes a `'net_version'` RPC call to the target chain.
|
|
392
|
+
// If this request fails, MetaMask does not emit the `'chainChanged'` event, but will still switch the chain.
|
|
393
|
+
// To counter this behavior, we request and emit the current chain ID to confirm the chain switch either via
|
|
394
|
+
// this callback or an externally emitted `'chainChanged'` event.
|
|
395
|
+
// https://github.com/MetaMask/metamask-extension/issues/24247
|
|
396
|
+
.then(async () => {
|
|
397
|
+
const currentChainId = await this.getChainId()
|
|
398
|
+
if (currentChainId === chainId)
|
|
399
|
+
config.emitter.emit('change', { chainId })
|
|
400
|
+
}),
|
|
401
|
+
new Promise<void>((resolve) =>
|
|
402
|
+
config.emitter.once('change', ({ chainId: currentChainId }) => {
|
|
403
|
+
if (currentChainId === chainId) resolve()
|
|
404
|
+
}),
|
|
405
|
+
),
|
|
399
406
|
])
|
|
400
407
|
return chain
|
|
401
408
|
} catch (err) {
|
|
@@ -413,23 +420,33 @@ export function injected(parameters: InjectedParameters = {}) {
|
|
|
413
420
|
const { default: blockExplorer, ...blockExplorers } =
|
|
414
421
|
chain.blockExplorers ?? {}
|
|
415
422
|
let blockExplorerUrls
|
|
416
|
-
if (
|
|
423
|
+
if (addEthereumChainParameter?.blockExplorerUrls)
|
|
424
|
+
blockExplorerUrls = addEthereumChainParameter.blockExplorerUrls
|
|
425
|
+
else if (blockExplorer)
|
|
417
426
|
blockExplorerUrls = [
|
|
418
427
|
blockExplorer.url,
|
|
419
428
|
...Object.values(blockExplorers).map((x) => x.url),
|
|
420
429
|
]
|
|
421
430
|
|
|
431
|
+
let rpcUrls
|
|
432
|
+
if (addEthereumChainParameter?.rpcUrls?.length)
|
|
433
|
+
rpcUrls = addEthereumChainParameter.rpcUrls
|
|
434
|
+
else rpcUrls = [chain.rpcUrls.default?.http[0] ?? '']
|
|
435
|
+
|
|
436
|
+
const addEthereumChain = {
|
|
437
|
+
blockExplorerUrls,
|
|
438
|
+
chainId: numberToHex(chainId),
|
|
439
|
+
chainName: addEthereumChainParameter?.chainName ?? chain.name,
|
|
440
|
+
iconUrls: addEthereumChainParameter?.iconUrls,
|
|
441
|
+
nativeCurrency:
|
|
442
|
+
addEthereumChainParameter?.nativeCurrency ??
|
|
443
|
+
chain.nativeCurrency,
|
|
444
|
+
rpcUrls,
|
|
445
|
+
} satisfies AddEthereumChainParameter
|
|
446
|
+
|
|
422
447
|
await provider.request({
|
|
423
448
|
method: 'wallet_addEthereumChain',
|
|
424
|
-
params: [
|
|
425
|
-
{
|
|
426
|
-
chainId: numberToHex(chainId),
|
|
427
|
-
chainName: chain.name,
|
|
428
|
-
nativeCurrency: chain.nativeCurrency,
|
|
429
|
-
rpcUrls: [chain.rpcUrls.default?.http[0] ?? ''],
|
|
430
|
-
blockExplorerUrls,
|
|
431
|
-
},
|
|
432
|
-
],
|
|
449
|
+
params: [addEthereumChain],
|
|
433
450
|
})
|
|
434
451
|
|
|
435
452
|
const currentChainId = await this.getChainId()
|
|
@@ -450,7 +467,6 @@ export function injected(parameters: InjectedParameters = {}) {
|
|
|
450
467
|
}
|
|
451
468
|
},
|
|
452
469
|
async onAccountsChanged(accounts) {
|
|
453
|
-
console.log('[injected] onAccountsChanged', accounts)
|
|
454
470
|
// Disconnect if there are no accounts
|
|
455
471
|
if (accounts.length === 0) this.onDisconnect()
|
|
456
472
|
// Connect if emitter is listening for connect event (e.g. is disconnected and connects through wallet interface)
|
|
@@ -468,7 +484,6 @@ export function injected(parameters: InjectedParameters = {}) {
|
|
|
468
484
|
})
|
|
469
485
|
},
|
|
470
486
|
onChainChanged(chain) {
|
|
471
|
-
console.log('[injected] onChainChanged', chain)
|
|
472
487
|
const chainId = Number(chain)
|
|
473
488
|
config.emitter.emit('change', { chainId })
|
|
474
489
|
},
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '2.
|
|
1
|
+
export const version = '2.7.0'
|