@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,6 +1,6 @@
1
1
  import { __rest, __awaiter } from '../../_virtual/_tslib.js';
2
2
  import WalletConnectProvider from '@walletconnect/ethereum-provider';
3
- import { ethers } from 'ethers';
3
+ import { createWalletClient, custom } from 'viem';
4
4
  import { normalizeWalletName, getDeepLink } from '@dynamic-labs/wallet-connector-core';
5
5
  import { getWalletBookWallet } from '@dynamic-labs/wallet-book';
6
6
  import { isMobile, DynamicError } from '@dynamic-labs/utils';
@@ -8,135 +8,136 @@ import { EthWalletConnector } from '../EthWalletConnector.js';
8
8
  import { INFURA_ID } from '../constants.js';
9
9
  import { initClient, setupWalletConnectEventListeners, teardownWalletConnectEventListeners, fetchWalletConnectEVMPublicAddress, signWalletConnectPersonalMessage, killWalletConnectSession } from './client/client.js';
10
10
 
11
- class WalletConnect extends EthWalletConnector {
12
- constructor(_a) {
13
- var { walletConnectV1Bridge, walletName } = _a, props = __rest(_a, ["walletConnectV1Bridge", "walletName"]);
14
- super(props);
15
- this.supportedChains = ['EVM', 'ETH'];
16
- this.connectedChain = 'EVM';
17
- this.bridge = 'https://bridge.walletconnect.org';
18
- this.canConnectViaQrCode = true;
19
- this.isWalletConnect = true;
20
- this.switchNetworkOnlyFromWallet = false;
21
- this.name = walletName;
22
- if (walletConnectV1Bridge) {
23
- this.bridge = walletConnectV1Bridge;
24
- }
25
- }
26
- getClient() {
27
- if (this.client) {
28
- return this.client;
29
- }
30
- this.client = initClient(normalizeWalletName(this.name), this.bridge, this.clientOptions);
31
- return this.client;
32
- }
33
- supportsNetworkSwitching() {
34
- if (this.connectedChain === 'EVM') {
35
- return true;
36
- }
37
- else {
38
- const client = this.getClient();
39
- return Boolean(client === null || client === void 0 ? void 0 : client.chainId);
40
- }
41
- }
42
- setupEventListeners(listeners) {
43
- setupWalletConnectEventListeners({
44
- onAccountChange: listeners.onAccountChange,
45
- onChainChange: listeners.onChainChange,
46
- onDisconnect: listeners.onDisconnect,
47
- }, this.getClient());
48
- }
49
- teardownEventListeners() {
50
- teardownWalletConnectEventListeners(this.getClient());
51
- }
52
- getWeb3Provider() {
53
- const client = this.getClient();
54
- return client
55
- ? new ethers.providers.Web3Provider(new WalletConnectProvider({
56
- connector: client,
57
- infuraId: INFURA_ID,
58
- rpc: this.evmNetworkRpcMap(),
59
- }), 'any')
60
- : undefined;
61
- }
62
- fetchPublicAddress(opts) {
63
- return __awaiter(this, void 0, void 0, function* () {
64
- return fetchWalletConnectEVMPublicAddress(getWalletBookWallet(this.walletBook, this.name), this.getClient(), Object.assign(Object.assign({}, opts), { onConnect: (payload) => {
65
- var _a;
66
- (_a = opts === null || opts === void 0 ? void 0 : opts.onConnect) === null || _a === void 0 ? void 0 : _a.call(opts, payload);
67
- this.connectedChain = payload.params[0].chainId ? 'EVM' : 'SOL';
68
- } }));
69
- });
70
- }
71
- getDeepLink() {
72
- var _a;
73
- const wallet = getWalletBookWallet(this.walletBook, this.name);
74
- if (!isMobile() && !((_a = wallet.desktop) === null || _a === void 0 ? void 0 : _a.native)) {
75
- return undefined;
76
- }
77
- return getDeepLink({
78
- metadata: wallet,
79
- mode: 'regular',
80
- uri: this.getClient().uri,
81
- });
82
- }
83
- signMessage(messageToSign) {
84
- return __awaiter(this, void 0, void 0, function* () {
85
- return signWalletConnectPersonalMessage(messageToSign, getWalletBookWallet(this.walletBook, this.name), this.getClient(),
86
- // don't call getRpcProvider until we really need to
87
- () => __awaiter(this, void 0, void 0, function* () { return this.getRpcProvider(); }));
88
- });
89
- }
90
- endSession() {
91
- return __awaiter(this, void 0, void 0, function* () {
92
- killWalletConnectSession(this.getClient());
93
- });
94
- }
95
- providerSwitchNetwork({ network, provider, }) {
96
- const _super = Object.create(null, {
97
- providerSwitchNetwork: { get: () => super.providerSwitchNetwork }
98
- });
99
- return __awaiter(this, void 0, void 0, function* () {
100
- const client = this.getClient();
101
- const currentNetworkId = yield this.getNetwork();
102
- if (currentNetworkId && currentNetworkId === network.chainId) {
103
- return;
104
- }
105
- if (this.switchNetworkOnlyFromWallet !== undefined &&
106
- this.switchNetworkOnlyFromWallet) {
107
- throw new DynamicError('Network switching is only supported through the wallet');
108
- }
109
- if (!this.supportsNetworkSwitching()) {
110
- throw new DynamicError('Network switching not supported');
111
- }
112
- if (!client) {
113
- throw new DynamicError('Client not found');
114
- }
115
- if (isMobile()) {
116
- const deepLink = getDeepLink({
117
- metadata: getWalletBookWallet(this.walletBook, this.name),
118
- mode: 'regular',
119
- uri: client.uri,
120
- });
121
- window.location.href = deepLink;
122
- }
123
- return _super.providerSwitchNetwork.call(this, { network, provider });
124
- });
125
- }
126
- getConnectedAccounts() {
127
- return __awaiter(this, void 0, void 0, function* () {
128
- const client = this.getClient();
129
- if (!client.connected)
130
- return [];
131
- return client.accounts;
132
- });
133
- }
134
- getSession() {
135
- var _a;
136
- return __awaiter(this, void 0, void 0, function* () {
137
- return (_a = this.client) === null || _a === void 0 ? void 0 : _a.session;
138
- });
139
- }
11
+ class WalletConnect extends EthWalletConnector {
12
+ constructor(_a) {
13
+ var { walletConnectV1Bridge, walletName } = _a, props = __rest(_a, ["walletConnectV1Bridge", "walletName"]);
14
+ super(props);
15
+ this.supportedChains = ['EVM', 'ETH'];
16
+ this.connectedChain = 'EVM';
17
+ this.bridge = 'https://bridge.walletconnect.org';
18
+ this.canConnectViaQrCode = true;
19
+ this.isWalletConnect = true;
20
+ this.switchNetworkOnlyFromWallet = false;
21
+ this.name = walletName;
22
+ if (walletConnectV1Bridge) {
23
+ this.bridge = walletConnectV1Bridge;
24
+ }
25
+ this.deepLinkPreference = props.deepLinkPreference || 'native';
26
+ }
27
+ getClient() {
28
+ if (this.client) {
29
+ return this.client;
30
+ }
31
+ this.client = initClient(normalizeWalletName(this.name), this.bridge, this.clientOptions);
32
+ return this.client;
33
+ }
34
+ supportsNetworkSwitching() {
35
+ if (this.connectedChain === 'EVM') {
36
+ return true;
37
+ }
38
+ else {
39
+ const client = this.getClient();
40
+ return Boolean(client === null || client === void 0 ? void 0 : client.chainId);
41
+ }
42
+ }
43
+ setupEventListeners() {
44
+ setupWalletConnectEventListeners(this, this.getClient());
45
+ }
46
+ teardownEventListeners() {
47
+ teardownWalletConnectEventListeners(this.getClient());
48
+ }
49
+ getWalletClient() {
50
+ const client = this.getClient();
51
+ return client
52
+ ? createWalletClient({
53
+ transport: custom(new WalletConnectProvider({
54
+ connector: client,
55
+ infuraId: INFURA_ID,
56
+ rpc: this.evmNetworkRpcMap(),
57
+ })),
58
+ })
59
+ : undefined;
60
+ }
61
+ fetchPublicAddress(opts) {
62
+ return __awaiter(this, void 0, void 0, function* () {
63
+ return fetchWalletConnectEVMPublicAddress(getWalletBookWallet(this.walletBook, this.key), this.getClient(), this.deepLinkPreference, Object.assign(Object.assign({}, opts), { onConnect: (payload) => {
64
+ var _a;
65
+ (_a = opts === null || opts === void 0 ? void 0 : opts.onConnect) === null || _a === void 0 ? void 0 : _a.call(opts, payload);
66
+ this.connectedChain = payload.params[0].chainId ? 'EVM' : 'SOL';
67
+ } }));
68
+ });
69
+ }
70
+ getDeepLink() {
71
+ var _a;
72
+ const wallet = getWalletBookWallet(this.walletBook, this.key);
73
+ if (!isMobile() && !((_a = wallet.desktop) === null || _a === void 0 ? void 0 : _a.native)) {
74
+ return undefined;
75
+ }
76
+ return getDeepLink({
77
+ metadata: wallet,
78
+ mode: 'regular',
79
+ preference: this.deepLinkPreference,
80
+ uri: this.getClient().uri,
81
+ });
82
+ }
83
+ signMessage(messageToSign) {
84
+ return __awaiter(this, void 0, void 0, function* () {
85
+ return signWalletConnectPersonalMessage(messageToSign, getWalletBookWallet(this.walletBook, this.key), this.getClient(), this.deepLinkPreference,
86
+ // don't call getPublicClient until we really need to
87
+ () => __awaiter(this, void 0, void 0, function* () { return this.getPublicClient(); }));
88
+ });
89
+ }
90
+ endSession() {
91
+ return __awaiter(this, void 0, void 0, function* () {
92
+ killWalletConnectSession(this.getClient());
93
+ });
94
+ }
95
+ providerSwitchNetwork({ network, provider, }) {
96
+ const _super = Object.create(null, {
97
+ providerSwitchNetwork: { get: () => super.providerSwitchNetwork }
98
+ });
99
+ return __awaiter(this, void 0, void 0, function* () {
100
+ const client = this.getClient();
101
+ const currentNetworkId = yield this.getNetwork();
102
+ if (currentNetworkId && currentNetworkId === network.chainId) {
103
+ return;
104
+ }
105
+ if (this.switchNetworkOnlyFromWallet !== undefined &&
106
+ this.switchNetworkOnlyFromWallet) {
107
+ throw new DynamicError('Network switching is only supported through the wallet');
108
+ }
109
+ if (!this.supportsNetworkSwitching()) {
110
+ throw new DynamicError('Network switching not supported');
111
+ }
112
+ if (!client) {
113
+ throw new DynamicError('Client not found');
114
+ }
115
+ if (isMobile()) {
116
+ const deepLink = getDeepLink({
117
+ metadata: getWalletBookWallet(this.walletBook, this.key),
118
+ mode: 'regular',
119
+ preference: this.deepLinkPreference,
120
+ uri: client.uri,
121
+ });
122
+ window.location.href = deepLink;
123
+ }
124
+ return _super.providerSwitchNetwork.call(this, { network, provider });
125
+ });
126
+ }
127
+ getConnectedAccounts() {
128
+ return __awaiter(this, void 0, void 0, function* () {
129
+ const client = this.getClient();
130
+ if (!client.connected)
131
+ return [];
132
+ return client.accounts;
133
+ });
134
+ }
135
+ getSession() {
136
+ var _a;
137
+ return __awaiter(this, void 0, void 0, function* () {
138
+ return (_a = this.client) === null || _a === void 0 ? void 0 : _a.session;
139
+ });
140
+ }
140
141
  }
141
142
 
142
143
  export { WalletConnect };