@dynamic-labs/solana-core 4.0.0-alpha.3 → 4.0.0-alpha.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +254 -0
- package/package.cjs +8 -0
- package/package.js +4 -0
- package/package.json +9 -16
- package/src/connector/{SolWalletConnector.cjs → SolanaWalletConnector.cjs} +6 -5
- package/src/connector/{SolWalletConnector.d.ts → SolanaWalletConnector.d.ts} +8 -5
- package/src/connector/{SolWalletConnector.js → SolanaWalletConnector.js} +6 -5
- package/src/connector/index.d.ts +1 -1
- package/src/index.cjs +5 -3
- package/src/index.js +5 -1
- package/src/rpc/RpcProviderSolana/RpcProviderSolana.cjs +2 -2
- package/src/rpc/RpcProviderSolana/RpcProviderSolana.d.ts +2 -2
- package/src/rpc/RpcProviderSolana/RpcProviderSolana.js +2 -2
- package/src/utils/SolanaUiTransaction/SolanaUiTransaction.cjs +62 -41
- package/src/utils/SolanaUiTransaction/SolanaUiTransaction.d.ts +8 -8
- package/src/utils/SolanaUiTransaction/SolanaUiTransaction.js +62 -41
- package/src/wallet/SolanaWallet.d.ts +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,258 @@
|
|
|
1
1
|
|
|
2
|
+
## [4.0.0-alpha.30](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.29...v4.0.0-alpha.30) (2024-11-13)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### ⚠ BREAKING CHANGES
|
|
6
|
+
|
|
7
|
+
* check wallet limitations from metadata (#7413)
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* confirmation ui disabled for solana signall and signTransaction ([#7403](https://github.com/dynamic-labs/dynamic-auth/issues/7403)) ([98a352a](https://github.com/dynamic-labs/dynamic-auth/commit/98a352a826202abad734f00df1b3d19080ecf1e2))
|
|
12
|
+
* get starknet wallets directly from window ([#7421](https://github.com/dynamic-labs/dynamic-auth/issues/7421)) ([13e24f7](https://github.com/dynamic-labs/dynamic-auth/commit/13e24f70accf7747f5137fc3f2b05c00939c3af3))
|
|
13
|
+
* issue with SollanaWalletConnectorWithConfig embedded wallets ([#7405](https://github.com/dynamic-labs/dynamic-auth/issues/7405)) ([f08ecd6](https://github.com/dynamic-labs/dynamic-auth/commit/f08ecd6955faf191177bb9833b7a594637a6c4cc))
|
|
14
|
+
* set override key in starknet injected connector ([#7420](https://github.com/dynamic-labs/dynamic-auth/issues/7420)) ([74b2887](https://github.com/dynamic-labs/dynamic-auth/commit/74b28874661b3bad1e0a0f92aa9d3c987dc71225))
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
* check wallet limitations from metadata ([#7413](https://github.com/dynamic-labs/dynamic-auth/issues/7413)) ([a419de6](https://github.com/dynamic-labs/dynamic-auth/commit/a419de643ea4ff240a27825c10670ba92589b71b))
|
|
18
|
+
|
|
19
|
+
## [4.0.0-alpha.29](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.28...v4.0.0-alpha.29) (2024-11-07)
|
|
20
|
+
|
|
21
|
+
## [4.0.0-alpha.28](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.27...v4.0.0-alpha.28) (2024-11-07)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### ⚠ BREAKING CHANGES
|
|
25
|
+
|
|
26
|
+
* upgrade to starknet v6
|
|
27
|
+
See this guide for more details: https://starknetjs.com/docs/guides/migrate/
|
|
28
|
+
There are no code changes required on the Dynamic SDK side, however if you have installed the `starknet` package, you will need to upgrade to >= v6.11.0.
|
|
29
|
+
|
|
30
|
+
### Features
|
|
31
|
+
|
|
32
|
+
* new transaction modal and ui for sign/signAll ([#7296](https://github.com/dynamic-labs/dynamic-auth/issues/7296)) ([05a8af1](https://github.com/dynamic-labs/dynamic-auth/commit/05a8af1eb772b2b8087ed96a54caf4b6ae8b79d2)), closes [#7297](https://github.com/dynamic-labs/dynamic-auth/issues/7297) [#7298](https://github.com/dynamic-labs/dynamic-auth/issues/7298)
|
|
33
|
+
* upgrade to starknet v6 ([#7189](https://github.com/dynamic-labs/dynamic-auth/issues/7189)) ([2a6e24e](https://github.com/dynamic-labs/dynamic-auth/commit/2a6e24e4178fcee671b381c28f6a681f4ce52c62))
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
### Bug Fixes
|
|
37
|
+
|
|
38
|
+
* transaction confirmation modal popup ([#7368](https://github.com/dynamic-labs/dynamic-auth/issues/7368)) ([3c48658](https://github.com/dynamic-labs/dynamic-auth/commit/3c48658a62874d908bba8f06fb092ff5983ede16))
|
|
39
|
+
|
|
40
|
+
## [4.0.0-alpha.27](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.26...v4.0.0-alpha.27) (2024-11-06)
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
### Features
|
|
44
|
+
|
|
45
|
+
* allows adding connection configuration for solana connectors ([#7354](https://github.com/dynamic-labs/dynamic-auth/issues/7354)) ([01e35ee](https://github.com/dynamic-labs/dynamic-auth/commit/01e35ee5bfe4605df48e4188a753111efe483048))
|
|
46
|
+
* allows passing solana connection config to dynamic client ([#7357](https://github.com/dynamic-labs/dynamic-auth/issues/7357)) ([6da14ce](https://github.com/dynamic-labs/dynamic-auth/commit/6da14ceb481147aea31d192fe268be43a8af80e9))
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
### Bug Fixes
|
|
50
|
+
|
|
51
|
+
* check legacy vs eip1599 tx in global connectivity ([#7341](https://github.com/dynamic-labs/dynamic-auth/issues/7341)) ([b223ea7](https://github.com/dynamic-labs/dynamic-auth/commit/b223ea7a5ed5637e11da1040c631c48bc23ba76d))
|
|
52
|
+
* global connectivity multiple transactions in a row ([#7342](https://github.com/dynamic-labs/dynamic-auth/issues/7342)) ([d13c1af](https://github.com/dynamic-labs/dynamic-auth/commit/d13c1afec6b3680961621d8317f55549b3ed428f))
|
|
53
|
+
|
|
54
|
+
## [4.0.0-alpha.26](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.25...v4.0.0-alpha.26) (2024-11-04)
|
|
55
|
+
|
|
56
|
+
## [4.0.0-alpha.25](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.24...v4.0.0-alpha.25) (2024-11-01)
|
|
57
|
+
|
|
58
|
+
## [4.0.0-alpha.24](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.23...v4.0.0-alpha.24) (2024-10-31)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
### Bug Fixes
|
|
62
|
+
|
|
63
|
+
* prevent use-wallet-options from reading empty wallet-book ([#7319](https://github.com/dynamic-labs/dynamic-auth/issues/7319)) ([fc1269e](https://github.com/dynamic-labs/dynamic-auth/commit/fc1269ed2b59ee17fc528d24a4d34936eb20c02f))
|
|
64
|
+
|
|
65
|
+
## [4.0.0-alpha.23](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.22...v4.0.0-alpha.23) (2024-10-31)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
### Features
|
|
69
|
+
|
|
70
|
+
* allow deletion of embedded wallets ([#7170](https://github.com/dynamic-labs/dynamic-auth/issues/7170)) ([40c5478](https://github.com/dynamic-labs/dynamic-auth/commit/40c54789594ba265a63b24f936da4e72b5b1c5b9))
|
|
71
|
+
|
|
72
|
+
## [4.0.0-alpha.22](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.21...v4.0.0-alpha.22) (2024-10-30)
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
### Features
|
|
76
|
+
|
|
77
|
+
* **QNTM-522:** add wallet details card ([#7239](https://github.com/dynamic-labs/dynamic-auth/issues/7239)) ([0181c87](https://github.com/dynamic-labs/dynamic-auth/commit/0181c8727af575620525b8ea47b196945c347846))
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
### Bug Fixes
|
|
81
|
+
|
|
82
|
+
* update check for wallet provider event listeners support ([#7303](https://github.com/dynamic-labs/dynamic-auth/issues/7303)) ([c5f3766](https://github.com/dynamic-labs/dynamic-auth/commit/c5f376691c87a0999991e477f9acd07eed4774aa))
|
|
83
|
+
|
|
84
|
+
## [4.0.0-alpha.21](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.20...v4.0.0-alpha.21) (2024-10-30)
|
|
85
|
+
|
|
86
|
+
## [4.0.0-alpha.20](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.19...v4.0.0-alpha.20) (2024-10-30)
|
|
87
|
+
|
|
88
|
+
## [4.0.0-alpha.19](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.18...v4.0.0-alpha.19) (2024-10-29)
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
### Bug Fixes
|
|
92
|
+
|
|
93
|
+
* ensure the client js will emit a change event after the value update ([#7284](https://github.com/dynamic-labs/dynamic-auth/issues/7284)) ([930d2e9](https://github.com/dynamic-labs/dynamic-auth/commit/930d2e9fdc75fd4a38da8ef6efc9d3e29152285b))
|
|
94
|
+
|
|
95
|
+
## [4.0.0-alpha.18](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.17...v4.0.0-alpha.18) (2024-10-29)
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
### Bug Fixes
|
|
99
|
+
|
|
100
|
+
* **web-extension:** add color scheme style to prevent broken style ([#7247](https://github.com/dynamic-labs/dynamic-auth/issues/7247)) ([c525c50](https://github.com/dynamic-labs/dynamic-auth/commit/c525c50ac02997f3baf220fd2e67c6c4b3d10903))
|
|
101
|
+
|
|
102
|
+
## [4.0.0-alpha.17](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.16...v4.0.0-alpha.17) (2024-10-28)
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
### Features
|
|
106
|
+
|
|
107
|
+
* add support for eclipse ([#7255](https://github.com/dynamic-labs/dynamic-auth/issues/7255)) ([70e9830](https://github.com/dynamic-labs/dynamic-auth/commit/70e9830c6c801e0298825b914ee825b578350cf0))
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
### Bug Fixes
|
|
111
|
+
|
|
112
|
+
* adds missing packages to zerodev-extension package ([#7187](https://github.com/dynamic-labs/dynamic-auth/issues/7187)) ([052a7e7](https://github.com/dynamic-labs/dynamic-auth/commit/052a7e7c08d458996d1be56f7697448ad5a9a1c9))
|
|
113
|
+
* unpin reactivity package for vue projects ([#7246](https://github.com/dynamic-labs/dynamic-auth/issues/7246)) ([18013e0](https://github.com/dynamic-labs/dynamic-auth/commit/18013e00d6855f8b371c9edb97594a08764c3868))
|
|
114
|
+
|
|
115
|
+
## [4.0.0-alpha.16](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.15...v4.0.0-alpha.16) (2024-10-27)
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
### Features
|
|
119
|
+
|
|
120
|
+
* add passkey to web-extension ([#7096](https://github.com/dynamic-labs/dynamic-auth/issues/7096)) ([a4b4643](https://github.com/dynamic-labs/dynamic-auth/commit/a4b4643e5307358425c878067bae095090f322ca))
|
|
121
|
+
* add social to web extension ([#7106](https://github.com/dynamic-labs/dynamic-auth/issues/7106)) ([422bc8e](https://github.com/dynamic-labs/dynamic-auth/commit/422bc8e2d276d960a7a76ad55a7b244c3fd83173))
|
|
122
|
+
* add support for compass and leap wallets ([9738749](https://github.com/dynamic-labs/dynamic-auth/commit/9738749bb5ed8e07a2582df255f683e4d408db93))
|
|
123
|
+
* add support for epicgames social ([#7220](https://github.com/dynamic-labs/dynamic-auth/issues/7220)) ([cb5bc30](https://github.com/dynamic-labs/dynamic-auth/commit/cb5bc30bc17d063bdaa9b427a9358b30124c4589))
|
|
124
|
+
* add web-extension to client ([#7180](https://github.com/dynamic-labs/dynamic-auth/issues/7180)) ([e2ccbb7](https://github.com/dynamic-labs/dynamic-auth/commit/e2ccbb77bdd0250d000a6cc4d89a2e5d7d2f4bb2))
|
|
125
|
+
|
|
126
|
+
## [4.0.0-alpha.15](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.14...v4.0.0-alpha.15) (2024-10-19)
|
|
127
|
+
|
|
128
|
+
## [4.0.0-alpha.14](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.13...v4.0.0-alpha.14) (2024-10-18)
|
|
129
|
+
|
|
130
|
+
## [4.0.0-alpha.13](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.12...v4.0.0-alpha.13) (2024-10-18)
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
### Bug Fixes
|
|
134
|
+
|
|
135
|
+
* improve displayed chain name in network switcher ([#7153](https://github.com/dynamic-labs/dynamic-auth/issues/7153)) ([55d2e5a](https://github.com/dynamic-labs/dynamic-auth/commit/55d2e5a9954bf0255b5caf7aba7a6f1f2e215967))
|
|
136
|
+
|
|
137
|
+
## [4.0.0-alpha.12](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.11...v4.0.0-alpha.12) (2024-10-18)
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
### Features
|
|
141
|
+
|
|
142
|
+
* add support for xverse account change event ([#7114](https://github.com/dynamic-labs/dynamic-auth/issues/7114)) ([79df047](https://github.com/dynamic-labs/dynamic-auth/commit/79df04775edb297a339e2d74adcc873584a6d8af))
|
|
143
|
+
* solana embedded signall headless ([#7132](https://github.com/dynamic-labs/dynamic-auth/issues/7132)) ([fe16b71](https://github.com/dynamic-labs/dynamic-auth/commit/fe16b71a4c0ad775f8de87ca899cfdd1071f11d6))
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
### Bug Fixes
|
|
147
|
+
|
|
148
|
+
* bug where embeddedWalletCreated event was fired before listener … ([#7151](https://github.com/dynamic-labs/dynamic-auth/issues/7151)) ([ae9da56](https://github.com/dynamic-labs/dynamic-auth/commit/ae9da56850130491384a2d5f47c1617815dcce5b))
|
|
149
|
+
* edge case where wallet book fails to load ([#7148](https://github.com/dynamic-labs/dynamic-auth/issues/7148)) ([805dc6d](https://github.com/dynamic-labs/dynamic-auth/commit/805dc6d7cc4cdf0b23748d82b3bd8216d88d55b5))
|
|
150
|
+
* issues where native currency icons were incorrect ([#7126](https://github.com/dynamic-labs/dynamic-auth/issues/7126)) ([8b8891a](https://github.com/dynamic-labs/dynamic-auth/commit/8b8891a52397e17cc127ea3a09ade14c4b70a8ee))
|
|
151
|
+
* remove now-unused sessionTimeout from useSocial ([#7123](https://github.com/dynamic-labs/dynamic-auth/issues/7123)) ([7959a8a](https://github.com/dynamic-labs/dynamic-auth/commit/7959a8a4c8ceb76c5c4f1ae91af204bf9c5cae7b))
|
|
152
|
+
* Revert: Update Exodus extension version " ([#7130](https://github.com/dynamic-labs/dynamic-auth/issues/7130)) ([f2274ae](https://github.com/dynamic-labs/dynamic-auth/commit/f2274aefd29bb9f3fb6de8493e4a5f73946a5600)), closes [#7129](https://github.com/dynamic-labs/dynamic-auth/issues/7129)
|
|
153
|
+
* use embedded primaryChain when passing undefined chains list to createTurnkeyWallet ([#7149](https://github.com/dynamic-labs/dynamic-auth/issues/7149)) ([c73a3ae](https://github.com/dynamic-labs/dynamic-auth/commit/c73a3aeeda8045b936d218f7078ad79967c321ef))
|
|
154
|
+
|
|
155
|
+
## [4.0.0-alpha.11](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.10...v4.0.0-alpha.11) (2024-10-15)
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
### Bug Fixes
|
|
159
|
+
|
|
160
|
+
* missing null check in property accessor ([#7122](https://github.com/dynamic-labs/dynamic-auth/issues/7122)) ([bbb5e76](https://github.com/dynamic-labs/dynamic-auth/commit/bbb5e76c1284edad2829605444dda24971027a57))
|
|
161
|
+
|
|
162
|
+
## [4.0.0-alpha.10](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.9...v4.0.0-alpha.10) (2024-10-15)
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
### Bug Fixes
|
|
166
|
+
|
|
167
|
+
* epicgames key name without dash ([#7119](https://github.com/dynamic-labs/dynamic-auth/issues/7119)) ([7388d6c](https://github.com/dynamic-labs/dynamic-auth/commit/7388d6cf98f6ee92e12003549dfd1ad81951119e))
|
|
168
|
+
|
|
169
|
+
## [4.0.0-alpha.9](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.8...v4.0.0-alpha.9) (2024-10-11)
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
### Features
|
|
173
|
+
|
|
174
|
+
* add support for fordefi wallet ([#7109](https://github.com/dynamic-labs/dynamic-auth/issues/7109)) ([1adb6b1](https://github.com/dynamic-labs/dynamic-auth/commit/1adb6b15b7f8e9156207ac7addf4368d27c1e371))
|
|
175
|
+
* support ability to define additional oauth scopes ([#7105](https://github.com/dynamic-labs/dynamic-auth/issues/7105)) ([b303203](https://github.com/dynamic-labs/dynamic-auth/commit/b303203e8041c0cbf5f8968df0d3cde04ed1b22a))
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
### Bug Fixes
|
|
179
|
+
|
|
180
|
+
* add eip6963 for exodus evm ([#7094](https://github.com/dynamic-labs/dynamic-auth/issues/7094)) ([c1ec5ef](https://github.com/dynamic-labs/dynamic-auth/commit/c1ec5ef4b6a531c563be4b690aa5f2bd4e7e6a16))
|
|
181
|
+
|
|
182
|
+
## [4.0.0-alpha.8](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.7...v4.0.0-alpha.8) (2024-10-07)
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
### Features
|
|
186
|
+
|
|
187
|
+
* add support for dynamic event callbacks in rn ([#6997](https://github.com/dynamic-labs/dynamic-auth/issues/6997)) ([f9ac402](https://github.com/dynamic-labs/dynamic-auth/commit/f9ac40259d9168dfe69dafd5fd44478ba0e69505))
|
|
188
|
+
* add support for dynamic handlers in rn ([#7032](https://github.com/dynamic-labs/dynamic-auth/issues/7032)) ([f61f926](https://github.com/dynamic-labs/dynamic-auth/commit/f61f92666b6df8483dde2c47304fd4fb02690f7d))
|
|
189
|
+
* Support for multi-chain AA ([#6829](https://github.com/dynamic-labs/dynamic-auth/issues/6829)) ([b4a0c0a](https://github.com/dynamic-labs/dynamic-auth/commit/b4a0c0a4de48231a3748826600407c25abf6894d))
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
### Bug Fixes
|
|
193
|
+
|
|
194
|
+
* persist isHardwareWalletEnabled on wallet connector ([#7025](https://github.com/dynamic-labs/dynamic-auth/issues/7025)) ([#7034](https://github.com/dynamic-labs/dynamic-auth/issues/7034)) ([4bfc301](https://github.com/dynamic-labs/dynamic-auth/commit/4bfc301d891f10db8c0bd31e5164c489a882c5c3))
|
|
195
|
+
|
|
196
|
+
## [4.0.0-alpha.7](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.6...v4.0.0-alpha.7) (2024-10-03)
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
### Features
|
|
200
|
+
|
|
201
|
+
* add account abstraction module to client ([#7002](https://github.com/dynamic-labs/dynamic-auth/issues/7002)) ([2f06975](https://github.com/dynamic-labs/dynamic-auth/commit/2f06975083dfa9d40537ef4a99b414eda1a68e01))
|
|
202
|
+
* add support for wallet events in rn ([#7061](https://github.com/dynamic-labs/dynamic-auth/issues/7061)) ([c7c4ce5](https://github.com/dynamic-labs/dynamic-auth/commit/c7c4ce51f27a2b84a1710c120d7006a00920c1e7))
|
|
203
|
+
* add zerodev extension for react native ([#7028](https://github.com/dynamic-labs/dynamic-auth/issues/7028)) ([858b8a8](https://github.com/dynamic-labs/dynamic-auth/commit/858b8a851cfa0cddc8e4559541b03992cf5ccdfc))
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
### Bug Fixes
|
|
207
|
+
|
|
208
|
+
* do not modify sol tx blockhash as tx could have been signed already ([#7050](https://github.com/dynamic-labs/dynamic-auth/issues/7050)) ([770edb4](https://github.com/dynamic-labs/dynamic-auth/commit/770edb49ddc231b75fb45a9f6d563f22e5185df2))
|
|
209
|
+
* ensure the correct auth mode is used on social redirect ([#7047](https://github.com/dynamic-labs/dynamic-auth/issues/7047)) ([7c27172](https://github.com/dynamic-labs/dynamic-auth/commit/7c271721d5ddf19e3fd1bf56ddb1d49e0e2bca07))
|
|
210
|
+
* prevent react native message timeout before sdk is ready ([#7051](https://github.com/dynamic-labs/dynamic-auth/issues/7051)) ([6421237](https://github.com/dynamic-labs/dynamic-auth/commit/6421237d677d788b824d53432c1a75b9d571aa78))
|
|
211
|
+
* update version error text ([#7054](https://github.com/dynamic-labs/dynamic-auth/issues/7054)) ([713dacb](https://github.com/dynamic-labs/dynamic-auth/commit/713dacb79c2513323c2e6840d7418716011c2dcd))
|
|
212
|
+
* use project settings sdk network for send flow ([#7011](https://github.com/dynamic-labs/dynamic-auth/issues/7011)) ([983e796](https://github.com/dynamic-labs/dynamic-auth/commit/983e79632762f71ee0502c92057a32ea985ae19c))
|
|
213
|
+
|
|
214
|
+
## [4.0.0-alpha.6](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.5...v4.0.0-alpha.6) (2024-10-01)
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
### ⚠ BREAKING CHANGES
|
|
218
|
+
|
|
219
|
+
* remove support to magic ([#7033](https://github.com/dynamic-labs/dynamic-auth/issues/7033)) ([0fdc41f](https://github.com/dynamic-labs/dynamic-auth/commit/0fdc41f05f87b32f56b73db068f984f18bdf69a0))
|
|
220
|
+
|
|
221
|
+
### Features
|
|
222
|
+
|
|
223
|
+
* global connectivity disconnect ([#7008](https://github.com/dynamic-labs/dynamic-auth/issues/7008)) ([80d705b](https://github.com/dynamic-labs/dynamic-auth/commit/80d705ba252aa3b01cbf4861507fed00e460215f))
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
### Bug Fixes
|
|
227
|
+
|
|
228
|
+
* add popper context to send balance ([#7016](https://github.com/dynamic-labs/dynamic-auth/issues/7016)) ([73aa6f1](https://github.com/dynamic-labs/dynamic-auth/commit/73aa6f122afe0db660ebb654f3e018ae7bf445c5))
|
|
229
|
+
* add retry to useConnectWithOtp ([#7012](https://github.com/dynamic-labs/dynamic-auth/issues/7012)) ([d551d72](https://github.com/dynamic-labs/dynamic-auth/commit/d551d72a463f8a03964858b30ec174d41985a7b1))
|
|
230
|
+
* don't re-fetch wallet address on network change ([#7019](https://github.com/dynamic-labs/dynamic-auth/issues/7019)) ([4e7900c](https://github.com/dynamic-labs/dynamic-auth/commit/4e7900cc24b3abda736bc81466eda7512cf7fc61))
|
|
231
|
+
* fix sign message with solana wallet standard provider ([#7014](https://github.com/dynamic-labs/dynamic-auth/issues/7014)) ([ffaf972](https://github.com/dynamic-labs/dynamic-auth/commit/ffaf972e8b190b0b8cd0103e0ef67bfdee6c8f7c))
|
|
232
|
+
* update wallet reference when user switches wallet in connect-only ([#7030](https://github.com/dynamic-labs/dynamic-auth/issues/7030)) ([75d9aa6](https://github.com/dynamic-labs/dynamic-auth/commit/75d9aa66f63fc5536caeff12d8b860c0ba86106f))
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
## [4.0.0-alpha.5](https://github.com/dynamic-labs/DynamicAuth/compare/v4.0.0-alpha.4...v4.0.0-alpha.5) (2024-09-25)
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
### Features
|
|
239
|
+
|
|
240
|
+
* add isInstalledOnBrowser prop to wallet options in useWalletOptions ([#6976](https://github.com/dynamic-labs/DynamicAuth/issues/6976)) ([0fda409](https://github.com/dynamic-labs/DynamicAuth/commit/0fda409b293c83d73869d791c3d38ac421dcdecb))
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
### Bug Fixes
|
|
244
|
+
|
|
245
|
+
* **client:** return user profile when using sign in with external jwt ([#7004](https://github.com/dynamic-labs/DynamicAuth/issues/7004)) ([927cfb6](https://github.com/dynamic-labs/DynamicAuth/commit/927cfb69f3dd7f8b00e3f0f975277a84c99c830b))
|
|
246
|
+
* react-native-extension to include esm ([#6965](https://github.com/dynamic-labs/DynamicAuth/issues/6965)) ([336825b](https://github.com/dynamic-labs/DynamicAuth/commit/336825b50142002bbc67c6f8850bd63030bf384b))
|
|
247
|
+
|
|
248
|
+
## [4.0.0-alpha.4](https://github.com/dynamic-labs/DynamicAuth/compare/v4.0.0-alpha.3...v4.0.0-alpha.4) (2024-09-23)
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
### Bug Fixes
|
|
252
|
+
|
|
253
|
+
* issue where builtin stream module was a dependency ([#6968](https://github.com/dynamic-labs/DynamicAuth/issues/6968)) ([0661129](https://github.com/dynamic-labs/DynamicAuth/commit/0661129920ba70ebbcd4d17ee5aa988c51d1b477))
|
|
254
|
+
* update in memory secure storage ([#6955](https://github.com/dynamic-labs/DynamicAuth/issues/6955)) ([697fc20](https://github.com/dynamic-labs/DynamicAuth/commit/697fc20740b243fa31ecf06e8b2ed9d09932a544))
|
|
255
|
+
|
|
2
256
|
## [4.0.0-alpha.3](https://github.com/dynamic-labs/DynamicAuth/compare/v4.0.0-alpha.2...v4.0.0-alpha.3) (2024-09-20)
|
|
3
257
|
|
|
4
258
|
|
package/package.cjs
ADDED
package/package.js
ADDED
package/package.json
CHANGED
|
@@ -1,16 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/solana-core",
|
|
3
|
-
"version": "4.0.0-alpha.
|
|
4
|
-
"repository": {
|
|
5
|
-
"type": "git",
|
|
6
|
-
"url": "git+https://github.com/dynamic-labs/dynamic-auth.git",
|
|
7
|
-
"directory": "packages/solana-core"
|
|
8
|
-
},
|
|
3
|
+
"version": "4.0.0-alpha.30",
|
|
9
4
|
"description": "Core package for utilities and types for solana",
|
|
10
|
-
"bugs": {
|
|
11
|
-
"url": "https://github.com/dynamic-labs/DynamicAuth/issues"
|
|
12
|
-
},
|
|
13
|
-
"homepage": "https://github.com/dynamic-labs/DynamicAuth/main/packages/solana-core#readme",
|
|
14
5
|
"author": "Dynamic Labs, Inc.",
|
|
15
6
|
"license": "MIT",
|
|
16
7
|
"main": "./src/index.cjs",
|
|
@@ -25,17 +16,19 @@
|
|
|
25
16
|
},
|
|
26
17
|
"./package.json": "./package.json"
|
|
27
18
|
},
|
|
19
|
+
"homepage": "https://www.dynamic.xyz/",
|
|
28
20
|
"dependencies": {
|
|
29
|
-
"@dynamic-labs/sdk-api-core": "0.0.
|
|
21
|
+
"@dynamic-labs/sdk-api-core": "0.0.563",
|
|
30
22
|
"@solana/web3.js": "1.92.1",
|
|
31
23
|
"@solana/spl-token": "0.4.6"
|
|
32
24
|
},
|
|
33
25
|
"peerDependencies": {
|
|
34
|
-
"@dynamic-labs/
|
|
35
|
-
"@dynamic-labs/
|
|
36
|
-
"@dynamic-labs/
|
|
37
|
-
"@dynamic-labs/
|
|
38
|
-
"@dynamic-labs/wallet-
|
|
26
|
+
"@dynamic-labs/assert-package-version": "4.0.0-alpha.30",
|
|
27
|
+
"@dynamic-labs/rpc-providers": "4.0.0-alpha.30",
|
|
28
|
+
"@dynamic-labs/types": "4.0.0-alpha.30",
|
|
29
|
+
"@dynamic-labs/utils": "4.0.0-alpha.30",
|
|
30
|
+
"@dynamic-labs/wallet-book": "4.0.0-alpha.30",
|
|
31
|
+
"@dynamic-labs/wallet-connector-core": "4.0.0-alpha.30",
|
|
39
32
|
"eventemitter3": "5.0.1"
|
|
40
33
|
}
|
|
41
34
|
}
|
|
@@ -13,7 +13,7 @@ var extractNonce = require('../utils/extractNonce/extractNonce.cjs');
|
|
|
13
13
|
var getGenesisHashLSKey = require('../utils/getGenesisHashLSKey/getGenesisHashLSKey.cjs');
|
|
14
14
|
|
|
15
15
|
const MEMO_PROGRAM_ID = new web3_js.PublicKey('MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr');
|
|
16
|
-
class
|
|
16
|
+
class SolanaWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
17
17
|
constructor(opts) {
|
|
18
18
|
var _a;
|
|
19
19
|
super(opts);
|
|
@@ -24,7 +24,8 @@ class SolWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
24
24
|
this.connectedChain = 'SOL';
|
|
25
25
|
this.solNetworks = opts.solNetworks;
|
|
26
26
|
this.chainRpcProviders = opts.chainRpcProviders;
|
|
27
|
-
|
|
27
|
+
this.connectionConfig = opts.connectionConfig;
|
|
28
|
+
(_a = this.chainRpcProviders) === null || _a === void 0 ? void 0 : _a.registerSolanaProviders(this.connectionConfig);
|
|
28
29
|
}
|
|
29
30
|
getNetwork() {
|
|
30
31
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
@@ -55,13 +56,13 @@ class SolWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
55
56
|
});
|
|
56
57
|
}
|
|
57
58
|
getWalletClient() {
|
|
58
|
-
var _a;
|
|
59
|
+
var _a, _b;
|
|
59
60
|
const [network] = this.solNetworks;
|
|
60
61
|
if (!network) {
|
|
61
62
|
throw new utils.DynamicError('No enabled networks');
|
|
62
63
|
}
|
|
63
64
|
const rpcUrl = ((_a = network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || network.rpcUrls[0];
|
|
64
|
-
return new web3_js.Connection(rpcUrl, 'confirmed');
|
|
65
|
+
return new web3_js.Connection(rpcUrl, (_b = this.connectionConfig) !== null && _b !== void 0 ? _b : 'confirmed');
|
|
65
66
|
}
|
|
66
67
|
getPublicClient() {
|
|
67
68
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
@@ -172,4 +173,4 @@ class SolWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
172
173
|
}
|
|
173
174
|
}
|
|
174
175
|
|
|
175
|
-
exports.
|
|
176
|
+
exports.SolanaWalletConnector = SolanaWalletConnector;
|
|
@@ -1,24 +1,27 @@
|
|
|
1
|
-
import { Connection } from '@solana/web3.js';
|
|
2
|
-
import { Chain, IHardwareWalletConnector, WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
|
|
1
|
+
import { Connection, ConnectionConfig } from '@solana/web3.js';
|
|
2
|
+
import { Chain, IHardwareWalletConnector, WalletConnectorBase, WalletMetadata } from '@dynamic-labs/wallet-connector-core';
|
|
3
3
|
import { GenericNetwork } from '@dynamic-labs/types';
|
|
4
4
|
import { WalletBookSchema } from '@dynamic-labs/wallet-book';
|
|
5
5
|
import { JwtVerifiedCredential } from '@dynamic-labs/sdk-api-core';
|
|
6
6
|
import { IChainRpcProviders } from '../rpc';
|
|
7
7
|
import { SolanaWallet } from '../wallet';
|
|
8
8
|
import { ISolana } from '../types';
|
|
9
|
-
export type
|
|
9
|
+
export type SolanaWalletConnectorOpts = {
|
|
10
10
|
chainRpcProviders: IChainRpcProviders;
|
|
11
11
|
solNetworks: GenericNetwork[];
|
|
12
12
|
walletBook: WalletBookSchema;
|
|
13
|
+
metadata?: WalletMetadata;
|
|
14
|
+
connectionConfig?: ConnectionConfig;
|
|
13
15
|
};
|
|
14
|
-
export declare abstract class
|
|
16
|
+
export declare abstract class SolanaWalletConnector extends WalletConnectorBase<typeof SolanaWallet> implements IHardwareWalletConnector {
|
|
15
17
|
isHardwareWalletEnabled: boolean;
|
|
16
18
|
verifiedCredentials: JwtVerifiedCredential[];
|
|
17
19
|
solNetworks: GenericNetwork[];
|
|
18
20
|
ChainWallet: typeof SolanaWallet;
|
|
19
21
|
supportedChains: Chain[];
|
|
20
22
|
connectedChain: Chain;
|
|
21
|
-
|
|
23
|
+
protected connectionConfig: ConnectionConfig | undefined;
|
|
24
|
+
constructor(opts: SolanaWalletConnectorOpts);
|
|
22
25
|
getNetwork(): Promise<string>;
|
|
23
26
|
endSession(): Promise<void>;
|
|
24
27
|
getWalletClient(): Connection;
|
|
@@ -9,7 +9,7 @@ import { extractNonce } from '../utils/extractNonce/extractNonce.js';
|
|
|
9
9
|
import { getGenesisHashLSKey } from '../utils/getGenesisHashLSKey/getGenesisHashLSKey.js';
|
|
10
10
|
|
|
11
11
|
const MEMO_PROGRAM_ID = new PublicKey('MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr');
|
|
12
|
-
class
|
|
12
|
+
class SolanaWalletConnector extends WalletConnectorBase {
|
|
13
13
|
constructor(opts) {
|
|
14
14
|
var _a;
|
|
15
15
|
super(opts);
|
|
@@ -20,7 +20,8 @@ class SolWalletConnector extends WalletConnectorBase {
|
|
|
20
20
|
this.connectedChain = 'SOL';
|
|
21
21
|
this.solNetworks = opts.solNetworks;
|
|
22
22
|
this.chainRpcProviders = opts.chainRpcProviders;
|
|
23
|
-
|
|
23
|
+
this.connectionConfig = opts.connectionConfig;
|
|
24
|
+
(_a = this.chainRpcProviders) === null || _a === void 0 ? void 0 : _a.registerSolanaProviders(this.connectionConfig);
|
|
24
25
|
}
|
|
25
26
|
getNetwork() {
|
|
26
27
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -51,13 +52,13 @@ class SolWalletConnector extends WalletConnectorBase {
|
|
|
51
52
|
});
|
|
52
53
|
}
|
|
53
54
|
getWalletClient() {
|
|
54
|
-
var _a;
|
|
55
|
+
var _a, _b;
|
|
55
56
|
const [network] = this.solNetworks;
|
|
56
57
|
if (!network) {
|
|
57
58
|
throw new DynamicError('No enabled networks');
|
|
58
59
|
}
|
|
59
60
|
const rpcUrl = ((_a = network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || network.rpcUrls[0];
|
|
60
|
-
return new Connection(rpcUrl, 'confirmed');
|
|
61
|
+
return new Connection(rpcUrl, (_b = this.connectionConfig) !== null && _b !== void 0 ? _b : 'confirmed');
|
|
61
62
|
}
|
|
62
63
|
getPublicClient() {
|
|
63
64
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -168,4 +169,4 @@ class SolWalletConnector extends WalletConnectorBase {
|
|
|
168
169
|
}
|
|
169
170
|
}
|
|
170
171
|
|
|
171
|
-
export {
|
|
172
|
+
export { SolanaWalletConnector };
|
package/src/connector/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './SolanaWalletConnector';
|
package/src/index.cjs
CHANGED
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var assertPackageVersion = require('@dynamic-labs/assert-package-version');
|
|
7
|
+
var _package = require('../package.cjs');
|
|
8
|
+
var SolanaWalletConnector = require('./connector/SolanaWalletConnector.cjs');
|
|
7
9
|
require('./rpc/RpcProviderSolana/RpcProviderSolana.cjs');
|
|
8
10
|
var rpcProviders = require('@dynamic-labs/rpc-providers');
|
|
9
11
|
var solanaProvidersSelector = require('./rpc/solanaProvidersSelector/solanaProvidersSelector.cjs');
|
|
@@ -17,9 +19,9 @@ var isSolanaWallet = require('./wallet/isSolanaWallet/isSolanaWallet.cjs');
|
|
|
17
19
|
var isLedgerSolanaWallet = require('./wallet/isLedgerSolanaWallet/isLedgerSolanaWallet.cjs');
|
|
18
20
|
var constants = require('./constants.cjs');
|
|
19
21
|
|
|
22
|
+
assertPackageVersion.assertPackageVersion('@dynamic-labs/solana-core', _package.version);
|
|
20
23
|
|
|
21
|
-
|
|
22
|
-
exports.SolWalletConnector = SolWalletConnector.SolWalletConnector;
|
|
24
|
+
exports.SolanaWalletConnector = SolanaWalletConnector.SolanaWalletConnector;
|
|
23
25
|
exports.solanaProvidersSelector = solanaProvidersSelector.solanaProvidersSelector;
|
|
24
26
|
exports.SolanaUiTransaction = SolanaUiTransaction.SolanaUiTransaction;
|
|
25
27
|
exports.decodeTransactionFromBase64 = decodeTransactionFromBase64.decodeTransactionFromBase64;
|
package/src/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
'use client'
|
|
2
|
-
|
|
2
|
+
import { assertPackageVersion } from '@dynamic-labs/assert-package-version';
|
|
3
|
+
import { version } from '../package.js';
|
|
4
|
+
export { SolanaWalletConnector } from './connector/SolanaWalletConnector.js';
|
|
3
5
|
import './rpc/RpcProviderSolana/RpcProviderSolana.js';
|
|
4
6
|
export * from '@dynamic-labs/rpc-providers';
|
|
5
7
|
export { solanaProvidersSelector } from './rpc/solanaProvidersSelector/solanaProvidersSelector.js';
|
|
@@ -12,3 +14,5 @@ export { SolanaWallet } from './wallet/SolanaWallet.js';
|
|
|
12
14
|
export { isSolanaWallet } from './wallet/isSolanaWallet/isSolanaWallet.js';
|
|
13
15
|
export { isLedgerSolanaWallet } from './wallet/isLedgerSolanaWallet/isLedgerSolanaWallet.js';
|
|
14
16
|
export { SOLANA_GENESIS_HASH } from './constants.js';
|
|
17
|
+
|
|
18
|
+
assertPackageVersion('@dynamic-labs/solana-core', version);
|
|
@@ -9,14 +9,14 @@ rpcProviders.ChainRpcProviders.getSolanaProviderByChainId = (rpcProviders, chain
|
|
|
9
9
|
const provider = (_a = rpcProviders['solana']) === null || _a === void 0 ? void 0 : _a.find((rpcProvider) => rpcProvider.chainId === chainId);
|
|
10
10
|
return provider;
|
|
11
11
|
};
|
|
12
|
-
rpcProviders.ChainRpcProviders.registerSolanaProviders = () => {
|
|
12
|
+
rpcProviders.ChainRpcProviders.registerSolanaProviders = (connectionConfig) => {
|
|
13
13
|
rpcProviders.ChainRpcProviders.registerChainProviders(rpcProviders.ProviderChain.SOLANA, (config) => {
|
|
14
14
|
const rpcProviders = {};
|
|
15
15
|
if (config === null || config === void 0 ? void 0 : config.solana) {
|
|
16
16
|
rpcProviders.solana = config.solana.map((network) => {
|
|
17
17
|
var _a;
|
|
18
18
|
const rpcUrl = ((_a = network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || network.rpcUrls[0];
|
|
19
|
-
const provider = new web3_js.Connection(rpcUrl);
|
|
19
|
+
const provider = new web3_js.Connection(rpcUrl, connectionConfig);
|
|
20
20
|
return {
|
|
21
21
|
chainId: network.chainId.toString(),
|
|
22
22
|
chainName: network.name,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Connection } from '@solana/web3.js';
|
|
1
|
+
import { Connection, ConnectionConfig } from '@solana/web3.js';
|
|
2
2
|
import { RpcProviders } from '@dynamic-labs/rpc-providers';
|
|
3
3
|
type ISolanaRpcProvider = {
|
|
4
4
|
chainId: string;
|
|
@@ -12,7 +12,7 @@ declare module '@dynamic-labs/rpc-providers' {
|
|
|
12
12
|
}
|
|
13
13
|
interface IChainRpcProviders {
|
|
14
14
|
getSolanaProviderByChainId(rpcProviders: RpcProviders, chainId: string): SolanaRpcProvider | undefined;
|
|
15
|
-
registerSolanaProviders(): void;
|
|
15
|
+
registerSolanaProviders(connectionConfig?: ConnectionConfig): void;
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
export {};
|
|
@@ -7,14 +7,14 @@ ChainRpcProviders.getSolanaProviderByChainId = (rpcProviders, chainId) => {
|
|
|
7
7
|
const provider = (_a = rpcProviders['solana']) === null || _a === void 0 ? void 0 : _a.find((rpcProvider) => rpcProvider.chainId === chainId);
|
|
8
8
|
return provider;
|
|
9
9
|
};
|
|
10
|
-
ChainRpcProviders.registerSolanaProviders = () => {
|
|
10
|
+
ChainRpcProviders.registerSolanaProviders = (connectionConfig) => {
|
|
11
11
|
ChainRpcProviders.registerChainProviders(ProviderChain.SOLANA, (config) => {
|
|
12
12
|
const rpcProviders = {};
|
|
13
13
|
if (config === null || config === void 0 ? void 0 : config.solana) {
|
|
14
14
|
rpcProviders.solana = config.solana.map((network) => {
|
|
15
15
|
var _a;
|
|
16
16
|
const rpcUrl = ((_a = network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || network.rpcUrls[0];
|
|
17
|
-
const provider = new Connection(rpcUrl);
|
|
17
|
+
const provider = new Connection(rpcUrl, connectionConfig);
|
|
18
18
|
return {
|
|
19
19
|
chainId: network.chainId.toString(),
|
|
20
20
|
chainName: network.name,
|
|
@@ -10,16 +10,64 @@ var utils = require('@dynamic-labs/utils');
|
|
|
10
10
|
|
|
11
11
|
const LAMPORTS_PER_SOL = 1000000000;
|
|
12
12
|
class SolanaUiTransaction {
|
|
13
|
-
constructor({ onSubmit, from, connection,
|
|
13
|
+
constructor({ onSubmit, from, connection, multipleTransactions, }) {
|
|
14
14
|
this.chain = 'SOL';
|
|
15
15
|
this.data = undefined;
|
|
16
16
|
this.fee = { gas: undefined };
|
|
17
|
-
this.feeDeducted = false;
|
|
18
17
|
this.formatNonNativeToken = (value, decimals) => (Number(value) / Number(Math.pow(10, decimals))).toString();
|
|
19
18
|
this.from = from;
|
|
20
19
|
this.onSubmit = onSubmit;
|
|
21
20
|
this.connection = connection;
|
|
22
|
-
this.
|
|
21
|
+
this.multipleTransactions = multipleTransactions;
|
|
22
|
+
}
|
|
23
|
+
fetchFee() {
|
|
24
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
25
|
+
if (this.fee.gas)
|
|
26
|
+
return;
|
|
27
|
+
let transactions = this.multipleTransactions;
|
|
28
|
+
// for send balance flow, create the transaction and then estimate it
|
|
29
|
+
if (!transactions) {
|
|
30
|
+
const tx = yield this.createTransactionSafe();
|
|
31
|
+
if (!tx)
|
|
32
|
+
return;
|
|
33
|
+
transactions = tx instanceof Array ? tx : [tx];
|
|
34
|
+
}
|
|
35
|
+
const compiledMessages = transactions.map((tx) => 'version' in tx ? tx.message : tx.compileMessage());
|
|
36
|
+
if (compiledMessages.some((msg) => !msg)) {
|
|
37
|
+
throw new Error('Invalid transaction');
|
|
38
|
+
}
|
|
39
|
+
const getFeeWithRetry = (message) => _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
let res = yield this.connection.getFeeForMessage(message);
|
|
41
|
+
let retryCount = 0;
|
|
42
|
+
while (res.value === null && retryCount < 5) {
|
|
43
|
+
res = yield this.connection.getFeeForMessage(message);
|
|
44
|
+
retryCount++;
|
|
45
|
+
}
|
|
46
|
+
return res.value ? BigInt(res.value) : BigInt(0);
|
|
47
|
+
});
|
|
48
|
+
const fees = yield Promise.all(compiledMessages.map((message) => getFeeWithRetry(message)));
|
|
49
|
+
this.fee.gas = fees.reduce((acc, fee) => acc + fee, BigInt(0));
|
|
50
|
+
if (this.fee.gas === BigInt(0)) {
|
|
51
|
+
this.fee.gas = undefined;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
// if one of the transactions is not sponsored,
|
|
56
|
+
// then the simulation will have a solana transfer in it if it was successful
|
|
57
|
+
isGasSponsored() {
|
|
58
|
+
var _a;
|
|
59
|
+
if (!((_a = this.multipleTransactions) === null || _a === void 0 ? void 0 : _a.length))
|
|
60
|
+
return false;
|
|
61
|
+
return this.multipleTransactions.every((tx) => {
|
|
62
|
+
var _a;
|
|
63
|
+
if ('version' in tx) {
|
|
64
|
+
return this.from !== tx.message.staticAccountKeys[0].toBase58();
|
|
65
|
+
}
|
|
66
|
+
if ('feePayer' in tx) {
|
|
67
|
+
return this.from !== ((_a = tx.feePayer) === null || _a === void 0 ? void 0 : _a.toBase58());
|
|
68
|
+
}
|
|
69
|
+
return false;
|
|
70
|
+
});
|
|
23
71
|
}
|
|
24
72
|
parse(input) {
|
|
25
73
|
const floatValue = parseFloat(input);
|
|
@@ -40,7 +88,11 @@ class SolanaUiTransaction {
|
|
|
40
88
|
}
|
|
41
89
|
submit() {
|
|
42
90
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
43
|
-
|
|
91
|
+
if (this.multipleTransactions) {
|
|
92
|
+
return this.onSubmit();
|
|
93
|
+
}
|
|
94
|
+
// send balance modal transactions
|
|
95
|
+
const sendTransaction = (yield this.createTransaction());
|
|
44
96
|
return this.onSubmit(sendTransaction);
|
|
45
97
|
});
|
|
46
98
|
}
|
|
@@ -57,41 +109,6 @@ class SolanaUiTransaction {
|
|
|
57
109
|
}
|
|
58
110
|
return /^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(address);
|
|
59
111
|
}
|
|
60
|
-
fetchFee() {
|
|
61
|
-
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
62
|
-
if (this.fee.gas)
|
|
63
|
-
return;
|
|
64
|
-
const transaction = yield this.createTransactionSafe();
|
|
65
|
-
if (!transaction) {
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
let compiledMessage;
|
|
69
|
-
const { blockhash } = yield this.connection.getLatestBlockhash();
|
|
70
|
-
if ('version' in transaction) {
|
|
71
|
-
transaction.message.recentBlockhash = blockhash;
|
|
72
|
-
compiledMessage = transaction.message;
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
transaction.recentBlockhash = blockhash;
|
|
76
|
-
transaction.feePayer = new web3_js.PublicKey(this.from);
|
|
77
|
-
compiledMessage = transaction.compileMessage();
|
|
78
|
-
}
|
|
79
|
-
if (!compiledMessage) {
|
|
80
|
-
throw new Error('Invalid transaction');
|
|
81
|
-
}
|
|
82
|
-
let res = yield this.connection.getFeeForMessage(compiledMessage);
|
|
83
|
-
let retryCount = 0;
|
|
84
|
-
while (res.value === null && retryCount < 5) {
|
|
85
|
-
res = yield this.connection.getFeeForMessage(compiledMessage);
|
|
86
|
-
retryCount++;
|
|
87
|
-
}
|
|
88
|
-
this.fee.gas = res.value ? BigInt(res.value) : undefined;
|
|
89
|
-
if (!this.feeDeducted && this.fee.gas && this.value) {
|
|
90
|
-
this.value = this.value - this.fee.gas;
|
|
91
|
-
this.feeDeducted = true;
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
112
|
createTransaction() {
|
|
96
113
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
97
114
|
var _a;
|
|
@@ -99,8 +116,8 @@ class SolanaUiTransaction {
|
|
|
99
116
|
if (!to) {
|
|
100
117
|
throw new Error('Destination is required');
|
|
101
118
|
}
|
|
102
|
-
if (this.
|
|
103
|
-
return this.
|
|
119
|
+
if (this.multipleTransactions) {
|
|
120
|
+
return this.multipleTransactions;
|
|
104
121
|
}
|
|
105
122
|
const sendTransaction = new web3_js.Transaction();
|
|
106
123
|
const fromPubkey = new web3_js.PublicKey(this.from);
|
|
@@ -134,6 +151,10 @@ class SolanaUiTransaction {
|
|
|
134
151
|
toPubkey,
|
|
135
152
|
}));
|
|
136
153
|
}
|
|
154
|
+
// only set blockhash when we are creating the transaction, e.g send balance flow
|
|
155
|
+
const { blockhash } = yield this.connection.getLatestBlockhash();
|
|
156
|
+
sendTransaction.feePayer = new web3_js.PublicKey(this.from);
|
|
157
|
+
sendTransaction.recentBlockhash = blockhash;
|
|
137
158
|
return sendTransaction;
|
|
138
159
|
});
|
|
139
160
|
}
|
|
@@ -4,11 +4,10 @@ export declare const LAMPORTS_PER_SOL = 1000000000;
|
|
|
4
4
|
type SolanaUiTransactionProps = {
|
|
5
5
|
from: string;
|
|
6
6
|
connection: Connection;
|
|
7
|
-
onSubmit: (transaction
|
|
8
|
-
|
|
7
|
+
onSubmit: (transaction?: Transaction | VersionedTransaction) => Promise<any>;
|
|
8
|
+
multipleTransactions?: (Transaction | VersionedTransaction)[];
|
|
9
9
|
};
|
|
10
10
|
export declare class SolanaUiTransaction implements IUITransaction {
|
|
11
|
-
notEnoughFundsError: boolean | undefined;
|
|
12
11
|
to: string | undefined;
|
|
13
12
|
from: string;
|
|
14
13
|
value: bigint | undefined;
|
|
@@ -18,22 +17,23 @@ export declare class SolanaUiTransaction implements IUITransaction {
|
|
|
18
17
|
fee: {
|
|
19
18
|
gas: bigint | undefined;
|
|
20
19
|
};
|
|
21
|
-
|
|
22
|
-
feeDeducted: boolean;
|
|
20
|
+
multipleTransactions?: (Transaction | VersionedTransaction)[];
|
|
23
21
|
nonNativeAddress?: string;
|
|
24
22
|
nonNativeDecimal?: number;
|
|
25
23
|
nonNativeValue?: bigint;
|
|
26
24
|
private onSubmit;
|
|
27
25
|
private connection;
|
|
28
|
-
constructor({ onSubmit, from, connection,
|
|
26
|
+
constructor({ onSubmit, from, connection, multipleTransactions, }: SolanaUiTransactionProps);
|
|
27
|
+
nativePrice?: number | undefined;
|
|
28
|
+
fetchFee(): Promise<void>;
|
|
29
|
+
isGasSponsored(): boolean;
|
|
29
30
|
parse(input: string): bigint;
|
|
30
31
|
parseNonNativeToken(input: string, decimals: number): bigint;
|
|
31
32
|
formatNonNativeToken: (value: bigint, decimals: number) => string;
|
|
32
33
|
format(value: bigint, { precision }?: IUITransactionFormatOptions): string;
|
|
33
|
-
submit(): Promise<
|
|
34
|
+
submit(): Promise<any>;
|
|
34
35
|
getBalance(): Promise<bigint>;
|
|
35
36
|
validateAddressFormat(address: string): boolean;
|
|
36
|
-
fetchFee(): Promise<void>;
|
|
37
37
|
private createTransaction;
|
|
38
38
|
private createTransactionSafe;
|
|
39
39
|
}
|
|
@@ -6,16 +6,64 @@ import { formatNumberText } from '@dynamic-labs/utils';
|
|
|
6
6
|
|
|
7
7
|
const LAMPORTS_PER_SOL = 1000000000;
|
|
8
8
|
class SolanaUiTransaction {
|
|
9
|
-
constructor({ onSubmit, from, connection,
|
|
9
|
+
constructor({ onSubmit, from, connection, multipleTransactions, }) {
|
|
10
10
|
this.chain = 'SOL';
|
|
11
11
|
this.data = undefined;
|
|
12
12
|
this.fee = { gas: undefined };
|
|
13
|
-
this.feeDeducted = false;
|
|
14
13
|
this.formatNonNativeToken = (value, decimals) => (Number(value) / Number(Math.pow(10, decimals))).toString();
|
|
15
14
|
this.from = from;
|
|
16
15
|
this.onSubmit = onSubmit;
|
|
17
16
|
this.connection = connection;
|
|
18
|
-
this.
|
|
17
|
+
this.multipleTransactions = multipleTransactions;
|
|
18
|
+
}
|
|
19
|
+
fetchFee() {
|
|
20
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
if (this.fee.gas)
|
|
22
|
+
return;
|
|
23
|
+
let transactions = this.multipleTransactions;
|
|
24
|
+
// for send balance flow, create the transaction and then estimate it
|
|
25
|
+
if (!transactions) {
|
|
26
|
+
const tx = yield this.createTransactionSafe();
|
|
27
|
+
if (!tx)
|
|
28
|
+
return;
|
|
29
|
+
transactions = tx instanceof Array ? tx : [tx];
|
|
30
|
+
}
|
|
31
|
+
const compiledMessages = transactions.map((tx) => 'version' in tx ? tx.message : tx.compileMessage());
|
|
32
|
+
if (compiledMessages.some((msg) => !msg)) {
|
|
33
|
+
throw new Error('Invalid transaction');
|
|
34
|
+
}
|
|
35
|
+
const getFeeWithRetry = (message) => __awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
let res = yield this.connection.getFeeForMessage(message);
|
|
37
|
+
let retryCount = 0;
|
|
38
|
+
while (res.value === null && retryCount < 5) {
|
|
39
|
+
res = yield this.connection.getFeeForMessage(message);
|
|
40
|
+
retryCount++;
|
|
41
|
+
}
|
|
42
|
+
return res.value ? BigInt(res.value) : BigInt(0);
|
|
43
|
+
});
|
|
44
|
+
const fees = yield Promise.all(compiledMessages.map((message) => getFeeWithRetry(message)));
|
|
45
|
+
this.fee.gas = fees.reduce((acc, fee) => acc + fee, BigInt(0));
|
|
46
|
+
if (this.fee.gas === BigInt(0)) {
|
|
47
|
+
this.fee.gas = undefined;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
// if one of the transactions is not sponsored,
|
|
52
|
+
// then the simulation will have a solana transfer in it if it was successful
|
|
53
|
+
isGasSponsored() {
|
|
54
|
+
var _a;
|
|
55
|
+
if (!((_a = this.multipleTransactions) === null || _a === void 0 ? void 0 : _a.length))
|
|
56
|
+
return false;
|
|
57
|
+
return this.multipleTransactions.every((tx) => {
|
|
58
|
+
var _a;
|
|
59
|
+
if ('version' in tx) {
|
|
60
|
+
return this.from !== tx.message.staticAccountKeys[0].toBase58();
|
|
61
|
+
}
|
|
62
|
+
if ('feePayer' in tx) {
|
|
63
|
+
return this.from !== ((_a = tx.feePayer) === null || _a === void 0 ? void 0 : _a.toBase58());
|
|
64
|
+
}
|
|
65
|
+
return false;
|
|
66
|
+
});
|
|
19
67
|
}
|
|
20
68
|
parse(input) {
|
|
21
69
|
const floatValue = parseFloat(input);
|
|
@@ -36,7 +84,11 @@ class SolanaUiTransaction {
|
|
|
36
84
|
}
|
|
37
85
|
submit() {
|
|
38
86
|
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
-
|
|
87
|
+
if (this.multipleTransactions) {
|
|
88
|
+
return this.onSubmit();
|
|
89
|
+
}
|
|
90
|
+
// send balance modal transactions
|
|
91
|
+
const sendTransaction = (yield this.createTransaction());
|
|
40
92
|
return this.onSubmit(sendTransaction);
|
|
41
93
|
});
|
|
42
94
|
}
|
|
@@ -53,41 +105,6 @@ class SolanaUiTransaction {
|
|
|
53
105
|
}
|
|
54
106
|
return /^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(address);
|
|
55
107
|
}
|
|
56
|
-
fetchFee() {
|
|
57
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
-
if (this.fee.gas)
|
|
59
|
-
return;
|
|
60
|
-
const transaction = yield this.createTransactionSafe();
|
|
61
|
-
if (!transaction) {
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
let compiledMessage;
|
|
65
|
-
const { blockhash } = yield this.connection.getLatestBlockhash();
|
|
66
|
-
if ('version' in transaction) {
|
|
67
|
-
transaction.message.recentBlockhash = blockhash;
|
|
68
|
-
compiledMessage = transaction.message;
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
transaction.recentBlockhash = blockhash;
|
|
72
|
-
transaction.feePayer = new PublicKey(this.from);
|
|
73
|
-
compiledMessage = transaction.compileMessage();
|
|
74
|
-
}
|
|
75
|
-
if (!compiledMessage) {
|
|
76
|
-
throw new Error('Invalid transaction');
|
|
77
|
-
}
|
|
78
|
-
let res = yield this.connection.getFeeForMessage(compiledMessage);
|
|
79
|
-
let retryCount = 0;
|
|
80
|
-
while (res.value === null && retryCount < 5) {
|
|
81
|
-
res = yield this.connection.getFeeForMessage(compiledMessage);
|
|
82
|
-
retryCount++;
|
|
83
|
-
}
|
|
84
|
-
this.fee.gas = res.value ? BigInt(res.value) : undefined;
|
|
85
|
-
if (!this.feeDeducted && this.fee.gas && this.value) {
|
|
86
|
-
this.value = this.value - this.fee.gas;
|
|
87
|
-
this.feeDeducted = true;
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
108
|
createTransaction() {
|
|
92
109
|
return __awaiter(this, void 0, void 0, function* () {
|
|
93
110
|
var _a;
|
|
@@ -95,8 +112,8 @@ class SolanaUiTransaction {
|
|
|
95
112
|
if (!to) {
|
|
96
113
|
throw new Error('Destination is required');
|
|
97
114
|
}
|
|
98
|
-
if (this.
|
|
99
|
-
return this.
|
|
115
|
+
if (this.multipleTransactions) {
|
|
116
|
+
return this.multipleTransactions;
|
|
100
117
|
}
|
|
101
118
|
const sendTransaction = new Transaction();
|
|
102
119
|
const fromPubkey = new PublicKey(this.from);
|
|
@@ -130,6 +147,10 @@ class SolanaUiTransaction {
|
|
|
130
147
|
toPubkey,
|
|
131
148
|
}));
|
|
132
149
|
}
|
|
150
|
+
// only set blockhash when we are creating the transaction, e.g send balance flow
|
|
151
|
+
const { blockhash } = yield this.connection.getLatestBlockhash();
|
|
152
|
+
sendTransaction.feePayer = new PublicKey(this.from);
|
|
153
|
+
sendTransaction.recentBlockhash = blockhash;
|
|
133
154
|
return sendTransaction;
|
|
134
155
|
});
|
|
135
156
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Connection } from '@solana/web3.js';
|
|
2
2
|
import { Wallet } from '@dynamic-labs/wallet-connector-core';
|
|
3
|
-
import {
|
|
3
|
+
import { SolanaWalletConnector } from '../connector';
|
|
4
4
|
import { ISolana } from '../types';
|
|
5
|
-
export declare class SolanaWallet extends Wallet<
|
|
5
|
+
export declare class SolanaWallet extends Wallet<SolanaWalletConnector> {
|
|
6
6
|
/**
|
|
7
7
|
* Retrieves the RPC connection
|
|
8
8
|
* @returns A promise that resolves to the RPC connection
|