@dynamic-labs/bitcoin 2.1.0-alpha.3 → 2.1.0-alpha.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/CHANGELOG.md +253 -0
  2. package/package.json +6 -6
  3. package/src/bitcoinProviderHelper.cjs +9 -0
  4. package/src/bitcoinProviderHelper.d.ts +2 -0
  5. package/src/bitcoinProviderHelper.js +9 -0
  6. package/src/{BitcoinBtcKitConnector.cjs → connectors/BitcoinBtcKitConnector/BitcoinBtcKitConnector.cjs} +4 -4
  7. package/src/{BitcoinBtcKitConnector.d.ts → connectors/BitcoinBtcKitConnector/BitcoinBtcKitConnector.d.ts} +2 -2
  8. package/src/{BitcoinBtcKitConnector.js → connectors/BitcoinBtcKitConnector/BitcoinBtcKitConnector.js} +4 -4
  9. package/src/connectors/BitcoinBtcKitConnector/index.d.ts +2 -0
  10. package/src/{BitcoinSatsConnectConnector.cjs → connectors/BitcoinSatsConnectConnector/BitcoinSatsConnectConnector.cjs} +11 -11
  11. package/src/{BitcoinSatsConnectConnector.d.ts → connectors/BitcoinSatsConnectConnector/BitcoinSatsConnectConnector.d.ts} +3 -2
  12. package/src/{BitcoinSatsConnectConnector.js → connectors/BitcoinSatsConnectConnector/BitcoinSatsConnectConnector.js} +11 -11
  13. package/src/connectors/BitcoinSatsConnectConnector/index.d.ts +1 -0
  14. package/src/{BitcoinWalletConnector.cjs → connectors/BitcoinWalletConnector.cjs} +53 -14
  15. package/src/{BitcoinWalletConnector.d.ts → connectors/BitcoinWalletConnector.d.ts} +4 -2
  16. package/src/{BitcoinWalletConnector.js → connectors/BitcoinWalletConnector.js} +53 -14
  17. package/src/{OkxConnector.cjs → connectors/OkxConnector/OkxConnector.cjs} +4 -4
  18. package/src/{OkxConnector.d.ts → connectors/OkxConnector/OkxConnector.d.ts} +2 -2
  19. package/src/{OkxConnector.js → connectors/OkxConnector/OkxConnector.js} +4 -4
  20. package/src/connectors/OkxConnector/index.d.ts +1 -0
  21. package/src/connectors/PhantomConnector/PhantomConnector.cjs +100 -0
  22. package/src/connectors/PhantomConnector/PhantomConnector.d.ts +12 -0
  23. package/src/connectors/PhantomConnector/PhantomConnector.js +96 -0
  24. package/src/connectors/PhantomConnector/index.d.ts +1 -0
  25. package/src/{UnisatConnector.cjs → connectors/UnisatConnector/UnisatConnector.cjs} +3 -3
  26. package/src/{UnisatConnector.d.ts → connectors/UnisatConnector/UnisatConnector.d.ts} +2 -2
  27. package/src/{UnisatConnector.js → connectors/UnisatConnector/UnisatConnector.js} +3 -3
  28. package/src/connectors/UnisatConnector/index.d.ts +1 -0
  29. package/src/connectors/UnknownInjected/UnknownInjected.cjs +37 -0
  30. package/src/connectors/UnknownInjected/UnknownInjected.d.ts +11 -0
  31. package/src/connectors/UnknownInjected/UnknownInjected.js +33 -0
  32. package/src/connectors/UnknownInjected/index.d.ts +1 -0
  33. package/src/connectors/index.d.ts +7 -0
  34. package/src/index.cjs +12 -3
  35. package/src/index.d.ts +2 -2
  36. package/src/index.js +12 -3
  37. package/src/types.d.ts +68 -2
  38. package/src/utils/fetchBtcKitConnectors/fetchBtcKitConnectors.cjs +2 -4
  39. package/src/utils/fetchBtcKitConnectors/fetchBtcKitConnectors.js +2 -4
  40. package/src/utils/fetchSatsConnectConnectors/fetchSatsConnectConnectors.cjs +9 -1
  41. package/src/utils/fetchSatsConnectConnectors/fetchSatsConnectConnectors.js +9 -1
  42. package/src/utils/psbt/index.d.ts +1 -0
  43. package/src/utils/psbt/sighashNumberToString.d.ts +2 -0
  44. package/src/utils/satoshisToBtc/index.d.ts +1 -0
  45. package/src/utils/satoshisToBtc/satoshisToBtc.cjs +8 -0
  46. package/src/utils/satoshisToBtc/satoshisToBtc.d.ts +1 -0
  47. package/src/utils/satoshisToBtc/satoshisToBtc.js +4 -0
  48. package/src/utils/supportsSatsConnect.d.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -1,4 +1,257 @@
1
1
 
2
+ ## [2.1.0-alpha.30](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.29...v2.1.0-alpha.30) (2024-05-31)
3
+
4
+
5
+ ### Bug Fixes
6
+
7
+ * ensure initExpirationTime is called automatically after authenticating ([#5797](https://github.com/dynamic-labs/DynamicAuth/issues/5797)) ([87eb802](https://github.com/dynamic-labs/DynamicAuth/commit/87eb802e0c2d3af2ca116e07099bfef426d30a1f))
8
+ * initExpirationTime should use expiresAt from storage ([#5799](https://github.com/dynamic-labs/DynamicAuth/issues/5799)) ([384ed17](https://github.com/dynamic-labs/DynamicAuth/commit/384ed1747d9b813ac0d34aaee36eb6480cb256d3))
9
+ * only run useValidateSession once on rerender ([#5795](https://github.com/dynamic-labs/DynamicAuth/issues/5795)) ([ba4446d](https://github.com/dynamic-labs/DynamicAuth/commit/ba4446df95726248b877a84def959cabe81ad9b6))
10
+ * store expiresAt timestamp from VerifyResponse in local storage for use in initExpirationTime ([#5796](https://github.com/dynamic-labs/DynamicAuth/issues/5796)) ([5f8aaeb](https://github.com/dynamic-labs/DynamicAuth/commit/5f8aaeb1cd45b10cb007f9eac25d18f50f142d8f))
11
+
12
+ ## [2.1.0-alpha.29](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.28...v2.1.0-alpha.29) (2024-05-30)
13
+
14
+
15
+ ### Features
16
+
17
+ * add account and chain to coinbase walletClient ([#5776](https://github.com/dynamic-labs/DynamicAuth/issues/5776)) ([557091c](https://github.com/dynamic-labs/DynamicAuth/commit/557091c0efaec11273bd40b53c8bcd633c1bf48d))
18
+ * add support for phantom btc ([#5717](https://github.com/dynamic-labs/DynamicAuth/issues/5717)) ([c61ca4f](https://github.com/dynamic-labs/DynamicAuth/commit/c61ca4f437796be2b420902de7e7de730725d122))
19
+
20
+
21
+ ### Bug Fixes
22
+
23
+ * add phantom btc mobile redirect ([#5789](https://github.com/dynamic-labs/DynamicAuth/issues/5789)) ([aaa2654](https://github.com/dynamic-labs/DynamicAuth/commit/aaa26548668b0733e7930c1d7f5cc3937b3dfb50))
24
+ * clear settings and configurations when logged out on page load ([#5787](https://github.com/dynamic-labs/DynamicAuth/issues/5787)) ([53c4d0b](https://github.com/dynamic-labs/DynamicAuth/commit/53c4d0b4686debdb43b1ab1b8b9e296ed4dd74b6))
25
+ * lookup projectSettings from store to check if cookie enabled ([#5790](https://github.com/dynamic-labs/DynamicAuth/issues/5790)) ([6f2314b](https://github.com/dynamic-labs/DynamicAuth/commit/6f2314b0afef984e6caea79ead73d12c5c6d83f0))
26
+
27
+ ## [2.1.0-alpha.28](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.27...v2.1.0-alpha.28) (2024-05-29)
28
+
29
+
30
+ ### Features
31
+
32
+ * adds solana standard wallet connector ([#5752](https://github.com/dynamic-labs/DynamicAuth/issues/5752)) ([0040940](https://github.com/dynamic-labs/DynamicAuth/commit/0040940fd1adb37ab3106bb0e4dfe79403bc41f2))
33
+
34
+
35
+ ### Bug Fixes
36
+
37
+ * farcaster fetch url fix ([#5767](https://github.com/dynamic-labs/DynamicAuth/issues/5767)) ([1408ba9](https://github.com/dynamic-labs/DynamicAuth/commit/1408ba92680363b9db7820a63d5e3d15dc26ad22))
38
+
39
+ ## [2.1.0-alpha.27](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.26...v2.1.0-alpha.27) (2024-05-29)
40
+
41
+
42
+ ### Bug Fixes
43
+
44
+ * coinbase connection ([#5764](https://github.com/dynamic-labs/DynamicAuth/issues/5764)) ([aeacd1c](https://github.com/dynamic-labs/DynamicAuth/commit/aeacd1c55dc471fbf8c14eb05ab356b0a90aa239))
45
+
46
+ ## [2.1.0-alpha.26](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.25...v2.1.0-alpha.26) (2024-05-29)
47
+
48
+
49
+ ### Features
50
+
51
+ * add farcaster login to react native ([#5713](https://github.com/dynamic-labs/DynamicAuth/issues/5713)) ([08f4473](https://github.com/dynamic-labs/DynamicAuth/commit/08f4473eec9b32b82b6f703fa4d5136514a61b25))
52
+
53
+
54
+ ### Bug Fixes
55
+
56
+ * better error handling of invalid mfa otp ([#5759](https://github.com/dynamic-labs/DynamicAuth/issues/5759)) ([72ab01f](https://github.com/dynamic-labs/DynamicAuth/commit/72ab01f8f919f147eeedfabf8b4838802abf308a))
57
+ * show correct status for magic eden btc wallets after ([#5748](https://github.com/dynamic-labs/DynamicAuth/issues/5748)) ([b8f20bb](https://github.com/dynamic-labs/DynamicAuth/commit/b8f20bb796b9a2e88817ef3b0da6ac32e9012b18))
58
+
59
+ ## [2.1.0-alpha.25](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.24...v2.1.0-alpha.25) (2024-05-27)
60
+
61
+
62
+ ### Bug Fixes
63
+
64
+ * btc balance calculation ([#5737](https://github.com/dynamic-labs/DynamicAuth/issues/5737)) ([9b5ceb3](https://github.com/dynamic-labs/DynamicAuth/commit/9b5ceb32d543037f60d7104f0b81b3abc86ebd10))
65
+
66
+ ## [2.1.0-alpha.24](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.23...v2.1.0-alpha.24) (2024-05-26)
67
+
68
+
69
+ ### Features
70
+
71
+ * add onMfaCompleteOnce to useMfa ([#5702](https://github.com/dynamic-labs/DynamicAuth/issues/5702)) ([6451e33](https://github.com/dynamic-labs/DynamicAuth/commit/6451e3369ef1b4ba116378f0dd3fe4e82007e670))
72
+ * prompt custom fields during onboarding ([#5302](https://github.com/dynamic-labs/DynamicAuth/issues/5302)) ([8664223](https://github.com/dynamic-labs/DynamicAuth/commit/86642232cf2b490a820169f48ba8dc093010e1a0))
73
+
74
+
75
+ ### Bug Fixes
76
+
77
+ * correct text on pending signature screen to match the embedded widget modal text ([#5707](https://github.com/dynamic-labs/DynamicAuth/issues/5707)) ([44a6a06](https://github.com/dynamic-labs/DynamicAuth/commit/44a6a0664e08d4b9fc25dd86c0e30f8d585558e0))
78
+ * pass captcha token for farcaster login ([#5706](https://github.com/dynamic-labs/DynamicAuth/issues/5706)) ([32bcb6e](https://github.com/dynamic-labs/DynamicAuth/commit/32bcb6e0e06c6e273c07f32893dfd550deeb6a19))
79
+ * use coinbase provider to get connected accounts for consistency ([#5711](https://github.com/dynamic-labs/DynamicAuth/issues/5711)) ([b9e9170](https://github.com/dynamic-labs/DynamicAuth/commit/b9e9170dad1ac27a85a44a7177b82055ce0035cb))
80
+
81
+ ## [2.1.0-alpha.23](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.22...v2.1.0-alpha.23) (2024-05-23)
82
+
83
+
84
+ ### Features
85
+
86
+ * add authFailure and authInit events ([#5659](https://github.com/dynamic-labs/DynamicAuth/issues/5659)) ([f4f592a](https://github.com/dynamic-labs/DynamicAuth/commit/f4f592aaacd96fae9333b803c235c5f1fea0e20e))
87
+ * prompt mfa on signup and signin ([#5599](https://github.com/dynamic-labs/DynamicAuth/issues/5599)) ([8d4ecf4](https://github.com/dynamic-labs/DynamicAuth/commit/8d4ecf4c69c59c1fb14e79511fb2f9b33a7e3d89))
88
+
89
+
90
+ ### Bug Fixes
91
+
92
+ * close auth modal if create embedded wallet throws ([#5683](https://github.com/dynamic-labs/DynamicAuth/issues/5683)) ([5331d73](https://github.com/dynamic-labs/DynamicAuth/commit/5331d731a171bb52a598eb5b25f7ba80cef7a64c))
93
+ * prevent state update when the webview is unmounted ([#5688](https://github.com/dynamic-labs/DynamicAuth/issues/5688)) ([8e4ecbd](https://github.com/dynamic-labs/DynamicAuth/commit/8e4ecbdcdb5f48c57ecaad90d663c66529013192))
94
+ * show phone number in use error message ([#5681](https://github.com/dynamic-labs/DynamicAuth/issues/5681)) ([e62f7b7](https://github.com/dynamic-labs/DynamicAuth/commit/e62f7b7b6a5e217944346faf2410028433cecad4))
95
+
96
+ ## [2.1.0-alpha.22](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.21...v2.1.0-alpha.22) (2024-05-21)
97
+
98
+ ## [2.1.0-alpha.21](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.20...v2.1.0-alpha.21) (2024-05-21)
99
+
100
+ ## [2.1.0-alpha.20](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.19...v2.1.0-alpha.20) (2024-05-21)
101
+
102
+
103
+ ### Features
104
+
105
+ * adds client.networks module ([#5650](https://github.com/dynamic-labs/DynamicAuth/issues/5650)) ([70f7fe5](https://github.com/dynamic-labs/DynamicAuth/commit/70f7fe5f437756c51e787ac12183be0a23c51b89))
106
+ * user fields supports custom fields ([#5639](https://github.com/dynamic-labs/DynamicAuth/issues/5639)) ([8eb5788](https://github.com/dynamic-labs/DynamicAuth/commit/8eb5788fc3e1286929f5949ecb57736b21b13fb5))
107
+
108
+
109
+ ### Bug Fixes
110
+
111
+ * add webcredentials to expo ([#5640](https://github.com/dynamic-labs/DynamicAuth/issues/5640)) ([9026fbf](https://github.com/dynamic-labs/DynamicAuth/commit/9026fbf0108537e884588f3adcdb9f0db04a159b))
112
+ * init ethers web3provider without a network if selected network is unsupported ([#5651](https://github.com/dynamic-labs/DynamicAuth/issues/5651)) ([e82040f](https://github.com/dynamic-labs/DynamicAuth/commit/e82040f424b17a70fac4400ab5b85a0dc6c0e35a))
113
+
114
+ ## [2.1.0-alpha.19](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.18...v2.1.0-alpha.19) (2024-05-17)
115
+
116
+
117
+ ### Features
118
+
119
+ * add createUserProfileFromSDKUser ([#5596](https://github.com/dynamic-labs/DynamicAuth/issues/5596)) ([d37a1b4](https://github.com/dynamic-labs/DynamicAuth/commit/d37a1b4119f5ff4fff1e987d157f6d5abf105a8b))
120
+ * add headless social sign-in ([#5439](https://github.com/dynamic-labs/DynamicAuth/issues/5439)) ([e32fdf8](https://github.com/dynamic-labs/DynamicAuth/commit/e32fdf863718d661b90b592c8df734e92386ddf3))
121
+ * fetch custom fields in profile and update user ([#5627](https://github.com/dynamic-labs/DynamicAuth/issues/5627)) ([3940c25](https://github.com/dynamic-labs/DynamicAuth/commit/3940c2542bb330f3ed9a8eb98eed9d05c8fcb03a))
122
+
123
+
124
+ ### Bug Fixes
125
+
126
+ * include applinks details to AASA ([#5635](https://github.com/dynamic-labs/DynamicAuth/issues/5635)) ([ce94fec](https://github.com/dynamic-labs/DynamicAuth/commit/ce94fec80adbb3eb4efcb79d1aa2cc6eb35eab6f))
127
+ * include the appOrigin to every api call to create correct passkey ([#5636](https://github.com/dynamic-labs/DynamicAuth/issues/5636)) ([ee64df3](https://github.com/dynamic-labs/DynamicAuth/commit/ee64df3b90037bd29cca161e601973ef202c58f0))
128
+ * use PromptModal when using the DynamicMultiWalletPromptsWidget for pending connection views ([#5594](https://github.com/dynamic-labs/DynamicAuth/issues/5594)) ([c095b6e](https://github.com/dynamic-labs/DynamicAuth/commit/c095b6e4c974f02cfe632963be92d16bb201dfa5))
129
+
130
+ ## [2.1.0-alpha.18](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.17...v2.1.0-alpha.18) (2024-05-15)
131
+
132
+ ## [2.1.0-alpha.17](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.16...v2.1.0-alpha.17) (2024-05-15)
133
+
134
+
135
+ ### Features
136
+
137
+ * add coinbaseWalletPreference prop ([#5607](https://github.com/dynamic-labs/DynamicAuth/issues/5607)) ([1ac3b2c](https://github.com/dynamic-labs/DynamicAuth/commit/1ac3b2ce7abb136465f4aa88b045dfb70d99aad7))
138
+
139
+ ## [2.1.0-alpha.16](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.15...v2.1.0-alpha.16) (2024-05-14)
140
+
141
+
142
+ ### Features
143
+
144
+ * add client.sdk.error with errors from the webview ([#5520](https://github.com/dynamic-labs/DynamicAuth/issues/5520)) ([a886927](https://github.com/dynamic-labs/DynamicAuth/commit/a8869273bf361c870d6e3cb82a28d9ccec65905b))
145
+ * add setDefaultTabIndex to default the selected wallets tab ([#5593](https://github.com/dynamic-labs/DynamicAuth/issues/5593)) ([6e8ce05](https://github.com/dynamic-labs/DynamicAuth/commit/6e8ce053c4f6f009acc57dac55a8e9c74fbcc73b))
146
+ * add visibility/auth-flow/user-profile to react-native ([#5564](https://github.com/dynamic-labs/DynamicAuth/issues/5564)) ([d93cea8](https://github.com/dynamic-labs/DynamicAuth/commit/d93cea82a123c6ec4d3d594a7dc064f4db2981c2))
147
+
148
+ ## [2.1.0-alpha.15](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.14...v2.1.0-alpha.15) (2024-05-13)
149
+
150
+
151
+ ### Bug Fixes
152
+
153
+ * when a pregen is created, primaryWallet is not being setup ([#5584](https://github.com/dynamic-labs/DynamicAuth/issues/5584)) ([de08721](https://github.com/dynamic-labs/DynamicAuth/commit/de0872151e09f91dcbfaf1d043cf830f9df8d799))
154
+
155
+ ## [2.1.0-alpha.14](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.13...v2.1.0-alpha.14) (2024-05-09)
156
+
157
+
158
+ ### Features
159
+
160
+ * add useSwitchWallet ([#5575](https://github.com/dynamic-labs/DynamicAuth/issues/5575)) ([d3053d9](https://github.com/dynamic-labs/DynamicAuth/commit/d3053d920110c26ef8052e77bf59e07dedc7c683))
161
+
162
+
163
+ ### Bug Fixes
164
+
165
+ * linking phantom wallets in mobile ([#5524](https://github.com/dynamic-labs/DynamicAuth/issues/5524)) ([28d90f5](https://github.com/dynamic-labs/DynamicAuth/commit/28d90f5126b9c22535b63a3797cc060ef089fc63))
166
+ * only show farcaster QR code if Social Login is enabled ([#5559](https://github.com/dynamic-labs/DynamicAuth/issues/5559)) ([fa71aaf](https://github.com/dynamic-labs/DynamicAuth/commit/fa71aaf0f80da31d397600b2fd0cbea99b3689a4))
167
+ * remove goerli testnets and add sepolia ([#5565](https://github.com/dynamic-labs/DynamicAuth/issues/5565)) ([888eb03](https://github.com/dynamic-labs/DynamicAuth/commit/888eb031ef6f4dbbdc3015265cce8647d2c720b0))
168
+
169
+ ## [2.1.0-alpha.13](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.12...v2.1.0-alpha.13) (2024-05-03)
170
+
171
+
172
+ ### Bug Fixes
173
+
174
+ * ensure Farcaster QR uses useSocialAuth hook ([#5550](https://github.com/dynamic-labs/DynamicAuth/issues/5550)) ([57fcd97](https://github.com/dynamic-labs/DynamicAuth/commit/57fcd97c44e3f52065dcf856acf7bca7b24fabc7))
175
+
176
+ ## [2.1.0-alpha.12](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.11...v2.1.0-alpha.12) (2024-05-02)
177
+
178
+
179
+ ### Features
180
+
181
+ * display Farcaster QR code when it is the only login option ([#5514](https://github.com/dynamic-labs/DynamicAuth/issues/5514)) ([7b166d9](https://github.com/dynamic-labs/DynamicAuth/commit/7b166d9a30c581746f0e2edb71c44fc015dc128e))
182
+
183
+ ## [2.1.0-alpha.11](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.10...v2.1.0-alpha.11) (2024-05-02)
184
+
185
+
186
+ ### Features
187
+
188
+ * **GVTY-1050:** add account token balances hook ([#5521](https://github.com/dynamic-labs/DynamicAuth/issues/5521)) ([5a6f937](https://github.com/dynamic-labs/DynamicAuth/commit/5a6f93733019f3b8d5c7a2c7a5537172a1e7eba4))
189
+ * headless reveal embedded wallet key ([#5518](https://github.com/dynamic-labs/DynamicAuth/issues/5518)) ([77c1536](https://github.com/dynamic-labs/DynamicAuth/commit/77c15360b2b28c52cbdeafb3ce8ca7e80dbecf57))
190
+
191
+
192
+ ### Bug Fixes
193
+
194
+ * fallback to walletconnect for zerion on mobile ([#5536](https://github.com/dynamic-labs/DynamicAuth/issues/5536)) ([f0e5bfe](https://github.com/dynamic-labs/DynamicAuth/commit/f0e5bfea0b2ab271fd4c1475c8ce708ecb1a5926))
195
+
196
+ ## [2.1.0-alpha.10](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.9...v2.1.0-alpha.10) (2024-04-30)
197
+
198
+
199
+ ### Features
200
+
201
+ * bump @coinbase/wallet-sdk to latest beta ([#5388](https://github.com/dynamic-labs/DynamicAuth/issues/5388)) ([9225546](https://github.com/dynamic-labs/DynamicAuth/commit/922554630ccf2ef98bc297521309918f922bc671))
202
+
203
+ ## [2.1.0-alpha.9](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.8...v2.1.0-alpha.9) (2024-04-30)
204
+
205
+
206
+ ### Features
207
+
208
+ * headless create embedded wallet with optional passkey data parameter ([#5487](https://github.com/dynamic-labs/DynamicAuth/issues/5487)) ([891c3d7](https://github.com/dynamic-labs/DynamicAuth/commit/891c3d77a02a019140bcb8dd03b62b1afd69710e))
209
+
210
+ ## [2.1.0-alpha.8](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.7...v2.1.0-alpha.8) (2024-04-26)
211
+
212
+
213
+ ### Bug Fixes
214
+
215
+ * display wallet tabs when linking a wallet ([#5491](https://github.com/dynamic-labs/DynamicAuth/issues/5491)) ([10fd6b4](https://github.com/dynamic-labs/DynamicAuth/commit/10fd6b4d9aec7596338c50e17f79f6be534cf2c1))
216
+ * ensure zerodev viem client handles eth_accounts call ([#5477](https://github.com/dynamic-labs/DynamicAuth/issues/5477)) ([1132e1e](https://github.com/dynamic-labs/DynamicAuth/commit/1132e1e8655b58e81cb56789453ba56a059f52ec))
217
+ * network with keplr ([#5485](https://github.com/dynamic-labs/DynamicAuth/issues/5485)) ([b86f2fc](https://github.com/dynamic-labs/DynamicAuth/commit/b86f2fce491f9752e80a86643916da9ac7fb9276))
218
+ * refetch nameservice data and display properly ([#5476](https://github.com/dynamic-labs/DynamicAuth/issues/5476)) ([2aee798](https://github.com/dynamic-labs/DynamicAuth/commit/2aee798846f69496201bec7aa52e7ec1f370b7c3))
219
+ * use embeddedWallet create response authToken in embeddedWalletCreated ([#5478](https://github.com/dynamic-labs/DynamicAuth/issues/5478)) ([51772da](https://github.com/dynamic-labs/DynamicAuth/commit/51772daf557a72984c757efd8301e2b510dc37f1))
220
+
221
+ ## [2.1.0-alpha.7](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.6...v2.1.0-alpha.7) (2024-04-25)
222
+
223
+
224
+ ### Bug Fixes
225
+
226
+ * restore embedded wallet session iframe element conflict ([#5474](https://github.com/dynamic-labs/DynamicAuth/issues/5474)) ([c157477](https://github.com/dynamic-labs/DynamicAuth/commit/c157477ea126b3130b13b711796bdd06215e7af1))
227
+
228
+ ## [2.1.0-alpha.6](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.5...v2.1.0-alpha.6) (2024-04-24)
229
+
230
+
231
+ ### Bug Fixes
232
+
233
+ * embedded wallets headless session control fixes ([#5469](https://github.com/dynamic-labs/DynamicAuth/issues/5469)) ([92e6c35](https://github.com/dynamic-labs/DynamicAuth/commit/92e6c359d2710fd4f5f5a6fedc4acf6c4bab78ba))
234
+
235
+ ## [2.1.0-alpha.5](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.4...v2.1.0-alpha.5) (2024-04-23)
236
+
237
+
238
+ ### Bug Fixes
239
+
240
+ * get embedded wallet checking the wrong chain enum ([#5458](https://github.com/dynamic-labs/DynamicAuth/issues/5458)) ([ed1c523](https://github.com/dynamic-labs/DynamicAuth/commit/ed1c523ca14cd4d21c00181ab40802f876c02b80))
241
+
242
+ ## [2.1.0-alpha.4](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.3...v2.1.0-alpha.4) (2024-04-23)
243
+
244
+
245
+ ### Features
246
+
247
+ * add email and sms to client auth module ([#5436](https://github.com/dynamic-labs/DynamicAuth/issues/5436)) ([5420476](https://github.com/dynamic-labs/DynamicAuth/commit/5420476d1ba38fd4f987f28e9aefbfb3e61ea2bf))
248
+ * headless create passkeys for embedded wallets ([#5395](https://github.com/dynamic-labs/DynamicAuth/issues/5395)) ([0b64099](https://github.com/dynamic-labs/DynamicAuth/commit/0b6409968457f65886248f0a0879e39ec3803fd0))
249
+
250
+
251
+ ### Bug Fixes
252
+
253
+ * prevent wagmi from reconnect when DynamicContextProvider rerender ([#5446](https://github.com/dynamic-labs/DynamicAuth/issues/5446)) ([33337af](https://github.com/dynamic-labs/DynamicAuth/commit/33337af76786963cb3db7fa7c58c1292c529d0ac))
254
+
2
255
  ## [2.1.0-alpha.3](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.2...v2.1.0-alpha.3) (2024-04-23)
3
256
 
4
257
 
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@dynamic-labs/bitcoin",
3
- "version": "2.1.0-alpha.3",
3
+ "version": "2.1.0-alpha.30",
4
4
  "repository": {
5
5
  "type": "git",
6
- "url": "https://github.com/dynamic-labs/DynamicAuth.git",
6
+ "url": "git+https://github.com/dynamic-labs/dynamic-auth.git",
7
7
  "directory": "packages/bitcoin"
8
8
  },
9
9
  "description": "A React SDK for implementing wallet web3 authentication and authorization to your website.",
@@ -27,14 +27,14 @@
27
27
  },
28
28
  "dependencies": {
29
29
  "@btckit/types": "0.0.19",
30
- "@dynamic-labs/sdk-api-core": "0.0.425",
30
+ "@dynamic-labs/sdk-api-core": "0.0.453",
31
31
  "@wallet-standard/app": "1.0.1",
32
32
  "@wallet-standard/base": "1.0.1",
33
33
  "bitcoinjs-lib": "6.1.5",
34
34
  "sats-connect": "2.0.0",
35
- "@dynamic-labs/utils": "2.1.0-alpha.3",
36
- "@dynamic-labs/wallet-book": "2.1.0-alpha.3",
37
- "@dynamic-labs/wallet-connector-core": "2.1.0-alpha.3",
35
+ "@dynamic-labs/utils": "2.1.0-alpha.30",
36
+ "@dynamic-labs/wallet-book": "2.1.0-alpha.30",
37
+ "@dynamic-labs/wallet-connector-core": "2.1.0-alpha.30",
38
38
  "stream": "0.0.2"
39
39
  },
40
40
  "peerDependencies": {}
@@ -51,6 +51,15 @@ class BitcoinProviderHelper {
51
51
  findWallet() {
52
52
  return this.bitcoinWalletStandardLookup();
53
53
  }
54
+ getWalletMethods(wallet) {
55
+ var _a, _b, _c, _d;
56
+ return {
57
+ connect: (_a = wallet.features['bitcoin:connect']) === null || _a === void 0 ? void 0 : _a.connect,
58
+ signAndSendTransaction: (_b = wallet.features['bitcoin:signAndSendTransaction']) === null || _b === void 0 ? void 0 : _b.signAndSendTransaction,
59
+ signMessage: (_c = wallet.features['bitcoin:signMessage']) === null || _c === void 0 ? void 0 : _c.signMessage,
60
+ signTransaction: (_d = wallet.features['bitcoin:signTransaction']) === null || _d === void 0 ? void 0 : _d.signTransaction,
61
+ };
62
+ }
54
63
  }
55
64
 
56
65
  exports.BitcoinProviderHelper = BitcoinProviderHelper;
@@ -1,5 +1,6 @@
1
1
  import type { Wallet } from '@wallet-standard/base';
2
2
  import { WalletSchema } from '@dynamic-labs/wallet-book';
3
+ import { BitcoinWalletStandardMethods } from './types';
3
4
  export declare class BitcoinProviderHelper {
4
5
  private walletData;
5
6
  constructor(walletData: WalletSchema);
@@ -20,4 +21,5 @@ export declare class BitcoinProviderHelper {
20
21
  hasAllRequiredFeatures(wallet: Wallet): boolean;
21
22
  bitcoinWalletStandardLookup(): Wallet | undefined;
22
23
  findWallet(): Wallet | undefined;
24
+ getWalletMethods(wallet: Wallet): BitcoinWalletStandardMethods;
23
25
  }
@@ -47,6 +47,15 @@ class BitcoinProviderHelper {
47
47
  findWallet() {
48
48
  return this.bitcoinWalletStandardLookup();
49
49
  }
50
+ getWalletMethods(wallet) {
51
+ var _a, _b, _c, _d;
52
+ return {
53
+ connect: (_a = wallet.features['bitcoin:connect']) === null || _a === void 0 ? void 0 : _a.connect,
54
+ signAndSendTransaction: (_b = wallet.features['bitcoin:signAndSendTransaction']) === null || _b === void 0 ? void 0 : _b.signAndSendTransaction,
55
+ signMessage: (_c = wallet.features['bitcoin:signMessage']) === null || _c === void 0 ? void 0 : _c.signMessage,
56
+ signTransaction: (_d = wallet.features['bitcoin:signTransaction']) === null || _d === void 0 ? void 0 : _d.signTransaction,
57
+ };
58
+ }
50
59
  }
51
60
 
52
61
  export { BitcoinProviderHelper };
@@ -3,13 +3,13 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var _tslib = require('../_virtual/_tslib.cjs');
6
+ var _tslib = require('../../../_virtual/_tslib.cjs');
7
7
  var satsConnect = require('sats-connect');
8
8
  var bitcoinjsLib = require('bitcoinjs-lib');
9
9
  var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
10
- var BitcoinWalletConnector = require('./BitcoinWalletConnector.cjs');
11
- var validatePsbt = require('./utils/psbt/validator/validatePsbt.cjs');
12
- var bitcoinNetworkTypeToNetworks = require('./utils/psbt/bitcoinNetworkTypeToNetworks.cjs');
10
+ var BitcoinWalletConnector = require('../BitcoinWalletConnector.cjs');
11
+ var validatePsbt = require('../../utils/psbt/validator/validatePsbt.cjs');
12
+ var bitcoinNetworkTypeToNetworks = require('../../utils/psbt/bitcoinNetworkTypeToNetworks.cjs');
13
13
 
14
14
  class BitcoinBtcKitConnector extends BitcoinWalletConnector.BitcoinWalletConnector {
15
15
  constructor(opts, btcKit) {
@@ -1,7 +1,7 @@
1
1
  import type { BtcKitListenFn, BtcKitRequestFn } from '@btckit/types';
2
2
  import { BitcoinNetworkType } from 'sats-connect';
3
- import { BitcoinWalletConnector, BitcoinWalletConnectorOpts } from './BitcoinWalletConnector';
4
- import { BitcoinTransaction, BitcoinSignPsbtRequest, BitcoinSignPsbtResponse } from './types';
3
+ import { BitcoinWalletConnector, BitcoinWalletConnectorOpts } from '../BitcoinWalletConnector';
4
+ import { BitcoinTransaction, BitcoinSignPsbtRequest, BitcoinSignPsbtResponse } from '../../types';
5
5
  export type BtcKitProvider = {
6
6
  request: BtcKitRequestFn;
7
7
  listen: BtcKitListenFn;
@@ -1,11 +1,11 @@
1
1
  'use client'
2
- import { __awaiter } from '../_virtual/_tslib.js';
2
+ import { __awaiter } from '../../../_virtual/_tslib.js';
3
3
  import { BitcoinNetworkType } from 'sats-connect';
4
4
  import { Psbt } from 'bitcoinjs-lib';
5
5
  import { logger } from '@dynamic-labs/wallet-connector-core';
6
- import { BitcoinWalletConnector } from './BitcoinWalletConnector.js';
7
- import { validatePsbt } from './utils/psbt/validator/validatePsbt.js';
8
- import { convertNetworkTypeForPsbt } from './utils/psbt/bitcoinNetworkTypeToNetworks.js';
6
+ import { BitcoinWalletConnector } from '../BitcoinWalletConnector.js';
7
+ import { validatePsbt } from '../../utils/psbt/validator/validatePsbt.js';
8
+ import { convertNetworkTypeForPsbt } from '../../utils/psbt/bitcoinNetworkTypeToNetworks.js';
9
9
 
10
10
  class BitcoinBtcKitConnector extends BitcoinWalletConnector {
11
11
  constructor(opts, btcKit) {
@@ -0,0 +1,2 @@
1
+ export { BitcoinBtcKitConnector } from './BitcoinBtcKitConnector';
2
+ export type { BtcKitProvider } from './BitcoinBtcKitConnector';
@@ -3,22 +3,26 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var _tslib = require('../_virtual/_tslib.cjs');
6
+ var _tslib = require('../../../_virtual/_tslib.cjs');
7
7
  var satsConnect = require('sats-connect');
8
8
  var bitcoinjsLib = require('bitcoinjs-lib');
9
- var BitcoinWalletConnector = require('./BitcoinWalletConnector.cjs');
10
- var _const = require('./const.cjs');
9
+ var BitcoinWalletConnector = require('../BitcoinWalletConnector.cjs');
10
+ var _const = require('../../const.cjs');
11
11
  require('@dynamic-labs/utils');
12
12
  require('@dynamic-labs/wallet-connector-core');
13
- var validatePsbt = require('./utils/psbt/validator/validatePsbt.cjs');
14
- var getSigHashType = require('./utils/psbt/getSigHashType.cjs');
15
- var bitcoinNetworkTypeToNetworks = require('./utils/psbt/bitcoinNetworkTypeToNetworks.cjs');
16
- var supportsSatsConnect = require('./utils/supportsSatsConnect.cjs');
13
+ var validatePsbt = require('../../utils/psbt/validator/validatePsbt.cjs');
14
+ var getSigHashType = require('../../utils/psbt/getSigHashType.cjs');
15
+ var bitcoinNetworkTypeToNetworks = require('../../utils/psbt/bitcoinNetworkTypeToNetworks.cjs');
16
+ var supportsSatsConnect = require('../../utils/supportsSatsConnect.cjs');
17
17
 
18
18
  class BitcoinSatsConnectConnector extends BitcoinWalletConnector.BitcoinWalletConnector {
19
19
  constructor(opts) {
20
20
  super(opts);
21
21
  this.currentNetwork = satsConnect.BitcoinNetworkType.Mainnet;
22
+ this.canFetchConnectedAccounts = true;
23
+ // xverse does't support fetching connected accounts without prompting
24
+ // for a connection, so we handle getConnectedAccounts differently
25
+ this.canFetchConnectedAccounts = this.key !== 'xverse';
22
26
  }
23
27
  getAddress() {
24
28
  return _tslib.__awaiter(this, void 0, void 0, function* () {
@@ -30,10 +34,6 @@ class BitcoinSatsConnectConnector extends BitcoinWalletConnector.BitcoinWalletCo
30
34
  if (!supportsSatsConnect.supportsSatsConnect(this)) {
31
35
  return;
32
36
  }
33
- const [connectedAccount] = yield this.getConnectedAccounts();
34
- if (connectedAccount) {
35
- return connectedAccount;
36
- }
37
37
  return new Promise((resolve, reject) => {
38
38
  satsConnect.getAddress({
39
39
  getProvider: () => _tslib.__awaiter(this, void 0, void 0, function* () {
@@ -1,8 +1,9 @@
1
1
  import { BitcoinNetworkType, SignTransactionResponse } from 'sats-connect';
2
- import { BitcoinWalletConnector, BitcoinWalletConnectorOpts } from './BitcoinWalletConnector';
3
- import { BitcoinTransaction, SatsConnectSignTransactionInput, BitcoinSignPsbtRequest, BitcoinSignPsbtResponse } from './types';
2
+ import { BitcoinWalletConnector, BitcoinWalletConnectorOpts } from '../BitcoinWalletConnector';
3
+ import { BitcoinTransaction, SatsConnectSignTransactionInput, BitcoinSignPsbtRequest, BitcoinSignPsbtResponse } from '../../types';
4
4
  export declare abstract class BitcoinSatsConnectConnector extends BitcoinWalletConnector {
5
5
  currentNetwork: BitcoinNetworkType;
6
+ canFetchConnectedAccounts: boolean;
6
7
  constructor(opts: BitcoinWalletConnectorOpts);
7
8
  getAddress(): Promise<string | undefined>;
8
9
  signMessage(messageToSign: string): Promise<string | undefined>;
@@ -1,20 +1,24 @@
1
1
  'use client'
2
- import { __awaiter } from '../_virtual/_tslib.js';
2
+ import { __awaiter } from '../../../_virtual/_tslib.js';
3
3
  import { BitcoinNetworkType, getAddress, AddressPurpose, signMessage, sendBtcTransaction, signTransaction } from 'sats-connect';
4
4
  import { Psbt } from 'bitcoinjs-lib';
5
- import { BitcoinWalletConnector } from './BitcoinWalletConnector.js';
6
- import { SATSCONNECT_FEATURE } from './const.js';
5
+ import { BitcoinWalletConnector } from '../BitcoinWalletConnector.js';
6
+ import { SATSCONNECT_FEATURE } from '../../const.js';
7
7
  import '@dynamic-labs/utils';
8
8
  import '@dynamic-labs/wallet-connector-core';
9
- import { validatePsbt } from './utils/psbt/validator/validatePsbt.js';
10
- import { getSigHashType } from './utils/psbt/getSigHashType.js';
11
- import { convertNetworkTypeForPsbt } from './utils/psbt/bitcoinNetworkTypeToNetworks.js';
12
- import { supportsSatsConnect } from './utils/supportsSatsConnect.js';
9
+ import { validatePsbt } from '../../utils/psbt/validator/validatePsbt.js';
10
+ import { getSigHashType } from '../../utils/psbt/getSigHashType.js';
11
+ import { convertNetworkTypeForPsbt } from '../../utils/psbt/bitcoinNetworkTypeToNetworks.js';
12
+ import { supportsSatsConnect } from '../../utils/supportsSatsConnect.js';
13
13
 
14
14
  class BitcoinSatsConnectConnector extends BitcoinWalletConnector {
15
15
  constructor(opts) {
16
16
  super(opts);
17
17
  this.currentNetwork = BitcoinNetworkType.Mainnet;
18
+ this.canFetchConnectedAccounts = true;
19
+ // xverse does't support fetching connected accounts without prompting
20
+ // for a connection, so we handle getConnectedAccounts differently
21
+ this.canFetchConnectedAccounts = this.key !== 'xverse';
18
22
  }
19
23
  getAddress() {
20
24
  return __awaiter(this, void 0, void 0, function* () {
@@ -26,10 +30,6 @@ class BitcoinSatsConnectConnector extends BitcoinWalletConnector {
26
30
  if (!supportsSatsConnect(this)) {
27
31
  return;
28
32
  }
29
- const [connectedAccount] = yield this.getConnectedAccounts();
30
- if (connectedAccount) {
31
- return connectedAccount;
32
- }
33
33
  return new Promise((resolve, reject) => {
34
34
  getAddress({
35
35
  getProvider: () => __awaiter(this, void 0, void 0, function* () {
@@ -0,0 +1 @@
1
+ export { BitcoinSatsConnectConnector } from './BitcoinSatsConnectConnector';
@@ -3,15 +3,16 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var _tslib = require('../_virtual/_tslib.cjs');
6
+ var _tslib = require('../../_virtual/_tslib.cjs');
7
7
  var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
8
8
  var walletBook = require('@dynamic-labs/wallet-book');
9
9
  var utils = require('@dynamic-labs/utils');
10
10
  var sdkApiCore = require('@dynamic-labs/sdk-api-core');
11
- var bitcoinProviderHelper = require('./bitcoinProviderHelper.cjs');
12
- var BitcoinLocalStorageCache = require('./BitcoinLocalStorageCache.cjs');
13
- var getMempoolApiUrl = require('./utils/getMempoolApiUrl.cjs');
14
- var _const = require('./const.cjs');
11
+ var BitcoinLocalStorageCache = require('../BitcoinLocalStorageCache.cjs');
12
+ var bitcoinProviderHelper = require('../bitcoinProviderHelper.cjs');
13
+ var getMempoolApiUrl = require('../utils/getMempoolApiUrl.cjs');
14
+ var _const = require('../const.cjs');
15
+ var satoshisToBtc = require('../utils/satoshisToBtc/satoshisToBtc.cjs');
15
16
 
16
17
  class BitcoinWalletConnector extends walletConnectorCore.WalletConnectorBase {
17
18
  constructor(opts) {
@@ -27,6 +28,9 @@ class BitcoinWalletConnector extends walletConnectorCore.WalletConnectorBase {
27
28
  this.overrideKey = (_a = opts.overrideKey) !== null && _a !== void 0 ? _a : this.key;
28
29
  this.bitcoinProviderHelper = new bitcoinProviderHelper.BitcoinProviderHelper(opts.walletData || walletBook.getWalletBookWallet(this.walletBook, this.key));
29
30
  this.wallet = this.bitcoinProviderHelper.findWallet();
31
+ if (this.wallet) {
32
+ this.walletMethods = this.bitcoinProviderHelper.getWalletMethods(this.wallet);
33
+ }
30
34
  this.cache = new BitcoinLocalStorageCache.BitcoinLocalStorageCache(this.overrideKey);
31
35
  }
32
36
  canConnectWithHardwareWallet() {
@@ -76,12 +80,14 @@ class BitcoinWalletConnector extends walletConnectorCore.WalletConnectorBase {
76
80
  return undefined;
77
81
  }
78
82
  const addressInfo = yield response.json();
79
- if (!(addressInfo === null || addressInfo === void 0 ? void 0 : addressInfo.chain_stats)) {
83
+ if (!(addressInfo === null || addressInfo === void 0 ? void 0 : addressInfo.chain_stats) || !(addressInfo === null || addressInfo === void 0 ? void 0 : addressInfo.mempool_stats)) {
80
84
  return undefined;
81
85
  }
82
- const balance = (Number(addressInfo.chain_stats.funded_txo_sum) -
83
- Number(addressInfo.chain_stats.spent_txo_sum)) /
84
- 100000000;
86
+ const confirmedBalanceInSats = Number(addressInfo.chain_stats.funded_txo_sum) -
87
+ Number(addressInfo.chain_stats.spent_txo_sum);
88
+ const unconfirmedBalanceInSats = Number(addressInfo.mempool_stats.funded_txo_sum) -
89
+ Number(addressInfo.mempool_stats.spent_txo_sum);
90
+ const balance = satoshisToBtc.satoshisToBtc(confirmedBalanceInSats + unconfirmedBalanceInSats);
85
91
  yield this.cache.setLastBalance(balance.toString());
86
92
  return balance.toString();
87
93
  });
@@ -104,14 +110,31 @@ class BitcoinWalletConnector extends walletConnectorCore.WalletConnectorBase {
104
110
  }
105
111
  getConnectedAccounts() {
106
112
  return _tslib.__awaiter(this, void 0, void 0, function* () {
113
+ // some wallets like xverse don't support fetching connected accounts
114
+ // without prompting for a connection
115
+ // to avoid this behavior, we cache the connected accounts
107
116
  if (!this.canFetchConnectedAccounts) {
108
117
  return this.getConnectedAccountsFromCache();
109
118
  }
110
- const connectedAccounts = yield this.getAddress();
111
- if (!connectedAccounts) {
119
+ // if we decide that is ok to prompt for a connection when fetching connected accounts
120
+ // we shouldn't prompt every time we call this method (which is a lot of times)
121
+ // so we just store in a promise and return the same promise every time
122
+ if (!this.getAddressPromise) {
123
+ this.getAddressPromise = this.getAddress();
124
+ }
125
+ let connectedAccount;
126
+ try {
127
+ connectedAccount = yield this.getAddressPromise;
128
+ }
129
+ catch (error) {
130
+ walletConnectorCore.logger.error(`${this.key} getConnectedAccounts - error fetching connected account`);
131
+ //don't throw error just return empty array after clearing the promise
132
+ }
133
+ this.getAddressPromise = undefined;
134
+ if (!connectedAccount) {
112
135
  return [];
113
136
  }
114
- return [connectedAccounts];
137
+ return [connectedAccount];
115
138
  });
116
139
  }
117
140
  getAdditionalAddresses(mainAddress) {
@@ -194,7 +217,23 @@ class BitcoinWalletConnector extends walletConnectorCore.WalletConnectorBase {
194
217
  return;
195
218
  }
196
219
  const { handleAccountChange, handleChainChange, handleDisconnect } = walletConnectorCore.eventListenerHandlers(this);
197
- provider.on('accountsChanged', handleAccountChange);
220
+ const handleBitcoinAccountChange = (accounts) => _tslib.__awaiter(this, void 0, void 0, function* () {
221
+ let connectedAccounts = accounts;
222
+ // if accounts is an array of objects, we need to parse them to return only addresses
223
+ // since ordinals is the main address we use, we should return it as the first address
224
+ if (typeof accounts[0] === 'object') {
225
+ connectedAccounts = accounts
226
+ .sort((account) => (account.purpose === 'ordinals' ? -1 : 1))
227
+ .map((account) => account.address);
228
+ }
229
+ const currentConnectedAccounts = yield this.getConnectedAccountsFromCache();
230
+ // don't do anything if the connected accounts haven't changed
231
+ if (currentConnectedAccounts[0] === connectedAccounts[0]) {
232
+ return;
233
+ }
234
+ handleAccountChange(connectedAccounts);
235
+ });
236
+ provider.on('accountsChanged', handleBitcoinAccountChange);
198
237
  provider.on('networkChanged', handleChainChange);
199
238
  provider.on('disconnect', handleDisconnect);
200
239
  const tearDownEventListeners = () => {
@@ -202,7 +241,7 @@ class BitcoinWalletConnector extends walletConnectorCore.WalletConnectorBase {
202
241
  if (!(provider === null || provider === void 0 ? void 0 : provider.removeListener)) {
203
242
  return;
204
243
  }
205
- provider.removeListener('accountsChanged', handleAccountChange);
244
+ provider.removeListener('accountsChanged', handleBitcoinAccountChange);
206
245
  provider.removeListener('networkChanged', handleChainChange);
207
246
  provider.removeListener('disconnect', handleDisconnect);
208
247
  };