@wagmi/core 2.0.0-alpha.3 → 2.0.0-alpha.4

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.
Files changed (44) hide show
  1. package/dist/esm/actions/connect.js +4 -4
  2. package/dist/esm/actions/connect.js.map +1 -1
  3. package/dist/esm/actions/disconnect.js +3 -3
  4. package/dist/esm/actions/disconnect.js.map +1 -1
  5. package/dist/esm/actions/reconnect.js +9 -5
  6. package/dist/esm/actions/reconnect.js.map +1 -1
  7. package/dist/esm/connectors/createConnector.js +8 -0
  8. package/dist/esm/connectors/createConnector.js.map +1 -0
  9. package/dist/esm/connectors/injected.js +380 -0
  10. package/dist/esm/connectors/injected.js.map +1 -0
  11. package/dist/esm/createConfig.js +40 -27
  12. package/dist/esm/createConfig.js.map +1 -1
  13. package/dist/esm/exports/index.js +4 -3
  14. package/dist/esm/exports/index.js.map +1 -1
  15. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  16. package/dist/esm/version.js +1 -1
  17. package/dist/types/actions/connect.d.ts +1 -1
  18. package/dist/types/actions/connect.d.ts.map +1 -1
  19. package/dist/types/actions/reconnect.d.ts +1 -1
  20. package/dist/types/actions/reconnect.d.ts.map +1 -1
  21. package/dist/types/{createConnector.d.ts → connectors/createConnector.d.ts} +5 -3
  22. package/dist/types/connectors/createConnector.d.ts.map +1 -0
  23. package/dist/types/connectors/injected.d.ts +345 -0
  24. package/dist/types/connectors/injected.d.ts.map +1 -0
  25. package/dist/types/createConfig.d.ts +8 -12
  26. package/dist/types/createConfig.d.ts.map +1 -1
  27. package/dist/types/exports/index.d.ts +2 -1
  28. package/dist/types/exports/index.d.ts.map +1 -1
  29. package/dist/types/query/connect.d.ts +1 -1
  30. package/dist/types/query/getWalletClient.d.ts +10 -10
  31. package/dist/types/query/signTypedData.d.ts +8 -8
  32. package/dist/types/version.d.ts +1 -1
  33. package/package.json +2 -1
  34. package/src/actions/connect.ts +4 -4
  35. package/src/actions/disconnect.ts +3 -3
  36. package/src/actions/reconnect.ts +9 -5
  37. package/src/{createConnector.ts → connectors/createConnector.ts} +7 -4
  38. package/src/connectors/injected.ts +533 -0
  39. package/src/createConfig.ts +60 -42
  40. package/src/exports/index.ts +14 -9
  41. package/src/version.ts +1 -1
  42. package/dist/esm/createConnector.js +0 -8
  43. package/dist/esm/createConnector.js.map +0 -1
  44. package/dist/types/createConnector.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { ResourceUnavailableRpcError, UserRejectedRequestError } from 'viem';
2
2
  import {} from 'viem';
3
+ import {} from '../connectors/createConnector.js';
3
4
  import {} from '../createConfig.js';
4
- import {} from '../createConnector.js';
5
5
  import { ConnectorAlreadyConnectedError } from '../errors/config.js';
6
6
  /** https://alpha.wagmi.sh/core/api/actions/connect */
7
7
  export async function connect(config, parameters) {
@@ -20,9 +20,9 @@ export async function connect(config, parameters) {
20
20
  connector.emitter.emit('message', { type: 'connecting' });
21
21
  const data = await connector.connect({ chainId: parameters.chainId });
22
22
  const accounts = data.accounts;
23
- connector.emitter.off('connect', config._internal.connect);
24
- connector.emitter.on('change', config._internal.change);
25
- connector.emitter.on('disconnect', config._internal.disconnect);
23
+ connector.emitter.off('connect', config._internal.events.connect);
24
+ connector.emitter.on('change', config._internal.events.change);
25
+ connector.emitter.on('disconnect', config._internal.events.disconnect);
26
26
  await config.storage?.setItem('recentConnectorId', connector.id);
27
27
  config.setState((x) => ({
28
28
  ...x,
@@ -1 +1 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/actions/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,MAAM,MAAM,CAAA;AAC5E,OAAO,EAAgB,MAAM,MAAM,CAAA;AAEnC,OAAO,EAA+B,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAA0B,MAAM,uBAAuB,CAAA;AAE9D,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAA;AA0BpE,sDAAsD;AACtD,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAc,EACd,UAAqC;IAErC,8CAA8C;IAC9C,IAAI,SAAoB,CAAA;IACxB,IAAI,OAAO,UAAU,CAAC,SAAS,KAAK,UAAU,EAAE;QAC9C,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;KACpE;;QAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAA;IAEvC,0CAA0C;IAC1C,IAAI,SAAS,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO;QACxC,MAAM,IAAI,8BAA8B,EAAE,CAAA;IAE5C,IAAI;QACF,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAA;QACxD,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAA;QAEzD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAA;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA4C,CAAA;QAElE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAC1D,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QACvD,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QAE/D,MAAM,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,mBAAmB,EAAE,SAAS,CAAC,EAAE,CAAC,CAAA;QAChE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtB,GAAG,CAAC;YACJ,WAAW,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;gBACrD,QAAQ;gBACR,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,SAAS,EAAE,SAAS;aACrB,CAAC;YACF,OAAO,EAAE,SAAS,CAAC,GAAG;YACtB,MAAM,EAAE,WAAW;SACpB,CAAC,CAAC,CAAA;QAEH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAA;KAC3C;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtB,GAAG,CAAC;YACJ,qDAAqD;YACrD,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc;SACjD,CAAC,CAAC,CAAA;QACH,MAAM,KAAK,CAAA;KACZ;AACH,CAAC"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/actions/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,MAAM,MAAM,CAAA;AAC5E,OAAO,EAAgB,MAAM,MAAM,CAAA;AAEnC,OAAO,EAA0B,MAAM,kCAAkC,CAAA;AACzE,OAAO,EAA+B,MAAM,oBAAoB,CAAA;AAEhE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAA;AA0BpE,sDAAsD;AACtD,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAc,EACd,UAAqC;IAErC,8CAA8C;IAC9C,IAAI,SAAoB,CAAA;IACxB,IAAI,OAAO,UAAU,CAAC,SAAS,KAAK,UAAU,EAAE;QAC9C,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;KACpE;;QAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAA;IAEvC,0CAA0C;IAC1C,IAAI,SAAS,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO;QACxC,MAAM,IAAI,8BAA8B,EAAE,CAAA;IAE5C,IAAI;QACF,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAA;QACxD,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAA;QAEzD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAA;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA4C,CAAA;QAElE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACjE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC9D,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAEtE,MAAM,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,mBAAmB,EAAE,SAAS,CAAC,EAAE,CAAC,CAAA;QAChE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtB,GAAG,CAAC;YACJ,WAAW,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;gBACrD,QAAQ;gBACR,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,SAAS,EAAE,SAAS;aACrB,CAAC;YACF,OAAO,EAAE,SAAS,CAAC,GAAG;YACtB,MAAM,EAAE,WAAW;SACpB,CAAC,CAAC,CAAA;QAEH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAA;KAC3C;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtB,GAAG,CAAC;YACJ,qDAAqD;YACrD,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc;SACjD,CAAC,CAAC,CAAA;QACH,MAAM,KAAK,CAAA;KACZ;AACH,CAAC"}
@@ -16,9 +16,9 @@ export async function disconnect(config, parameters = {}) {
16
16
  if (!connections.has(connector.uid))
17
17
  throw new ConnectorNotConnectedError();
18
18
  await connector.disconnect();
19
- connector.emitter.off('change', config._internal.change);
20
- connector.emitter.off('disconnect', config._internal.disconnect);
21
- connector.emitter.on('connect', config._internal.connect);
19
+ connector.emitter.off('change', config._internal.events.change);
20
+ connector.emitter.off('disconnect', config._internal.events.disconnect);
21
+ connector.emitter.on('connect', config._internal.events.connect);
22
22
  connections.delete(connector.uid);
23
23
  config.setState((x) => {
24
24
  // if no connections exist, move to disconnected state
@@ -1 +1 @@
1
- {"version":3,"file":"disconnect.js","sourceRoot":"","sources":["../../../src/actions/disconnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,qBAAqB,CAAA;AAS5B,yDAAyD;AACzD,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAc,EACd,aAAmC,EAAE;IAErC,IAAI,SAAgC,CAAA;IACpC,IAAI,UAAU,CAAC,SAAS;QAAE,SAAS,GAAG,UAAU,CAAC,SAAS,CAAA;SACrD;QACH,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,KAAK,CAAA;QAC7C,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,OAAQ,CAAC,CAAA;QAC5C,SAAS,GAAG,UAAU,EAAE,SAAS,CAAA;KAClC;IAED,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,sBAAsB,EAAE,CAAA;IAClD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAA;IAC5C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,0BAA0B,EAAE,CAAA;IAE3E,MAAM,SAAS,CAAC,UAAU,EAAE,CAAA;IAC5B,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IACxD,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;IAChE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAEzD,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IAEjC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE;QACpB,sDAAsD;QACtD,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC;YACxB,OAAO;gBACL,GAAG,CAAC;gBACJ,WAAW,EAAE,IAAI,GAAG,EAAE;gBACtB,OAAO,EAAE,SAAS;gBAClB,MAAM,EAAE,cAAc;aACvB,CAAA;QAEH,oCAAoC;QACpC,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAmB,CAAA;QACtE,OAAO;YACL,GAAG,CAAC;YACJ,WAAW,EAAE,IAAI,GAAG,CAAC,WAAW,CAAC;YACjC,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,GAAG;SACtC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,iCAAiC;IACjC;QACE,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAA;QACpC,IAAI,CAAC,OAAO;YAAE,OAAM;QACpB,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;QAClE,IAAI,CAAC,SAAS;YAAE,OAAM;QACtB,MAAM,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,mBAAmB,EAAE,SAAS,CAAC,EAAE,CAAC,CAAA;KACjE;AACH,CAAC"}
1
+ {"version":3,"file":"disconnect.js","sourceRoot":"","sources":["../../../src/actions/disconnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,qBAAqB,CAAA;AAS5B,yDAAyD;AACzD,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAc,EACd,aAAmC,EAAE;IAErC,IAAI,SAAgC,CAAA;IACpC,IAAI,UAAU,CAAC,SAAS;QAAE,SAAS,GAAG,UAAU,CAAC,SAAS,CAAA;SACrD;QACH,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,KAAK,CAAA;QAC7C,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,OAAQ,CAAC,CAAA;QAC5C,SAAS,GAAG,UAAU,EAAE,SAAS,CAAA;KAClC;IAED,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,sBAAsB,EAAE,CAAA;IAClD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAA;IAC5C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,0BAA0B,EAAE,CAAA;IAE3E,MAAM,SAAS,CAAC,UAAU,EAAE,CAAA;IAC5B,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC/D,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACvE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAEhE,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IAEjC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE;QACpB,sDAAsD;QACtD,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC;YACxB,OAAO;gBACL,GAAG,CAAC;gBACJ,WAAW,EAAE,IAAI,GAAG,EAAE;gBACtB,OAAO,EAAE,SAAS;gBAClB,MAAM,EAAE,cAAc;aACvB,CAAA;QAEH,oCAAoC;QACpC,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAmB,CAAA;QACtE,OAAO;YACL,GAAG,CAAC;YACJ,WAAW,EAAE,IAAI,GAAG,CAAC,WAAW,CAAC;YACjC,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,GAAG;SACtC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,iCAAiC;IACjC;QACE,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAA;QACpC,IAAI,CAAC,OAAO;YAAE,OAAM;QACpB,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;QAClE,IAAI,CAAC,SAAS;YAAE,OAAM;QACtB,MAAM,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,mBAAmB,EAAE,SAAS,CAAC,EAAE,CAAC,CAAA;KACjE;AACH,CAAC"}
@@ -1,4 +1,4 @@
1
- import {} from '../createConnector.js';
1
+ import {} from '../connectors/createConnector.js';
2
2
  let isReconnecting = false;
3
3
  /** https://alpha.wagmi.sh/core/api/actions/reconnect */
4
4
  export async function reconnect(config, parameters = {}) {
@@ -43,10 +43,14 @@ export async function reconnect(config, parameters = {}) {
43
43
  const isAuthorized = await connector.isAuthorized();
44
44
  if (!isAuthorized)
45
45
  continue;
46
- const data = await connector.connect();
47
- connector.emitter.off('connect', config._internal.connect);
48
- connector.emitter.on('change', config._internal.change);
49
- connector.emitter.on('disconnect', config._internal.disconnect);
46
+ const data = await connector
47
+ .connect({ isReconnecting: true })
48
+ .catch(() => null);
49
+ if (!data)
50
+ continue;
51
+ connector.emitter.off('connect', config._internal.events.connect);
52
+ connector.emitter.on('change', config._internal.events.change);
53
+ connector.emitter.on('disconnect', config._internal.events.disconnect);
50
54
  config.setState((x) => {
51
55
  const connections = new Map(connected ? x.connections : new Map()).set(connector.uid, { accounts: data.accounts, chainId: data.chainId, connector });
52
56
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"reconnect.js","sourceRoot":"","sources":["../../../src/actions/reconnect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reconnect.js","sourceRoot":"","sources":["../../../src/actions/reconnect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import {} from 'viem';
2
+ import { Emitter } from '../createEmitter.js';
3
+ import {} from '../createStorage.js';
4
+ import {} from '../types/utils.js';
5
+ export function createConnector(fn) {
6
+ return fn;
7
+ }
8
+ //# sourceMappingURL=createConnector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createConnector.js","sourceRoot":"","sources":["../../../src/connectors/createConnector.ts"],"names":[],"mappings":"AAAA,OAAO,EAMN,MAAM,MAAM,CAAA;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAgB,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAiB,MAAM,mBAAmB,CAAA;AAwDjD,MAAM,UAAU,eAAe,CAI7B,EAAwD;IACxD,OAAO,EAAE,CAAA;AACX,CAAC"}
@@ -0,0 +1,380 @@
1
+ import { ProviderRpcError, ResourceUnavailableRpcError, RpcError, SwitchChainError, UserRejectedRequestError, getAddress, numberToHex, } from 'viem';
2
+ import { ChainNotConfiguredError } from '../errors/config.js';
3
+ import { ProviderNotFoundError } from '../errors/connector.js';
4
+ import { normalizeChainId } from '../utils/normalizeChainId.js';
5
+ import { createConnector } from './createConnector.js';
6
+ const targetMap = {
7
+ coinbaseWallet: {
8
+ id: 'coinbaseWallet',
9
+ name: 'Coinbase Wallet',
10
+ provider(window) {
11
+ if (window?.coinbaseWalletExtension)
12
+ return window.coinbaseWalletExtension;
13
+ return findProvider(window, 'isCoinbaseWallet');
14
+ },
15
+ },
16
+ metaMask: {
17
+ id: 'metaMask',
18
+ name: 'MetaMask',
19
+ provider(window) {
20
+ return findProvider(window, (provider) => {
21
+ if (!provider.isMetaMask)
22
+ return false;
23
+ // Brave tries to make itself look like MetaMask
24
+ // Could also try RPC `web3_clientVersion` if following is unreliable
25
+ if (provider.isBraveWallet && !provider._events && !provider._state)
26
+ return false;
27
+ // Other wallets that try to look like MetaMask
28
+ const flags = [
29
+ 'isApexWallet',
30
+ 'isAvalanche',
31
+ 'isBitKeep',
32
+ 'isBlockWallet',
33
+ 'isKuCoinWallet',
34
+ 'isMathWallet',
35
+ 'isOkxWallet',
36
+ 'isOKExWallet',
37
+ 'isOneInchIOSWallet',
38
+ 'isOneInchAndroidWallet',
39
+ 'isOpera',
40
+ 'isPortal',
41
+ 'isRabby',
42
+ 'isTokenPocket',
43
+ 'isTokenary',
44
+ 'isZerion',
45
+ ];
46
+ for (const flag of flags)
47
+ if (provider[flag])
48
+ return false;
49
+ return true;
50
+ });
51
+ },
52
+ },
53
+ phantom: {
54
+ id: 'phantom',
55
+ name: 'Phantom',
56
+ provider(window) {
57
+ if (window?.phantom?.ethereum)
58
+ return window.phantom?.ethereum;
59
+ return findProvider(window, 'isPhantom');
60
+ },
61
+ },
62
+ };
63
+ export function injected(parameters = {}) {
64
+ const { shimDisconnect = true, unstable_shimAsyncInject } = parameters;
65
+ function getTarget() {
66
+ const target = parameters.target;
67
+ if (typeof target === 'function') {
68
+ const result = target();
69
+ if (result)
70
+ return result;
71
+ }
72
+ if (typeof target === 'object')
73
+ return target;
74
+ if (typeof target === 'string')
75
+ return {
76
+ ...(targetMap[target] ?? {
77
+ id: target,
78
+ name: `${target[0].toUpperCase()}${target.slice(1)}`,
79
+ provider: `is${target[0].toUpperCase()}${target.slice(1)}`,
80
+ }),
81
+ };
82
+ return {
83
+ id: 'injected',
84
+ name: 'Injected',
85
+ provider(window) {
86
+ return window?.ethereum;
87
+ },
88
+ };
89
+ }
90
+ return createConnector((config) => ({
91
+ get icon() {
92
+ return getTarget().icon;
93
+ },
94
+ get id() {
95
+ return getTarget().id;
96
+ },
97
+ get name() {
98
+ return getTarget().name;
99
+ },
100
+ async setup() {
101
+ const provider = await this.getProvider();
102
+ // Only start listening for events if `target` is set, otherwise `injected()` will also receive events
103
+ if (provider && parameters.target) {
104
+ provider.on('connect', this.onConnect.bind(this));
105
+ }
106
+ },
107
+ async connect({ chainId, isReconnecting } = {}) {
108
+ const provider = await this.getProvider();
109
+ if (!provider)
110
+ throw new ProviderNotFoundError();
111
+ let accounts = null;
112
+ if (!isReconnecting) {
113
+ accounts = await this.getAccounts().catch(() => null);
114
+ const isAuthorized = !!accounts?.length;
115
+ if (isAuthorized)
116
+ // Attempt to show another prompt for selecting connector if already connected
117
+ try {
118
+ const permissions = await provider.request({
119
+ method: 'wallet_requestPermissions',
120
+ params: [{ eth_accounts: {} }],
121
+ });
122
+ accounts = permissions[0]?.caveats?.[0]?.value?.map(getAddress);
123
+ }
124
+ catch (err) {
125
+ const error = err;
126
+ // Not all injected providers support `wallet_requestPermissions` (e.g. MetaMask iOS).
127
+ // Only bubble up error if user rejects request
128
+ if (error.code === UserRejectedRequestError.code)
129
+ throw new UserRejectedRequestError(error);
130
+ // Or prompt is already open
131
+ if (error.code === ResourceUnavailableRpcError.code)
132
+ throw error;
133
+ }
134
+ }
135
+ try {
136
+ if (!accounts?.length) {
137
+ const requestedAccounts = await provider.request({
138
+ method: 'eth_requestAccounts',
139
+ });
140
+ accounts = requestedAccounts.map(getAddress);
141
+ }
142
+ provider.removeListener('connect', this.onConnect.bind(this));
143
+ provider.on('accountsChanged', this.onAccountsChanged.bind(this));
144
+ provider.on('chainChanged', this.onChainChanged);
145
+ provider.on('disconnect', this.onDisconnect.bind(this));
146
+ // Switch to chain if provided
147
+ let currentChainId = await this.getChainId();
148
+ if (chainId && currentChainId !== chainId) {
149
+ const chain = await this.switchChain?.({ chainId }).catch(() => ({
150
+ id: currentChainId,
151
+ }));
152
+ currentChainId = chain?.id ?? currentChainId;
153
+ }
154
+ // Remove disconnected shim if it exists
155
+ if (shimDisconnect)
156
+ await config.storage?.removeItem(`${this.id}.disconnected`);
157
+ return { accounts, chainId: currentChainId };
158
+ }
159
+ catch (err) {
160
+ const error = err;
161
+ if (error.code === UserRejectedRequestError.code)
162
+ throw new UserRejectedRequestError(error);
163
+ if (error.code === ResourceUnavailableRpcError.code)
164
+ throw new ResourceUnavailableRpcError(error);
165
+ throw error;
166
+ }
167
+ },
168
+ async disconnect() {
169
+ const provider = await this.getProvider();
170
+ if (!provider)
171
+ throw new ProviderNotFoundError();
172
+ provider.removeListener('accountsChanged', this.onAccountsChanged.bind(this));
173
+ provider.removeListener('chainChanged', this.onChainChanged);
174
+ provider.removeListener('disconnect', this.onDisconnect.bind(this));
175
+ provider.on('connect', this.onConnect.bind(this));
176
+ // Add shim signalling connector is disconnected
177
+ if (shimDisconnect)
178
+ await config.storage?.setItem(`${this.id}.disconnected`, true);
179
+ },
180
+ async getAccounts() {
181
+ const provider = await this.getProvider();
182
+ if (!provider)
183
+ throw new ProviderNotFoundError();
184
+ const accounts = await provider.request({ method: 'eth_accounts' });
185
+ return accounts.map(getAddress);
186
+ },
187
+ async getChainId() {
188
+ const provider = await this.getProvider();
189
+ if (!provider)
190
+ throw new ProviderNotFoundError();
191
+ const hexChainId = await provider.request({ method: 'eth_chainId' });
192
+ return normalizeChainId(hexChainId);
193
+ },
194
+ async getProvider() {
195
+ if (typeof window === 'undefined')
196
+ return undefined;
197
+ const target = getTarget();
198
+ if (typeof target.provider === 'function')
199
+ return target.provider(window);
200
+ if (typeof target.provider === 'string')
201
+ return findProvider(window, target.provider);
202
+ return target.provider;
203
+ },
204
+ async isAuthorized() {
205
+ try {
206
+ const isDisconnected = shimDisconnect &&
207
+ // If shim exists in storage, connector is disconnected
208
+ (await config.storage?.getItem(`${this.id}.disconnected`));
209
+ if (isDisconnected)
210
+ return false;
211
+ const provider = await this.getProvider();
212
+ if (!provider) {
213
+ if (unstable_shimAsyncInject !== undefined &&
214
+ unstable_shimAsyncInject !== false) {
215
+ // If no provider is found, check for async injection
216
+ // https://github.com/wagmi-dev/references/issues/167
217
+ // https://github.com/MetaMask/detect-provider
218
+ const handleEthereum = async () => {
219
+ if (typeof window !== 'undefined')
220
+ window.removeEventListener('ethereum#initialized', handleEthereum);
221
+ const provider = await this.getProvider();
222
+ return !!provider;
223
+ };
224
+ const timeout = typeof unstable_shimAsyncInject === 'number'
225
+ ? unstable_shimAsyncInject
226
+ : 1000;
227
+ const res = await Promise.race([
228
+ ...(typeof window !== 'undefined'
229
+ ? [
230
+ new Promise((resolve) => window.addEventListener('ethereum#initialized', () => resolve(handleEthereum()), { once: true })),
231
+ ]
232
+ : []),
233
+ new Promise((resolve) => setTimeout(() => resolve(handleEthereum()), timeout)),
234
+ ]);
235
+ if (res)
236
+ return true;
237
+ }
238
+ throw new ProviderNotFoundError();
239
+ }
240
+ const accounts = await this.getAccounts();
241
+ return !!accounts.length;
242
+ }
243
+ catch {
244
+ return false;
245
+ }
246
+ },
247
+ async switchChain({ chainId }) {
248
+ const provider = await this.getProvider();
249
+ if (!provider)
250
+ throw new ProviderNotFoundError();
251
+ const chain = config.chains.find((x) => x.id === chainId);
252
+ if (!chain)
253
+ throw new SwitchChainError(new ChainNotConfiguredError());
254
+ const id = numberToHex(chainId);
255
+ try {
256
+ await Promise.all([
257
+ provider.request({
258
+ method: 'wallet_switchEthereumChain',
259
+ params: [{ chainId: id }],
260
+ }),
261
+ new Promise((resolve) => config.emitter.once('change', ({ chainId: currentChainId }) => {
262
+ if (currentChainId === chainId)
263
+ resolve();
264
+ })),
265
+ ]);
266
+ return chain;
267
+ }
268
+ catch (err) {
269
+ const error = err;
270
+ // Indicates chain is not added to provider
271
+ if (error.code === 4902 ||
272
+ // Unwrapping for MetaMask Mobile
273
+ // https://github.com/MetaMask/metamask-mobile/issues/2944#issuecomment-976988719
274
+ error
275
+ ?.data?.originalError?.code === 4902) {
276
+ try {
277
+ const { default: blockExplorer, ...blockExplorers } = chain.blockExplorers ?? {};
278
+ let blockExplorerUrls = [];
279
+ if (blockExplorer)
280
+ blockExplorerUrls = [
281
+ blockExplorer.url,
282
+ ...Object.values(blockExplorers).map((x) => x.url),
283
+ ];
284
+ await provider.request({
285
+ method: 'wallet_addEthereumChain',
286
+ params: [
287
+ {
288
+ chainId: id,
289
+ chainName: chain.name,
290
+ nativeCurrency: chain.nativeCurrency,
291
+ rpcUrls: [chain.rpcUrls.public?.http[0] ?? ''],
292
+ blockExplorerUrls,
293
+ },
294
+ ],
295
+ });
296
+ const currentChainId = await this.getChainId();
297
+ if (currentChainId !== chainId)
298
+ throw new UserRejectedRequestError(new Error('User rejected switch after adding network.'));
299
+ return chain;
300
+ }
301
+ catch (error) {
302
+ throw new UserRejectedRequestError(error);
303
+ }
304
+ }
305
+ if (error.code === UserRejectedRequestError.code)
306
+ throw new UserRejectedRequestError(error);
307
+ throw new SwitchChainError(error);
308
+ }
309
+ },
310
+ async onAccountsChanged(accounts) {
311
+ // Disconnect if there are no accounts
312
+ if (accounts.length === 0)
313
+ this.onDisconnect();
314
+ // Connect if emitter is listening for connect event (e.g. is disconnected and connects through wallet interface)
315
+ else if (config.emitter.listenerCount('connect')) {
316
+ const chainId = (await this.getChainId()).toString();
317
+ this.onConnect({ chainId });
318
+ // Remove disconnected shim if it exists
319
+ if (shimDisconnect)
320
+ await config.storage?.removeItem(`${this.id}.disconnected`);
321
+ }
322
+ // Regular change event
323
+ else
324
+ config.emitter.emit('change', { accounts: accounts.map(getAddress) });
325
+ },
326
+ onChainChanged(chain) {
327
+ const chainId = normalizeChainId(chain);
328
+ config.emitter.emit('change', { chainId });
329
+ },
330
+ async onConnect(connectInfo) {
331
+ const accounts = await this.getAccounts();
332
+ if (accounts.length === 0)
333
+ return;
334
+ const chainId = normalizeChainId(connectInfo.chainId);
335
+ config.emitter.emit('connect', { accounts, chainId });
336
+ const provider = await this.getProvider();
337
+ if (provider) {
338
+ provider.removeListener('connect', this.onConnect.bind(this));
339
+ provider.on('accountsChanged', this.onAccountsChanged.bind(this));
340
+ provider.on('chainChanged', this.onChainChanged);
341
+ provider.on('disconnect', this.onDisconnect.bind(this));
342
+ }
343
+ },
344
+ async onDisconnect(error) {
345
+ const provider = await this.getProvider();
346
+ // If MetaMask emits a `code: 1013` error, wait for reconnection before disconnecting
347
+ // https://github.com/MetaMask/providers/pull/120
348
+ if (error && error.code === 1013) {
349
+ if (provider && !!(await this.getAccounts()).length)
350
+ return;
351
+ }
352
+ // No need to remove `${this.id}.disconnected` from storage because `onDisconnect` is typically
353
+ // only called when the wallet is disconnected through the wallet's interface, meaning the wallet
354
+ // actually disconnected and we don't need to simulate it.
355
+ config.emitter.emit('disconnect');
356
+ if (provider) {
357
+ provider.removeListener('accountsChanged', this.onAccountsChanged.bind(this));
358
+ provider.removeListener('chainChanged', this.onChainChanged);
359
+ provider.removeListener('disconnect', this.onDisconnect.bind(this));
360
+ provider.on('connect', this.onConnect.bind(this));
361
+ }
362
+ },
363
+ }));
364
+ }
365
+ function findProvider(window, select) {
366
+ function isProvider(provider) {
367
+ if (typeof select === 'function')
368
+ return select(provider);
369
+ if (typeof select === 'string')
370
+ return provider[select];
371
+ return true;
372
+ }
373
+ const ethereum = window.ethereum;
374
+ if (ethereum?.providers)
375
+ return ethereum.providers.find((provider) => isProvider(provider));
376
+ if (ethereum && isProvider(ethereum))
377
+ return ethereum;
378
+ return undefined;
379
+ }
380
+ //# sourceMappingURL=injected.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injected.js","sourceRoot":"","sources":["../../../src/connectors/injected.ts"],"names":[],"mappings":"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"}