@dynamic-labs/bitcoin 4.0.0-alpha.2 → 4.0.0-alpha.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/CHANGELOG.md +183 -0
  2. package/package.cjs +8 -0
  3. package/package.js +4 -0
  4. package/package.json +10 -16
  5. package/src/connectors/BitcoinSatsConnectConnector/BitcoinSatsConnectConnector.cjs +59 -13
  6. package/src/connectors/BitcoinSatsConnectConnector/BitcoinSatsConnectConnector.d.ts +8 -0
  7. package/src/connectors/BitcoinSatsConnectConnector/BitcoinSatsConnectConnector.js +61 -15
  8. package/src/connectors/BitcoinWalletConnector.cjs +8 -0
  9. package/src/connectors/BitcoinWalletConnector.d.ts +5 -6
  10. package/src/connectors/BitcoinWalletConnector.js +8 -0
  11. package/src/connectors/{BitcoinSatsConnectLegacyConnector/BitcoinSatsConnectLegacyConnector.cjs → MagicEdenConnector/MagicEdenConnector.cjs} +22 -49
  12. package/src/connectors/{BitcoinSatsConnectLegacyConnector/BitcoinSatsConnectLegacyConnector.d.ts → MagicEdenConnector/MagicEdenConnector.d.ts} +8 -1
  13. package/src/connectors/{BitcoinSatsConnectLegacyConnector/BitcoinSatsConnectLegacyConnector.js → MagicEdenConnector/MagicEdenConnector.js} +24 -51
  14. package/src/connectors/MagicEdenConnector/index.d.ts +1 -0
  15. package/src/connectors/OylConnector/OylConnector.cjs +68 -0
  16. package/src/connectors/OylConnector/OylConnector.d.ts +10 -0
  17. package/src/connectors/OylConnector/OylConnector.js +64 -0
  18. package/src/connectors/OylConnector/index.d.ts +1 -0
  19. package/src/connectors/PhantomConnector/PhantomConnector.cjs +1 -7
  20. package/src/connectors/PhantomConnector/PhantomConnector.d.ts +1 -2
  21. package/src/connectors/PhantomConnector/PhantomConnector.js +1 -7
  22. package/src/connectors/index.d.ts +2 -1
  23. package/src/index.cjs +12 -5
  24. package/src/index.d.ts +2 -2
  25. package/src/index.js +12 -5
  26. package/src/utils/fetchSatsConnectConnectors/fetchSatsConnectConnectors.cjs +7 -17
  27. package/src/utils/fetchSatsConnectConnectors/fetchSatsConnectConnectors.d.ts +1 -1
  28. package/src/utils/fetchSatsConnectConnectors/fetchSatsConnectConnectors.js +7 -17
  29. package/src/utils/supportsSatsConnect.cjs +1 -0
  30. package/src/utils/supportsSatsConnect.js +1 -0
  31. package/src/connectors/BitcoinSatsConnectLegacyConnector/index.d.ts +0 -1
package/CHANGELOG.md CHANGED
@@ -1,4 +1,187 @@
1
1
 
2
+ ## [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)
3
+
4
+ ## [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)
5
+
6
+
7
+ ### Bug Fixes
8
+
9
+ * 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))
10
+
11
+ ## [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)
12
+
13
+
14
+ ### Bug Fixes
15
+
16
+ * **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))
17
+
18
+ ## [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)
19
+
20
+
21
+ ### Features
22
+
23
+ * add support for eclipse ([#7255](https://github.com/dynamic-labs/dynamic-auth/issues/7255)) ([70e9830](https://github.com/dynamic-labs/dynamic-auth/commit/70e9830c6c801e0298825b914ee825b578350cf0))
24
+
25
+
26
+ ### Bug Fixes
27
+
28
+ * 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))
29
+ * 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))
30
+
31
+ ## [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)
32
+
33
+
34
+ ### Features
35
+
36
+ * 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))
37
+ * 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))
38
+ * add support for compass and leap wallets ([9738749](https://github.com/dynamic-labs/dynamic-auth/commit/9738749bb5ed8e07a2582df255f683e4d408db93))
39
+ * 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))
40
+ * 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))
41
+
42
+ ## [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)
43
+
44
+ ## [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)
45
+
46
+ ## [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)
47
+
48
+
49
+ ### Bug Fixes
50
+
51
+ * 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))
52
+
53
+ ## [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)
54
+
55
+
56
+ ### Features
57
+
58
+ * 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))
59
+ * solana embedded signall headless ([#7132](https://github.com/dynamic-labs/dynamic-auth/issues/7132)) ([fe16b71](https://github.com/dynamic-labs/dynamic-auth/commit/fe16b71a4c0ad775f8de87ca899cfdd1071f11d6))
60
+
61
+
62
+ ### Bug Fixes
63
+
64
+ * 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))
65
+ * 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))
66
+ * 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))
67
+ * 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))
68
+ * 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)
69
+ * 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))
70
+
71
+ ## [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)
72
+
73
+
74
+ ### Bug Fixes
75
+
76
+ * 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))
77
+
78
+ ## [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)
79
+
80
+
81
+ ### Bug Fixes
82
+
83
+ * 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))
84
+
85
+ ## [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)
86
+
87
+
88
+ ### Features
89
+
90
+ * 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))
91
+ * 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))
92
+
93
+
94
+ ### Bug Fixes
95
+
96
+ * 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))
97
+
98
+ ## [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)
99
+
100
+
101
+ ### Features
102
+
103
+ * 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))
104
+ * 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))
105
+ * 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))
106
+
107
+
108
+ ### Bug Fixes
109
+
110
+ * 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))
111
+
112
+ ## [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)
113
+
114
+
115
+ ### Features
116
+
117
+ * 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))
118
+ * 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))
119
+ * 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))
120
+
121
+
122
+ ### Bug Fixes
123
+
124
+ * 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))
125
+ * 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))
126
+ * 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))
127
+ * update version error text ([#7054](https://github.com/dynamic-labs/dynamic-auth/issues/7054)) ([713dacb](https://github.com/dynamic-labs/dynamic-auth/commit/713dacb79c2513323c2e6840d7418716011c2dcd))
128
+ * 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))
129
+
130
+ ## [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)
131
+
132
+
133
+ ### ⚠ BREAKING CHANGES
134
+
135
+ * remove support to magic ([#7033](https://github.com/dynamic-labs/dynamic-auth/issues/7033)) ([0fdc41f](https://github.com/dynamic-labs/dynamic-auth/commit/0fdc41f05f87b32f56b73db068f984f18bdf69a0))
136
+
137
+ ### Features
138
+
139
+ * global connectivity disconnect ([#7008](https://github.com/dynamic-labs/dynamic-auth/issues/7008)) ([80d705b](https://github.com/dynamic-labs/dynamic-auth/commit/80d705ba252aa3b01cbf4861507fed00e460215f))
140
+
141
+
142
+ ### Bug Fixes
143
+
144
+ * 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))
145
+ * add retry to useConnectWithOtp ([#7012](https://github.com/dynamic-labs/dynamic-auth/issues/7012)) ([d551d72](https://github.com/dynamic-labs/dynamic-auth/commit/d551d72a463f8a03964858b30ec174d41985a7b1))
146
+ * 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))
147
+ * 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))
148
+ * 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))
149
+
150
+
151
+ ## [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)
152
+
153
+
154
+ ### Features
155
+
156
+ * 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))
157
+
158
+
159
+ ### Bug Fixes
160
+
161
+ * **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))
162
+ * react-native-extension to include esm ([#6965](https://github.com/dynamic-labs/DynamicAuth/issues/6965)) ([336825b](https://github.com/dynamic-labs/DynamicAuth/commit/336825b50142002bbc67c6f8850bd63030bf384b))
163
+
164
+ ## [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)
165
+
166
+
167
+ ### Bug Fixes
168
+
169
+ * 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))
170
+ * update in memory secure storage ([#6955](https://github.com/dynamic-labs/DynamicAuth/issues/6955)) ([697fc20](https://github.com/dynamic-labs/DynamicAuth/commit/697fc20740b243fa31ecf06e8b2ed9d09932a544))
171
+
172
+ ## [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)
173
+
174
+
175
+ ### Features
176
+
177
+ * 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))
178
+
179
+
180
+ ### Bug Fixes
181
+
182
+ * 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))
183
+ * 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))
184
+
2
185
  ## [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
186
 
4
187
 
package/package.cjs ADDED
@@ -0,0 +1,8 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var version = "4.0.0-alpha.20";
7
+
8
+ exports.version = version;
package/package.js ADDED
@@ -0,0 +1,4 @@
1
+ 'use client'
2
+ var version = "4.0.0-alpha.20";
3
+
4
+ export { version };
package/package.json CHANGED
@@ -1,16 +1,7 @@
1
1
  {
2
2
  "name": "@dynamic-labs/bitcoin",
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/bitcoin"
8
- },
3
+ "version": "4.0.0-alpha.20",
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,18 +16,21 @@
25
16
  },
26
17
  "./package.json": "./package.json"
27
18
  },
19
+ "homepage": "https://www.dynamic.xyz/",
28
20
  "dependencies": {
29
21
  "@btckit/types": "0.0.19",
30
- "@dynamic-labs/sdk-api-core": "0.0.530",
22
+ "@dynamic-labs/sdk-api-core": "0.0.559",
31
23
  "@wallet-standard/app": "1.0.1",
32
24
  "@wallet-standard/base": "1.0.1",
33
25
  "bitcoinjs-lib": "6.1.5",
34
26
  "sats-connect": "2.8.0",
35
- "@dynamic-labs/types": "4.0.0-alpha.2",
36
- "@dynamic-labs/utils": "4.0.0-alpha.2",
37
- "@dynamic-labs/wallet-book": "4.0.0-alpha.2",
38
- "@dynamic-labs/wallet-connector-core": "4.0.0-alpha.2",
39
- "stream": "0.0.2"
27
+ "jsontokens": "4.0.1",
28
+ "@dynamic-labs/assert-package-version": "4.0.0-alpha.20",
29
+ "@dynamic-labs/types": "4.0.0-alpha.20",
30
+ "@dynamic-labs/utils": "4.0.0-alpha.20",
31
+ "@dynamic-labs/wallet-book": "4.0.0-alpha.20",
32
+ "@dynamic-labs/wallet-connector-core": "4.0.0-alpha.20",
33
+ "eventemitter3": "5.0.1"
40
34
  },
41
35
  "peerDependencies": {}
42
36
  }
@@ -16,9 +16,14 @@ var _const = require('../../const.cjs');
16
16
 
17
17
  class BitcoinSatsConnectConnector extends BitcoinWalletConnector.BitcoinWalletConnector {
18
18
  constructor(opts) {
19
+ var _a, _b, _c;
19
20
  super(opts);
20
21
  this.isLegacy = false;
21
22
  this.currentNetwork = satsConnect.BitcoinNetworkType.Mainnet;
23
+ if ((_b = (_a = opts.walletData) === null || _a === void 0 ? void 0 : _a.injectedConfig) === null || _b === void 0 ? void 0 : _b.length) {
24
+ this.providerId =
25
+ (_c = opts.walletData.injectedConfig[0].walletStandard) === null || _c === void 0 ? void 0 : _c.providerId;
26
+ }
22
27
  }
23
28
  getGenericUserCancelledError() {
24
29
  const error = new Error();
@@ -47,22 +52,30 @@ class BitcoinSatsConnectConnector extends BitcoinWalletConnector.BitcoinWalletCo
47
52
  return mainAddress;
48
53
  });
49
54
  }
55
+ /**
56
+ * If is inAppBrowser experience, redirects to the inAppBrowser template.
57
+ * Returns true if redirection was triggered.
58
+ */
59
+ handleInAppBrowserGetAddress() {
60
+ var _a;
61
+ const wallet = walletBook.findWalletBookWallet(this.walletBook, this.key);
62
+ const inAppBrowserUrl = (_a = wallet === null || wallet === void 0 ? void 0 : wallet.mobile) === null || _a === void 0 ? void 0 : _a.inAppBrowser;
63
+ if (!utils.isMobile() ||
64
+ this.isInstalledOnBrowser() ||
65
+ !inAppBrowserUrl ||
66
+ this.mobileExperience !== 'in-app-browser')
67
+ return false;
68
+ const inAppBrowserTemplate = utils.template(inAppBrowserUrl);
69
+ const deepLink = inAppBrowserTemplate({
70
+ encodedDappURI: encodeURIComponent(window.location.toString()),
71
+ });
72
+ window.location.href = deepLink;
73
+ return true;
74
+ }
50
75
  getAddress() {
51
76
  return _tslib.__awaiter(this, void 0, void 0, function* () {
52
- var _a;
53
- const wallet = walletBook.findWalletBookWallet(this.walletBook, this.key);
54
- const inAppBrowserUrl = (_a = wallet === null || wallet === void 0 ? void 0 : wallet.mobile) === null || _a === void 0 ? void 0 : _a.inAppBrowser;
55
- if (utils.isMobile() &&
56
- !this.isInstalledOnBrowser() &&
57
- inAppBrowserUrl &&
58
- this.mobileExperience === 'in-app-browser') {
59
- const inAppBrowserTemplate = utils.template(inAppBrowserUrl);
60
- const deepLink = inAppBrowserTemplate({
61
- encodedDappURI: encodeURIComponent(window.location.toString()),
62
- });
63
- window.location.href = deepLink;
77
+ if (this.handleInAppBrowserGetAddress())
64
78
  return;
65
- }
66
79
  try {
67
80
  // requesting permissions on initial connect will avoid connection prompt for other requests
68
81
  const permissionResponse = yield satsConnect.request('wallet_requestPermissions', undefined);
@@ -247,6 +260,39 @@ class BitcoinSatsConnectConnector extends BitcoinWalletConnector.BitcoinWalletCo
247
260
  return;
248
261
  });
249
262
  }
263
+ handleXverseAccountChange() {
264
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
265
+ const { handleAccountChange } = walletConnectorCore.eventListenerHandlers(this);
266
+ // xverse doesn't return the new account address, so we need to get it manually
267
+ const accounts = yield this.getAddresses();
268
+ if (!accounts) {
269
+ return;
270
+ }
271
+ const connectedAccounts = [accounts];
272
+ handleAccountChange(connectedAccounts);
273
+ });
274
+ }
275
+ setupEventListeners() {
276
+ // even if we pass a providerId, to addListener, it doesn't work
277
+ // the event fires multiple times, so we're using the default implementation for non xverse wallets
278
+ if (this.key !== 'xverse') {
279
+ super.setupEventListeners();
280
+ return;
281
+ }
282
+ try {
283
+ const removeListener = satsConnect.addListener('accountChange', this.handleXverseAccountChange.bind(this));
284
+ this.teardownEventListeners = () => {
285
+ walletConnectorCore.logger.debug('[BitcoinSatsConnectConnector] teardownEventListeners');
286
+ removeListener();
287
+ };
288
+ }
289
+ catch (error) {
290
+ walletConnectorCore.logger.debug('[BitcoinSatsConnectConnector] setupEventListeners', {
291
+ connector: this.key,
292
+ error,
293
+ });
294
+ }
295
+ }
250
296
  }
251
297
 
252
298
  exports.BitcoinSatsConnectConnector = BitcoinSatsConnectConnector;
@@ -4,9 +4,15 @@ import { BitcoinWalletConnector, BitcoinWalletConnectorOpts } from '../BitcoinWa
4
4
  export declare abstract class BitcoinSatsConnectConnector extends BitcoinWalletConnector {
5
5
  isLegacy: boolean;
6
6
  currentNetwork: BitcoinNetworkType;
7
+ providerId: string | undefined;
7
8
  constructor(opts: BitcoinWalletConnectorOpts);
8
9
  private getGenericUserCancelledError;
9
10
  private getAddresses;
11
+ /**
12
+ * If is inAppBrowser experience, redirects to the inAppBrowser template.
13
+ * Returns true if redirection was triggered.
14
+ */
15
+ protected handleInAppBrowserGetAddress(): boolean;
10
16
  getAddress(): Promise<string | undefined>;
11
17
  signMessage(messageToSign: string, withAddress: string): Promise<string | undefined>;
12
18
  sendBitcoin(transaction: BitcoinTransaction): Promise<string | undefined>;
@@ -15,4 +21,6 @@ export declare abstract class BitcoinSatsConnectConnector extends BitcoinWalletC
15
21
  signPsbt(request: BitcoinSignPsbtRequest): Promise<BitcoinSignPsbtResponse | undefined>;
16
22
  signPsbts(requests: BitcoinSignPsbtRequest[]): Promise<string[] | undefined>;
17
23
  validateActiveWallet(expectedAddress: string): Promise<void>;
24
+ private handleXverseAccountChange;
25
+ setupEventListeners(): void;
18
26
  }
@@ -1,10 +1,10 @@
1
1
  'use client'
2
2
  import { __awaiter } from '../../../_virtual/_tslib.js';
3
3
  import { Psbt } from 'bitcoinjs-lib';
4
- import { BitcoinNetworkType, request, AddressPurpose, signMultipleTransactions } from 'sats-connect';
4
+ import { BitcoinNetworkType, request, AddressPurpose, signMultipleTransactions, addListener } from 'sats-connect';
5
5
  import { isMobile, template } from '@dynamic-labs/utils';
6
6
  import { findWalletBookWallet } from '@dynamic-labs/wallet-book';
7
- import { logger } from '@dynamic-labs/wallet-connector-core';
7
+ import { logger, eventListenerHandlers } from '@dynamic-labs/wallet-connector-core';
8
8
  import { convertNetworkTypeForPsbt } from '../../utils/psbt/bitcoinNetworkTypeToNetworks.js';
9
9
  import { BitcoinWalletConnector } from '../BitcoinWalletConnector.js';
10
10
  import { createSignPsbtOptionsForSatsConnect } from '../../utils/psbt/createSignPsbtOptions.js';
@@ -12,9 +12,14 @@ import { SATSCONNECT_FEATURE } from '../../const.js';
12
12
 
13
13
  class BitcoinSatsConnectConnector extends BitcoinWalletConnector {
14
14
  constructor(opts) {
15
+ var _a, _b, _c;
15
16
  super(opts);
16
17
  this.isLegacy = false;
17
18
  this.currentNetwork = BitcoinNetworkType.Mainnet;
19
+ if ((_b = (_a = opts.walletData) === null || _a === void 0 ? void 0 : _a.injectedConfig) === null || _b === void 0 ? void 0 : _b.length) {
20
+ this.providerId =
21
+ (_c = opts.walletData.injectedConfig[0].walletStandard) === null || _c === void 0 ? void 0 : _c.providerId;
22
+ }
18
23
  }
19
24
  getGenericUserCancelledError() {
20
25
  const error = new Error();
@@ -43,22 +48,30 @@ class BitcoinSatsConnectConnector extends BitcoinWalletConnector {
43
48
  return mainAddress;
44
49
  });
45
50
  }
51
+ /**
52
+ * If is inAppBrowser experience, redirects to the inAppBrowser template.
53
+ * Returns true if redirection was triggered.
54
+ */
55
+ handleInAppBrowserGetAddress() {
56
+ var _a;
57
+ const wallet = findWalletBookWallet(this.walletBook, this.key);
58
+ const inAppBrowserUrl = (_a = wallet === null || wallet === void 0 ? void 0 : wallet.mobile) === null || _a === void 0 ? void 0 : _a.inAppBrowser;
59
+ if (!isMobile() ||
60
+ this.isInstalledOnBrowser() ||
61
+ !inAppBrowserUrl ||
62
+ this.mobileExperience !== 'in-app-browser')
63
+ return false;
64
+ const inAppBrowserTemplate = template(inAppBrowserUrl);
65
+ const deepLink = inAppBrowserTemplate({
66
+ encodedDappURI: encodeURIComponent(window.location.toString()),
67
+ });
68
+ window.location.href = deepLink;
69
+ return true;
70
+ }
46
71
  getAddress() {
47
72
  return __awaiter(this, void 0, void 0, function* () {
48
- var _a;
49
- const wallet = findWalletBookWallet(this.walletBook, this.key);
50
- const inAppBrowserUrl = (_a = wallet === null || wallet === void 0 ? void 0 : wallet.mobile) === null || _a === void 0 ? void 0 : _a.inAppBrowser;
51
- if (isMobile() &&
52
- !this.isInstalledOnBrowser() &&
53
- inAppBrowserUrl &&
54
- this.mobileExperience === 'in-app-browser') {
55
- const inAppBrowserTemplate = template(inAppBrowserUrl);
56
- const deepLink = inAppBrowserTemplate({
57
- encodedDappURI: encodeURIComponent(window.location.toString()),
58
- });
59
- window.location.href = deepLink;
73
+ if (this.handleInAppBrowserGetAddress())
60
74
  return;
61
- }
62
75
  try {
63
76
  // requesting permissions on initial connect will avoid connection prompt for other requests
64
77
  const permissionResponse = yield request('wallet_requestPermissions', undefined);
@@ -243,6 +256,39 @@ class BitcoinSatsConnectConnector extends BitcoinWalletConnector {
243
256
  return;
244
257
  });
245
258
  }
259
+ handleXverseAccountChange() {
260
+ return __awaiter(this, void 0, void 0, function* () {
261
+ const { handleAccountChange } = eventListenerHandlers(this);
262
+ // xverse doesn't return the new account address, so we need to get it manually
263
+ const accounts = yield this.getAddresses();
264
+ if (!accounts) {
265
+ return;
266
+ }
267
+ const connectedAccounts = [accounts];
268
+ handleAccountChange(connectedAccounts);
269
+ });
270
+ }
271
+ setupEventListeners() {
272
+ // even if we pass a providerId, to addListener, it doesn't work
273
+ // the event fires multiple times, so we're using the default implementation for non xverse wallets
274
+ if (this.key !== 'xverse') {
275
+ super.setupEventListeners();
276
+ return;
277
+ }
278
+ try {
279
+ const removeListener = addListener('accountChange', this.handleXverseAccountChange.bind(this));
280
+ this.teardownEventListeners = () => {
281
+ logger.debug('[BitcoinSatsConnectConnector] teardownEventListeners');
282
+ removeListener();
283
+ };
284
+ }
285
+ catch (error) {
286
+ logger.debug('[BitcoinSatsConnectConnector] setupEventListeners', {
287
+ connector: this.key,
288
+ error,
289
+ });
290
+ }
291
+ }
246
292
  }
247
293
 
248
294
  export { BitcoinSatsConnectConnector };
@@ -184,6 +184,14 @@ class BitcoinWalletConnector extends walletConnectorCore.WalletConnectorBase {
184
184
  return response.text();
185
185
  });
186
186
  }
187
+ // not all wallets support sendBitcoin method
188
+ // so we have a default implementation that returns undefined
189
+ sendBitcoin(transaction) {
190
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
191
+ walletConnectorCore.logger.debug('sendBitcoin - function not implemented', transaction);
192
+ return undefined;
193
+ });
194
+ }
187
195
  getProvider() {
188
196
  var _a;
189
197
  return (_a = this.bitcoinProviderHelper) === null || _a === void 0 ? void 0 : _a.getProvider();
@@ -1,8 +1,6 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- import { EventEmitter } from 'stream';
1
+ import { type EventEmitter } from 'eventemitter3';
4
2
  import type { Wallet } from '@wallet-standard/base';
5
- import { Chain, IBitcoinWalletConnector, WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
3
+ import { Chain, IBitcoinWalletConnector, WalletConnectorBase, WalletMetadata } from '@dynamic-labs/wallet-connector-core';
6
4
  import { WalletBookSchema, WalletSchema } from '@dynamic-labs/wallet-book';
7
5
  import { JwtVerifiedCredential, WalletAdditionalAddress } from '@dynamic-labs/sdk-api-core';
8
6
  import { IBitcoinSessionCache } from '../BitcoinLocalStorageCache';
@@ -12,6 +10,7 @@ export type BitcoinWalletConnectorOpts = {
12
10
  walletBook: WalletBookSchema;
13
11
  walletData: WalletSchema;
14
12
  overrideKey?: string;
13
+ metadata?: WalletMetadata;
15
14
  };
16
15
  export declare abstract class BitcoinWalletConnector extends WalletConnectorBase<typeof BitcoinWallet> implements IBitcoinWalletConnector {
17
16
  cache: IBitcoinSessionCache;
@@ -40,8 +39,8 @@ export declare abstract class BitcoinWalletConnector extends WalletConnectorBase
40
39
  getAdditionalAddresses(mainAddress?: string): Promise<WalletAdditionalAddress[]>;
41
40
  setAdditionalAddresses(mainAddress: string, additionalAddresses: WalletAdditionalAddress[]): Promise<void>;
42
41
  sendRawTransaction(rawTransaction: string): Promise<string>;
43
- abstract sendBitcoin(transaction: BitcoinTransaction): Promise<string | undefined>;
44
- getProvider<T>(): T & EventEmitter;
42
+ sendBitcoin(transaction: BitcoinTransaction): Promise<string | undefined>;
43
+ getProvider<T>(): T & EventEmitter<string | symbol, any>;
45
44
  abstract signPsbt(request: BitcoinSignPsbtRequest): Promise<BitcoinSignPsbtResponse | undefined>;
46
45
  signPsbts(requests: BitcoinSignPsbtRequest[]): Promise<string[] | undefined>;
47
46
  setConnectedAccountWithAddresses({ mainAddress, ordinalsAddress, paymentAddress, active, }: ConnectedAccountWithAddressesProps): Promise<void>;
@@ -180,6 +180,14 @@ class BitcoinWalletConnector extends WalletConnectorBase {
180
180
  return response.text();
181
181
  });
182
182
  }
183
+ // not all wallets support sendBitcoin method
184
+ // so we have a default implementation that returns undefined
185
+ sendBitcoin(transaction) {
186
+ return __awaiter(this, void 0, void 0, function* () {
187
+ logger.debug('sendBitcoin - function not implemented', transaction);
188
+ return undefined;
189
+ });
190
+ }
183
191
  getProvider() {
184
192
  var _a;
185
193
  return (_a = this.bitcoinProviderHelper) === null || _a === void 0 ? void 0 : _a.getProvider();