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

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 (50) hide show
  1. package/CHANGELOG.md +263 -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/createSignPsbtOptions.cjs +8 -6
  43. package/src/utils/psbt/createSignPsbtOptions.js +8 -6
  44. package/src/utils/psbt/index.d.ts +1 -0
  45. package/src/utils/psbt/sighashNumberToString.d.ts +2 -0
  46. package/src/utils/satoshisToBtc/index.d.ts +1 -0
  47. package/src/utils/satoshisToBtc/satoshisToBtc.cjs +8 -0
  48. package/src/utils/satoshisToBtc/satoshisToBtc.d.ts +1 -0
  49. package/src/utils/satoshisToBtc/satoshisToBtc.js +4 -0
  50. package/src/utils/supportsSatsConnect.d.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -1,4 +1,267 @@
1
1
 
2
+ ## [2.1.0-alpha.31](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.30...v2.1.0-alpha.31) (2024-05-31)
3
+
4
+
5
+ ### Bug Fixes
6
+
7
+ * export solana private keys in the correct format ([#5809](https://github.com/dynamic-labs/DynamicAuth/issues/5809)) ([08ac1f8](https://github.com/dynamic-labs/DynamicAuth/commit/08ac1f87bb02ad07fd1fc1f544fdcc64ebe635b8))
8
+ * magiceden evm network switching ([#5800](https://github.com/dynamic-labs/DynamicAuth/issues/5800)) ([9b86797](https://github.com/dynamic-labs/DynamicAuth/commit/9b8679735f3db4b33bb57409c3a69adf2beb82aa))
9
+ * pass all signing inputs to createPsbtOptions ([#5798](https://github.com/dynamic-labs/DynamicAuth/issues/5798)) ([628ad4f](https://github.com/dynamic-labs/DynamicAuth/commit/628ad4f8c161496a0610ecbc3052735f8ceae98d))
10
+ * trigger onboarding async ([#5805](https://github.com/dynamic-labs/DynamicAuth/issues/5805)) ([2c1f98c](https://github.com/dynamic-labs/DynamicAuth/commit/2c1f98c0d91422f75e2d6d32ea4a27c2bc8d8376))
11
+
12
+ ## [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)
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * 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))
18
+ * initExpirationTime should use expiresAt from storage ([#5799](https://github.com/dynamic-labs/DynamicAuth/issues/5799)) ([384ed17](https://github.com/dynamic-labs/DynamicAuth/commit/384ed1747d9b813ac0d34aaee36eb6480cb256d3))
19
+ * only run useValidateSession once on rerender ([#5795](https://github.com/dynamic-labs/DynamicAuth/issues/5795)) ([ba4446d](https://github.com/dynamic-labs/DynamicAuth/commit/ba4446df95726248b877a84def959cabe81ad9b6))
20
+ * 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))
21
+
22
+ ## [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)
23
+
24
+
25
+ ### Features
26
+
27
+ * 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))
28
+ * add support for phantom btc ([#5717](https://github.com/dynamic-labs/DynamicAuth/issues/5717)) ([c61ca4f](https://github.com/dynamic-labs/DynamicAuth/commit/c61ca4f437796be2b420902de7e7de730725d122))
29
+
30
+
31
+ ### Bug Fixes
32
+
33
+ * add phantom btc mobile redirect ([#5789](https://github.com/dynamic-labs/DynamicAuth/issues/5789)) ([aaa2654](https://github.com/dynamic-labs/DynamicAuth/commit/aaa26548668b0733e7930c1d7f5cc3937b3dfb50))
34
+ * 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))
35
+ * 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))
36
+
37
+ ## [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)
38
+
39
+
40
+ ### Features
41
+
42
+ * adds solana standard wallet connector ([#5752](https://github.com/dynamic-labs/DynamicAuth/issues/5752)) ([0040940](https://github.com/dynamic-labs/DynamicAuth/commit/0040940fd1adb37ab3106bb0e4dfe79403bc41f2))
43
+
44
+
45
+ ### Bug Fixes
46
+
47
+ * farcaster fetch url fix ([#5767](https://github.com/dynamic-labs/DynamicAuth/issues/5767)) ([1408ba9](https://github.com/dynamic-labs/DynamicAuth/commit/1408ba92680363b9db7820a63d5e3d15dc26ad22))
48
+
49
+ ## [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)
50
+
51
+
52
+ ### Bug Fixes
53
+
54
+ * coinbase connection ([#5764](https://github.com/dynamic-labs/DynamicAuth/issues/5764)) ([aeacd1c](https://github.com/dynamic-labs/DynamicAuth/commit/aeacd1c55dc471fbf8c14eb05ab356b0a90aa239))
55
+
56
+ ## [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)
57
+
58
+
59
+ ### Features
60
+
61
+ * add farcaster login to react native ([#5713](https://github.com/dynamic-labs/DynamicAuth/issues/5713)) ([08f4473](https://github.com/dynamic-labs/DynamicAuth/commit/08f4473eec9b32b82b6f703fa4d5136514a61b25))
62
+
63
+
64
+ ### Bug Fixes
65
+
66
+ * 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))
67
+ * 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))
68
+
69
+ ## [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)
70
+
71
+
72
+ ### Bug Fixes
73
+
74
+ * btc balance calculation ([#5737](https://github.com/dynamic-labs/DynamicAuth/issues/5737)) ([9b5ceb3](https://github.com/dynamic-labs/DynamicAuth/commit/9b5ceb32d543037f60d7104f0b81b3abc86ebd10))
75
+
76
+ ## [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)
77
+
78
+
79
+ ### Features
80
+
81
+ * add onMfaCompleteOnce to useMfa ([#5702](https://github.com/dynamic-labs/DynamicAuth/issues/5702)) ([6451e33](https://github.com/dynamic-labs/DynamicAuth/commit/6451e3369ef1b4ba116378f0dd3fe4e82007e670))
82
+ * prompt custom fields during onboarding ([#5302](https://github.com/dynamic-labs/DynamicAuth/issues/5302)) ([8664223](https://github.com/dynamic-labs/DynamicAuth/commit/86642232cf2b490a820169f48ba8dc093010e1a0))
83
+
84
+
85
+ ### Bug Fixes
86
+
87
+ * 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))
88
+ * pass captcha token for farcaster login ([#5706](https://github.com/dynamic-labs/DynamicAuth/issues/5706)) ([32bcb6e](https://github.com/dynamic-labs/DynamicAuth/commit/32bcb6e0e06c6e273c07f32893dfd550deeb6a19))
89
+ * 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))
90
+
91
+ ## [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)
92
+
93
+
94
+ ### Features
95
+
96
+ * add authFailure and authInit events ([#5659](https://github.com/dynamic-labs/DynamicAuth/issues/5659)) ([f4f592a](https://github.com/dynamic-labs/DynamicAuth/commit/f4f592aaacd96fae9333b803c235c5f1fea0e20e))
97
+ * prompt mfa on signup and signin ([#5599](https://github.com/dynamic-labs/DynamicAuth/issues/5599)) ([8d4ecf4](https://github.com/dynamic-labs/DynamicAuth/commit/8d4ecf4c69c59c1fb14e79511fb2f9b33a7e3d89))
98
+
99
+
100
+ ### Bug Fixes
101
+
102
+ * 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))
103
+ * 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))
104
+ * 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))
105
+
106
+ ## [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)
107
+
108
+ ## [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)
109
+
110
+ ## [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)
111
+
112
+
113
+ ### Features
114
+
115
+ * adds client.networks module ([#5650](https://github.com/dynamic-labs/DynamicAuth/issues/5650)) ([70f7fe5](https://github.com/dynamic-labs/DynamicAuth/commit/70f7fe5f437756c51e787ac12183be0a23c51b89))
116
+ * user fields supports custom fields ([#5639](https://github.com/dynamic-labs/DynamicAuth/issues/5639)) ([8eb5788](https://github.com/dynamic-labs/DynamicAuth/commit/8eb5788fc3e1286929f5949ecb57736b21b13fb5))
117
+
118
+
119
+ ### Bug Fixes
120
+
121
+ * add webcredentials to expo ([#5640](https://github.com/dynamic-labs/DynamicAuth/issues/5640)) ([9026fbf](https://github.com/dynamic-labs/DynamicAuth/commit/9026fbf0108537e884588f3adcdb9f0db04a159b))
122
+ * 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))
123
+
124
+ ## [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)
125
+
126
+
127
+ ### Features
128
+
129
+ * add createUserProfileFromSDKUser ([#5596](https://github.com/dynamic-labs/DynamicAuth/issues/5596)) ([d37a1b4](https://github.com/dynamic-labs/DynamicAuth/commit/d37a1b4119f5ff4fff1e987d157f6d5abf105a8b))
130
+ * add headless social sign-in ([#5439](https://github.com/dynamic-labs/DynamicAuth/issues/5439)) ([e32fdf8](https://github.com/dynamic-labs/DynamicAuth/commit/e32fdf863718d661b90b592c8df734e92386ddf3))
131
+ * 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))
132
+
133
+
134
+ ### Bug Fixes
135
+
136
+ * include applinks details to AASA ([#5635](https://github.com/dynamic-labs/DynamicAuth/issues/5635)) ([ce94fec](https://github.com/dynamic-labs/DynamicAuth/commit/ce94fec80adbb3eb4efcb79d1aa2cc6eb35eab6f))
137
+ * 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))
138
+ * 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))
139
+
140
+ ## [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)
141
+
142
+ ## [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)
143
+
144
+
145
+ ### Features
146
+
147
+ * add coinbaseWalletPreference prop ([#5607](https://github.com/dynamic-labs/DynamicAuth/issues/5607)) ([1ac3b2c](https://github.com/dynamic-labs/DynamicAuth/commit/1ac3b2ce7abb136465f4aa88b045dfb70d99aad7))
148
+
149
+ ## [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)
150
+
151
+
152
+ ### Features
153
+
154
+ * 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))
155
+ * 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))
156
+ * 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))
157
+
158
+ ## [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)
159
+
160
+
161
+ ### Bug Fixes
162
+
163
+ * 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))
164
+
165
+ ## [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)
166
+
167
+
168
+ ### Features
169
+
170
+ * add useSwitchWallet ([#5575](https://github.com/dynamic-labs/DynamicAuth/issues/5575)) ([d3053d9](https://github.com/dynamic-labs/DynamicAuth/commit/d3053d920110c26ef8052e77bf59e07dedc7c683))
171
+
172
+
173
+ ### Bug Fixes
174
+
175
+ * linking phantom wallets in mobile ([#5524](https://github.com/dynamic-labs/DynamicAuth/issues/5524)) ([28d90f5](https://github.com/dynamic-labs/DynamicAuth/commit/28d90f5126b9c22535b63a3797cc060ef089fc63))
176
+ * 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))
177
+ * remove goerli testnets and add sepolia ([#5565](https://github.com/dynamic-labs/DynamicAuth/issues/5565)) ([888eb03](https://github.com/dynamic-labs/DynamicAuth/commit/888eb031ef6f4dbbdc3015265cce8647d2c720b0))
178
+
179
+ ## [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)
180
+
181
+
182
+ ### Bug Fixes
183
+
184
+ * ensure Farcaster QR uses useSocialAuth hook ([#5550](https://github.com/dynamic-labs/DynamicAuth/issues/5550)) ([57fcd97](https://github.com/dynamic-labs/DynamicAuth/commit/57fcd97c44e3f52065dcf856acf7bca7b24fabc7))
185
+
186
+ ## [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)
187
+
188
+
189
+ ### Features
190
+
191
+ * 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))
192
+
193
+ ## [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)
194
+
195
+
196
+ ### Features
197
+
198
+ * **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))
199
+ * headless reveal embedded wallet key ([#5518](https://github.com/dynamic-labs/DynamicAuth/issues/5518)) ([77c1536](https://github.com/dynamic-labs/DynamicAuth/commit/77c15360b2b28c52cbdeafb3ce8ca7e80dbecf57))
200
+
201
+
202
+ ### Bug Fixes
203
+
204
+ * 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))
205
+
206
+ ## [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)
207
+
208
+
209
+ ### Features
210
+
211
+ * 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))
212
+
213
+ ## [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)
214
+
215
+
216
+ ### Features
217
+
218
+ * 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))
219
+
220
+ ## [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)
221
+
222
+
223
+ ### Bug Fixes
224
+
225
+ * 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))
226
+ * 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))
227
+ * network with keplr ([#5485](https://github.com/dynamic-labs/DynamicAuth/issues/5485)) ([b86f2fc](https://github.com/dynamic-labs/DynamicAuth/commit/b86f2fce491f9752e80a86643916da9ac7fb9276))
228
+ * refetch nameservice data and display properly ([#5476](https://github.com/dynamic-labs/DynamicAuth/issues/5476)) ([2aee798](https://github.com/dynamic-labs/DynamicAuth/commit/2aee798846f69496201bec7aa52e7ec1f370b7c3))
229
+ * 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))
230
+
231
+ ## [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)
232
+
233
+
234
+ ### Bug Fixes
235
+
236
+ * 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))
237
+
238
+ ## [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)
239
+
240
+
241
+ ### Bug Fixes
242
+
243
+ * embedded wallets headless session control fixes ([#5469](https://github.com/dynamic-labs/DynamicAuth/issues/5469)) ([92e6c35](https://github.com/dynamic-labs/DynamicAuth/commit/92e6c359d2710fd4f5f5a6fedc4acf6c4bab78ba))
244
+
245
+ ## [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)
246
+
247
+
248
+ ### Bug Fixes
249
+
250
+ * 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))
251
+
252
+ ## [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)
253
+
254
+
255
+ ### Features
256
+
257
+ * 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))
258
+ * headless create passkeys for embedded wallets ([#5395](https://github.com/dynamic-labs/DynamicAuth/issues/5395)) ([0b64099](https://github.com/dynamic-labs/DynamicAuth/commit/0b6409968457f65886248f0a0879e39ec3803fd0))
259
+
260
+
261
+ ### Bug Fixes
262
+
263
+ * 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))
264
+
2
265
  ## [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
266
 
4
267
 
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.31",
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.31",
36
+ "@dynamic-labs/wallet-book": "2.1.0-alpha.31",
37
+ "@dynamic-labs/wallet-connector-core": "2.1.0-alpha.31",
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
  };