@dynamic-labs/embedded-wallet-solana 0.0.0-exp20240809.0 → 0.0.0-exp20240827.1
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 +186 -1
- package/package.cjs +22 -0
- package/package.js +17 -0
- package/package.json +15 -12
- package/src/lib/TurnkeySolanaWalletConnector/TurnkeySolanaSigner.d.ts +1 -4
- package/src/lib/TurnkeySolanaWalletConnector/TurnkeySolanaWalletConnector.cjs +44 -15
- package/src/lib/TurnkeySolanaWalletConnector/TurnkeySolanaWalletConnector.d.ts +5 -4
- package/src/lib/TurnkeySolanaWalletConnector/TurnkeySolanaWalletConnector.js +39 -10
- package/src/lib/utils/api/api.cjs +38 -0
- package/src/lib/utils/api/api.d.ts +4 -0
- package/src/lib/utils/api/api.js +32 -0
- package/src/lib/utils/api/events/DynamicEvents.cjs +14 -0
- package/src/lib/utils/api/events/DynamicEvents.d.ts +6 -0
- package/src/lib/utils/api/events/DynamicEvents.js +6 -0
- package/src/lib/utils/api/events/auth.d.ts +51 -0
- package/src/lib/utils/api/utils/ApiEndpoint.cjs +41 -0
- package/src/lib/utils/api/utils/ApiEndpoint.d.ts +7 -0
- package/src/lib/utils/api/utils/ApiEndpoint.js +39 -0
- package/src/lib/utils/api/utils/LocalStorage.cjs +81 -0
- package/src/lib/utils/api/utils/LocalStorage.d.ts +26 -0
- package/src/lib/utils/api/utils/LocalStorage.js +75 -0
- package/src/lib/utils/api/utils/SdkApi.cjs +35 -0
- package/src/lib/utils/api/utils/SdkApi.d.ts +2 -0
- package/src/lib/utils/api/utils/SdkApi.js +31 -0
- package/src/lib/utils/api/utils/helpers.cjs +88 -0
- package/src/lib/utils/api/utils/helpers.d.ts +12 -0
- package/src/lib/utils/api/utils/helpers.js +77 -0
- package/src/lib/utils/api/utils/version.cjs +12 -0
- package/src/lib/utils/api/utils/version.d.ts +2 -0
- package/src/lib/utils/api/utils/version.js +7 -0
- package/src/lib/utils/index.d.ts +0 -1
- package/src/lib/constants.cjs +0 -8
- package/src/lib/constants.d.ts +0 -1
- package/src/lib/constants.js +0 -4
- package/src/lib/utils/getGenesisHashLSKey/getGenesisHashLSKey.cjs +0 -10
- package/src/lib/utils/getGenesisHashLSKey/getGenesisHashLSKey.d.ts +0 -1
- package/src/lib/utils/getGenesisHashLSKey/getGenesisHashLSKey.js +0 -6
- package/src/lib/utils/getGenesisHashLSKey/index.d.ts +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,190 @@
|
|
|
1
1
|
|
|
2
|
-
## [0.0.0-
|
|
2
|
+
## [0.0.0-exp20240827.1](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.51...v0.0.0-exp20240827.1) (2024-08-27)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### ⚠ BREAKING CHANGES
|
|
6
|
+
|
|
7
|
+
* deprecate getEoaConnector (#6571)
|
|
8
|
+
* limit methods and props returned by wallet.connector (#6540)
|
|
9
|
+
* move generic solana code to solana-core package (#6701)
|
|
10
|
+
* revamp ether v6 interface (#6548)
|
|
11
|
+
* add ethereum wallet specific methods and intercept to sync when needed (#6662)
|
|
12
|
+
* add solana wallet specific methods and intercept to sync when needed (#6608)
|
|
13
|
+
* don't force primary wallet to be connected (#6128)
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* add bitcoin wallet specific methods and intercept to sync when needed ([#6663](https://github.com/dynamic-labs/DynamicAuth/issues/6663)) ([ee50002](https://github.com/dynamic-labs/DynamicAuth/commit/ee50002c36689fe55c694778d36e066d273da243))
|
|
18
|
+
* add ethereum wallet specific methods and intercept to sync when needed ([#6662](https://github.com/dynamic-labs/DynamicAuth/issues/6662)) ([16b8038](https://github.com/dynamic-labs/DynamicAuth/commit/16b8038df17406ffee266b67f56ed61244c809ab))
|
|
19
|
+
* add solana wallet specific methods and intercept to sync when needed ([#6608](https://github.com/dynamic-labs/DynamicAuth/issues/6608)) ([eb6518e](https://github.com/dynamic-labs/DynamicAuth/commit/eb6518e687c206f77fec1fe3ce7cb8a0c329787a))
|
|
20
|
+
* add useSmartWallets hook to manage aa wallets ([#6564](https://github.com/dynamic-labs/DynamicAuth/issues/6564)) ([46b3454](https://github.com/dynamic-labs/DynamicAuth/commit/46b34543922417afc6588088f2ebe5ac1b078dcb))
|
|
21
|
+
* don't force primary wallet to be connected ([#6128](https://github.com/dynamic-labs/DynamicAuth/issues/6128)) ([6069d5b](https://github.com/dynamic-labs/DynamicAuth/commit/6069d5bd278d8dedaf863a66f9b55bae52cfb1e2))
|
|
22
|
+
* new prop to enable prompt for linking when account change is detected ([#6713](https://github.com/dynamic-labs/DynamicAuth/issues/6713)) ([6ef5276](https://github.com/dynamic-labs/DynamicAuth/commit/6ef52762611761f772d52abfc29471bc3a296a4b))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Bug Fixes
|
|
26
|
+
|
|
27
|
+
* always sync wagmi client with primary wallet ([#6577](https://github.com/dynamic-labs/DynamicAuth/issues/6577)) ([7f728a8](https://github.com/dynamic-labs/DynamicAuth/commit/7f728a8388fe5f79d00519ba2384f58c99363a36))
|
|
28
|
+
* wallet.chain references ([0b124f5](https://github.com/dynamic-labs/DynamicAuth/commit/0b124f50d10b5a932e68260433119a1a36584f2c))
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
* deprecate getEoaConnector ([#6571](https://github.com/dynamic-labs/DynamicAuth/issues/6571)) ([cdf1ec5](https://github.com/dynamic-labs/DynamicAuth/commit/cdf1ec53876cde60f56554b9bde4bf98c9896eb1))
|
|
32
|
+
* limit methods and props returned by wallet.connector ([#6540](https://github.com/dynamic-labs/DynamicAuth/issues/6540)) ([10b3bb1](https://github.com/dynamic-labs/DynamicAuth/commit/10b3bb1c3f9a9bc35d916d25968d1edda0883e42))
|
|
33
|
+
* move generic solana code to solana-core package ([#6701](https://github.com/dynamic-labs/DynamicAuth/issues/6701)) ([dc9a573](https://github.com/dynamic-labs/DynamicAuth/commit/dc9a5736237e0244a6fa9b897c13679fa0a2a0bd))
|
|
34
|
+
* revamp ether v6 interface ([#6548](https://github.com/dynamic-labs/DynamicAuth/issues/6548)) ([9babdef](https://github.com/dynamic-labs/DynamicAuth/commit/9babdefa53342762b7815a0bdc6c6e6472ec7c69))
|
|
35
|
+
|
|
36
|
+
## [3.0.0-alpha.51](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.50...v3.0.0-alpha.51) (2024-08-23)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
### ⚠ BREAKING CHANGES
|
|
40
|
+
|
|
41
|
+
* renamed solana-utils package to solana-core ([#6680](https://github.com/dynamic-labs/DynamicAuth/issues/6680)) ([9178d72](https://github.com/dynamic-labs/DynamicAuth/commit/9178d72073911364d1cb311944abaf0c93ada842))
|
|
42
|
+
* removed rpc-provider-solana package and moved methods and types to solana-core package ([#6694](https://github.com/dynamic-labs/DynamicAuth/issues/6694)) ([3486b01](https://github.com/dynamic-labs/DynamicAuth/commit/3486b018f6b199318e501854093d3eb7575bf9e0))
|
|
43
|
+
* removed rpc-provider-ethereum package and moved methods and types to ethereum-core package ([#6689](https://github.com/dynamic-labs/DynamicAuth/issues/6689)) ([83bf769](https://github.com/dynamic-labs/DynamicAuth/commit/83bf769a733cce484cfbc0aced654b811b1535de))
|
|
44
|
+
* renamed rpc-provider-starknet package to starknet-core ([#6695](https://github.com/dynamic-labs/DynamicAuth/issues/6695)) ([3fc6a03](https://github.com/dynamic-labs/DynamicAuth/commit/3fc6a0327f50914d3c28ca2c7d028046632d0002))
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
### Features
|
|
48
|
+
|
|
49
|
+
* global wallet sdk ui ([#6626](https://github.com/dynamic-labs/DynamicAuth/issues/6626)) ([e000257](https://github.com/dynamic-labs/DynamicAuth/commit/e0002578eb91597577843c93821318112e36a9f0))
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
### Bug Fixes
|
|
53
|
+
|
|
54
|
+
* zerodev sign message ([#6691](https://github.com/dynamic-labs/DynamicAuth/issues/6691)) ([58c7fba](https://github.com/dynamic-labs/DynamicAuth/commit/58c7fba97c42eacad359e2daefd0f8518b8db28b))
|
|
55
|
+
* fix solana transaction optimization endpoint ([#6702](https://github.com/dynamic-labs/DynamicAuth/issues/6702)) ([f14bef7](https://github.com/dynamic-labs/DynamicAuth/commit/f14bef7994c32d66c3020d8c318bdbb5cac8ae94))
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
## [3.0.0-alpha.50](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.49...v3.0.0-alpha.50) (2024-08-22)
|
|
59
|
+
|
|
60
|
+
## [3.0.0-alpha.49](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.48...v3.0.0-alpha.49) (2024-08-22)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
### ⚠ BREAKING CHANGES
|
|
64
|
+
|
|
65
|
+
* rename viem-utils package to ethereum-core (#6677)
|
|
66
|
+
* remove ethers-v5 package (#6661)
|
|
67
|
+
|
|
68
|
+
### Bug Fixes
|
|
69
|
+
|
|
70
|
+
* force ui on global transactions and fix zerodev global ([#6673](https://github.com/dynamic-labs/DynamicAuth/issues/6673)) ([7317e44](https://github.com/dynamic-labs/DynamicAuth/commit/7317e449044fe4f87d67714afd36bec596d0cece))
|
|
71
|
+
* remove sync call in getWalletClient getSigner methods ([#6678](https://github.com/dynamic-labs/DynamicAuth/issues/6678)) ([a231337](https://github.com/dynamic-labs/DynamicAuth/commit/a231337f81be54d92715044b7dc8bb35c57087bb))
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
* remove ethers-v5 package ([#6661](https://github.com/dynamic-labs/DynamicAuth/issues/6661)) ([61cc31b](https://github.com/dynamic-labs/DynamicAuth/commit/61cc31ba4b8346b86a154aabf8842fd38396d632))
|
|
75
|
+
* rename viem-utils package to ethereum-core ([#6677](https://github.com/dynamic-labs/DynamicAuth/issues/6677)) ([ba7fd43](https://github.com/dynamic-labs/DynamicAuth/commit/ba7fd432e332b9f20a4f7aa9403f94722331cde6))
|
|
76
|
+
|
|
77
|
+
## [3.0.0-alpha.48](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.47...v3.0.0-alpha.48) (2024-08-21)
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
### Bug Fixes
|
|
81
|
+
|
|
82
|
+
* collect user data to work when no wallet is selected ([#6670](https://github.com/dynamic-labs/DynamicAuth/issues/6670)) ([b86aae8](https://github.com/dynamic-labs/DynamicAuth/commit/b86aae8e7ceb35793f792941a34cabd19b9e65d4))
|
|
83
|
+
* disable cookie when running on native mobile ([#6668](https://github.com/dynamic-labs/DynamicAuth/issues/6668)) ([e52a3d9](https://github.com/dynamic-labs/DynamicAuth/commit/e52a3d94a9028e36525be2e80a9f0916efad4320))
|
|
84
|
+
* prevent external auth blocking pending user requirements views ([#6669](https://github.com/dynamic-labs/DynamicAuth/issues/6669)) ([848356c](https://github.com/dynamic-labs/DynamicAuth/commit/848356c57e730a8516c642da84274a236e026f40))
|
|
85
|
+
|
|
86
|
+
## [3.0.0-alpha.47](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.46...v3.0.0-alpha.47) (2024-08-21)
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
### ⚠ BREAKING CHANGES
|
|
90
|
+
|
|
91
|
+
* rename useSelectWalletOption to useWalletOptions (#6616)
|
|
92
|
+
* stop exposing walletConnectorOptions from dynamic context (#6622)
|
|
93
|
+
|
|
94
|
+
### Features
|
|
95
|
+
|
|
96
|
+
* add support for base.eth ens resolution ([#6655](https://github.com/dynamic-labs/DynamicAuth/issues/6655)) ([e2fb1c0](https://github.com/dynamic-labs/DynamicAuth/commit/e2fb1c0ca8410e85b7464d032abc6686bd46149f))
|
|
97
|
+
* expose wallet options from useWalletOptions hook ([#6624](https://github.com/dynamic-labs/DynamicAuth/issues/6624)) ([7287359](https://github.com/dynamic-labs/DynamicAuth/commit/7287359d1564564b87e82bf182edef8ef02c16f1))
|
|
98
|
+
* global wallet chain switching ([#6648](https://github.com/dynamic-labs/DynamicAuth/issues/6648)) ([10179fc](https://github.com/dynamic-labs/DynamicAuth/commit/10179fcddc747977c7dd250abd78bad0ec375f8f))
|
|
99
|
+
* implement Apple Sign-In for mobile ([#6632](https://github.com/dynamic-labs/DynamicAuth/issues/6632)) ([e68b088](https://github.com/dynamic-labs/DynamicAuth/commit/e68b088b1c13c1140b43a6d0c215383455a71a4a))
|
|
100
|
+
* surface mfa rate limit error ([#6658](https://github.com/dynamic-labs/DynamicAuth/issues/6658)) ([5fbcbc2](https://github.com/dynamic-labs/DynamicAuth/commit/5fbcbc2382ebcf2721a308d8e87bc8b2b5cb38cf))
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
### Bug Fixes
|
|
104
|
+
|
|
105
|
+
* update bottom nav border radius ([#6651](https://github.com/dynamic-labs/DynamicAuth/issues/6651)) ([79212c2](https://github.com/dynamic-labs/DynamicAuth/commit/79212c26735eb06f31655e8b98a3d9c2c8371489))
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
* rename useSelectWalletOption to useWalletOptions ([#6616](https://github.com/dynamic-labs/DynamicAuth/issues/6616)) ([3850dad](https://github.com/dynamic-labs/DynamicAuth/commit/3850dad47f847ace84aadc63a84c4e62f84f7df2))
|
|
109
|
+
* stop exposing walletConnectorOptions from dynamic context ([#6622](https://github.com/dynamic-labs/DynamicAuth/issues/6622)) ([b9da7db](https://github.com/dynamic-labs/DynamicAuth/commit/b9da7dbfc4020913ba3d95ec496811e9d8ee17b8))
|
|
110
|
+
|
|
111
|
+
## [3.0.0-alpha.46](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.45...v3.0.0-alpha.46) (2024-08-19)
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
### Features
|
|
115
|
+
|
|
116
|
+
* add overrides for chain info ([#6614](https://github.com/dynamic-labs/DynamicAuth/issues/6614)) ([07b76a0](https://github.com/dynamic-labs/DynamicAuth/commit/07b76a0887d3147a00d93a37bdf49a83bfec0ceb))
|
|
117
|
+
* add use token balances state in global store ([#6598](https://github.com/dynamic-labs/DynamicAuth/issues/6598)) ([05baefe](https://github.com/dynamic-labs/DynamicAuth/commit/05baefe7155f197c048557b15240ad93556a8604))
|
|
118
|
+
* refresh token balances ([#6578](https://github.com/dynamic-labs/DynamicAuth/issues/6578)) ([0768857](https://github.com/dynamic-labs/DynamicAuth/commit/0768857c924ce0e01b736173e50ea85b956ab067))
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
### Bug Fixes
|
|
122
|
+
|
|
123
|
+
* createEmbeddedWalletAccount ([#6642](https://github.com/dynamic-labs/DynamicAuth/issues/6642)) ([bce08de](https://github.com/dynamic-labs/DynamicAuth/commit/bce08deaa4a5e1ea0b134efb5c4d252c82af5eec))
|
|
124
|
+
* jwt x error when singing with embedded wallet ([#6633](https://github.com/dynamic-labs/DynamicAuth/issues/6633)) ([7d1a6d4](https://github.com/dynamic-labs/DynamicAuth/commit/7d1a6d432807c5b361ff31e6feac2e10d0145d90))
|
|
125
|
+
|
|
126
|
+
## [3.0.0-alpha.45](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.44...v3.0.0-alpha.45) (2024-08-16)
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
### Bug Fixes
|
|
130
|
+
|
|
131
|
+
* always check for dynamicOauthCode and use during signin or verify ([#6618](https://github.com/dynamic-labs/DynamicAuth/issues/6618)) ([dd33231](https://github.com/dynamic-labs/DynamicAuth/commit/dd332310c9fdfa7bb593b7f567751133a93c6938))
|
|
132
|
+
* display qr code when no primary is selected ([#6605](https://github.com/dynamic-labs/DynamicAuth/issues/6605)) ([406afa3](https://github.com/dynamic-labs/DynamicAuth/commit/406afa32b38a29a2d8ce96803ae45ab35adb5ce3))
|
|
133
|
+
|
|
134
|
+
## [3.0.0-alpha.44](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.43...v3.0.0-alpha.44) (2024-08-15)
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
### Bug Fixes
|
|
138
|
+
|
|
139
|
+
* populate wallet new isPrimary flag ([#6597](https://github.com/dynamic-labs/DynamicAuth/issues/6597)) ([7809f81](https://github.com/dynamic-labs/DynamicAuth/commit/7809f81c9743b8bf7bc27dc34cf45923cf9baf99))
|
|
140
|
+
* twitter should no longer rely polling for oauth flow ([#6603](https://github.com/dynamic-labs/DynamicAuth/issues/6603)) ([09aea8b](https://github.com/dynamic-labs/DynamicAuth/commit/09aea8b3f197c25dcfb5bc72049b90859df246f3))
|
|
141
|
+
|
|
142
|
+
## [3.0.0-alpha.43](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.42...v3.0.0-alpha.43) (2024-08-15)
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
### ⚠ BREAKING CHANGES
|
|
146
|
+
|
|
147
|
+
* removes walletConnector from dynamic context (#6579)
|
|
148
|
+
* removed deprecated props from user profile (#6589)
|
|
149
|
+
|
|
150
|
+
### Features
|
|
151
|
+
|
|
152
|
+
* optimize solana embedded transactions ([#6582](https://github.com/dynamic-labs/DynamicAuth/issues/6582)) ([419aff9](https://github.com/dynamic-labs/DynamicAuth/commit/419aff96d312892d7db520e94ecc6956b8de771d))
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
### Bug Fixes
|
|
156
|
+
|
|
157
|
+
* check if wallet is connected using normalized addresses ([#6594](https://github.com/dynamic-labs/DynamicAuth/issues/6594)) ([44aabae](https://github.com/dynamic-labs/DynamicAuth/commit/44aabae8ee72261bf0f7e308ed4adf0f42760ed2))
|
|
158
|
+
* minor sdk ui updates ([#6590](https://github.com/dynamic-labs/DynamicAuth/issues/6590)) ([8619e40](https://github.com/dynamic-labs/DynamicAuth/commit/8619e40e1afff8d68357138f3b5b9b89989140fd))
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
* removed deprecated props from user profile ([#6589](https://github.com/dynamic-labs/DynamicAuth/issues/6589)) ([b621da8](https://github.com/dynamic-labs/DynamicAuth/commit/b621da8a0703eb8228a5b10131af2717f314fd2e))
|
|
162
|
+
* removes walletConnector from dynamic context ([#6579](https://github.com/dynamic-labs/DynamicAuth/issues/6579)) ([51d69fe](https://github.com/dynamic-labs/DynamicAuth/commit/51d69feebab71158ad2aa69f11001623a0aaa80a))
|
|
163
|
+
|
|
164
|
+
## [3.0.0-alpha.42](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.41...v3.0.0-alpha.42) (2024-08-14)
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
### Bug Fixes
|
|
168
|
+
|
|
169
|
+
* isEmbeddedWallet condition in AuthProviderIcon ([#6581](https://github.com/dynamic-labs/DynamicAuth/issues/6581)) ([afe33ab](https://github.com/dynamic-labs/DynamicAuth/commit/afe33aba1cc8abefd0566bf4e9c0a4f199d64ef7))
|
|
170
|
+
* update text on MFA backup codes acknowledgement ([#6559](https://github.com/dynamic-labs/DynamicAuth/issues/6559)) ([98b5475](https://github.com/dynamic-labs/DynamicAuth/commit/98b5475df73039061d593318cb26140075de69e1))
|
|
171
|
+
|
|
172
|
+
## [3.0.0-alpha.41](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.40...v3.0.0-alpha.41) (2024-08-13)
|
|
173
|
+
|
|
174
|
+
## [3.0.0-alpha.40](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.39...v3.0.0-alpha.40) (2024-08-13)
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
### Features
|
|
178
|
+
|
|
179
|
+
* add log out button to mfa screens ([#6557](https://github.com/dynamic-labs/DynamicAuth/issues/6557)) ([a006f6a](https://github.com/dynamic-labs/DynamicAuth/commit/a006f6a3f801a93d305fbd8151a51c7b08b73983))
|
|
180
|
+
* signIn/link using dynamicOauthState ([#6523](https://github.com/dynamic-labs/DynamicAuth/issues/6523)) ([b72e98f](https://github.com/dynamic-labs/DynamicAuth/commit/b72e98f0d243591c1a8ca14c3a4a6e5024560141))
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
### Bug Fixes
|
|
184
|
+
|
|
185
|
+
* clicking back on MFA verification view should take you to MFA secure device view ([#6556](https://github.com/dynamic-labs/DynamicAuth/issues/6556)) ([7ae39c9](https://github.com/dynamic-labs/DynamicAuth/commit/7ae39c9b073b42a14d3e77fba28217905a1dbf0c))
|
|
186
|
+
* mfa design feedback ([#6551](https://github.com/dynamic-labs/DynamicAuth/issues/6551)) ([c367e38](https://github.com/dynamic-labs/DynamicAuth/commit/c367e3836e331a2dc24496ea81436b6bd57460a1))
|
|
187
|
+
* remove 2 factor authenticator header unless there is an applicable security option available ([#6545](https://github.com/dynamic-labs/DynamicAuth/issues/6545)) ([11f7f5a](https://github.com/dynamic-labs/DynamicAuth/commit/11f7f5ae87bf26be783c353607b39943e4a2b796))
|
|
3
188
|
|
|
4
189
|
## [3.0.0-alpha.39](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.38...v3.0.0-alpha.39) (2024-08-09)
|
|
5
190
|
|
package/package.cjs
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var version = "0.0.0-exp20240827.1";
|
|
7
|
+
var dependencies = {
|
|
8
|
+
"@dynamic-labs/sdk-api-core": "0.0.519",
|
|
9
|
+
"@dynamic-labs/utils": "0.0.0-exp20240827.1",
|
|
10
|
+
"@dynamic-labs/logger": "0.0.0-exp20240827.1",
|
|
11
|
+
"@dynamic-labs/types": "0.0.0-exp20240827.1",
|
|
12
|
+
eventemitter3: "5.0.1",
|
|
13
|
+
"@solana/spl-token": "0.4.6",
|
|
14
|
+
"@solana/web3.js": "1.92.1",
|
|
15
|
+
"@turnkey/http": "2.12.2",
|
|
16
|
+
"@turnkey/iframe-stamper": "2.0.0",
|
|
17
|
+
"@turnkey/solana": "0.3.9",
|
|
18
|
+
"@turnkey/webauthn-stamper": "0.5.0"
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
exports.dependencies = dependencies;
|
|
22
|
+
exports.version = version;
|
package/package.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
var version = "0.0.0-exp20240827.1";
|
|
3
|
+
var dependencies = {
|
|
4
|
+
"@dynamic-labs/sdk-api-core": "0.0.519",
|
|
5
|
+
"@dynamic-labs/utils": "0.0.0-exp20240827.1",
|
|
6
|
+
"@dynamic-labs/logger": "0.0.0-exp20240827.1",
|
|
7
|
+
"@dynamic-labs/types": "0.0.0-exp20240827.1",
|
|
8
|
+
eventemitter3: "5.0.1",
|
|
9
|
+
"@solana/spl-token": "0.4.6",
|
|
10
|
+
"@solana/web3.js": "1.92.1",
|
|
11
|
+
"@turnkey/http": "2.12.2",
|
|
12
|
+
"@turnkey/iframe-stamper": "2.0.0",
|
|
13
|
+
"@turnkey/solana": "0.3.9",
|
|
14
|
+
"@turnkey/webauthn-stamper": "0.5.0"
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export { dependencies, version };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/embedded-wallet-solana",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-exp20240827.1",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/dynamic-labs/dynamic-auth.git",
|
|
@@ -26,21 +26,24 @@
|
|
|
26
26
|
"./package.json": "./package.json"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@dynamic-labs/sdk-api-core": "0.0.
|
|
29
|
+
"@dynamic-labs/sdk-api-core": "0.0.519",
|
|
30
|
+
"@dynamic-labs/utils": "0.0.0-exp20240827.1",
|
|
31
|
+
"@dynamic-labs/logger": "0.0.0-exp20240827.1",
|
|
32
|
+
"@dynamic-labs/types": "0.0.0-exp20240827.1",
|
|
33
|
+
"eventemitter3": "5.0.1",
|
|
30
34
|
"@solana/spl-token": "0.4.6",
|
|
31
35
|
"@solana/web3.js": "1.92.1",
|
|
32
|
-
"@turnkey/http": "2.
|
|
36
|
+
"@turnkey/http": "2.12.2",
|
|
33
37
|
"@turnkey/iframe-stamper": "2.0.0",
|
|
34
|
-
"@turnkey/solana": "0.3.
|
|
38
|
+
"@turnkey/solana": "0.3.9",
|
|
35
39
|
"@turnkey/webauthn-stamper": "0.5.0",
|
|
36
|
-
"@dynamic-labs/embedded-wallet": "0.0.0-
|
|
37
|
-
"@dynamic-labs/rpc-
|
|
38
|
-
"@dynamic-labs/
|
|
39
|
-
"@dynamic-labs/
|
|
40
|
-
"@dynamic-labs/
|
|
41
|
-
"@dynamic-labs/
|
|
42
|
-
"
|
|
43
|
-
"@dynamic-labs/wallet-connector-core": "0.0.0-exp20240809.0",
|
|
40
|
+
"@dynamic-labs/embedded-wallet": "0.0.0-exp20240827.1",
|
|
41
|
+
"@dynamic-labs/rpc-providers": "0.0.0-exp20240827.1",
|
|
42
|
+
"@dynamic-labs/solana-core": "0.0.0-exp20240827.1",
|
|
43
|
+
"@dynamic-labs/wallet-book": "0.0.0-exp20240827.1",
|
|
44
|
+
"@dynamic-labs/wallet-connector-core": "0.0.0-exp20240827.1",
|
|
45
|
+
"@dynamic-labs/webauthn": "0.0.0-exp20240827.1",
|
|
46
|
+
"react-dom": "18.2.0",
|
|
44
47
|
"viem": "2.9.25"
|
|
45
48
|
},
|
|
46
49
|
"peerDependencies": {}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { PublicKey, SendOptions, Transaction, TransactionSignature, VersionedTransaction } from '@solana/web3.js';
|
|
2
|
+
import { SignedMessage } from '@dynamic-labs/solana-core';
|
|
2
3
|
import { TurnkeySolanaWalletConnector } from './TurnkeySolanaWalletConnector';
|
|
3
|
-
type SignedMessage = {
|
|
4
|
-
signature: Uint8Array;
|
|
5
|
-
};
|
|
6
4
|
export type IEmbeddedWalletSolanaSigner = {
|
|
7
5
|
publicKey?: {
|
|
8
6
|
toBytes(): Uint8Array;
|
|
@@ -46,4 +44,3 @@ export declare class TurnkeySolanaSigner implements IEmbeddedWalletSolanaSigner
|
|
|
46
44
|
} | undefined>;
|
|
47
45
|
disconnect(): Promise<void>;
|
|
48
46
|
}
|
|
49
|
-
export {};
|
|
@@ -9,14 +9,12 @@ var webauthnStamper = require('@turnkey/webauthn-stamper');
|
|
|
9
9
|
var http = require('@turnkey/http');
|
|
10
10
|
var solana = require('@turnkey/solana');
|
|
11
11
|
var iframeStamper = require('@turnkey/iframe-stamper');
|
|
12
|
-
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
13
|
-
var rpcProviderSolana = require('@dynamic-labs/rpc-provider-solana');
|
|
14
12
|
var utils = require('@dynamic-labs/utils');
|
|
15
|
-
var
|
|
13
|
+
var solanaCore = require('@dynamic-labs/solana-core');
|
|
16
14
|
var embeddedWallet = require('@dynamic-labs/embedded-wallet');
|
|
17
15
|
var createSolanaConnection = require('../utils/createSolanaConnection/createSolanaConnection.cjs');
|
|
18
|
-
var getGenesisHashLSKey = require('../utils/getGenesisHashLSKey/getGenesisHashLSKey.cjs');
|
|
19
16
|
var transactionDecoder = require('../utils/transactionDecoder/transactionDecoder.cjs');
|
|
17
|
+
var api = require('../utils/api/api.cjs');
|
|
20
18
|
var TurnkeySolanaSigner = require('./TurnkeySolanaSigner.cjs');
|
|
21
19
|
|
|
22
20
|
class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnectorBase {
|
|
@@ -24,10 +22,27 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
|
|
|
24
22
|
var _a;
|
|
25
23
|
super(nameAndKey, props);
|
|
26
24
|
// Public fields
|
|
27
|
-
this.ChainWallet =
|
|
25
|
+
this.ChainWallet = solanaCore.SolanaWallet;
|
|
28
26
|
this.connectedChain = 'SOL';
|
|
29
27
|
this.supportedChains = ['SOL'];
|
|
30
28
|
this.verifiedCredentialChain = 'solana';
|
|
29
|
+
this.getEnvId = () => {
|
|
30
|
+
const dynamicNonce = localStorage.getItem('dynamic_nonce');
|
|
31
|
+
if (dynamicNonce) {
|
|
32
|
+
const parsed = JSON.parse(dynamicNonce);
|
|
33
|
+
if (parsed && parsed.environmentId) {
|
|
34
|
+
return parsed.environmentId;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const dynamicNonceDemo = localStorage.getItem('dynamic_nonce_demo');
|
|
38
|
+
if (dynamicNonceDemo) {
|
|
39
|
+
const parsed = JSON.parse(dynamicNonceDemo);
|
|
40
|
+
if (parsed && parsed.environmentId) {
|
|
41
|
+
return parsed.environmentId;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
throw new Error('Failed to get environment id');
|
|
45
|
+
};
|
|
31
46
|
this.stampCreateWalletAccountRequest = (_b) => _tslib.__awaiter(this, [_b], void 0, function* ({ request, }) {
|
|
32
47
|
const turnkeyClient = this.getTurnkeyClient();
|
|
33
48
|
return turnkeyClient.stampCreateWalletAccounts(request);
|
|
@@ -63,10 +78,10 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
|
|
|
63
78
|
getNetwork() {
|
|
64
79
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
65
80
|
const connection = this.getConnection();
|
|
66
|
-
let genesisHash = localStorage.getItem(
|
|
81
|
+
let genesisHash = localStorage.getItem(solanaCore.getGenesisHashLSKey(connection.rpcEndpoint));
|
|
67
82
|
if (!genesisHash) {
|
|
68
83
|
genesisHash = yield connection.getGenesisHash();
|
|
69
|
-
localStorage.setItem(
|
|
84
|
+
localStorage.setItem(solanaCore.getGenesisHashLSKey(connection.rpcEndpoint), genesisHash);
|
|
70
85
|
}
|
|
71
86
|
genesisHash = genesisHash.substring(0, 32);
|
|
72
87
|
// see: https://github.com/ChainAgnostic/namespaces/blob/main/solana/caip2.md
|
|
@@ -102,7 +117,7 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
|
|
|
102
117
|
return false;
|
|
103
118
|
}
|
|
104
119
|
setVerifiedCredentials(verifiedCredentials) {
|
|
105
|
-
const turnkeyVerifiedCredential = embeddedWallet.findTurnkeyVerifiedCredential(verifiedCredentials,
|
|
120
|
+
const turnkeyVerifiedCredential = embeddedWallet.findTurnkeyVerifiedCredential(verifiedCredentials, solanaCore.ProviderChain.SOLANA);
|
|
106
121
|
const didTurnkeyVerifiedCredentialsChanged = JSON.stringify(this.verifiedCredential) !==
|
|
107
122
|
JSON.stringify(turnkeyVerifiedCredential);
|
|
108
123
|
if (!didTurnkeyVerifiedCredentialsChanged) {
|
|
@@ -116,7 +131,7 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
|
|
|
116
131
|
}
|
|
117
132
|
endSession() {
|
|
118
133
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
119
|
-
localStorage.removeItem(
|
|
134
|
+
localStorage.removeItem(solanaCore.getGenesisHashLSKey(this.getRpcUrl()));
|
|
120
135
|
});
|
|
121
136
|
}
|
|
122
137
|
refreshTurnkeyAccount() {
|
|
@@ -291,16 +306,26 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
|
|
|
291
306
|
}
|
|
292
307
|
signAndSendTransaction(transaction, options) {
|
|
293
308
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
309
|
+
var _a;
|
|
294
310
|
if (!this.turnkeyAddress)
|
|
295
311
|
throw new utils.DynamicError('Solana wallet not found');
|
|
296
|
-
|
|
312
|
+
let optimizedTransaction = transaction;
|
|
313
|
+
try {
|
|
314
|
+
if ((yield this.getNetwork()) === 'mainnet') {
|
|
315
|
+
optimizedTransaction = (yield api.optimizeSolanaTransaction(this.getEnvId(), transaction, (_a = this.turnkeyAddress) !== null && _a !== void 0 ? _a : ''));
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
catch (e) {
|
|
319
|
+
embeddedWallet.logger.warn('Failed to optimize transaction', e);
|
|
320
|
+
}
|
|
321
|
+
const transactionsData = yield transactionDecoder.decodeTransaction(optimizedTransaction, this.getConnection(), this.turnkeyAddress);
|
|
297
322
|
if (!(transactionsData === null || transactionsData === void 0 ? void 0 : transactionsData.length)) {
|
|
298
323
|
throw new utils.DynamicError('Incorrectly formatted transaction instructions');
|
|
299
324
|
}
|
|
300
325
|
let spent;
|
|
301
326
|
let insufficientFunds = false;
|
|
302
327
|
try {
|
|
303
|
-
spent = yield transactionDecoder.getTotalSolanaSpend(
|
|
328
|
+
spent = yield transactionDecoder.getTotalSolanaSpend(optimizedTransaction, this.getConnection(), this.turnkeyAddress);
|
|
304
329
|
}
|
|
305
330
|
catch (e) {
|
|
306
331
|
if (e.message === 'Insufficient funds') {
|
|
@@ -308,17 +333,18 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
|
|
|
308
333
|
}
|
|
309
334
|
}
|
|
310
335
|
const to = transactionDecoder.summarizeTransactionDecodedData(transactionsData);
|
|
311
|
-
const uiTransaction = new
|
|
336
|
+
const uiTransaction = new solanaCore.SolanaUiTransaction({
|
|
312
337
|
connection: this.getConnection(),
|
|
313
338
|
from: this.turnkeyAddress,
|
|
314
|
-
onSubmit: () => _tslib.__awaiter(this, void 0, void 0, function* () { return this.internalSignAndSendTransaction(
|
|
315
|
-
originalTransaction:
|
|
339
|
+
onSubmit: () => _tslib.__awaiter(this, void 0, void 0, function* () { return this.internalSignAndSendTransaction(optimizedTransaction, options); }),
|
|
340
|
+
originalTransaction: optimizedTransaction,
|
|
316
341
|
});
|
|
317
342
|
uiTransaction.to = to;
|
|
318
343
|
uiTransaction.value = spent;
|
|
319
344
|
if (insufficientFunds) {
|
|
320
345
|
uiTransaction.notEnoughFundsError = true;
|
|
321
346
|
}
|
|
347
|
+
// TODO: remove this. We should not be passing references to wallet connectors
|
|
322
348
|
return this.walletUiUtils.sendTransaction(this, uiTransaction);
|
|
323
349
|
});
|
|
324
350
|
}
|
|
@@ -362,11 +388,14 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
|
|
|
362
388
|
}
|
|
363
389
|
createUiTransaction(from) {
|
|
364
390
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
365
|
-
|
|
391
|
+
yield this.validateActiveWallet(from);
|
|
392
|
+
const transaction = new solanaCore.SolanaUiTransaction({
|
|
366
393
|
connection: this.getConnection(),
|
|
367
394
|
from,
|
|
368
395
|
onSubmit: (transaction) => _tslib.__awaiter(this, void 0, void 0, function* () { return this.internalSignAndSendTransaction(transaction); }),
|
|
369
396
|
});
|
|
397
|
+
transaction.feeDeducted = true;
|
|
398
|
+
return transaction;
|
|
370
399
|
});
|
|
371
400
|
}
|
|
372
401
|
}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import { Commitment, Connection, ConnectionConfig, Transaction, VersionedTransaction, ConfirmOptions, Signer, SendOptions } from '@solana/web3.js';
|
|
2
2
|
import { TurnkeyApiTypes } from '@turnkey/http';
|
|
3
3
|
import { GenericNetwork, IUITransaction, WalletUiUtils } from '@dynamic-labs/types';
|
|
4
|
-
import { Chain, ISendBalanceWalletConnector,
|
|
4
|
+
import { Chain, ISendBalanceWalletConnector, InternalWalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
5
5
|
import { WalletBookSchema } from '@dynamic-labs/wallet-book';
|
|
6
6
|
import { JwtVerifiedCredential } from '@dynamic-labs/sdk-api-core';
|
|
7
|
-
import { IChainRpcProviders } from '@dynamic-labs/
|
|
7
|
+
import { IChainRpcProviders, SolanaWallet } from '@dynamic-labs/solana-core';
|
|
8
8
|
import { TurnkeyWalletConnectorBase, TurnkeyWalletConnectorNameAndKey } from '@dynamic-labs/embedded-wallet';
|
|
9
9
|
import { TurnkeySolanaSigner } from './TurnkeySolanaSigner';
|
|
10
10
|
type SendTransactionOptions = ConfirmOptions & {
|
|
11
11
|
signers?: Signer[];
|
|
12
12
|
};
|
|
13
13
|
export type TurnkeySolanaConnectorProps = {
|
|
14
|
-
walletUiUtils: WalletUiUtils<
|
|
14
|
+
walletUiUtils: WalletUiUtils<InternalWalletConnector>;
|
|
15
15
|
walletBook: WalletBookSchema;
|
|
16
16
|
solNetworks: GenericNetwork[];
|
|
17
17
|
appName?: string;
|
|
18
18
|
chainRpcProviders: IChainRpcProviders;
|
|
19
19
|
};
|
|
20
20
|
export declare class TurnkeySolanaWalletConnector extends TurnkeyWalletConnectorBase implements ISendBalanceWalletConnector {
|
|
21
|
-
ChainWallet: typeof
|
|
21
|
+
ChainWallet: typeof SolanaWallet;
|
|
22
22
|
connectedChain: Chain;
|
|
23
23
|
supportedChains: Chain[];
|
|
24
24
|
solNetworks: GenericNetwork[];
|
|
@@ -44,6 +44,7 @@ export declare class TurnkeySolanaWalletConnector extends TurnkeyWalletConnector
|
|
|
44
44
|
getSigner(): Promise<TurnkeySolanaSigner | undefined>;
|
|
45
45
|
getBalance(address: string): Promise<string | undefined>;
|
|
46
46
|
signUint8ArrayMessage(encodedMessage: Uint8Array): Promise<Uint8Array>;
|
|
47
|
+
getEnvId: () => any;
|
|
47
48
|
signMessage(messageToSign: string): Promise<string | undefined>;
|
|
48
49
|
signTransaction<T extends Transaction | VersionedTransaction>(transaction: T): Promise<T>;
|
|
49
50
|
internalSignAndSendTransaction<T extends Transaction | VersionedTransaction>(transaction: T, options?: SendOptions): Promise<string>;
|
|
@@ -5,14 +5,12 @@ import { WebauthnStamper } from '@turnkey/webauthn-stamper';
|
|
|
5
5
|
import { TurnkeyClient } from '@turnkey/http';
|
|
6
6
|
import { TurnkeySigner } from '@turnkey/solana';
|
|
7
7
|
import { IframeStamper } from '@turnkey/iframe-stamper';
|
|
8
|
-
import { Wallet } from '@dynamic-labs/wallet-connector-core';
|
|
9
|
-
import { ProviderChain } from '@dynamic-labs/rpc-provider-solana';
|
|
10
8
|
import { DynamicError, getTLD, PlatformService, bufferToBase64 } from '@dynamic-labs/utils';
|
|
11
|
-
import { SolanaUiTransaction } from '@dynamic-labs/solana-
|
|
9
|
+
import { SolanaWallet, ProviderChain, getGenesisHashLSKey, SolanaUiTransaction } from '@dynamic-labs/solana-core';
|
|
12
10
|
import { TurnkeyWalletConnectorBase, findTurnkeyVerifiedCredential, PasskeyService, TURNKEY_API_BASE_URL, TURNKEY_SDK_SESSION_KEY_RETRYABLE_ERRORS, logger } from '@dynamic-labs/embedded-wallet';
|
|
13
11
|
import { createSolanaConnection } from '../utils/createSolanaConnection/createSolanaConnection.js';
|
|
14
|
-
import { getGenesisHashLSKey } from '../utils/getGenesisHashLSKey/getGenesisHashLSKey.js';
|
|
15
12
|
import { decodeTransaction, getTotalSolanaSpend, summarizeTransactionDecodedData } from '../utils/transactionDecoder/transactionDecoder.js';
|
|
13
|
+
import { optimizeSolanaTransaction } from '../utils/api/api.js';
|
|
16
14
|
import { TurnkeySolanaSigner } from './TurnkeySolanaSigner.js';
|
|
17
15
|
|
|
18
16
|
class TurnkeySolanaWalletConnector extends TurnkeyWalletConnectorBase {
|
|
@@ -20,10 +18,27 @@ class TurnkeySolanaWalletConnector extends TurnkeyWalletConnectorBase {
|
|
|
20
18
|
var _a;
|
|
21
19
|
super(nameAndKey, props);
|
|
22
20
|
// Public fields
|
|
23
|
-
this.ChainWallet =
|
|
21
|
+
this.ChainWallet = SolanaWallet;
|
|
24
22
|
this.connectedChain = 'SOL';
|
|
25
23
|
this.supportedChains = ['SOL'];
|
|
26
24
|
this.verifiedCredentialChain = 'solana';
|
|
25
|
+
this.getEnvId = () => {
|
|
26
|
+
const dynamicNonce = localStorage.getItem('dynamic_nonce');
|
|
27
|
+
if (dynamicNonce) {
|
|
28
|
+
const parsed = JSON.parse(dynamicNonce);
|
|
29
|
+
if (parsed && parsed.environmentId) {
|
|
30
|
+
return parsed.environmentId;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const dynamicNonceDemo = localStorage.getItem('dynamic_nonce_demo');
|
|
34
|
+
if (dynamicNonceDemo) {
|
|
35
|
+
const parsed = JSON.parse(dynamicNonceDemo);
|
|
36
|
+
if (parsed && parsed.environmentId) {
|
|
37
|
+
return parsed.environmentId;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
throw new Error('Failed to get environment id');
|
|
41
|
+
};
|
|
27
42
|
this.stampCreateWalletAccountRequest = (_b) => __awaiter(this, [_b], void 0, function* ({ request, }) {
|
|
28
43
|
const turnkeyClient = this.getTurnkeyClient();
|
|
29
44
|
return turnkeyClient.stampCreateWalletAccounts(request);
|
|
@@ -287,16 +302,26 @@ class TurnkeySolanaWalletConnector extends TurnkeyWalletConnectorBase {
|
|
|
287
302
|
}
|
|
288
303
|
signAndSendTransaction(transaction, options) {
|
|
289
304
|
return __awaiter(this, void 0, void 0, function* () {
|
|
305
|
+
var _a;
|
|
290
306
|
if (!this.turnkeyAddress)
|
|
291
307
|
throw new DynamicError('Solana wallet not found');
|
|
292
|
-
|
|
308
|
+
let optimizedTransaction = transaction;
|
|
309
|
+
try {
|
|
310
|
+
if ((yield this.getNetwork()) === 'mainnet') {
|
|
311
|
+
optimizedTransaction = (yield optimizeSolanaTransaction(this.getEnvId(), transaction, (_a = this.turnkeyAddress) !== null && _a !== void 0 ? _a : ''));
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
catch (e) {
|
|
315
|
+
logger.warn('Failed to optimize transaction', e);
|
|
316
|
+
}
|
|
317
|
+
const transactionsData = yield decodeTransaction(optimizedTransaction, this.getConnection(), this.turnkeyAddress);
|
|
293
318
|
if (!(transactionsData === null || transactionsData === void 0 ? void 0 : transactionsData.length)) {
|
|
294
319
|
throw new DynamicError('Incorrectly formatted transaction instructions');
|
|
295
320
|
}
|
|
296
321
|
let spent;
|
|
297
322
|
let insufficientFunds = false;
|
|
298
323
|
try {
|
|
299
|
-
spent = yield getTotalSolanaSpend(
|
|
324
|
+
spent = yield getTotalSolanaSpend(optimizedTransaction, this.getConnection(), this.turnkeyAddress);
|
|
300
325
|
}
|
|
301
326
|
catch (e) {
|
|
302
327
|
if (e.message === 'Insufficient funds') {
|
|
@@ -307,14 +332,15 @@ class TurnkeySolanaWalletConnector extends TurnkeyWalletConnectorBase {
|
|
|
307
332
|
const uiTransaction = new SolanaUiTransaction({
|
|
308
333
|
connection: this.getConnection(),
|
|
309
334
|
from: this.turnkeyAddress,
|
|
310
|
-
onSubmit: () => __awaiter(this, void 0, void 0, function* () { return this.internalSignAndSendTransaction(
|
|
311
|
-
originalTransaction:
|
|
335
|
+
onSubmit: () => __awaiter(this, void 0, void 0, function* () { return this.internalSignAndSendTransaction(optimizedTransaction, options); }),
|
|
336
|
+
originalTransaction: optimizedTransaction,
|
|
312
337
|
});
|
|
313
338
|
uiTransaction.to = to;
|
|
314
339
|
uiTransaction.value = spent;
|
|
315
340
|
if (insufficientFunds) {
|
|
316
341
|
uiTransaction.notEnoughFundsError = true;
|
|
317
342
|
}
|
|
343
|
+
// TODO: remove this. We should not be passing references to wallet connectors
|
|
318
344
|
return this.walletUiUtils.sendTransaction(this, uiTransaction);
|
|
319
345
|
});
|
|
320
346
|
}
|
|
@@ -358,11 +384,14 @@ class TurnkeySolanaWalletConnector extends TurnkeyWalletConnectorBase {
|
|
|
358
384
|
}
|
|
359
385
|
createUiTransaction(from) {
|
|
360
386
|
return __awaiter(this, void 0, void 0, function* () {
|
|
361
|
-
|
|
387
|
+
yield this.validateActiveWallet(from);
|
|
388
|
+
const transaction = new SolanaUiTransaction({
|
|
362
389
|
connection: this.getConnection(),
|
|
363
390
|
from,
|
|
364
391
|
onSubmit: (transaction) => __awaiter(this, void 0, void 0, function* () { return this.internalSignAndSendTransaction(transaction); }),
|
|
365
392
|
});
|
|
393
|
+
transaction.feeDeducted = true;
|
|
394
|
+
return transaction;
|
|
366
395
|
});
|
|
367
396
|
}
|
|
368
397
|
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var _tslib = require('../../../../_virtual/_tslib.cjs');
|
|
7
|
+
var web3_js = require('@solana/web3.js');
|
|
8
|
+
var SdkApi = require('./utils/SdkApi.cjs');
|
|
9
|
+
|
|
10
|
+
const serializeTransaction = (transaction) => {
|
|
11
|
+
if (transaction instanceof web3_js.VersionedTransaction) {
|
|
12
|
+
return Buffer.from(transaction.serialize()).toString('base64');
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
return Buffer.from(transaction.serialize({ verifySignatures: false })).toString('base64');
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
const deserializeTransaction = (serializedTransaction) => {
|
|
19
|
+
const transactionBuffer = Buffer.from(serializedTransaction, 'base64');
|
|
20
|
+
return web3_js.VersionedTransaction.deserialize(transactionBuffer);
|
|
21
|
+
};
|
|
22
|
+
const optimizeSolanaTransaction = (environmentId, transaction, address) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
23
|
+
const serializedTransaction = serializeTransaction(transaction);
|
|
24
|
+
const request = {
|
|
25
|
+
environmentId,
|
|
26
|
+
solanaTransactionOptimizationRequest: {
|
|
27
|
+
address,
|
|
28
|
+
transaction: serializedTransaction,
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
const response = yield SdkApi.sdkApi().optimizeTransaction(request);
|
|
32
|
+
const optimizedTransaction = deserializeTransaction(response.transaction);
|
|
33
|
+
return optimizedTransaction;
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
exports.deserializeTransaction = deserializeTransaction;
|
|
37
|
+
exports.optimizeSolanaTransaction = optimizeSolanaTransaction;
|
|
38
|
+
exports.serializeTransaction = serializeTransaction;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Transaction, VersionedTransaction } from '@solana/web3.js';
|
|
2
|
+
export declare const serializeTransaction: (transaction: Transaction | VersionedTransaction) => string;
|
|
3
|
+
export declare const deserializeTransaction: (serializedTransaction: string) => VersionedTransaction;
|
|
4
|
+
export declare const optimizeSolanaTransaction: (environmentId: string, transaction: Transaction | VersionedTransaction, address: string) => Promise<VersionedTransaction>;
|