@dynamic-labs-sdk/evm 0.0.1-alpha.25

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 (111) hide show
  1. package/CHANGELOG.md +188 -0
  2. package/README.md +16 -0
  3. package/_extends.cjs.js +19 -0
  4. package/_extends.esm.js +15 -0
  5. package/addEIP6963Extension.cjs.js +126 -0
  6. package/addEIP6963Extension.esm.js +124 -0
  7. package/addWaasEvmExtension.cjs.js +94 -0
  8. package/addWaasEvmExtension.esm.js +92 -0
  9. package/eip6963.cjs.d.ts +1 -0
  10. package/eip6963.cjs.js +14 -0
  11. package/eip6963.esm.d.ts +1 -0
  12. package/eip6963.esm.js +10 -0
  13. package/index.cjs.d.ts +1 -0
  14. package/index.cjs.js +35 -0
  15. package/index.esm.d.ts +1 -0
  16. package/index.esm.js +29 -0
  17. package/package.json +42 -0
  18. package/registerEvmNetworkProviderBuilder.cjs.js +109 -0
  19. package/registerEvmNetworkProviderBuilder.esm.js +105 -0
  20. package/src/EvmNetworkProvider.d.ts +8 -0
  21. package/src/EvmNetworkProvider.d.ts.map +1 -0
  22. package/src/EvmWalletAccount.types.d.ts +8 -0
  23. package/src/EvmWalletAccount.types.d.ts.map +1 -0
  24. package/src/EvmWalletProvider.d.ts +18 -0
  25. package/src/EvmWalletProvider.d.ts.map +1 -0
  26. package/src/addEvmExtension/addEvmExtension.d.ts +7 -0
  27. package/src/addEvmExtension/addEvmExtension.d.ts.map +1 -0
  28. package/src/addEvmExtension/index.d.ts +2 -0
  29. package/src/addEvmExtension/index.d.ts.map +1 -0
  30. package/src/eip6963/addEIP6963Extension/addEIP6963Extension.d.ts +3 -0
  31. package/src/eip6963/addEIP6963Extension/addEIP6963Extension.d.ts.map +1 -0
  32. package/src/eip6963/addEIP6963Extension/index.d.ts +2 -0
  33. package/src/eip6963/addEIP6963Extension/index.d.ts.map +1 -0
  34. package/src/eip6963/eip6963.types.d.ts +15 -0
  35. package/src/eip6963/eip6963.types.d.ts.map +1 -0
  36. package/src/eip6963/utils/isEip9693Event/index.d.ts +2 -0
  37. package/src/eip6963/utils/isEip9693Event/index.d.ts.map +1 -0
  38. package/src/eip6963/utils/isEip9693Event/isEip9693Event.d.ts +3 -0
  39. package/src/eip6963/utils/isEip9693Event/isEip9693Event.d.ts.map +1 -0
  40. package/src/eip6963/utils/listenForEIP6963ProviderAnnouncement/index.d.ts +2 -0
  41. package/src/eip6963/utils/listenForEIP6963ProviderAnnouncement/index.d.ts.map +1 -0
  42. package/src/eip6963/utils/listenForEIP6963ProviderAnnouncement/listenForEIP6963ProviderAnnouncement.d.ts +3 -0
  43. package/src/eip6963/utils/listenForEIP6963ProviderAnnouncement/listenForEIP6963ProviderAnnouncement.d.ts.map +1 -0
  44. package/src/errors/RpcError.d.ts +6 -0
  45. package/src/errors/RpcError.d.ts.map +1 -0
  46. package/src/exports/eip6963.d.ts +2 -0
  47. package/src/exports/eip6963.d.ts.map +1 -0
  48. package/src/exports/index.d.ts +8 -0
  49. package/src/exports/index.d.ts.map +1 -0
  50. package/src/exports/viem.d.ts +2 -0
  51. package/src/exports/viem.d.ts.map +1 -0
  52. package/src/exports/waas.d.ts +2 -0
  53. package/src/exports/waas.d.ts.map +1 -0
  54. package/src/isEvmNetworkProvider/index.d.ts +2 -0
  55. package/src/isEvmNetworkProvider/index.d.ts.map +1 -0
  56. package/src/isEvmNetworkProvider/isEvmNetworkProvider.d.ts +4 -0
  57. package/src/isEvmNetworkProvider/isEvmNetworkProvider.d.ts.map +1 -0
  58. package/src/registerEvmNetworkProviderBuilder/index.d.ts +2 -0
  59. package/src/registerEvmNetworkProviderBuilder/index.d.ts.map +1 -0
  60. package/src/registerEvmNetworkProviderBuilder/registerEvmNetworkProviderBuilder.d.ts +3 -0
  61. package/src/registerEvmNetworkProviderBuilder/registerEvmNetworkProviderBuilder.d.ts.map +1 -0
  62. package/src/utils/createEvmNetworkProvider/createEvmNetworkProvider.d.ts +4 -0
  63. package/src/utils/createEvmNetworkProvider/createEvmNetworkProvider.d.ts.map +1 -0
  64. package/src/utils/createEvmNetworkProvider/index.d.ts +2 -0
  65. package/src/utils/createEvmNetworkProvider/index.d.ts.map +1 -0
  66. package/src/utils/createWalletProviderFromEIP1193Provider/createWalletProviderFromEIP1193Provider.d.ts +9 -0
  67. package/src/utils/createWalletProviderFromEIP1193Provider/createWalletProviderFromEIP1193Provider.d.ts.map +1 -0
  68. package/src/utils/createWalletProviderFromEIP1193Provider/getActiveNetworkId/getActiveNetworkId.d.ts +7 -0
  69. package/src/utils/createWalletProviderFromEIP1193Provider/getActiveNetworkId/getActiveNetworkId.d.ts.map +1 -0
  70. package/src/utils/createWalletProviderFromEIP1193Provider/getActiveNetworkId/index.d.ts +2 -0
  71. package/src/utils/createWalletProviderFromEIP1193Provider/getActiveNetworkId/index.d.ts.map +1 -0
  72. package/src/utils/createWalletProviderFromEIP1193Provider/index.d.ts +2 -0
  73. package/src/utils/createWalletProviderFromEIP1193Provider/index.d.ts.map +1 -0
  74. package/src/utils/fetchEvmBalance/fetchEvmBalance.d.ts +8 -0
  75. package/src/utils/fetchEvmBalance/fetchEvmBalance.d.ts.map +1 -0
  76. package/src/utils/fetchEvmBalance/index.d.ts +2 -0
  77. package/src/utils/fetchEvmBalance/index.d.ts.map +1 -0
  78. package/src/utils/isEvmWalletAccount/index.d.ts +2 -0
  79. package/src/utils/isEvmWalletAccount/index.d.ts.map +1 -0
  80. package/src/utils/isEvmWalletAccount/isEvmWalletAccount.d.ts +7 -0
  81. package/src/utils/isEvmWalletAccount/isEvmWalletAccount.d.ts.map +1 -0
  82. package/src/viem/createPublicClientFromNetworkProvider/createPublicClientFromNetworkProvider.d.ts +13 -0
  83. package/src/viem/createPublicClientFromNetworkProvider/createPublicClientFromNetworkProvider.d.ts.map +1 -0
  84. package/src/viem/createPublicClientFromNetworkProvider/index.d.ts +2 -0
  85. package/src/viem/createPublicClientFromNetworkProvider/index.d.ts.map +1 -0
  86. package/src/viem/utils/mapNetworkProviderToChain/index.d.ts +2 -0
  87. package/src/viem/utils/mapNetworkProviderToChain/index.d.ts.map +1 -0
  88. package/src/viem/utils/mapNetworkProviderToChain/mapNetworkProviderToChain.d.ts +7 -0
  89. package/src/viem/utils/mapNetworkProviderToChain/mapNetworkProviderToChain.d.ts.map +1 -0
  90. package/src/waas/WaasEvmWalletProvider.types.d.ts +4 -0
  91. package/src/waas/WaasEvmWalletProvider.types.d.ts.map +1 -0
  92. package/src/waas/addWaasEvmExtension/addWaasEvmExtension.d.ts +3 -0
  93. package/src/waas/addWaasEvmExtension/addWaasEvmExtension.d.ts.map +1 -0
  94. package/src/waas/addWaasEvmExtension/index.d.ts +2 -0
  95. package/src/waas/addWaasEvmExtension/index.d.ts.map +1 -0
  96. package/src/waas/utils/createWalletProviderForWaasEvm/createWalletProviderForWaasEvm.d.ts +8 -0
  97. package/src/waas/utils/createWalletProviderForWaasEvm/createWalletProviderForWaasEvm.d.ts.map +1 -0
  98. package/src/waas/utils/createWalletProviderForWaasEvm/getActiveNetworkId/getActiveNetworkId.d.ts +8 -0
  99. package/src/waas/utils/createWalletProviderForWaasEvm/getActiveNetworkId/getActiveNetworkId.d.ts.map +1 -0
  100. package/src/waas/utils/createWalletProviderForWaasEvm/getActiveNetworkId/index.d.ts +2 -0
  101. package/src/waas/utils/createWalletProviderForWaasEvm/getActiveNetworkId/index.d.ts.map +1 -0
  102. package/src/waas/utils/createWalletProviderForWaasEvm/index.d.ts +2 -0
  103. package/src/waas/utils/createWalletProviderForWaasEvm/index.d.ts.map +1 -0
  104. package/viem.cjs.d.ts +1 -0
  105. package/viem.cjs.js +38 -0
  106. package/viem.esm.d.ts +1 -0
  107. package/viem.esm.js +36 -0
  108. package/waas.cjs.d.ts +1 -0
  109. package/waas.cjs.js +14 -0
  110. package/waas.esm.d.ts +1 -0
  111. package/waas.esm.js +10 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,188 @@
1
+ ## 0.0.1-alpha.25 (2025-08-27)
2
+
3
+ ### 🚀 Features
4
+
5
+ - add ethereum netowrk providers ([#267](https://github.com/dynamic-labs/dynamic-sdk/pull/267))
6
+ - add solana network provider ([#268](https://github.com/dynamic-labs/dynamic-sdk/pull/268))
7
+ - add proveWalletAccountOwnership function ([#295](https://github.com/dynamic-labs/dynamic-sdk/pull/295))
8
+ - format evm wallet addresses to conform to eip55 ([#300](https://github.com/dynamic-labs/dynamic-sdk/pull/300))
9
+ - add viem public client ([#272](https://github.com/dynamic-labs/dynamic-sdk/pull/272))
10
+ - add getSolanaConnection ([#275](https://github.com/dynamic-labs/dynamic-sdk/pull/275))
11
+ - add dynamic waas evm extension ([#299](https://github.com/dynamic-labs/dynamic-sdk/pull/299))
12
+ - add refreshUser function ([#332](https://github.com/dynamic-labs/dynamic-sdk/pull/332))
13
+ - add get network method ([#321](https://github.com/dynamic-labs/dynamic-sdk/pull/321))
14
+
15
+ ### 🩹 Fixes
16
+
17
+ - update default API base URL ([#296](https://github.com/dynamic-labs/dynamic-sdk/pull/296))
18
+
19
+ ### 🔧 Refactors
20
+
21
+ - reorganize exports index file ([#303](https://github.com/dynamic-labs/dynamic-sdk/pull/303))
22
+ - rename events folder to clientEvents ([#305](https://github.com/dynamic-labs/dynamic-sdk/pull/305))
23
+ - dry network provider type ([#308](https://github.com/dynamic-labs/dynamic-sdk/pull/308))
24
+ - rename types files to include the features name ([#319](https://github.com/dynamic-labs/dynamic-sdk/pull/319))
25
+ - use evm instead of other terms ([#306](https://github.com/dynamic-labs/dynamic-sdk/pull/306))
26
+ - rename net configuration to net data ([#322](https://github.com/dynamic-labs/dynamic-sdk/pull/322))
27
+ - move waas-utils to client package ([#342](https://github.com/dynamic-labs/dynamic-sdk/pull/342))
28
+
29
+ ## 0.0.1-alpha.24 (2025-08-14)
30
+
31
+ This was a version bump only, there were no code changes.
32
+
33
+ ## 0.0.1-alpha.23 (2025-08-14)
34
+
35
+ This was a version bump only, there were no code changes.
36
+
37
+ ## 0.0.1-alpha.22 (2025-08-13)
38
+
39
+ This was a version bump only, there were no code changes.
40
+
41
+ ## 0.0.1-alpha.21 (2025-08-12)
42
+
43
+ ### 🚀 Features
44
+
45
+ - add signInWithExternalJwt function ([#263](https://github.com/dynamic-labs/dynamic-sdk/pull/263))
46
+
47
+ ### 🩹 Fixes
48
+
49
+ - bind fetch to window ([#265](https://github.com/dynamic-labs/dynamic-sdk/pull/265))
50
+
51
+ ## 0.0.1-alpha.20 (2025-08-06)
52
+
53
+ ### 🚀 Features
54
+
55
+ - raise an error if different dynamic packages are on different versions ([#253](https://github.com/dynamic-labs/dynamic-sdk/pull/253))
56
+
57
+ ## 0.0.1-alpha.19 (2025-07-23)
58
+
59
+ This was a version bump only, there were no code changes.
60
+
61
+ ## 0.0.1-alpha.18 (2025-07-22)
62
+
63
+ This was a version bump only, there were no code changes.
64
+
65
+ ## 0.0.1-alpha.17 (2025-07-22)
66
+
67
+ This was a version bump only, there were no code changes.
68
+
69
+ ## 0.0.1-alpha.16 (2025-07-14)
70
+
71
+ ### 🚀 Features
72
+
73
+ - add new getMultichainBalances api method ([#219](https://github.com/dynamic-labs/dynamic-sdk/pull/219))
74
+ - adds authenticated event ([#222](https://github.com/dynamic-labs/dynamic-sdk/pull/222))
75
+
76
+ ## 0.0.1-alpha.15 (2025-07-14)
77
+
78
+ ### 🚀 Features
79
+
80
+ - **SIN-7:** Add Signin with Passkey ([#201](https://github.com/dynamic-labs/dynamic-sdk/pull/201))
81
+
82
+ ## 0.0.1-alpha.14 (2025-07-11)
83
+
84
+ ### 🩹 Fixes
85
+
86
+ - import zod mini using namespace ([#214](https://github.com/dynamic-labs/dynamic-sdk/pull/214))
87
+
88
+ ## 0.0.1-alpha.13 (2025-07-09)
89
+
90
+ ### 🩹 Fixes
91
+
92
+ - convert api headers to get api headers ([#211](https://github.com/dynamic-labs/dynamic-sdk/pull/211))
93
+
94
+ ## 0.0.1-alpha.12 (2025-07-09)
95
+
96
+ ### 🩹 Fixes
97
+
98
+ - allow the api call to include cookie credentials ([#209](https://github.com/dynamic-labs/dynamic-sdk/pull/209))
99
+
100
+ ## 0.0.1-alpha.11 (2025-07-08)
101
+
102
+ This was a version bump only, there were no code changes.
103
+
104
+ ## 0.0.1-alpha.10 (2025-07-08)
105
+
106
+ This was a version bump only, there were no code changes.
107
+
108
+ ## 0.0.1-alpha.9 (2025-07-08)
109
+
110
+ ### 🩹 Fixes
111
+
112
+ - throw when attempting to set undefined prop in storage ([#200](https://github.com/dynamic-labs/dynamic-sdk/pull/200))
113
+
114
+ ## 0.0.1-alpha.8 (2025-07-03)
115
+
116
+ This was a version bump only, there were no code changes.
117
+
118
+ ## 0.0.1-alpha.7 (2025-07-02)
119
+
120
+ ### 🩹 Fixes
121
+
122
+ - **mfa:** make device id optional ([#175](https://github.com/dynamic-labs/dynamic-sdk/pull/175))
123
+ - **mfa:** allow create mfa options to authTotpMfaDevice ([#178](https://github.com/dynamic-labs/dynamic-sdk/pull/178))
124
+
125
+ ## 0.0.1-alpha.6 (2025-06-30)
126
+
127
+ ### 🚀 Features
128
+
129
+ - add support for solana wallet standard ([#133](https://github.com/dynamic-labs/dynamic-sdk/pull/133))
130
+ - add support social sign in ([#123](https://github.com/dynamic-labs/dynamic-sdk/pull/123))
131
+ - add support for TOTP MFA ([#139](https://github.com/dynamic-labs/dynamic-sdk/pull/139))([#140](https://github.com/dynamic-labs/dynamic-sdk/pull/140))([#141](https://github.com/dynamic-labs/dynamic-sdk/pull/141))([#142](https://github.com/dynamic-labs/dynamic-sdk/pull/142))([#143](https://github.com/dynamic-labs/dynamic-sdk/pull/143))([#144](https://github.com/dynamic-labs/dynamic-sdk/pull/144))([#149](https://github.com/dynamic-labs/dynamic-sdk/pull/149))([#146](https://github.com/dynamic-labs/dynamic-sdk/pull/146))([#147](https://github.com/dynamic-labs/dynamic-sdk/pull/147))
132
+ - add methods to connect and verify a wallet ([#99](https://github.com/dynamic-labs/dynamic-sdk/pull/99))
133
+ - add signMessage ([#111](https://github.com/dynamic-labs/dynamic-sdk/pull/111))
134
+ - add primary wallet account ([#128](https://github.com/dynamic-labs/dynamic-sdk/pull/128))
135
+ - cache project settings for connected users ([#148](https://github.com/dynamic-labs/dynamic-sdk/pull/148))
136
+ - add updateUser function ([#138](https://github.com/dynamic-labs/dynamic-sdk/pull/138))
137
+
138
+ ### 🩹 Fixes
139
+
140
+ - use correct import path for commonjs ([#125](https://github.com/dynamic-labs/dynamic-sdk/pull/125))
141
+ - ensure change events are fired only when state changes ([#168](https://github.com/dynamic-labs/dynamic-sdk/pull/168))
142
+
143
+ ### 🔧 Refactors
144
+
145
+ - modularize DynamicCoreState with global interface ([#93](https://github.com/dynamic-labs/dynamic-sdk/pull/93))
146
+ - add setVerifyResponse ([#106](https://github.com/dynamic-labs/dynamic-sdk/pull/106))
147
+ - rename set verify response function ([#122](https://github.com/dynamic-labs/dynamic-sdk/pull/122))
148
+
149
+ ## 0.0.1-alpha.5 (2025-06-04)
150
+
151
+ ### 🩹 Fixes
152
+
153
+ - support server side rendering ([#92](https://github.com/dynamic-labs/dynamic-sdk/pull/92))
154
+
155
+ ## 0.0.1-alpha.4 (2025-05-28)
156
+
157
+ ### 🚀 Features
158
+
159
+ - allow manual init of client ([#88](https://github.com/dynamic-labs/dynamic-sdk/pull/88))
160
+
161
+ ### 🩹 Fixes
162
+
163
+ - client core accidentally sharing state among different instances ([#89](https://github.com/dynamic-labs/dynamic-sdk/pull/89))
164
+
165
+ ## 0.0.1-alpha.3 (2025-05-27)
166
+
167
+ ### 🩹 Fixes
168
+
169
+ - properly export state changed events ([#85](https://github.com/dynamic-labs/dynamic-sdk/pull/85))
170
+
171
+ ## 0.0.1-alpha.2 (2025-05-26)
172
+
173
+ ### 🚀 Features
174
+
175
+ - logout user when session expires ([#47](https://github.com/dynamic-labs/dynamic-sdk/pull/47))
176
+ - add sms verification ([#78](https://github.com/dynamic-labs/dynamic-sdk/pull/78))
177
+ - raise changed events for state variables ([#79](https://github.com/dynamic-labs/dynamic-sdk/pull/79))
178
+ - allow extending the client ([#80](https://github.com/dynamic-labs/dynamic-sdk/pull/80))
179
+
180
+ ## 0.0.1-alpha.1 (2025-05-19)
181
+
182
+ ### 🩹 Fixes
183
+
184
+ - make the client package public ([#74](https://github.com/dynamic-labs/dynamic-sdk/pull/74))
185
+
186
+ ## 0.0.1-alpha.0 (2025-05-16)
187
+
188
+ Initial release of the Dynamic SDK.
package/README.md ADDED
@@ -0,0 +1,16 @@
1
+ # @dynamic-labs-sdk/evm
2
+
3
+ This package contains the EVM integration for the Dynamic SDK.
4
+
5
+ ## Usage
6
+
7
+ ```ts
8
+ import { addEvmExtension } from '@dynamic-labs-sdk/evm';
9
+ import { createDynamicClient } from '@dynamic-labs-sdk/client';
10
+
11
+ const dynamicClient = createDynamicClient({
12
+ environmentId: '123',
13
+ });
14
+
15
+ addEvmExtension(dynamicClient);
16
+ ```
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ var name = "@dynamic-labs-sdk/evm";
4
+ var version = "0.0.1-alpha.25";
5
+
6
+ function _extends() {
7
+ _extends = Object.assign || function assign(target) {
8
+ for(var i = 1; i < arguments.length; i++){
9
+ var source = arguments[i];
10
+ for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
11
+ }
12
+ return target;
13
+ };
14
+ return _extends.apply(this, arguments);
15
+ }
16
+
17
+ exports._extends = _extends;
18
+ exports.name = name;
19
+ exports.version = version;
@@ -0,0 +1,15 @@
1
+ var name = "@dynamic-labs-sdk/evm";
2
+ var version = "0.0.1-alpha.25";
3
+
4
+ function _extends() {
5
+ _extends = Object.assign || function assign(target) {
6
+ for(var i = 1; i < arguments.length; i++){
7
+ var source = arguments[i];
8
+ for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
9
+ }
10
+ return target;
11
+ };
12
+ return _extends.apply(this, arguments);
13
+ }
14
+
15
+ export { _extends as _, name as n, version as v };
@@ -0,0 +1,126 @@
1
+ 'use strict';
2
+
3
+ var core = require('@dynamic-labs-sdk/client/core');
4
+ var registerEvmNetworkProviderBuilder = require('./registerEvmNetworkProviderBuilder.cjs.js');
5
+ var sdkApiCore = require('@dynamic-labs/sdk-api-core');
6
+ var viem = require('viem');
7
+
8
+ const getActiveNetworkId = async ({ eip1193 })=>{
9
+ const chainIdHex = await eip1193.request({
10
+ method: 'eth_chainId',
11
+ params: []
12
+ });
13
+ return {
14
+ networkId: `${parseInt(chainIdHex, 16)}`
15
+ };
16
+ };
17
+
18
+ const createWalletProviderFromEIP1193Provider = ({ eip1193, icon, displayName })=>{
19
+ const chain = 'EVM';
20
+ const connect = async ()=>{
21
+ const addresses = await eip1193.request({
22
+ method: 'eth_requestAccounts',
23
+ params: []
24
+ });
25
+ const formattedAddresses = addresses.map((address)=>viem.getAddress(address));
26
+ return {
27
+ addresses: formattedAddresses
28
+ };
29
+ };
30
+ const disconnect = async ()=>{
31
+ await eip1193.request({
32
+ method: 'wallet_revokePermissions',
33
+ params: []
34
+ });
35
+ };
36
+ const getConnectedAddresses = async ()=>{
37
+ const addresses = await eip1193.request({
38
+ method: 'eth_accounts',
39
+ params: []
40
+ });
41
+ const formattedAddresses = addresses.map((address)=>viem.getAddress(address));
42
+ return {
43
+ addresses: formattedAddresses
44
+ };
45
+ };
46
+ const signMessage = async ({ message, walletAccount })=>{
47
+ const params = [
48
+ message
49
+ ];
50
+ if (walletAccount) {
51
+ params.push(walletAccount.address);
52
+ }
53
+ const signedMessage = await eip1193.request({
54
+ method: 'personal_sign',
55
+ params
56
+ });
57
+ return {
58
+ signature: signedMessage
59
+ };
60
+ };
61
+ return {
62
+ chain,
63
+ connect,
64
+ disconnect,
65
+ getActiveNetworkId: ()=>getActiveNetworkId({
66
+ eip1193
67
+ }),
68
+ getConnectedAddresses,
69
+ getWalletProviderType: ()=>sdkApiCore.WalletProviderEnum.BrowserExtension,
70
+ groupKey: core.formatWalletProviderGroupKey(displayName),
71
+ key: core.formatWalletProviderKey(displayName, chain),
72
+ metadata: {
73
+ displayName,
74
+ icon: icon
75
+ },
76
+ request: eip1193.request.bind(eip1193.request),
77
+ signMessage
78
+ };
79
+ };
80
+
81
+ const isEip9693Event = (event)=>event !== null && event !== undefined && event.type === 'eip6963:announceProvider' && event.detail !== undefined && event.detail !== null;
82
+
83
+ const listenForEIP6963ProviderAnnouncement = (onProvider, /**
84
+ * This feature is only available in the browser
85
+ * so it is fine to use the window directly here.
86
+ *
87
+ * TODO: check with others
88
+ */ // eslint-disable-next-line no-restricted-globals
89
+ globalWindow = window)=>{
90
+ const handler = (event)=>{
91
+ if (!isEip9693Event(event)) return;
92
+ onProvider(event.detail);
93
+ };
94
+ globalWindow.addEventListener('eip6963:announceProvider', handler);
95
+ globalWindow.dispatchEvent(new Event('eip6963:requestProvider'));
96
+ return ()=>{
97
+ globalWindow.removeEventListener('eip6963:announceProvider', handler);
98
+ };
99
+ };
100
+
101
+ const EIP6963_EXTENSION_KEY = 'eip6963';
102
+ const addEIP6963Extension = (client = core.getDefaultClient())=>{
103
+ registerEvmNetworkProviderBuilder.registerEvmNetworkProviderBuilder(client);
104
+ if (core.hasExtension({
105
+ extensionKey: EIP6963_EXTENSION_KEY
106
+ }, client)) {
107
+ return;
108
+ }
109
+ core.registerExtension({
110
+ extensionKey: EIP6963_EXTENSION_KEY
111
+ }, client);
112
+ const walletProviderRegistry = core.getWalletProviderRegistry(client);
113
+ listenForEIP6963ProviderAnnouncement((detail)=>{
114
+ const walletProvider = createWalletProviderFromEIP1193Provider({
115
+ displayName: detail.info.name,
116
+ eip1193: detail.provider,
117
+ icon: detail.info.icon
118
+ });
119
+ walletProviderRegistry.register({
120
+ priority: core.WalletProviderPriority.WALLET_SELF_ANNOUNCEMENT_STANDARD,
121
+ walletProvider
122
+ });
123
+ });
124
+ };
125
+
126
+ exports.addEIP6963Extension = addEIP6963Extension;
@@ -0,0 +1,124 @@
1
+ import { formatWalletProviderKey, formatWalletProviderGroupKey, getDefaultClient, hasExtension, registerExtension, getWalletProviderRegistry, WalletProviderPriority } from '@dynamic-labs-sdk/client/core';
2
+ import { r as registerEvmNetworkProviderBuilder } from './registerEvmNetworkProviderBuilder.esm.js';
3
+ import { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';
4
+ import { getAddress } from 'viem';
5
+
6
+ const getActiveNetworkId = async ({ eip1193 })=>{
7
+ const chainIdHex = await eip1193.request({
8
+ method: 'eth_chainId',
9
+ params: []
10
+ });
11
+ return {
12
+ networkId: `${parseInt(chainIdHex, 16)}`
13
+ };
14
+ };
15
+
16
+ const createWalletProviderFromEIP1193Provider = ({ eip1193, icon, displayName })=>{
17
+ const chain = 'EVM';
18
+ const connect = async ()=>{
19
+ const addresses = await eip1193.request({
20
+ method: 'eth_requestAccounts',
21
+ params: []
22
+ });
23
+ const formattedAddresses = addresses.map((address)=>getAddress(address));
24
+ return {
25
+ addresses: formattedAddresses
26
+ };
27
+ };
28
+ const disconnect = async ()=>{
29
+ await eip1193.request({
30
+ method: 'wallet_revokePermissions',
31
+ params: []
32
+ });
33
+ };
34
+ const getConnectedAddresses = async ()=>{
35
+ const addresses = await eip1193.request({
36
+ method: 'eth_accounts',
37
+ params: []
38
+ });
39
+ const formattedAddresses = addresses.map((address)=>getAddress(address));
40
+ return {
41
+ addresses: formattedAddresses
42
+ };
43
+ };
44
+ const signMessage = async ({ message, walletAccount })=>{
45
+ const params = [
46
+ message
47
+ ];
48
+ if (walletAccount) {
49
+ params.push(walletAccount.address);
50
+ }
51
+ const signedMessage = await eip1193.request({
52
+ method: 'personal_sign',
53
+ params
54
+ });
55
+ return {
56
+ signature: signedMessage
57
+ };
58
+ };
59
+ return {
60
+ chain,
61
+ connect,
62
+ disconnect,
63
+ getActiveNetworkId: ()=>getActiveNetworkId({
64
+ eip1193
65
+ }),
66
+ getConnectedAddresses,
67
+ getWalletProviderType: ()=>WalletProviderEnum.BrowserExtension,
68
+ groupKey: formatWalletProviderGroupKey(displayName),
69
+ key: formatWalletProviderKey(displayName, chain),
70
+ metadata: {
71
+ displayName,
72
+ icon: icon
73
+ },
74
+ request: eip1193.request.bind(eip1193.request),
75
+ signMessage
76
+ };
77
+ };
78
+
79
+ const isEip9693Event = (event)=>event !== null && event !== undefined && event.type === 'eip6963:announceProvider' && event.detail !== undefined && event.detail !== null;
80
+
81
+ const listenForEIP6963ProviderAnnouncement = (onProvider, /**
82
+ * This feature is only available in the browser
83
+ * so it is fine to use the window directly here.
84
+ *
85
+ * TODO: check with others
86
+ */ // eslint-disable-next-line no-restricted-globals
87
+ globalWindow = window)=>{
88
+ const handler = (event)=>{
89
+ if (!isEip9693Event(event)) return;
90
+ onProvider(event.detail);
91
+ };
92
+ globalWindow.addEventListener('eip6963:announceProvider', handler);
93
+ globalWindow.dispatchEvent(new Event('eip6963:requestProvider'));
94
+ return ()=>{
95
+ globalWindow.removeEventListener('eip6963:announceProvider', handler);
96
+ };
97
+ };
98
+
99
+ const EIP6963_EXTENSION_KEY = 'eip6963';
100
+ const addEIP6963Extension = (client = getDefaultClient())=>{
101
+ registerEvmNetworkProviderBuilder(client);
102
+ if (hasExtension({
103
+ extensionKey: EIP6963_EXTENSION_KEY
104
+ }, client)) {
105
+ return;
106
+ }
107
+ registerExtension({
108
+ extensionKey: EIP6963_EXTENSION_KEY
109
+ }, client);
110
+ const walletProviderRegistry = getWalletProviderRegistry(client);
111
+ listenForEIP6963ProviderAnnouncement((detail)=>{
112
+ const walletProvider = createWalletProviderFromEIP1193Provider({
113
+ displayName: detail.info.name,
114
+ eip1193: detail.provider,
115
+ icon: detail.info.icon
116
+ });
117
+ walletProviderRegistry.register({
118
+ priority: WalletProviderPriority.WALLET_SELF_ANNOUNCEMENT_STANDARD,
119
+ walletProvider
120
+ });
121
+ });
122
+ };
123
+
124
+ export { addEIP6963Extension as a };
@@ -0,0 +1,94 @@
1
+ 'use strict';
2
+
3
+ var core = require('@dynamic-labs-sdk/client/core');
4
+ var registerEvmNetworkProviderBuilder = require('./registerEvmNetworkProviderBuilder.cjs.js');
5
+ var _extends = require('./_extends.cjs.js');
6
+ var client = require('@dynamic-labs-sdk/client');
7
+ var core$1 = require('@dynamic-labs-sdk/client/waas/core');
8
+ var sdkApiCore = require('@dynamic-labs/sdk-api-core');
9
+
10
+ const getActiveNetworkId = async ({ logger })=>{
11
+ logger.warn('getActiveNetworkId is not implemented');
12
+ throw new core.MethodNotImplementedError('getActiveNetworkId');
13
+ };
14
+
15
+ const createWalletProviderForWaasEvm = ({ dynamicClient })=>{
16
+ const chain = 'EVM';
17
+ const logger = core.getCore(dynamicClient).logger;
18
+ const waasProvider = core$1.createWaasProvider({
19
+ chain,
20
+ sdkClient: dynamicClient
21
+ });
22
+ const getConnectedAddresses = async ()=>{
23
+ logger.warn('getConnectedAddresses is not implemented');
24
+ throw new core.MethodNotImplementedError('getConnectedAddresses');
25
+ };
26
+ const request = async (args)=>{
27
+ logger.warn('request is not implemented', {
28
+ args
29
+ });
30
+ throw new core.MethodNotImplementedError('request');
31
+ };
32
+ const signMessage = async ({ message, walletAccount })=>{
33
+ core.assertDefined(walletAccount, 'Wallet account is required');
34
+ const { signature: signedSessionId } = await core.getSignedSessionId(dynamicClient);
35
+ core.assertDefined(signedSessionId, 'Signed session ID is required');
36
+ let mfaToken = undefined;
37
+ if (client.isMfaRequiredForAction({
38
+ mfaAction: sdkApiCore.MFAAction.WalletWaasSign
39
+ }, dynamicClient)) {
40
+ mfaToken = client.consumeMfaToken(dynamicClient);
41
+ }
42
+ const waasClient = await waasProvider.getWaasClient();
43
+ var _dynamicClient_token;
44
+ const signature = await waasClient.signMessage({
45
+ accountAddress: walletAccount.address,
46
+ authToken: (_dynamicClient_token = dynamicClient.token) != null ? _dynamicClient_token : undefined,
47
+ message,
48
+ mfaToken,
49
+ signedSessionId
50
+ });
51
+ return {
52
+ signature
53
+ };
54
+ };
55
+ return _extends._extends({}, waasProvider, {
56
+ chain,
57
+ getActiveNetworkId: ()=>getActiveNetworkId({
58
+ logger
59
+ }),
60
+ getConnectedAddresses,
61
+ getWalletProviderType: ()=>sdkApiCore.WalletProviderEnum.EmbeddedWallet,
62
+ groupKey: core.formatWalletProviderGroupKey(core$1.DYNAMIC_WAAS_METADATA.name),
63
+ key: core.formatWalletProviderKey(core$1.DYNAMIC_WAAS_METADATA.name, chain),
64
+ metadata: {
65
+ displayName: core$1.DYNAMIC_WAAS_METADATA.name,
66
+ icon: core$1.DYNAMIC_WAAS_METADATA.icon
67
+ },
68
+ request,
69
+ signMessage
70
+ });
71
+ };
72
+
73
+ const WAAS_EVM_EXTENSION_KEY = 'waasEvm';
74
+ const addWaasEvmExtension = (client = core.getDefaultClient())=>{
75
+ registerEvmNetworkProviderBuilder.registerEvmNetworkProviderBuilder(client);
76
+ if (core.hasExtension({
77
+ extensionKey: WAAS_EVM_EXTENSION_KEY
78
+ }, client)) {
79
+ return;
80
+ }
81
+ core.registerExtension({
82
+ extensionKey: WAAS_EVM_EXTENSION_KEY
83
+ }, client);
84
+ const walletProviderRegistry = core.getWalletProviderRegistry(client);
85
+ const walletProvider = createWalletProviderForWaasEvm({
86
+ dynamicClient: client
87
+ });
88
+ walletProviderRegistry.register({
89
+ priority: core.WalletProviderPriority.WALLET_SDK,
90
+ walletProvider
91
+ });
92
+ };
93
+
94
+ exports.addWaasEvmExtension = addWaasEvmExtension;
@@ -0,0 +1,92 @@
1
+ import { MethodNotImplementedError, getCore, formatWalletProviderKey, formatWalletProviderGroupKey, assertDefined, getSignedSessionId, getDefaultClient, hasExtension, registerExtension, getWalletProviderRegistry, WalletProviderPriority } from '@dynamic-labs-sdk/client/core';
2
+ import { r as registerEvmNetworkProviderBuilder } from './registerEvmNetworkProviderBuilder.esm.js';
3
+ import { _ as _extends } from './_extends.esm.js';
4
+ import { isMfaRequiredForAction, consumeMfaToken } from '@dynamic-labs-sdk/client';
5
+ import { createWaasProvider, DYNAMIC_WAAS_METADATA } from '@dynamic-labs-sdk/client/waas/core';
6
+ import { WalletProviderEnum, MFAAction } from '@dynamic-labs/sdk-api-core';
7
+
8
+ const getActiveNetworkId = async ({ logger })=>{
9
+ logger.warn('getActiveNetworkId is not implemented');
10
+ throw new MethodNotImplementedError('getActiveNetworkId');
11
+ };
12
+
13
+ const createWalletProviderForWaasEvm = ({ dynamicClient })=>{
14
+ const chain = 'EVM';
15
+ const logger = getCore(dynamicClient).logger;
16
+ const waasProvider = createWaasProvider({
17
+ chain,
18
+ sdkClient: dynamicClient
19
+ });
20
+ const getConnectedAddresses = async ()=>{
21
+ logger.warn('getConnectedAddresses is not implemented');
22
+ throw new MethodNotImplementedError('getConnectedAddresses');
23
+ };
24
+ const request = async (args)=>{
25
+ logger.warn('request is not implemented', {
26
+ args
27
+ });
28
+ throw new MethodNotImplementedError('request');
29
+ };
30
+ const signMessage = async ({ message, walletAccount })=>{
31
+ assertDefined(walletAccount, 'Wallet account is required');
32
+ const { signature: signedSessionId } = await getSignedSessionId(dynamicClient);
33
+ assertDefined(signedSessionId, 'Signed session ID is required');
34
+ let mfaToken = undefined;
35
+ if (isMfaRequiredForAction({
36
+ mfaAction: MFAAction.WalletWaasSign
37
+ }, dynamicClient)) {
38
+ mfaToken = consumeMfaToken(dynamicClient);
39
+ }
40
+ const waasClient = await waasProvider.getWaasClient();
41
+ var _dynamicClient_token;
42
+ const signature = await waasClient.signMessage({
43
+ accountAddress: walletAccount.address,
44
+ authToken: (_dynamicClient_token = dynamicClient.token) != null ? _dynamicClient_token : undefined,
45
+ message,
46
+ mfaToken,
47
+ signedSessionId
48
+ });
49
+ return {
50
+ signature
51
+ };
52
+ };
53
+ return _extends({}, waasProvider, {
54
+ chain,
55
+ getActiveNetworkId: ()=>getActiveNetworkId({
56
+ logger
57
+ }),
58
+ getConnectedAddresses,
59
+ getWalletProviderType: ()=>WalletProviderEnum.EmbeddedWallet,
60
+ groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.name),
61
+ key: formatWalletProviderKey(DYNAMIC_WAAS_METADATA.name, chain),
62
+ metadata: {
63
+ displayName: DYNAMIC_WAAS_METADATA.name,
64
+ icon: DYNAMIC_WAAS_METADATA.icon
65
+ },
66
+ request,
67
+ signMessage
68
+ });
69
+ };
70
+
71
+ const WAAS_EVM_EXTENSION_KEY = 'waasEvm';
72
+ const addWaasEvmExtension = (client = getDefaultClient())=>{
73
+ registerEvmNetworkProviderBuilder(client);
74
+ if (hasExtension({
75
+ extensionKey: WAAS_EVM_EXTENSION_KEY
76
+ }, client)) {
77
+ return;
78
+ }
79
+ registerExtension({
80
+ extensionKey: WAAS_EVM_EXTENSION_KEY
81
+ }, client);
82
+ const walletProviderRegistry = getWalletProviderRegistry(client);
83
+ const walletProvider = createWalletProviderForWaasEvm({
84
+ dynamicClient: client
85
+ });
86
+ walletProviderRegistry.register({
87
+ priority: WalletProviderPriority.WALLET_SDK,
88
+ walletProvider
89
+ });
90
+ };
91
+
92
+ export { addWaasEvmExtension as a };
@@ -0,0 +1 @@
1
+ export * from "./src/exports/eip6963";