@dynamic-labs/embedded-wallet-solana 4.0.0-alpha.2 → 4.0.0-alpha.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,4 +1,189 @@
1
1
 
2
+ ## [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)
3
+
4
+ ## [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)
5
+
6
+ ## [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)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * 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))
12
+
13
+ ## [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)
14
+
15
+
16
+ ### Bug Fixes
17
+
18
+ * **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))
19
+
20
+ ## [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)
21
+
22
+
23
+ ### Features
24
+
25
+ * add support for eclipse ([#7255](https://github.com/dynamic-labs/dynamic-auth/issues/7255)) ([70e9830](https://github.com/dynamic-labs/dynamic-auth/commit/70e9830c6c801e0298825b914ee825b578350cf0))
26
+
27
+
28
+ ### Bug Fixes
29
+
30
+ * 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))
31
+ * 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))
32
+
33
+ ## [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)
34
+
35
+
36
+ ### Features
37
+
38
+ * 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))
39
+ * 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))
40
+ * add support for compass and leap wallets ([9738749](https://github.com/dynamic-labs/dynamic-auth/commit/9738749bb5ed8e07a2582df255f683e4d408db93))
41
+ * 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))
42
+ * 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))
43
+
44
+ ## [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)
45
+
46
+ ## [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)
47
+
48
+ ## [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)
49
+
50
+
51
+ ### Bug Fixes
52
+
53
+ * 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))
54
+
55
+ ## [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)
56
+
57
+
58
+ ### Features
59
+
60
+ * 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))
61
+ * solana embedded signall headless ([#7132](https://github.com/dynamic-labs/dynamic-auth/issues/7132)) ([fe16b71](https://github.com/dynamic-labs/dynamic-auth/commit/fe16b71a4c0ad775f8de87ca899cfdd1071f11d6))
62
+
63
+
64
+ ### Bug Fixes
65
+
66
+ * 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))
67
+ * 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))
68
+ * 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))
69
+ * 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))
70
+ * 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)
71
+ * 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))
72
+
73
+ ## [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)
74
+
75
+
76
+ ### Bug Fixes
77
+
78
+ * 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))
79
+
80
+ ## [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)
81
+
82
+
83
+ ### Bug Fixes
84
+
85
+ * 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))
86
+
87
+ ## [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)
88
+
89
+
90
+ ### Features
91
+
92
+ * 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))
93
+ * 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))
94
+
95
+
96
+ ### Bug Fixes
97
+
98
+ * 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))
99
+
100
+ ## [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)
101
+
102
+
103
+ ### Features
104
+
105
+ * 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))
106
+ * 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))
107
+ * 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))
108
+
109
+
110
+ ### Bug Fixes
111
+
112
+ * 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))
113
+
114
+ ## [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)
115
+
116
+
117
+ ### Features
118
+
119
+ * 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))
120
+ * 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))
121
+ * 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))
122
+
123
+
124
+ ### Bug Fixes
125
+
126
+ * 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))
127
+ * 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))
128
+ * 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))
129
+ * update version error text ([#7054](https://github.com/dynamic-labs/dynamic-auth/issues/7054)) ([713dacb](https://github.com/dynamic-labs/dynamic-auth/commit/713dacb79c2513323c2e6840d7418716011c2dcd))
130
+ * 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))
131
+
132
+ ## [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)
133
+
134
+
135
+ ### ⚠ BREAKING CHANGES
136
+
137
+ * remove support to magic ([#7033](https://github.com/dynamic-labs/dynamic-auth/issues/7033)) ([0fdc41f](https://github.com/dynamic-labs/dynamic-auth/commit/0fdc41f05f87b32f56b73db068f984f18bdf69a0))
138
+
139
+ ### Features
140
+
141
+ * global connectivity disconnect ([#7008](https://github.com/dynamic-labs/dynamic-auth/issues/7008)) ([80d705b](https://github.com/dynamic-labs/dynamic-auth/commit/80d705ba252aa3b01cbf4861507fed00e460215f))
142
+
143
+
144
+ ### Bug Fixes
145
+
146
+ * 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))
147
+ * add retry to useConnectWithOtp ([#7012](https://github.com/dynamic-labs/dynamic-auth/issues/7012)) ([d551d72](https://github.com/dynamic-labs/dynamic-auth/commit/d551d72a463f8a03964858b30ec174d41985a7b1))
148
+ * 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))
149
+ * 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))
150
+ * 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))
151
+
152
+
153
+ ## [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)
154
+
155
+
156
+ ### Features
157
+
158
+ * 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))
159
+
160
+
161
+ ### Bug Fixes
162
+
163
+ * **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))
164
+ * react-native-extension to include esm ([#6965](https://github.com/dynamic-labs/DynamicAuth/issues/6965)) ([336825b](https://github.com/dynamic-labs/DynamicAuth/commit/336825b50142002bbc67c6f8850bd63030bf384b))
165
+
166
+ ## [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)
167
+
168
+
169
+ ### Bug Fixes
170
+
171
+ * 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))
172
+ * update in memory secure storage ([#6955](https://github.com/dynamic-labs/DynamicAuth/issues/6955)) ([697fc20](https://github.com/dynamic-labs/DynamicAuth/commit/697fc20740b243fa31ecf06e8b2ed9d09932a544))
173
+
174
+ ## [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)
175
+
176
+
177
+ ### Features
178
+
179
+ * developers provide global connectivity appkit project id ([#6941](https://github.com/dynamic-labs/DynamicAuth/issues/6941)) ([83760ea](https://github.com/dynamic-labs/DynamicAuth/commit/83760ea57591685b12caee945f173f6a7f9312d1))
180
+
181
+
182
+ ### Bug Fixes
183
+
184
+ * don't try to set up event listeners if wallet provider doesn't support it ([#6943](https://github.com/dynamic-labs/DynamicAuth/issues/6943)) ([439f1bb](https://github.com/dynamic-labs/DynamicAuth/commit/439f1bbb3c765959756cfc6eeb8429e4018e0379))
185
+ * dont verify all signatures for solana embedded multisig tx ([#6953](https://github.com/dynamic-labs/DynamicAuth/issues/6953)) ([7a7973e](https://github.com/dynamic-labs/DynamicAuth/commit/7a7973e05f0960421b348a55c6a00c9fd873b0b7))
186
+
2
187
  ## [4.0.0-alpha.2](https://github.com/dynamic-labs/DynamicAuth/compare/v4.0.0-alpha.1...v4.0.0-alpha.2) (2024-09-18)
3
188
 
4
189
 
package/package.cjs CHANGED
@@ -3,12 +3,12 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "4.0.0-alpha.2";
6
+ var version = "4.0.0-alpha.21";
7
7
  var dependencies = {
8
- "@dynamic-labs/sdk-api-core": "0.0.530",
9
- "@dynamic-labs/utils": "4.0.0-alpha.2",
10
- "@dynamic-labs/logger": "4.0.0-alpha.2",
11
- "@dynamic-labs/types": "4.0.0-alpha.2",
8
+ "@dynamic-labs/utils": "4.0.0-alpha.21",
9
+ "@dynamic-labs/logger": "4.0.0-alpha.21",
10
+ "@dynamic-labs/types": "4.0.0-alpha.21",
11
+ "@dynamic-labs/sdk-api-core": "0.0.559",
12
12
  eventemitter3: "5.0.1",
13
13
  "@solana/spl-token": "0.4.6",
14
14
  "@solana/web3.js": "1.92.1",
package/package.js CHANGED
@@ -1,10 +1,10 @@
1
1
  'use client'
2
- var version = "4.0.0-alpha.2";
2
+ var version = "4.0.0-alpha.21";
3
3
  var dependencies = {
4
- "@dynamic-labs/sdk-api-core": "0.0.530",
5
- "@dynamic-labs/utils": "4.0.0-alpha.2",
6
- "@dynamic-labs/logger": "4.0.0-alpha.2",
7
- "@dynamic-labs/types": "4.0.0-alpha.2",
4
+ "@dynamic-labs/utils": "4.0.0-alpha.21",
5
+ "@dynamic-labs/logger": "4.0.0-alpha.21",
6
+ "@dynamic-labs/types": "4.0.0-alpha.21",
7
+ "@dynamic-labs/sdk-api-core": "0.0.559",
8
8
  eventemitter3: "5.0.1",
9
9
  "@solana/spl-token": "0.4.6",
10
10
  "@solana/web3.js": "1.92.1",
package/package.json CHANGED
@@ -1,16 +1,7 @@
1
1
  {
2
2
  "name": "@dynamic-labs/embedded-wallet-solana",
3
- "version": "4.0.0-alpha.2",
4
- "repository": {
5
- "type": "git",
6
- "url": "git+https://github.com/dynamic-labs/dynamic-auth.git",
7
- "directory": "packages/embedded-wallet-solana"
8
- },
3
+ "version": "4.0.0-alpha.21",
9
4
  "description": "A React SDK for implementing wallet web3 authentication and authorization to your website.",
10
- "bugs": {
11
- "url": "https://github.com/dynamic-labs/DynamicAuth/issues"
12
- },
13
- "homepage": "https://github.com/dynamic-labs/DynamicAuth#readme",
14
5
  "author": "Dynamic Labs, Inc.",
15
6
  "license": "MIT",
16
7
  "main": "./src/index.cjs",
@@ -25,11 +16,12 @@
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.530",
30
- "@dynamic-labs/utils": "4.0.0-alpha.2",
31
- "@dynamic-labs/logger": "4.0.0-alpha.2",
32
- "@dynamic-labs/types": "4.0.0-alpha.2",
21
+ "@dynamic-labs/utils": "4.0.0-alpha.21",
22
+ "@dynamic-labs/logger": "4.0.0-alpha.21",
23
+ "@dynamic-labs/types": "4.0.0-alpha.21",
24
+ "@dynamic-labs/sdk-api-core": "0.0.559",
33
25
  "eventemitter3": "5.0.1",
34
26
  "@solana/spl-token": "0.4.6",
35
27
  "@solana/web3.js": "1.92.1",
@@ -37,12 +29,13 @@
37
29
  "@turnkey/iframe-stamper": "2.0.0",
38
30
  "@turnkey/solana": "0.3.9",
39
31
  "@turnkey/webauthn-stamper": "0.5.0",
40
- "@dynamic-labs/embedded-wallet": "4.0.0-alpha.2",
41
- "@dynamic-labs/rpc-providers": "4.0.0-alpha.2",
42
- "@dynamic-labs/solana-core": "4.0.0-alpha.2",
43
- "@dynamic-labs/wallet-book": "4.0.0-alpha.2",
44
- "@dynamic-labs/wallet-connector-core": "4.0.0-alpha.2",
45
- "@dynamic-labs/webauthn": "4.0.0-alpha.2",
32
+ "@dynamic-labs/assert-package-version": "4.0.0-alpha.21",
33
+ "@dynamic-labs/embedded-wallet": "4.0.0-alpha.21",
34
+ "@dynamic-labs/rpc-providers": "4.0.0-alpha.21",
35
+ "@dynamic-labs/solana-core": "4.0.0-alpha.21",
36
+ "@dynamic-labs/wallet-book": "4.0.0-alpha.21",
37
+ "@dynamic-labs/wallet-connector-core": "4.0.0-alpha.21",
38
+ "@dynamic-labs/webauthn": "4.0.0-alpha.21",
46
39
  "react-dom": "18.2.0",
47
40
  "viem": "2.9.25"
48
41
  },
package/src/index.cjs CHANGED
@@ -3,8 +3,10 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
+ var assertPackageVersion = require('@dynamic-labs/assert-package-version');
7
+ var _package = require('../package.cjs');
6
8
  var TurnkeySolanaWalletConnectors = require('./TurnkeySolanaWalletConnectors.cjs');
7
9
 
8
-
10
+ assertPackageVersion.assertPackageVersion('@dynamic-labs/embedded-wallet-solana', _package.version);
9
11
 
10
12
  exports.TurnkeySolanaWalletConnectors = TurnkeySolanaWalletConnectors.TurnkeySolanaWalletConnectors;
package/src/index.js CHANGED
@@ -1,2 +1,6 @@
1
1
  'use client'
2
+ import { assertPackageVersion } from '@dynamic-labs/assert-package-version';
3
+ import { version } from '../package.js';
2
4
  export { TurnkeySolanaWalletConnectors } from './TurnkeySolanaWalletConnectors.js';
5
+
6
+ assertPackageVersion('@dynamic-labs/embedded-wallet-solana', version);
@@ -27,11 +27,9 @@ class TurnkeySolanaSigner {
27
27
  return this.walletConnector.signTransaction(transaction);
28
28
  });
29
29
  }
30
- signAllTransactions(
31
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
32
- _transactions) {
30
+ signAllTransactions(transactions) {
33
31
  return _tslib.__awaiter(this, void 0, void 0, function* () {
34
- throw Error('Method not available for embedded wallet');
32
+ return this.walletConnector.signAllTransactions(transactions);
35
33
  });
36
34
  }
37
35
  signAndSendTransaction(transaction, options) {
@@ -32,7 +32,7 @@ export declare class TurnkeySolanaSigner implements IEmbeddedWalletSolanaSigner
32
32
  });
33
33
  signMessage(encodedMessage: Uint8Array): Promise<SignedMessage>;
34
34
  signTransaction<T extends Transaction | VersionedTransaction>(transaction: T): Promise<T>;
35
- signAllTransactions<T extends Transaction | VersionedTransaction>(_transactions: T[]): Promise<T[]>;
35
+ signAllTransactions<T extends Transaction | VersionedTransaction>(transactions: T[]): Promise<T[]>;
36
36
  signAndSendTransaction<T extends Transaction | VersionedTransaction>(transaction: T, options?: SendOptions): Promise<{
37
37
  signature: TransactionSignature;
38
38
  }>;
@@ -23,11 +23,9 @@ class TurnkeySolanaSigner {
23
23
  return this.walletConnector.signTransaction(transaction);
24
24
  });
25
25
  }
26
- signAllTransactions(
27
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
28
- _transactions) {
26
+ signAllTransactions(transactions) {
29
27
  return __awaiter(this, void 0, void 0, function* () {
30
- throw Error('Method not available for embedded wallet');
28
+ return this.walletConnector.signAllTransactions(transactions);
31
29
  });
32
30
  }
33
31
  signAndSendTransaction(transaction, options) {
@@ -288,24 +288,42 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
288
288
  return transaction;
289
289
  });
290
290
  }
291
+ signAllTransactions(transactions) {
292
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
293
+ yield this.createOrRestoreSession();
294
+ let account = yield this.getTurnkeyAccount();
295
+ const address = this.turnkeyAddress;
296
+ if (!account || !address) {
297
+ throw new Error('No turnkey account');
298
+ }
299
+ try {
300
+ const signedTransactions = yield account.signAllTransactions(transactions, address);
301
+ return signedTransactions;
302
+ }
303
+ catch (err) {
304
+ if (embeddedWallet.TURNKEY_SDK_SESSION_KEY_RETRYABLE_ERRORS.some((errorMsg) => err.message.includes(errorMsg))) {
305
+ yield this.removeSessionKeys();
306
+ yield this.createOrRestoreSession({
307
+ ignoreRestore: true,
308
+ });
309
+ account = (yield this.getTurnkeyAccount());
310
+ const signedTransactions = yield account.signAllTransactions(transactions, address);
311
+ return signedTransactions;
312
+ }
313
+ else {
314
+ embeddedWallet.logger.error('[TK] failed to perform SignAllTransactions activity', err);
315
+ throw err;
316
+ }
317
+ }
318
+ });
319
+ }
291
320
  internalSignAndSendTransaction(transaction, options) {
292
321
  return _tslib.__awaiter(this, void 0, void 0, function* () {
293
- var _a;
294
322
  if (!this.turnkeyAddress)
295
323
  throw new utils.DynamicError('Solana wallet not found');
296
324
  const currentConnection = this.getConnection('confirmed');
297
- const blockhash = yield currentConnection.getLatestBlockhash();
298
- if ('version' in transaction) {
299
- transaction.message.recentBlockhash =
300
- blockhash.blockhash;
301
- }
302
- else {
303
- transaction.recentBlockhash = blockhash.blockhash;
304
- transaction.feePayer =
305
- (_a = transaction.feePayer) !== null && _a !== void 0 ? _a : new web3_js.PublicKey(this.turnkeyAddress);
306
- }
307
325
  const signedTransaction = yield this.signTransaction(transaction);
308
- const signature = yield currentConnection.sendRawTransaction(Buffer.from(signedTransaction.serialize()), options);
326
+ const signature = yield currentConnection.sendRawTransaction(signedTransaction.serialize(), options);
309
327
  // listen for tx confirmation until 60 seconds, which is ~150 blocks expiration
310
328
  return new Promise((resolve, reject) => {
311
329
  const timeout = setTimeout(() => {
@@ -329,8 +347,16 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
329
347
  if (!this.turnkeyAddress)
330
348
  throw new utils.DynamicError('Solana wallet not found');
331
349
  let optimizedTransaction = transaction;
350
+ let alreadySigned = false;
351
+ if ('version' in transaction) {
352
+ alreadySigned = transaction.signatures.some((sig) => !sig.every((byte) => byte === 0));
353
+ }
354
+ else {
355
+ alreadySigned = transaction.signatures.some((sig) => sig.signature);
356
+ }
332
357
  try {
333
- if ((yield this.getNetwork()) === 'mainnet') {
358
+ // we cannot optimize partially signed transactions as once a tx is modified the signatures are no longer valid
359
+ if ((yield this.getNetwork()) === 'mainnet' && !alreadySigned) {
334
360
  optimizedTransaction = (yield api.optimizeSolanaTransaction(this.getEnvId(), transaction, (_a = this.turnkeyAddress) !== null && _a !== void 0 ? _a : ''));
335
361
  }
336
362
  }
@@ -48,6 +48,7 @@ export declare class TurnkeySolanaWalletConnector extends TurnkeyWalletConnector
48
48
  getEnvId: () => any;
49
49
  signMessage(messageToSign: string): Promise<string | undefined>;
50
50
  signTransaction<T extends Transaction | VersionedTransaction>(transaction: T): Promise<T>;
51
+ signAllTransactions<T extends Transaction | VersionedTransaction>(transactions: T[]): Promise<T[]>;
51
52
  internalSignAndSendTransaction<T extends Transaction | VersionedTransaction>(transaction: T, options?: SendOptions): Promise<string>;
52
53
  signAndSendTransaction<T extends Transaction | VersionedTransaction>(transaction: T, options?: SendOptions): Promise<string>;
53
54
  sendTransaction<T extends Transaction | VersionedTransaction>(transaction: T, connection: Connection, options?: SendTransactionOptions): Promise<string>;
@@ -284,24 +284,42 @@ class TurnkeySolanaWalletConnector extends TurnkeyWalletConnectorBase {
284
284
  return transaction;
285
285
  });
286
286
  }
287
+ signAllTransactions(transactions) {
288
+ return __awaiter(this, void 0, void 0, function* () {
289
+ yield this.createOrRestoreSession();
290
+ let account = yield this.getTurnkeyAccount();
291
+ const address = this.turnkeyAddress;
292
+ if (!account || !address) {
293
+ throw new Error('No turnkey account');
294
+ }
295
+ try {
296
+ const signedTransactions = yield account.signAllTransactions(transactions, address);
297
+ return signedTransactions;
298
+ }
299
+ catch (err) {
300
+ if (TURNKEY_SDK_SESSION_KEY_RETRYABLE_ERRORS.some((errorMsg) => err.message.includes(errorMsg))) {
301
+ yield this.removeSessionKeys();
302
+ yield this.createOrRestoreSession({
303
+ ignoreRestore: true,
304
+ });
305
+ account = (yield this.getTurnkeyAccount());
306
+ const signedTransactions = yield account.signAllTransactions(transactions, address);
307
+ return signedTransactions;
308
+ }
309
+ else {
310
+ logger.error('[TK] failed to perform SignAllTransactions activity', err);
311
+ throw err;
312
+ }
313
+ }
314
+ });
315
+ }
287
316
  internalSignAndSendTransaction(transaction, options) {
288
317
  return __awaiter(this, void 0, void 0, function* () {
289
- var _a;
290
318
  if (!this.turnkeyAddress)
291
319
  throw new DynamicError('Solana wallet not found');
292
320
  const currentConnection = this.getConnection('confirmed');
293
- const blockhash = yield currentConnection.getLatestBlockhash();
294
- if ('version' in transaction) {
295
- transaction.message.recentBlockhash =
296
- blockhash.blockhash;
297
- }
298
- else {
299
- transaction.recentBlockhash = blockhash.blockhash;
300
- transaction.feePayer =
301
- (_a = transaction.feePayer) !== null && _a !== void 0 ? _a : new PublicKey(this.turnkeyAddress);
302
- }
303
321
  const signedTransaction = yield this.signTransaction(transaction);
304
- const signature = yield currentConnection.sendRawTransaction(Buffer.from(signedTransaction.serialize()), options);
322
+ const signature = yield currentConnection.sendRawTransaction(signedTransaction.serialize(), options);
305
323
  // listen for tx confirmation until 60 seconds, which is ~150 blocks expiration
306
324
  return new Promise((resolve, reject) => {
307
325
  const timeout = setTimeout(() => {
@@ -325,8 +343,16 @@ class TurnkeySolanaWalletConnector extends TurnkeyWalletConnectorBase {
325
343
  if (!this.turnkeyAddress)
326
344
  throw new DynamicError('Solana wallet not found');
327
345
  let optimizedTransaction = transaction;
346
+ let alreadySigned = false;
347
+ if ('version' in transaction) {
348
+ alreadySigned = transaction.signatures.some((sig) => !sig.every((byte) => byte === 0));
349
+ }
350
+ else {
351
+ alreadySigned = transaction.signatures.some((sig) => sig.signature);
352
+ }
328
353
  try {
329
- if ((yield this.getNetwork()) === 'mainnet') {
354
+ // we cannot optimize partially signed transactions as once a tx is modified the signatures are no longer valid
355
+ if ((yield this.getNetwork()) === 'mainnet' && !alreadySigned) {
330
356
  optimizedTransaction = (yield optimizeSolanaTransaction(this.getEnvId(), transaction, (_a = this.turnkeyAddress) !== null && _a !== void 0 ? _a : ''));
331
357
  }
332
358
  }
@@ -10,16 +10,27 @@ var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
10
10
  var utils = require('@dynamic-labs/utils');
11
11
 
12
12
  const getTotalSolanaSpend = (transaction, connection, thisAddress) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
13
- var _a, _b, _c, _d, _e, _f;
13
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
14
14
  let simulation;
15
+ let feePayer;
15
16
  if ('version' in transaction) {
17
+ [feePayer] = transaction.message.staticAccountKeys;
16
18
  simulation = yield connection.simulateTransaction(transaction, {
17
- accounts: { addresses: [thisAddress], encoding: 'base64' },
19
+ accounts: {
20
+ addresses: feePayer.toBase58() && feePayer.toBase58() !== thisAddress
21
+ ? [feePayer.toBase58(), thisAddress]
22
+ : [thisAddress],
23
+ encoding: 'base64',
24
+ },
18
25
  replaceRecentBlockhash: true,
19
26
  });
20
27
  }
21
28
  else {
22
- simulation = yield connection.simulateTransaction(transaction, undefined, [new web3_js.PublicKey(thisAddress)]);
29
+ feePayer =
30
+ transaction.feePayer || transaction.instructions[0].keys[0].pubkey;
31
+ simulation = yield connection.simulateTransaction(transaction, undefined, feePayer.toBase58() && feePayer.toBase58() !== thisAddress
32
+ ? [feePayer, new web3_js.PublicKey(thisAddress)]
33
+ : [new web3_js.PublicKey(thisAddress)]);
23
34
  }
24
35
  const previousBalance = yield connection.getBalance(new web3_js.PublicKey(thisAddress));
25
36
  if (!((_c = (_b = (_a = simulation === null || simulation === void 0 ? void 0 : simulation.value) === null || _a === void 0 ? void 0 : _a.accounts) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.lamports)) {
@@ -43,11 +54,14 @@ const getTotalSolanaSpend = (transaction, connection, thisAddress) => _tslib.__a
43
54
  }
44
55
  return undefined;
45
56
  }
46
- const totalSolTransfer = previousBalance - ((_f = (_e = (_d = simulation === null || simulation === void 0 ? void 0 : simulation.value) === null || _d === void 0 ? void 0 : _d.accounts) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.lamports);
57
+ // the last account will be the embedded wallet,
58
+ // if there are two addresses the first will be gas-sponsoring so we dont want to calculate sol for that
59
+ const totalSolTransfer = previousBalance -
60
+ ((_g = (_f = (_e = (_d = simulation === null || simulation === void 0 ? void 0 : simulation.value) === null || _d === void 0 ? void 0 : _d.accounts) === null || _e === void 0 ? void 0 : _e[1]) === null || _f === void 0 ? void 0 : _f.lamports) !== null && _g !== void 0 ? _g : (_k = (_j = (_h = simulation === null || simulation === void 0 ? void 0 : simulation.value) === null || _h === void 0 ? void 0 : _h.accounts) === null || _j === void 0 ? void 0 : _j[0]) === null || _k === void 0 ? void 0 : _k.lamports);
47
61
  return BigInt(totalSolTransfer);
48
62
  });
49
63
  const decodeTransaction = (transaction, connection, thisAddress) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
50
- var _g;
64
+ var _l;
51
65
  if (!transaction) {
52
66
  throw new utils.DynamicError('Transaction is required');
53
67
  }
@@ -72,7 +86,7 @@ const decodeTransaction = (transaction, connection, thisAddress) => _tslib.__awa
72
86
  }
73
87
  }
74
88
  else if (!transaction.instructions) {
75
- decodedInstructions = (_g = web3_js.Transaction.from(Buffer.from(transaction.serialize()))) === null || _g === void 0 ? void 0 : _g.instructions;
89
+ decodedInstructions = (_l = web3_js.Transaction.from(Buffer.from(transaction.serialize()))) === null || _l === void 0 ? void 0 : _l.instructions;
76
90
  }
77
91
  else {
78
92
  decodedInstructions = transaction.instructions;
@@ -100,7 +114,7 @@ const decodeTransaction = (transaction, connection, thisAddress) => _tslib.__awa
100
114
  }
101
115
  // SPL transfers
102
116
  let splTransfers = yield Promise.all(decodedInstructions.map((instruction) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
103
- var _h, _j, _k, _l, _m, _o, _p;
117
+ var _m, _o, _p, _q, _r, _s, _t;
104
118
  if (instruction.programId.equals(splToken.TOKEN_PROGRAM_ID)) {
105
119
  const decodedTokenInstruction = splToken.decodeTransferInstructionUnchecked(instruction);
106
120
  const { source, destination } = decodedTokenInstruction.keys;
@@ -114,9 +128,9 @@ const decodeTransaction = (transaction, connection, thisAddress) => _tslib.__awa
114
128
  }
115
129
  // Pure SPL transfers, get the address from the destination token account to display to user
116
130
  const destinationAccountInfo = yield connection.getParsedAccountInfo(destination.pubkey);
117
- const isTokenAccount = ((_k = (_j = (_h = destinationAccountInfo.value) === null || _h === void 0 ? void 0 : _h.data) === null || _j === void 0 ? void 0 : _j.parsed) === null || _k === void 0 ? void 0 : _k.type) === 'account';
131
+ const isTokenAccount = ((_p = (_o = (_m = destinationAccountInfo.value) === null || _m === void 0 ? void 0 : _m.data) === null || _o === void 0 ? void 0 : _o.parsed) === null || _p === void 0 ? void 0 : _p.type) === 'account';
118
132
  const destinationOwner = isTokenAccount
119
- ? (_p = (_o = (_m = (_l = destinationAccountInfo.value) === null || _l === void 0 ? void 0 : _l.data) === null || _m === void 0 ? void 0 : _m.parsed) === null || _o === void 0 ? void 0 : _o.info) === null || _p === void 0 ? void 0 : _p.owner
133
+ ? (_t = (_s = (_r = (_q = destinationAccountInfo.value) === null || _q === void 0 ? void 0 : _q.data) === null || _r === void 0 ? void 0 : _r.parsed) === null || _s === void 0 ? void 0 : _s.info) === null || _t === void 0 ? void 0 : _t.owner
120
134
  : null;
121
135
  const toAddress = destinationOwner
122
136
  ? destinationOwner
@@ -6,16 +6,27 @@ import { logger } from '@dynamic-labs/wallet-connector-core';
6
6
  import { DynamicError } from '@dynamic-labs/utils';
7
7
 
8
8
  const getTotalSolanaSpend = (transaction, connection, thisAddress) => __awaiter(void 0, void 0, void 0, function* () {
9
- var _a, _b, _c, _d, _e, _f;
9
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
10
10
  let simulation;
11
+ let feePayer;
11
12
  if ('version' in transaction) {
13
+ [feePayer] = transaction.message.staticAccountKeys;
12
14
  simulation = yield connection.simulateTransaction(transaction, {
13
- accounts: { addresses: [thisAddress], encoding: 'base64' },
15
+ accounts: {
16
+ addresses: feePayer.toBase58() && feePayer.toBase58() !== thisAddress
17
+ ? [feePayer.toBase58(), thisAddress]
18
+ : [thisAddress],
19
+ encoding: 'base64',
20
+ },
14
21
  replaceRecentBlockhash: true,
15
22
  });
16
23
  }
17
24
  else {
18
- simulation = yield connection.simulateTransaction(transaction, undefined, [new PublicKey(thisAddress)]);
25
+ feePayer =
26
+ transaction.feePayer || transaction.instructions[0].keys[0].pubkey;
27
+ simulation = yield connection.simulateTransaction(transaction, undefined, feePayer.toBase58() && feePayer.toBase58() !== thisAddress
28
+ ? [feePayer, new PublicKey(thisAddress)]
29
+ : [new PublicKey(thisAddress)]);
19
30
  }
20
31
  const previousBalance = yield connection.getBalance(new PublicKey(thisAddress));
21
32
  if (!((_c = (_b = (_a = simulation === null || simulation === void 0 ? void 0 : simulation.value) === null || _a === void 0 ? void 0 : _a.accounts) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.lamports)) {
@@ -39,11 +50,14 @@ const getTotalSolanaSpend = (transaction, connection, thisAddress) => __awaiter(
39
50
  }
40
51
  return undefined;
41
52
  }
42
- const totalSolTransfer = previousBalance - ((_f = (_e = (_d = simulation === null || simulation === void 0 ? void 0 : simulation.value) === null || _d === void 0 ? void 0 : _d.accounts) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.lamports);
53
+ // the last account will be the embedded wallet,
54
+ // if there are two addresses the first will be gas-sponsoring so we dont want to calculate sol for that
55
+ const totalSolTransfer = previousBalance -
56
+ ((_g = (_f = (_e = (_d = simulation === null || simulation === void 0 ? void 0 : simulation.value) === null || _d === void 0 ? void 0 : _d.accounts) === null || _e === void 0 ? void 0 : _e[1]) === null || _f === void 0 ? void 0 : _f.lamports) !== null && _g !== void 0 ? _g : (_k = (_j = (_h = simulation === null || simulation === void 0 ? void 0 : simulation.value) === null || _h === void 0 ? void 0 : _h.accounts) === null || _j === void 0 ? void 0 : _j[0]) === null || _k === void 0 ? void 0 : _k.lamports);
43
57
  return BigInt(totalSolTransfer);
44
58
  });
45
59
  const decodeTransaction = (transaction, connection, thisAddress) => __awaiter(void 0, void 0, void 0, function* () {
46
- var _g;
60
+ var _l;
47
61
  if (!transaction) {
48
62
  throw new DynamicError('Transaction is required');
49
63
  }
@@ -68,7 +82,7 @@ const decodeTransaction = (transaction, connection, thisAddress) => __awaiter(vo
68
82
  }
69
83
  }
70
84
  else if (!transaction.instructions) {
71
- decodedInstructions = (_g = Transaction.from(Buffer.from(transaction.serialize()))) === null || _g === void 0 ? void 0 : _g.instructions;
85
+ decodedInstructions = (_l = Transaction.from(Buffer.from(transaction.serialize()))) === null || _l === void 0 ? void 0 : _l.instructions;
72
86
  }
73
87
  else {
74
88
  decodedInstructions = transaction.instructions;
@@ -96,7 +110,7 @@ const decodeTransaction = (transaction, connection, thisAddress) => __awaiter(vo
96
110
  }
97
111
  // SPL transfers
98
112
  let splTransfers = yield Promise.all(decodedInstructions.map((instruction) => __awaiter(void 0, void 0, void 0, function* () {
99
- var _h, _j, _k, _l, _m, _o, _p;
113
+ var _m, _o, _p, _q, _r, _s, _t;
100
114
  if (instruction.programId.equals(TOKEN_PROGRAM_ID)) {
101
115
  const decodedTokenInstruction = decodeTransferInstructionUnchecked(instruction);
102
116
  const { source, destination } = decodedTokenInstruction.keys;
@@ -110,9 +124,9 @@ const decodeTransaction = (transaction, connection, thisAddress) => __awaiter(vo
110
124
  }
111
125
  // Pure SPL transfers, get the address from the destination token account to display to user
112
126
  const destinationAccountInfo = yield connection.getParsedAccountInfo(destination.pubkey);
113
- const isTokenAccount = ((_k = (_j = (_h = destinationAccountInfo.value) === null || _h === void 0 ? void 0 : _h.data) === null || _j === void 0 ? void 0 : _j.parsed) === null || _k === void 0 ? void 0 : _k.type) === 'account';
127
+ const isTokenAccount = ((_p = (_o = (_m = destinationAccountInfo.value) === null || _m === void 0 ? void 0 : _m.data) === null || _o === void 0 ? void 0 : _o.parsed) === null || _p === void 0 ? void 0 : _p.type) === 'account';
114
128
  const destinationOwner = isTokenAccount
115
- ? (_p = (_o = (_m = (_l = destinationAccountInfo.value) === null || _l === void 0 ? void 0 : _l.data) === null || _m === void 0 ? void 0 : _m.parsed) === null || _o === void 0 ? void 0 : _o.info) === null || _p === void 0 ? void 0 : _p.owner
129
+ ? (_t = (_s = (_r = (_q = destinationAccountInfo.value) === null || _q === void 0 ? void 0 : _q.data) === null || _r === void 0 ? void 0 : _r.parsed) === null || _s === void 0 ? void 0 : _s.info) === null || _t === void 0 ? void 0 : _t.owner
116
130
  : null;
117
131
  const toAddress = destinationOwner
118
132
  ? destinationOwner