@dynamic-labs/ethereum 0.19.0-alpha.2 → 0.19.0-alpha.21

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 (118) hide show
  1. package/CHANGELOG.md +293 -0
  2. package/package.json +13 -10
  3. package/src/EthWalletConnector.cjs +189 -193
  4. package/src/EthWalletConnector.d.ts +298 -41
  5. package/src/EthWalletConnector.js +190 -194
  6. package/src/coinbase/client/client.cjs +76 -0
  7. package/src/coinbase/client/client.d.ts +6 -0
  8. package/src/coinbase/client/client.js +69 -0
  9. package/src/coinbase/client/index.d.ts +2 -0
  10. package/src/coinbase/client/types.d.ts +14 -0
  11. package/src/coinbase/coinbase.cjs +71 -0
  12. package/src/coinbase/coinbase.d.ts +535 -0
  13. package/src/coinbase/coinbase.js +67 -0
  14. package/src/coinbase/index.d.ts +3 -0
  15. package/src/constants.d.ts +1 -1
  16. package/src/ethProviderHelper.cjs +132 -209
  17. package/src/ethProviderHelper.d.ts +28 -36
  18. package/src/ethProviderHelper.js +133 -210
  19. package/src/index.cjs +30 -26
  20. package/src/index.d.ts +9 -8
  21. package/src/index.js +25 -20
  22. package/src/injected/BloctoInjected.cjs +6 -6
  23. package/src/injected/BloctoInjected.d.ts +4 -4
  24. package/src/injected/BloctoInjected.js +6 -6
  25. package/src/injected/BraveEvm.cjs +6 -6
  26. package/src/injected/BraveEvm.d.ts +4 -4
  27. package/src/injected/BraveEvm.js +6 -6
  28. package/src/injected/Dawn.cjs +6 -6
  29. package/src/injected/Dawn.d.ts +4 -4
  30. package/src/injected/Dawn.js +6 -6
  31. package/src/injected/ExodusEvm.cjs +8 -8
  32. package/src/injected/ExodusEvm.d.ts +5 -5
  33. package/src/injected/ExodusEvm.js +7 -7
  34. package/src/injected/Frame.cjs +6 -6
  35. package/src/injected/Frame.d.ts +4 -4
  36. package/src/injected/Frame.js +6 -6
  37. package/src/injected/GameStop.cjs +6 -6
  38. package/src/injected/GameStop.d.ts +4 -4
  39. package/src/injected/GameStop.js +6 -6
  40. package/src/injected/InjectedWalletBase.cjs +86 -65
  41. package/src/injected/InjectedWalletBase.d.ts +29 -24
  42. package/src/injected/InjectedWalletBase.js +86 -65
  43. package/src/injected/LegacyInjectedWalletBase.cjs +83 -0
  44. package/src/injected/LegacyInjectedWalletBase.d.ts +24 -0
  45. package/src/injected/LegacyInjectedWalletBase.js +81 -0
  46. package/src/injected/Opera.cjs +6 -6
  47. package/src/injected/Opera.d.ts +4 -4
  48. package/src/injected/Opera.js +6 -6
  49. package/src/injected/PhantomEvm.cjs +28 -28
  50. package/src/injected/PhantomEvm.d.ts +5 -5
  51. package/src/injected/PhantomEvm.js +28 -28
  52. package/src/injected/Rabby.cjs +8 -8
  53. package/src/injected/Rabby.d.ts +5 -5
  54. package/src/injected/Rabby.js +7 -7
  55. package/src/injected/Superb.cjs +6 -6
  56. package/src/injected/Superb.d.ts +4 -4
  57. package/src/injected/Superb.js +6 -6
  58. package/src/injected/Trust.cjs +8 -8
  59. package/src/injected/Trust.d.ts +5 -5
  60. package/src/injected/Trust.js +7 -7
  61. package/src/injected/Zerion.cjs +8 -8
  62. package/src/injected/Zerion.d.ts +5 -5
  63. package/src/injected/Zerion.js +7 -7
  64. package/src/injected/fetchInjectedWalletConnectors.cjs +33 -0
  65. package/src/injected/fetchInjectedWalletConnectors.d.ts +6 -0
  66. package/src/injected/fetchInjectedWalletConnectors.js +29 -0
  67. package/src/injected/index.d.ts +13 -16
  68. package/src/injected/legacyInjectedWallets.cjs +48 -0
  69. package/src/injected/legacyInjectedWallets.d.ts +3 -0
  70. package/src/injected/legacyInjectedWallets.js +43 -0
  71. package/src/legacyEthProviderHelper.cjs +187 -0
  72. package/src/legacyEthProviderHelper.d.ts +34 -0
  73. package/src/legacyEthProviderHelper.js +183 -0
  74. package/src/polyfills.cjs +11 -11
  75. package/src/polyfills.d.ts +1 -1
  76. package/src/polyfills.js +11 -11
  77. package/src/types.d.ts +37 -24
  78. package/src/utils/eventListenerHandlers.cjs +34 -0
  79. package/src/utils/eventListenerHandlers.d.ts +8 -0
  80. package/src/utils/eventListenerHandlers.js +30 -0
  81. package/src/utils/findEvmNetwork.cjs +13 -13
  82. package/src/utils/findEvmNetwork.d.ts +6 -6
  83. package/src/utils/findEvmNetwork.js +13 -13
  84. package/src/utils/isString.d.ts +1 -1
  85. package/src/utils/isUnsupportedProviderError/index.d.ts +1 -1
  86. package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.cjs +6 -6
  87. package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.d.ts +6 -6
  88. package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.js +6 -6
  89. package/src/utils/last.d.ts +1 -1
  90. package/src/utils/parseIntSafe.cjs +13 -13
  91. package/src/utils/parseIntSafe.d.ts +1 -1
  92. package/src/utils/parseIntSafe.js +13 -13
  93. package/src/walletConnect/client/client.cjs +179 -176
  94. package/src/walletConnect/client/client.d.ts +17 -17
  95. package/src/walletConnect/client/client.js +179 -176
  96. package/src/walletConnect/client/index.d.ts +1 -1
  97. package/src/walletConnect/client/types.d.ts +4 -4
  98. package/src/walletConnect/fetchWalletConnectWallets.cjs +37 -52
  99. package/src/walletConnect/fetchWalletConnectWallets.d.ts +9 -10
  100. package/src/walletConnect/fetchWalletConnectWallets.js +38 -52
  101. package/src/walletConnect/index.d.ts +3 -3
  102. package/src/walletConnect/walletConnect.cjs +131 -130
  103. package/src/walletConnect/walletConnect.d.ts +52 -50
  104. package/src/walletConnect/walletConnect.js +131 -130
  105. package/src/walletConnect/walletConnectV2.cjs +419 -374
  106. package/src/walletConnect/walletConnectV2.d.ts +326 -61
  107. package/src/walletConnect/walletConnectV2.js +420 -375
  108. package/src/injected/MetaMask.cjs +0 -15
  109. package/src/injected/MetaMask.d.ts +0 -5
  110. package/src/injected/MetaMask.js +0 -11
  111. package/src/injected/OKX.cjs +0 -15
  112. package/src/injected/OKX.d.ts +0 -5
  113. package/src/injected/OKX.js +0 -11
  114. package/src/injected/UnknownInjectedWallet.cjs +0 -14
  115. package/src/injected/UnknownInjectedWallet.d.ts +0 -4
  116. package/src/injected/UnknownInjectedWallet.js +0 -10
  117. package/src/injected/index.cjs +0 -53
  118. package/src/injected/index.js +0 -49
@@ -1,10 +1,10 @@
1
- import InjectedWalletBase from './InjectedWalletBase.js';
1
+ import LegacyInjectedWalletBase from './LegacyInjectedWalletBase.js';
2
2
 
3
- class Dawn extends InjectedWalletBase {
4
- constructor() {
5
- super(...arguments);
6
- this.name = 'Dawn';
7
- }
3
+ class Dawn extends LegacyInjectedWalletBase {
4
+ constructor() {
5
+ super(...arguments);
6
+ this.name = 'Dawn';
7
+ }
8
8
  }
9
9
 
10
10
  export { Dawn };
@@ -2,14 +2,14 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var InjectedWalletBase = require('./InjectedWalletBase.cjs');
6
-
7
- class ExodusEvm extends InjectedWalletBase {
8
- constructor() {
9
- super(...arguments);
10
- this.name = 'ExodusEvm';
11
- this.walletConnectorFallback = true;
12
- }
5
+ var LegacyInjectedWalletBase = require('./LegacyInjectedWalletBase.cjs');
6
+
7
+ class ExodusEvm extends LegacyInjectedWalletBase {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.name = 'ExodusEvm';
11
+ this.walletConnectorFallback = true;
12
+ }
13
13
  }
14
14
 
15
15
  exports.ExodusEvm = ExodusEvm;
@@ -1,5 +1,5 @@
1
- import InjectedWalletBase from './InjectedWalletBase';
2
- export declare class ExodusEvm extends InjectedWalletBase {
3
- name: string;
4
- walletConnectorFallback: boolean;
5
- }
1
+ import LegacyInjectedWalletBase from './LegacyInjectedWalletBase';
2
+ export declare class ExodusEvm extends LegacyInjectedWalletBase {
3
+ name: string;
4
+ walletConnectorFallback: boolean;
5
+ }
@@ -1,11 +1,11 @@
1
- import InjectedWalletBase from './InjectedWalletBase.js';
1
+ import LegacyInjectedWalletBase from './LegacyInjectedWalletBase.js';
2
2
 
3
- class ExodusEvm extends InjectedWalletBase {
4
- constructor() {
5
- super(...arguments);
6
- this.name = 'ExodusEvm';
7
- this.walletConnectorFallback = true;
8
- }
3
+ class ExodusEvm extends LegacyInjectedWalletBase {
4
+ constructor() {
5
+ super(...arguments);
6
+ this.name = 'ExodusEvm';
7
+ this.walletConnectorFallback = true;
8
+ }
9
9
  }
10
10
 
11
11
  export { ExodusEvm };
@@ -2,13 +2,13 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var InjectedWalletBase = require('./InjectedWalletBase.cjs');
5
+ var LegacyInjectedWalletBase = require('./LegacyInjectedWalletBase.cjs');
6
6
 
7
- class Frame extends InjectedWalletBase {
8
- constructor() {
9
- super(...arguments);
10
- this.name = 'Frame';
11
- }
7
+ class Frame extends LegacyInjectedWalletBase {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.name = 'Frame';
11
+ }
12
12
  }
13
13
 
14
14
  exports.Frame = Frame;
@@ -1,4 +1,4 @@
1
- import InjectedWalletBase from './InjectedWalletBase';
2
- export declare class Frame extends InjectedWalletBase {
3
- name: string;
4
- }
1
+ import LegacyInjectedWalletBase from './LegacyInjectedWalletBase';
2
+ export declare class Frame extends LegacyInjectedWalletBase {
3
+ name: string;
4
+ }
@@ -1,10 +1,10 @@
1
- import InjectedWalletBase from './InjectedWalletBase.js';
1
+ import LegacyInjectedWalletBase from './LegacyInjectedWalletBase.js';
2
2
 
3
- class Frame extends InjectedWalletBase {
4
- constructor() {
5
- super(...arguments);
6
- this.name = 'Frame';
7
- }
3
+ class Frame extends LegacyInjectedWalletBase {
4
+ constructor() {
5
+ super(...arguments);
6
+ this.name = 'Frame';
7
+ }
8
8
  }
9
9
 
10
10
  export { Frame };
@@ -2,13 +2,13 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var InjectedWalletBase = require('./InjectedWalletBase.cjs');
5
+ var LegacyInjectedWalletBase = require('./LegacyInjectedWalletBase.cjs');
6
6
 
7
- class GameStop extends InjectedWalletBase {
8
- constructor() {
9
- super(...arguments);
10
- this.name = 'GameStop';
11
- }
7
+ class GameStop extends LegacyInjectedWalletBase {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.name = 'GameStop';
11
+ }
12
12
  }
13
13
 
14
14
  exports.GameStop = GameStop;
@@ -1,4 +1,4 @@
1
- import InjectedWalletBase from './InjectedWalletBase';
2
- export declare class GameStop extends InjectedWalletBase {
3
- name: string;
4
- }
1
+ import LegacyInjectedWalletBase from './LegacyInjectedWalletBase';
2
+ export declare class GameStop extends LegacyInjectedWalletBase {
3
+ name: string;
4
+ }
@@ -1,10 +1,10 @@
1
- import InjectedWalletBase from './InjectedWalletBase.js';
1
+ import LegacyInjectedWalletBase from './LegacyInjectedWalletBase.js';
2
2
 
3
- class GameStop extends InjectedWalletBase {
4
- constructor() {
5
- super(...arguments);
6
- this.name = 'GameStop';
7
- }
3
+ class GameStop extends LegacyInjectedWalletBase {
4
+ constructor() {
5
+ super(...arguments);
6
+ this.name = 'GameStop';
7
+ }
8
8
  }
9
9
 
10
10
  export { GameStop };
@@ -1,77 +1,98 @@
1
1
  'use strict';
2
2
 
3
3
  var _tslib = require('../../_virtual/_tslib.cjs');
4
+ var viem = require('viem');
4
5
  var walletBook = require('@dynamic-labs/wallet-book');
5
6
  var ethProviderHelper = require('../ethProviderHelper.cjs');
6
7
  var EthWalletConnector = require('../EthWalletConnector.cjs');
7
8
  var walletConnectV2 = require('../walletConnect/walletConnectV2.cjs');
8
9
  var walletConnect = require('../walletConnect/walletConnect.cjs');
9
10
 
10
- class InjectedWalletBase extends EthWalletConnector.EthWalletConnector {
11
- constructor() {
12
- super(...arguments);
13
- this.supportedChains = ['ETH', 'EVM'];
14
- this.connectedChain = 'EVM';
15
- this.walletConnectorFallback = false;
16
- }
17
- getMobileOrInstalledWallet() {
18
- var _a, _b, _c;
19
- if (this.walletConnectorFallback && !this.isInstalledOnBrowser()) {
20
- const wallet = walletBook.getWalletBookWallet(this.walletBook, this.name);
21
- if (((_a = this.constructorProps) === null || _a === void 0 ? void 0 : _a.isWalletConnectV2Enabled) &&
22
- ((_c = (_b = wallet.walletConnect) === null || _b === void 0 ? void 0 : _b.sdks) === null || _c === void 0 ? void 0 : _c.includes('sign_v2'))) {
23
- return new walletConnectV2.WalletConnectV2(Object.assign(Object.assign({}, this.constructorProps), { walletName: this.name }));
24
- }
25
- else {
26
- return new walletConnect.WalletConnect(Object.assign(Object.assign({}, this.constructorProps), { walletName: this.name }));
27
- }
28
- }
29
- return this;
30
- }
31
- setupEventListeners(listeners) {
32
- const { tearDownEventListeners } = ethProviderHelper.EthProviderHelper._setupEventListeners(this.name, listeners, this.getWeb3Provider());
33
- this.teardownEventListeners = tearDownEventListeners;
34
- }
35
- getWeb3Provider() {
36
- return ethProviderHelper.EthProviderHelper.findProvider(this.name);
37
- }
38
- isInstalledOnBrowser() {
39
- return ethProviderHelper.EthProviderHelper.isInstalledHelper(this.name);
40
- }
41
- connect() {
42
- return _tslib.__awaiter(this, void 0, void 0, function* () {
43
- yield this.fetchPublicAddress();
44
- });
45
- }
46
- fetchPublicAddress() {
47
- return _tslib.__awaiter(this, void 0, void 0, function* () {
48
- return ethProviderHelper.EthProviderHelper.fetchPublicAddressWithName(this.name);
49
- });
50
- }
51
- signMessage(messageToSign) {
52
- return _tslib.__awaiter(this, void 0, void 0, function* () {
53
- return ethProviderHelper.EthProviderHelper.signMessageWithName(messageToSign, this.name);
54
- });
55
- }
56
- proveOwnership(messageToSign) {
57
- return _tslib.__awaiter(this, void 0, void 0, function* () {
58
- return this.signMessage(messageToSign);
59
- });
60
- }
61
- endSession() {
62
- return _tslib.__awaiter(this, void 0, void 0, function* () {
63
- // nothing to do on browser-based metamask
64
- return;
65
- });
66
- }
67
- providerSwitchNetwork({ network, provider, }) {
68
- const _super = Object.create(null, {
69
- providerSwitchNetwork: { get: () => super.providerSwitchNetwork }
70
- });
71
- return _tslib.__awaiter(this, void 0, void 0, function* () {
72
- return _super.providerSwitchNetwork.call(this, { network, provider });
73
- });
74
- }
11
+ class InjectedWalletBase extends EthWalletConnector.EthWalletConnector {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.supportedChains = ['ETH', 'EVM'];
15
+ this.connectedChain = 'EVM';
16
+ this.walletConnectorFallback = false;
17
+ }
18
+ getEthProviderHelper() {
19
+ if (!this.wallet) {
20
+ this.wallet = walletBook.getWalletBookWallet(this.walletBook, this.key);
21
+ }
22
+ if (this.wallet && !this.ethProviderHelper) {
23
+ this.ethProviderHelper = new ethProviderHelper.EthProviderHelper(this.wallet);
24
+ }
25
+ return this.ethProviderHelper;
26
+ }
27
+ getMobileOrInstalledWallet() {
28
+ var _a, _b, _c;
29
+ if (this.walletConnectorFallback && !this.isInstalledOnBrowser()) {
30
+ if (!this.wallet)
31
+ this.wallet = walletBook.getWalletBookWallet(this.walletBook, this.key);
32
+ if (((_a = this.constructorProps) === null || _a === void 0 ? void 0 : _a.isWalletConnectV2Enabled) &&
33
+ ((_c = (_b = this.wallet.walletConnect) === null || _b === void 0 ? void 0 : _b.sdks) === null || _c === void 0 ? void 0 : _c.includes('sign_v2'))) {
34
+ return new walletConnectV2.WalletConnectV2(Object.assign(Object.assign({}, this.constructorProps), { walletName: this.name }));
35
+ }
36
+ else {
37
+ return new walletConnect.WalletConnect(Object.assign(Object.assign({}, this.constructorProps), { walletName: this.name }));
38
+ }
39
+ }
40
+ return this;
41
+ }
42
+ setupEventListeners() {
43
+ const provider = this.getWalletClient();
44
+ if (!provider)
45
+ return;
46
+ const ethProviderHelper = this.getEthProviderHelper();
47
+ if (!ethProviderHelper)
48
+ return;
49
+ const { tearDownEventListeners } = ethProviderHelper._setupEventListeners(this, viem.createPublicClient({ transport: viem.custom(provider) }));
50
+ this.teardownEventListeners = tearDownEventListeners;
51
+ }
52
+ getWalletClient() {
53
+ var _a;
54
+ return (_a = this.getEthProviderHelper()) === null || _a === void 0 ? void 0 : _a.findWalletClient();
55
+ }
56
+ isInstalledOnBrowser() {
57
+ var _a;
58
+ return ((_a = this.getEthProviderHelper()) === null || _a === void 0 ? void 0 : _a.findProvider()) !== undefined;
59
+ }
60
+ fetchPublicAddress() {
61
+ var _a;
62
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
63
+ return (_a = this.getEthProviderHelper()) === null || _a === void 0 ? void 0 : _a.fetchPublicAddress();
64
+ });
65
+ }
66
+ connect() {
67
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
68
+ yield this.fetchPublicAddress();
69
+ });
70
+ }
71
+ signMessage(messageToSign) {
72
+ var _a;
73
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
74
+ return (_a = this.getEthProviderHelper()) === null || _a === void 0 ? void 0 : _a.signMessage(messageToSign);
75
+ });
76
+ }
77
+ proveOwnership(messageToSign) {
78
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
79
+ return this.signMessage(messageToSign);
80
+ });
81
+ }
82
+ endSession() {
83
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
84
+ // nothing to do on browser-based metamask
85
+ return;
86
+ });
87
+ }
88
+ providerSwitchNetwork({ network, provider, }) {
89
+ const _super = Object.create(null, {
90
+ providerSwitchNetwork: { get: () => super.providerSwitchNetwork }
91
+ });
92
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
93
+ return _super.providerSwitchNetwork.call(this, { network, provider });
94
+ });
95
+ }
75
96
  }
76
97
 
77
98
  module.exports = InjectedWalletBase;
@@ -1,24 +1,29 @@
1
- import { ethers } from 'ethers';
2
- import { Chain, WalletEventListeners } from '@dynamic-labs/wallet-connector-core';
3
- import { EvmNetwork } from '@dynamic-labs/types';
4
- import { EthWalletConnector } from '../EthWalletConnector';
5
- declare abstract class InjectedWalletBase extends EthWalletConnector {
6
- supportedChains: Chain[];
7
- connectedChain: Chain;
8
- publicAddress: string | undefined;
9
- walletConnectorFallback: boolean;
10
- getMobileOrInstalledWallet(): InjectedWalletBase;
11
- setupEventListeners(listeners: WalletEventListeners): void;
12
- getWeb3Provider(): ethers.providers.Web3Provider | undefined;
13
- isInstalledOnBrowser(): boolean;
14
- connect(): Promise<void>;
15
- fetchPublicAddress(): Promise<string | undefined>;
16
- signMessage(messageToSign: string): Promise<string | undefined>;
17
- proveOwnership(messageToSign: string): Promise<string | undefined>;
18
- endSession(): Promise<void>;
19
- providerSwitchNetwork({ network, provider, }: {
20
- network: EvmNetwork;
21
- provider: ethers.providers.Web3Provider;
22
- }): Promise<void>;
23
- }
24
- export default InjectedWalletBase;
1
+ import { WalletClient } from 'viem';
2
+ import { Chain } from '@dynamic-labs/wallet-connector-core';
3
+ import { EvmNetwork } from '@dynamic-labs/types';
4
+ import { WalletSchema } from '@dynamic-labs/wallet-book';
5
+ import { EthProviderHelper } from '../ethProviderHelper';
6
+ import { EthWalletConnector } from '../EthWalletConnector';
7
+ declare abstract class InjectedWalletBase extends EthWalletConnector {
8
+ supportedChains: Chain[];
9
+ connectedChain: Chain;
10
+ publicAddress: string | undefined;
11
+ walletConnectorFallback: boolean;
12
+ ethProviderHelper: EthProviderHelper | undefined;
13
+ wallet: WalletSchema | undefined;
14
+ getEthProviderHelper(): EthProviderHelper | undefined;
15
+ getMobileOrInstalledWallet(): InjectedWalletBase;
16
+ setupEventListeners(): void;
17
+ getWalletClient(): WalletClient | undefined;
18
+ isInstalledOnBrowser(): boolean;
19
+ fetchPublicAddress(): Promise<string | undefined>;
20
+ connect(): Promise<void>;
21
+ signMessage(messageToSign: string): Promise<string | undefined>;
22
+ proveOwnership(messageToSign: string): Promise<string | undefined>;
23
+ endSession(): Promise<void>;
24
+ providerSwitchNetwork({ network, provider, }: {
25
+ network: EvmNetwork;
26
+ provider: WalletClient;
27
+ }): Promise<void>;
28
+ }
29
+ export default InjectedWalletBase;
@@ -1,75 +1,96 @@
1
1
  import { __awaiter } from '../../_virtual/_tslib.js';
2
+ import { createPublicClient, custom } from 'viem';
2
3
  import { getWalletBookWallet } from '@dynamic-labs/wallet-book';
3
4
  import { EthProviderHelper } from '../ethProviderHelper.js';
4
5
  import { EthWalletConnector } from '../EthWalletConnector.js';
5
6
  import { WalletConnectV2 } from '../walletConnect/walletConnectV2.js';
6
7
  import { WalletConnect } from '../walletConnect/walletConnect.js';
7
8
 
8
- class InjectedWalletBase extends EthWalletConnector {
9
- constructor() {
10
- super(...arguments);
11
- this.supportedChains = ['ETH', 'EVM'];
12
- this.connectedChain = 'EVM';
13
- this.walletConnectorFallback = false;
14
- }
15
- getMobileOrInstalledWallet() {
16
- var _a, _b, _c;
17
- if (this.walletConnectorFallback && !this.isInstalledOnBrowser()) {
18
- const wallet = getWalletBookWallet(this.walletBook, this.name);
19
- if (((_a = this.constructorProps) === null || _a === void 0 ? void 0 : _a.isWalletConnectV2Enabled) &&
20
- ((_c = (_b = wallet.walletConnect) === null || _b === void 0 ? void 0 : _b.sdks) === null || _c === void 0 ? void 0 : _c.includes('sign_v2'))) {
21
- return new WalletConnectV2(Object.assign(Object.assign({}, this.constructorProps), { walletName: this.name }));
22
- }
23
- else {
24
- return new WalletConnect(Object.assign(Object.assign({}, this.constructorProps), { walletName: this.name }));
25
- }
26
- }
27
- return this;
28
- }
29
- setupEventListeners(listeners) {
30
- const { tearDownEventListeners } = EthProviderHelper._setupEventListeners(this.name, listeners, this.getWeb3Provider());
31
- this.teardownEventListeners = tearDownEventListeners;
32
- }
33
- getWeb3Provider() {
34
- return EthProviderHelper.findProvider(this.name);
35
- }
36
- isInstalledOnBrowser() {
37
- return EthProviderHelper.isInstalledHelper(this.name);
38
- }
39
- connect() {
40
- return __awaiter(this, void 0, void 0, function* () {
41
- yield this.fetchPublicAddress();
42
- });
43
- }
44
- fetchPublicAddress() {
45
- return __awaiter(this, void 0, void 0, function* () {
46
- return EthProviderHelper.fetchPublicAddressWithName(this.name);
47
- });
48
- }
49
- signMessage(messageToSign) {
50
- return __awaiter(this, void 0, void 0, function* () {
51
- return EthProviderHelper.signMessageWithName(messageToSign, this.name);
52
- });
53
- }
54
- proveOwnership(messageToSign) {
55
- return __awaiter(this, void 0, void 0, function* () {
56
- return this.signMessage(messageToSign);
57
- });
58
- }
59
- endSession() {
60
- return __awaiter(this, void 0, void 0, function* () {
61
- // nothing to do on browser-based metamask
62
- return;
63
- });
64
- }
65
- providerSwitchNetwork({ network, provider, }) {
66
- const _super = Object.create(null, {
67
- providerSwitchNetwork: { get: () => super.providerSwitchNetwork }
68
- });
69
- return __awaiter(this, void 0, void 0, function* () {
70
- return _super.providerSwitchNetwork.call(this, { network, provider });
71
- });
72
- }
9
+ class InjectedWalletBase extends EthWalletConnector {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.supportedChains = ['ETH', 'EVM'];
13
+ this.connectedChain = 'EVM';
14
+ this.walletConnectorFallback = false;
15
+ }
16
+ getEthProviderHelper() {
17
+ if (!this.wallet) {
18
+ this.wallet = getWalletBookWallet(this.walletBook, this.key);
19
+ }
20
+ if (this.wallet && !this.ethProviderHelper) {
21
+ this.ethProviderHelper = new EthProviderHelper(this.wallet);
22
+ }
23
+ return this.ethProviderHelper;
24
+ }
25
+ getMobileOrInstalledWallet() {
26
+ var _a, _b, _c;
27
+ if (this.walletConnectorFallback && !this.isInstalledOnBrowser()) {
28
+ if (!this.wallet)
29
+ this.wallet = getWalletBookWallet(this.walletBook, this.key);
30
+ if (((_a = this.constructorProps) === null || _a === void 0 ? void 0 : _a.isWalletConnectV2Enabled) &&
31
+ ((_c = (_b = this.wallet.walletConnect) === null || _b === void 0 ? void 0 : _b.sdks) === null || _c === void 0 ? void 0 : _c.includes('sign_v2'))) {
32
+ return new WalletConnectV2(Object.assign(Object.assign({}, this.constructorProps), { walletName: this.name }));
33
+ }
34
+ else {
35
+ return new WalletConnect(Object.assign(Object.assign({}, this.constructorProps), { walletName: this.name }));
36
+ }
37
+ }
38
+ return this;
39
+ }
40
+ setupEventListeners() {
41
+ const provider = this.getWalletClient();
42
+ if (!provider)
43
+ return;
44
+ const ethProviderHelper = this.getEthProviderHelper();
45
+ if (!ethProviderHelper)
46
+ return;
47
+ const { tearDownEventListeners } = ethProviderHelper._setupEventListeners(this, createPublicClient({ transport: custom(provider) }));
48
+ this.teardownEventListeners = tearDownEventListeners;
49
+ }
50
+ getWalletClient() {
51
+ var _a;
52
+ return (_a = this.getEthProviderHelper()) === null || _a === void 0 ? void 0 : _a.findWalletClient();
53
+ }
54
+ isInstalledOnBrowser() {
55
+ var _a;
56
+ return ((_a = this.getEthProviderHelper()) === null || _a === void 0 ? void 0 : _a.findProvider()) !== undefined;
57
+ }
58
+ fetchPublicAddress() {
59
+ var _a;
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ return (_a = this.getEthProviderHelper()) === null || _a === void 0 ? void 0 : _a.fetchPublicAddress();
62
+ });
63
+ }
64
+ connect() {
65
+ return __awaiter(this, void 0, void 0, function* () {
66
+ yield this.fetchPublicAddress();
67
+ });
68
+ }
69
+ signMessage(messageToSign) {
70
+ var _a;
71
+ return __awaiter(this, void 0, void 0, function* () {
72
+ return (_a = this.getEthProviderHelper()) === null || _a === void 0 ? void 0 : _a.signMessage(messageToSign);
73
+ });
74
+ }
75
+ proveOwnership(messageToSign) {
76
+ return __awaiter(this, void 0, void 0, function* () {
77
+ return this.signMessage(messageToSign);
78
+ });
79
+ }
80
+ endSession() {
81
+ return __awaiter(this, void 0, void 0, function* () {
82
+ // nothing to do on browser-based metamask
83
+ return;
84
+ });
85
+ }
86
+ providerSwitchNetwork({ network, provider, }) {
87
+ const _super = Object.create(null, {
88
+ providerSwitchNetwork: { get: () => super.providerSwitchNetwork }
89
+ });
90
+ return __awaiter(this, void 0, void 0, function* () {
91
+ return _super.providerSwitchNetwork.call(this, { network, provider });
92
+ });
93
+ }
73
94
  }
74
95
 
75
96
  export { InjectedWalletBase as default };
@@ -0,0 +1,83 @@
1
+ 'use strict';
2
+
3
+ var _tslib = require('../../_virtual/_tslib.cjs');
4
+ var viem = require('viem');
5
+ var walletBook = require('@dynamic-labs/wallet-book');
6
+ var legacyEthProviderHelper = require('../legacyEthProviderHelper.cjs');
7
+ var EthWalletConnector = require('../EthWalletConnector.cjs');
8
+ var walletConnectV2 = require('../walletConnect/walletConnectV2.cjs');
9
+ var walletConnect = require('../walletConnect/walletConnect.cjs');
10
+
11
+ class LegacyInjectedWalletBase extends EthWalletConnector.EthWalletConnector {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.supportedChains = ['ETH', 'EVM'];
15
+ this.connectedChain = 'EVM';
16
+ this.walletConnectorFallback = false;
17
+ }
18
+ getMobileOrInstalledWallet() {
19
+ var _a, _b, _c;
20
+ if (this.walletConnectorFallback && !this.isInstalledOnBrowser()) {
21
+ const wallet = walletBook.getWalletBookWallet(this.walletBook, this.key);
22
+ if (((_a = this.constructorProps) === null || _a === void 0 ? void 0 : _a.isWalletConnectV2Enabled) &&
23
+ ((_c = (_b = wallet.walletConnect) === null || _b === void 0 ? void 0 : _b.sdks) === null || _c === void 0 ? void 0 : _c.includes('sign_v2'))) {
24
+ return new walletConnectV2.WalletConnectV2(Object.assign(Object.assign({}, this.constructorProps), { walletName: this.name }));
25
+ }
26
+ else {
27
+ return new walletConnect.WalletConnect(Object.assign(Object.assign({}, this.constructorProps), { walletName: this.name }));
28
+ }
29
+ }
30
+ return this;
31
+ }
32
+ setupEventListeners() {
33
+ const provider = legacyEthProviderHelper.LegacyEthProviderHelper.findProvider(this.name);
34
+ if (!provider) {
35
+ return;
36
+ }
37
+ const publicClient = viem.createPublicClient({ transport: viem.custom(provider) });
38
+ const { tearDownEventListeners } = legacyEthProviderHelper.LegacyEthProviderHelper._setupEventListeners(this.name, this, publicClient);
39
+ this.teardownEventListeners = tearDownEventListeners;
40
+ }
41
+ getWalletClient() {
42
+ return legacyEthProviderHelper.LegacyEthProviderHelper.findWalletClient(this.name);
43
+ }
44
+ isInstalledOnBrowser() {
45
+ return legacyEthProviderHelper.LegacyEthProviderHelper.isInstalledHelper(this.name);
46
+ }
47
+ connect() {
48
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
49
+ yield this.fetchPublicAddress();
50
+ });
51
+ }
52
+ fetchPublicAddress() {
53
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
54
+ return legacyEthProviderHelper.LegacyEthProviderHelper.fetchPublicAddressWithName(this.name);
55
+ });
56
+ }
57
+ signMessage(messageToSign) {
58
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
59
+ return legacyEthProviderHelper.LegacyEthProviderHelper.signMessageWithName(messageToSign, this.name);
60
+ });
61
+ }
62
+ proveOwnership(messageToSign) {
63
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
64
+ return this.signMessage(messageToSign);
65
+ });
66
+ }
67
+ endSession() {
68
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
69
+ // nothing to do on browser-based metamask
70
+ return;
71
+ });
72
+ }
73
+ providerSwitchNetwork({ network, provider, }) {
74
+ const _super = Object.create(null, {
75
+ providerSwitchNetwork: { get: () => super.providerSwitchNetwork }
76
+ });
77
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
78
+ return _super.providerSwitchNetwork.call(this, { network, provider });
79
+ });
80
+ }
81
+ }
82
+
83
+ module.exports = LegacyInjectedWalletBase;