@metamask-previews/bitcoin-wallet-snap 1.10.0-preview-bee05b0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,618 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [1.10.0]
11
+
12
+ ### Changed
13
+
14
+ - Modify balance/transaction events sending ([#577](https://github.com/MetaMask/snap-bitcoin-wallet/pull/577))
15
+ - Bump `@metamask/keyring-api` from `^21.1.0` to `^21.3.0` ([#574](https://github.com/MetaMask/snap-bitcoin-wallet/pull/574))
16
+ - Bump `@metamask/keyring-snap-sdk` from `^7.1.0` to `^7.1.1` ([#574](https://github.com/MetaMask/snap-bitcoin-wallet/pull/574))
17
+
18
+ ## [1.9.0]
19
+
20
+ ### Changed
21
+
22
+ - Add change utxo dropped when full swap use case ([#572](https://github.com/MetaMask/snap-bitcoin-wallet/pull/572))
23
+ - Update p2wsh, p2tr and p2sh dust minimum value ([#570](https://github.com/MetaMask/snap-bitcoin-wallet/pull/570))
24
+
25
+ ## [1.8.0]
26
+
27
+ ### Changed
28
+
29
+ - feat: Remove `onRPCRequest` ([#568](https://github.com/MetaMask/snap-bitcoin-wallet/pull/568))
30
+
31
+ ## [1.7.0]
32
+
33
+ ### Added
34
+
35
+ - Add `signRewardsMessage` method ([#566](https://github.com/MetaMask/snap-bitcoin-wallet/pull/566))
36
+
37
+ ## [1.6.0]
38
+
39
+ ### Changed
40
+
41
+ - Add `from` and `to` to confirmation ([#563](https://github.com/MetaMask/snap-bitcoin-wallet/pull/563))
42
+
43
+ ## [1.5.0]
44
+
45
+ ### Added
46
+
47
+ - Add perf tracing account creation ([#557](https://github.com/MetaMask/snap-bitcoin-wallet/pull/557))
48
+
49
+ ### Changed
50
+
51
+ - State `accounts` under encrypted state ([#560](https://github.com/MetaMask/snap-bitcoin-wallet/pull/560))
52
+
53
+ ## [1.4.5]
54
+
55
+ ### Added
56
+
57
+ - Add minimal amount validation ([#558](https://github.com/MetaMask/snap-bitcoin-wallet/pull/558))
58
+
59
+ ## [1.4.4]
60
+
61
+ ### Fixed
62
+
63
+ - Sync on setSelectedAccounts & fix network name format ([#554](https://github.com/MetaMask/snap-bitcoin-wallet/pull/554))
64
+
65
+ ## [1.4.3]
66
+
67
+ ### Fixed
68
+
69
+ - Fix fingerprint format (for BDK) ([#552](https://github.com/MetaMask/snap-bitcoin-wallet/pull/552))
70
+
71
+ ## [1.4.2]
72
+
73
+ ### Changed
74
+
75
+ - Bringing back `fullScan` on discovery and making `setSelectedAccount` run `fullScan` in the background ([#548](https://github.com/MetaMask/snap-bitcoin-wallet/pull/548))
76
+
77
+ ## [1.4.1]
78
+
79
+ ### Fixed
80
+
81
+ - Add defensive code for fetching prices ([#546](https://github.com/MetaMask/snap-bitcoin-wallet/pull/546))
82
+
83
+ ## [1.4.0]
84
+
85
+ ### Added
86
+
87
+ - Add support for `setSelectedAccounts` ([#543](https://github.com/MetaMask/snap-bitcoin-wallet/pull/543))
88
+ - Cache spot prices for consecutive calls ([#544](https://github.com/MetaMask/snap-bitcoin-wallet/pull/544))
89
+
90
+ ## [1.3.0]
91
+
92
+ ### Fixed
93
+
94
+ - Fix confirmSend UI modal ([#541](https://github.com/MetaMask/snap-bitcoin-wallet/pull/541))
95
+ - Remove account address snap tracking ([#539](https://github.com/MetaMask/snap-bitcoin-wallet/pull/539))
96
+ - Update locales ([#540](https://github.com/MetaMask/snap-bitcoin-wallet/pull/540))
97
+
98
+ ## [1.2.0]
99
+
100
+ ### Added
101
+
102
+ - Limit account creation & discovery to P2WPKH addresses ([#537](https://github.com/MetaMask/snap-bitcoin-wallet/pull/537))
103
+ - Implement confirm send UI ([#536](https://github.com/MetaMask/snap-bitcoin-wallet/pull/536))
104
+ - Add confirmSend for unified send flow ([#533](https://github.com/MetaMask/snap-bitcoin-wallet/pull/533))
105
+
106
+ ## [1.1.0]
107
+
108
+ ### Added
109
+
110
+ - onAmountInput and onAddressInput RPC methods ([#532](https://github.com/MetaMask/snap-bitcoin-wallet/pull/532))
111
+
112
+ ### Fixed
113
+
114
+ - Defensive code around snap_eventTrack ([#531](https://github.com/MetaMask/snap-bitcoin-wallet/pull/531))
115
+ - Error message on synchronization ([#529](https://github.com/MetaMask/snap-bitcoin-wallet/pull/529))
116
+
117
+ ## [1.0.0]
118
+
119
+ ### Added
120
+
121
+ - Background events executed only when client is active ([#524](https://github.com/MetaMask/snap-bitcoin-wallet/pull/524))
122
+ - Confirmation displayed on `signMessage` ([#523](https://github.com/MetaMask/snap-bitcoin-wallet/pull/523))
123
+ - OpenRPC for dApp connectivity ([#522](https://github.com/MetaMask/snap-bitcoin-wallet/pull/522))
124
+ - Sign message on `submitRequest` ([#521](https://github.com/MetaMask/snap-bitcoin-wallet/pull/521))
125
+ - UTXO management on `submitRequest` ([#520](https://github.com/MetaMask/snap-bitcoin-wallet/pull/520))
126
+ - Send transfer on `submitRequest` ([#519](https://github.com/MetaMask/snap-bitcoin-wallet/pull/519))
127
+ - PSBT management on `submitRequest` ([#514](https://github.com/MetaMask/snap-bitcoin-wallet/pull/514))
128
+
129
+ ### Changed
130
+
131
+ - Translations updated in all languages ([#525](https://github.com/MetaMask/snap-bitcoin-wallet/pull/525))
132
+
133
+ ### Fixed
134
+
135
+ - Translations aligned with locales ([#528](https://github.com/MetaMask/snap-bitcoin-wallet/pull/528))
136
+
137
+ ## [0.19.3]
138
+
139
+ ### Fixed
140
+
141
+ - Treat empty strings as unset in config ([#517](https://github.com/MetaMask/snap-bitcoin-wallet/pull/517))
142
+
143
+ ## [0.19.2]
144
+
145
+ ### Fixed
146
+
147
+ - Fix issue where DIN endpoints where not used in `v0.19.1`
148
+
149
+ ## [0.19.1]
150
+
151
+ ### Changed
152
+
153
+ - Use DIN endpoints for Bitcoin and Bitcoin Testnet (no PR, just a change in CI secrets)
154
+
155
+ ## [0.19.0]
156
+
157
+ ### Added
158
+
159
+ - PSBT transaction fee computation ([#507](https://github.com/MetaMask/snap-bitcoin-wallet/pull/507))
160
+ - Fill, sign and send PSBT functionality ([#504](https://github.com/MetaMask/snap-bitcoin-wallet/pull/504))
161
+ - OpenRPC documentation for onClientRequest ([#506](https://github.com/MetaMask/snap-bitcoin-wallet/pull/506))
162
+ - Event tracking verification for account synchronization ([#503](https://github.com/MetaMask/snap-bitcoin-wallet/pull/503))
163
+
164
+ ### Changed
165
+
166
+ - Complete documentation refactor ([#505](https://github.com/MetaMask/snap-bitcoin-wallet/pull/505))
167
+
168
+ ## [0.18.0]
169
+
170
+ ### Added
171
+
172
+ - Fine-grained error handling with tracking and translations ([#496](https://github.com/MetaMask/snap-bitcoin-wallet/pull/496), [#498](https://github.com/MetaMask/snap-bitcoin-wallet/pull/498))
173
+ - Track transaction events ([#495](https://github.com/MetaMask/snap-bitcoin-wallet/pull/495))
174
+ - Add account options in `KeyringAccount` ([#499](https://github.com/MetaMask/snap-bitcoin-wallet/pull/499))
175
+
176
+ ### Fixed
177
+
178
+ - Retry mechanism for Esplora indexer ([#500](https://github.com/MetaMask/snap-bitcoin-wallet/pull/500))
179
+
180
+ ## [0.17.0]
181
+
182
+ ### Changed
183
+
184
+ - Synchronize by default ([#492](https://github.com/MetaMask/snap-bitcoin-wallet/pull/492))
185
+
186
+ ### Fixed
187
+
188
+ - Synchronize accounts with no history ([#491](https://github.com/MetaMask/snap-bitcoin-wallet/pull/491))
189
+
190
+ ## [0.16.1]
191
+
192
+ ### Fixed
193
+
194
+ - Typo `onAssetsMarketData` ([#489](https://github.com/MetaMask/snap-bitcoin-wallet/pull/489))
195
+
196
+ ## [0.16.0]
197
+
198
+ ### Added
199
+
200
+ - Asset market data on new handler ([#486](https://github.com/MetaMask/snap-bitcoin-wallet/pull/486))
201
+ - Send flow error handling ([#482](https://github.com/MetaMask/snap-bitcoin-wallet/pull/482))
202
+ - Translations ([#483](https://github.com/MetaMask/snap-bitcoin-wallet/pull/483))
203
+
204
+ ### Changed
205
+
206
+ - Use event value on user input instead of fetching the form state ([#485](https://github.com/MetaMask/snap-bitcoin-wallet/pull/485))
207
+
208
+ ## [0.15.0]
209
+
210
+ ### Added
211
+
212
+ - Account index auto increment on creation ([#471](https://github.com/MetaMask/snap-bitcoin-wallet/pull/471))
213
+ - Account selector in send flow ([#479](https://github.com/MetaMask/snap-bitcoin-wallet/pull/479))
214
+ - Market data ([#478](https://github.com/MetaMask/snap-bitcoin-wallet/pull/478))
215
+ - Switch currencies in send flow ([#477](https://github.com/MetaMask/snap-bitcoin-wallet/pull/477))
216
+
217
+ ### Changed
218
+
219
+ - Align Send flow ([#472](https://github.com/MetaMask/snap-bitcoin-wallet/pull/472))
220
+
221
+ ### Fixed
222
+
223
+ - Entropy source as part of the `KeyringAccount` options ([#473](https://github.com/MetaMask/snap-bitcoin-wallet/pull/473))
224
+ - Delete account keeping residue in state ([#469](https://github.com/MetaMask/snap-bitcoin-wallet/pull/469))
225
+
226
+ ## [0.14.1]
227
+
228
+ ### Fixed
229
+
230
+ - Account name passthrough ([#466](https://github.com/MetaMask/snap-bitcoin-wallet/pull/466))
231
+ - Prevent account deletion key residues ([#466](https://github.com/MetaMask/snap-bitcoin-wallet/pull/466))
232
+
233
+ ## [0.14.0]
234
+
235
+ ### Added
236
+
237
+ - Discover accounts ([#464](https://github.com/MetaMask/snap-bitcoin-wallet/pull/464), [#460](https://github.com/MetaMask/snap-bitcoin-wallet/pull/460))
238
+ - Use address types from `keyring-api` ([#461](https://github.com/MetaMask/snap-bitcoin-wallet/pull/461))
239
+
240
+ ### Changed
241
+
242
+ - Development environment cleanup ([#459](https://github.com/MetaMask/snap-bitcoin-wallet/pull/459))
243
+ - Use `setState` and `getState` instead of `manageState` ([#463](https://github.com/MetaMask/snap-bitcoin-wallet/pull/463))
244
+
245
+ ## [0.13.0]
246
+
247
+ ### Added
248
+
249
+ - Multi account ([#457](https://github.com/MetaMask/snap-bitcoin-wallet/pull/457))
250
+ - Historical prices ([#456](https://github.com/MetaMask/snap-bitcoin-wallet/pull/456))
251
+
252
+ ## [0.12.1]
253
+
254
+ ### Added
255
+
256
+ - Add unconfirmed transactions to wallet history ([#453](https://github.com/MetaMask/snap-bitcoin-wallet/pull/453))
257
+
258
+ ### Changed
259
+
260
+ - Reduce bundle size ([#454](https://github.com/MetaMask/snap-bitcoin-wallet/pull/454))
261
+
262
+ ## [0.12.0]
263
+
264
+ ### Added
265
+
266
+ - Compress preinstalled Snap during build ([#451](https://github.com/MetaMask/snap-bitcoin-wallet/pull/451))
267
+
268
+ ### Changed
269
+
270
+ - Disable UTXO protection ([#445](https://github.com/MetaMask/snap-bitcoin-wallet/pull/445))
271
+ - Generate PSBT in send flow ([#448](https://github.com/MetaMask/snap-bitcoin-wallet/pull/448))
272
+
273
+ ### Removed
274
+
275
+ - Remove SimpleHash ([#447](https://github.com/MetaMask/snap-bitcoin-wallet/pull/447))
276
+
277
+ ## [0.11.0]
278
+
279
+ ### Added
280
+
281
+ - Support for `correlationId` and `entropySource` ([#443](https://github.com/MetaMask/snap-bitcoin-wallet/pull/443))
282
+
283
+ ### Changed
284
+
285
+ - Refactor error handling ([#442](https://github.com/MetaMask/snap-bitcoin-wallet/pull/442))
286
+ - Refactor locale ([#433](https://github.com/MetaMask/snap-bitcoin-wallet/pull/433))
287
+ - Refactor logger ([#437](https://github.com/MetaMask/snap-bitcoin-wallet/pull/437))
288
+ - Reduce bundle size ([#439](https://github.com/MetaMask/snap-bitcoin-wallet/pull/439))
289
+
290
+ ### Fixed
291
+
292
+ - Discard own outputs from send transactions ([#441](https://github.com/MetaMask/snap-bitcoin-wallet/pull/441))
293
+
294
+ ## [0.10.0]
295
+
296
+ ### Added
297
+
298
+ - List account transactions and assets ([#405](https://github.com/MetaMask/snap-bitcoin-wallet/pull/405), [#420](https://github.com/MetaMask/snap-bitcoin-wallet/pull/420), [#408](https://github.com/MetaMask/snap-bitcoin-wallet/pull/408), [#427](https://github.com/MetaMask/snap-bitcoin-wallet/pull/427))
299
+ - Refresh rates and fees in a background loop inside the Send Flow ([#419](https://github.com/MetaMask/snap-bitcoin-wallet/pull/419))
300
+ - On asset conversion handler ([#418](https://github.com/MetaMask/snap-bitcoin-wallet/pull/418))
301
+ - On asset lookup handler + emission of events on balance updates ([#416](https://github.com/MetaMask/snap-bitcoin-wallet/pull/416))
302
+ - Icons as base64 ([#422](https://github.com/MetaMask/snap-bitcoin-wallet/pull/422))
303
+ - Synchronize Bitcoin accounts in a cron job ([#407](https://github.com/MetaMask/snap-bitcoin-wallet/pull/407))
304
+ - Integration tests ([#382](https://github.com/MetaMask/snap-bitcoin-wallet/pull/382))
305
+ - Translations ([#403](https://github.com/MetaMask/snap-bitcoin-wallet/pull/403))
306
+
307
+ ### Changed
308
+
309
+ - Refactor core Bitcoin library to use the [`bitcoindevkit`](https://www.npmjs.com/package/bitcoindevkit), allowing synchronization of multiple addresses, support of multiple networks (`bitcoin`, `testnet`, `signet`, `regtest`) and address types (`p2pkh`, `p2sh`, `p2wsh`, `p2wpkh`, `p2tr`) ([#361](https://github.com/MetaMask/snap-bitcoin-wallet/pull/361), [#393](https://github.com/MetaMask/snap-bitcoin-wallet/pull/393), [#394](https://github.com/MetaMask/snap-bitcoin-wallet/pull/394), [#378](https://github.com/MetaMask/snap-bitcoin-wallet/pull/378), [#411](https://github.com/MetaMask/snap-bitcoin-wallet/pull/411), [#413](https://github.com/MetaMask/snap-bitcoin-wallet/pull/413), [#414](https://github.com/MetaMask/snap-bitcoin-wallet/pull/414))
310
+ - Upgrade yarn to v4 ([#389](https://github.com/MetaMask/snap-bitcoin-wallet/pull/389))
311
+
312
+ ### Removed
313
+
314
+ - Remove unused dependencies and codebase ([#417](https://github.com/MetaMask/snap-bitcoin-wallet/pull/417))
315
+
316
+ ### Fixed
317
+
318
+ - Typo in word "Ordinals" ([#402](https://github.com/MetaMask/snap-bitcoin-wallet/pull/402))
319
+
320
+ ## [0.9.0]
321
+
322
+ ### Added
323
+
324
+ - Add localized messages ([#348](https://github.com/MetaMask/snap-bitcoin-wallet/pull/348))
325
+ - Add basic Sats protection support ([#337](https://github.com/MetaMask/snap-bitcoin-wallet/pull/337)), ([#284](https://github.com/MetaMask/snap-bitcoin-wallet/pull/284)), ([#349](https://github.com/MetaMask/snap-bitcoin-wallet/pull/349))
326
+ - Using SimpleHash service.
327
+
328
+ ### Changed
329
+
330
+ - **BREAKING:** Provide scopes field to `KeyringAccount` during account creation ([#364](https://github.com/MetaMask/snap-bitcoin-wallet/pull/364))
331
+ - Bump `@metamask/keyring-api` from `^8.1.3` to `^13.0.0`.
332
+ - Compatible with `@metamask/eth-snap-keyring@^7.1.0`.
333
+ - Support for fee rate caching ([#358](https://github.com/MetaMask/snap-bitcoin-wallet/pull/358))
334
+ - Use Snap UI update context instead of persisting request ([#345](https://github.com/MetaMask/snap-bitcoin-wallet/pull/345))
335
+ - Making the Snap UI slighty more responsive and faster.
336
+ - Remove support of Blockchair service ([#298](https://github.com/MetaMask/snap-bitcoin-wallet/pull/298))
337
+
338
+ ### Fixed
339
+
340
+ - Various UI fixes ([#356](https://github.com/MetaMask/snap-bitcoin-wallet/pull/356)), ([#357](https://github.com/MetaMask/snap-bitcoin-wallet/pull/357)), ([#346](https://github.com/MetaMask/snap-bitcoin-wallet/pull/346)), ([#344](https://github.com/MetaMask/snap-bitcoin-wallet/pull/344)), ([#343](https://github.com/MetaMask/snap-bitcoin-wallet/pull/343))
341
+ - Allow send to happen even when rates are not available ([#350](https://github.com/MetaMask/snap-bitcoin-wallet/pull/350))
342
+
343
+ ## [0.8.2]
344
+
345
+ ### Fixed
346
+
347
+ - Remove `localhost` from permissions ([#324](https://github.com/MetaMask/snap-bitcoin-wallet/pull/324)), ([#322](https://github.com/MetaMask/snap-bitcoin-wallet/pull/322))
348
+
349
+ ## [0.8.1]
350
+
351
+ ### Fixed
352
+
353
+ - Use `hideSnapBranding` flag when building ([#312](https://github.com/MetaMask/snap-bitcoin-wallet/pull/312))
354
+
355
+ ## [0.8.0]
356
+
357
+ ### Added
358
+
359
+ - Add send flow UI ([#281](https://github.com/MetaMask/snap-bitcoin-wallet/pull/281)), ([#309](https://github.com/MetaMask/snap-bitcoin-wallet/pull/309)), ([#308](https://github.com/MetaMask/snap-bitcoin-wallet/pull/308)), ([#305](https://github.com/MetaMask/snap-bitcoin-wallet/pull/305)), ([#304](https://github.com/MetaMask/snap-bitcoin-wallet/pull/304)), ([#289](https://github.com/MetaMask/snap-bitcoin-wallet/pull/289))
360
+ - The send flow can be started using the `startSendTransactionFlow` internal method.
361
+ - The UI allows to send an amount to one recipient (according to its balance).
362
+ - There is a confirmation screen that summarize everything regarding the transaction (amount, recipient, fee estimation), once confirmed the transaction will be broadcasted to the blockchain.
363
+ - Calling the `sendBitcoin` account's method will trigger the confirmation screen too.
364
+
365
+ ### Changed
366
+
367
+ - **BREAKING:** Rename `btc_sendmany` method to `sendBitcoin` ([#303](https://github.com/MetaMask/snap-bitcoin-wallet/pull/303))
368
+ - The `comment` and `subtractFeeFrom` options have been removed too.
369
+ - **BREAKING:** Make transactions replaceable by default ([#297](https://github.com/MetaMask/snap-bitcoin-wallet/pull/297))
370
+ - Rename proposed name to "Bitcoin" (was "Bitcoin Manager") ([#283](https://github.com/MetaMask/snap-bitcoin-wallet/pull/283))
371
+ - Adds fee estimation fallback for `QuickNode` ([#269](https://github.com/MetaMask/snap-bitcoin-wallet/pull/269))
372
+ - In some cases, `QuickNode` may fail to process fee estimation. In such instances, we fall back on using fee information directly from the mempool.
373
+ - We also added a default minimum fee as the last resort in case everything else failed.
374
+
375
+ ## [0.7.0]
376
+
377
+ ### Changed
378
+
379
+ - Use `QuickNode` as the main provider ([#250](https://github.com/MetaMask/snap-bitcoin-wallet/pull/250))
380
+ - Workaround `QuickNode` fee estimation for testnet ([#267](https://github.com/MetaMask/snap-bitcoin-wallet/pull/267))
381
+ - We temporarily changed the confirmation target block to a higher block number to make sure the API is not failing with an error.
382
+
383
+ ### Fixed
384
+
385
+ - Fix fee estimation with `QuickNode` ([#266](https://github.com/MetaMask/snap-bitcoin-wallet/pull/266)), ([#261](https://github.com/MetaMask/snap-bitcoin-wallet/pull/261))
386
+ - Properly uses `kvB` instead of `vB`.
387
+ - Will **NOT** throw an error if the account has not enough UTXOs when estimating the fees.
388
+
389
+ ## [0.6.1]
390
+
391
+ ### Added
392
+
393
+ - Add `QuickNode` API client ([#247](https://github.com/MetaMask/snap-bitcoin-wallet/pull/247))
394
+ - This client is not yet used, we still use Blockchair provider for the moment.
395
+
396
+ ### Changed
397
+
398
+ - Bump `@metamask/keyring-api` from `^8.0.2` to `^8.1.3` ([#253](https://github.com/MetaMask/snap-bitcoin-wallet/pull/253))
399
+ - This version is now built slightly differently and is part of the [accounts monorepo](https://github.com/MetaMask/accounts).
400
+
401
+ ## [0.6.0]
402
+
403
+ ### Added
404
+
405
+ - Display an alert dialog when an error happens during `btc_sendmany` ([#236](https://github.com/MetaMask/snap-bitcoin-wallet/pull/236))
406
+
407
+ ### Changed
408
+
409
+ - Use similar shorten-address format than the extension ([#238](https://github.com/MetaMask/snap-bitcoin-wallet/pull/238))
410
+
411
+ ## [0.5.0]
412
+
413
+ ### Added
414
+
415
+ - Add `getMaxSpendableBalance` RPC endpoint ([#188](https://github.com/MetaMask/snap-bitcoin-wallet/pull/188))
416
+
417
+ ### Changed
418
+
419
+ - Improve keyring tests coverage ([#220](https://github.com/MetaMask/snap-bitcoin-wallet/pull/220))
420
+
421
+ ## [0.4.0]
422
+
423
+ ### Added
424
+
425
+ - Emit account suggested name when creating account ([#210](https://github.com/MetaMask/snap-bitcoin-wallet/pull/210))
426
+ - This name suggestion can then be used by the client to name the account accordingly.
427
+
428
+ ### Changed
429
+
430
+ - Audit 4.6: Pin Bitcoin and cryptographic dependencies ([#205](https://github.com/MetaMask/snap-bitcoin-wallet/pull/205))
431
+
432
+ ## [0.3.0]
433
+
434
+ ### Added
435
+
436
+ - Add `estimateFee` RPC endpoint ([#169](https://github.com/MetaMask/snap-bitcoin-wallet/pull/169))
437
+
438
+ ## [0.2.5]
439
+
440
+ ### Added
441
+
442
+ - Add reusable error types ([#185](https://github.com/MetaMask/snap-bitcoin-wallet/pull/185))
443
+
444
+ ### Changed
445
+
446
+ - Use custom `superstruct` validator for `AmountStruct` ([#184](https://github.com/MetaMask/snap-bitcoin-wallet/pull/184))
447
+
448
+ ### Fixed
449
+
450
+ - Fix overridden message in `MethodNotFoundError` ([#189](https://github.com/MetaMask/snap-bitcoin-wallet/pull/189))
451
+
452
+ ## [0.2.4]
453
+
454
+ ### Fixed
455
+
456
+ - Audit 4.5: Show origin on `btc_sendmany` confirmation dialog ([#152](https://github.com/MetaMask/snap-bitcoin-wallet/pull/152))
457
+ - Audit 4.7: Fix potential URL injections in Blockchair API calls ([#132](https://github.com/MetaMask/snap-bitcoin-wallet/pull/132))
458
+ - Audit 4.11: Remove code for creating unsupported P2SHP2WPKH account type ([#118](https://github.com/MetaMask/snap-bitcoin-wallet/pull/118))
459
+ - Audit 4.12: Derive accounts with different HD path by network ([#118](https://github.com/MetaMask/snap-bitcoin-wallet/pull/118))
460
+ - Audit 4.19: Implement keyring method `filterAccountChains` ([#122](https://github.com/MetaMask/snap-bitcoin-wallet/pull/122))
461
+
462
+ ## [0.2.3]
463
+
464
+ ### Changed
465
+
466
+ - Change Snap name to "Bitcoin Manager" ([#158](https://github.com/MetaMask/snap-bitcoin-wallet/pull/158))
467
+ - Change local dapp port ([#147](https://github.com/MetaMask/snap-bitcoin-wallet/pull/147))
468
+
469
+ ### Fixed
470
+
471
+ - Audit 4.2: Remove update account method ([#130](https://github.com/MetaMask/snap-bitcoin-wallet/pull/130))
472
+ - Audit 4.3: Restrict permissions for Portfolio origin ([#131](https://github.com/MetaMask/snap-bitcoin-wallet/pull/131))
473
+ - Audit 4.4: Restrict permissions for MetaMask origin ([#141](https://github.com/MetaMask/snap-bitcoin-wallet/pull/141))
474
+ - Audit 4.8: Ensure that `request.method` in submit request is part of `account.methods` ([#133](https://github.com/MetaMask/snap-bitcoin-wallet/pull/133))
475
+ - Audit 4.9: Validate non-hex string in `hexToBuffer` ([#134](https://github.com/MetaMask/snap-bitcoin-wallet/pull/134))
476
+ - Audit 4.13: Add a safeguard for change output ([#135](https://github.com/MetaMask/snap-bitcoin-wallet/pull/135))
477
+ - Audit 4.14: Rename `txHash` to `signedTransaction` ([#120](https://github.com/MetaMask/snap-bitcoin-wallet/pull/120))
478
+ - Audit 4.20: Validate `headLength` and `tailLength` in `replaceMiddleChar` ([#138](https://github.com/MetaMask/snap-bitcoin-wallet/pull/138))
479
+ - Audit 4.23: Disable logging for production builds ([#124](https://github.com/MetaMask/snap-bitcoin-wallet/pull/124))
480
+ - Audit 4.24: Remove temporary create account endpoint ([#115](https://github.com/MetaMask/snap-bitcoin-wallet/pull/115))
481
+
482
+ ## [0.2.2]
483
+
484
+ ### Changed
485
+
486
+ - Remove unused env var ([#148](https://github.com/MetaMask/snap-bitcoin-wallet/pull/148))
487
+
488
+ ### Fixed
489
+
490
+ - Emit event on account creation ([#153](https://github.com/MetaMask/snap-bitcoin-wallet/pull/153))
491
+
492
+ ## [0.2.1]
493
+
494
+ ### Fixed
495
+
496
+ - Remove duplicate validation when getting balances ([#137](https://github.com/MetaMask/snap-bitcoin-wallet/pull/137))
497
+
498
+ ## [0.2.0]
499
+
500
+ ### Added
501
+
502
+ - Add 'ramps-dev.portfolio.metamask.io' origin ([#144](https://github.com/MetaMask/snap-bitcoin-wallet/pull/144))
503
+ - Enable `getAccountBalances` method for Portfolio origins ([#126](https://github.com/MetaMask/snap-bitcoin-wallet/pull/126))
504
+ - Implement Keyring API `getAccountBalances` method ([#84](https://github.com/MetaMask/snap-bitcoin-wallet/pull/84))
505
+ - Implement Chain API `getTransactionStatus` method ([#85](https://github.com/MetaMask/snap-bitcoin-wallet/pull/85))
506
+
507
+ ### Changed
508
+
509
+ - Rename "Bitcoin Manager" to "Bitcoin Wallet" ([#142](https://github.com/MetaMask/snap-bitcoin-wallet/pull/142))
510
+ - Improve `btc_sendMany` implementation ([#97](https://github.com/MetaMask/snap-bitcoin-wallet/pull/97))
511
+ - Update `btc_sendMany` dialogs ([#83](https://github.com/MetaMask/snap-bitcoin-wallet/pull/83))
512
+
513
+ ## [0.1.2]
514
+
515
+ ### Changed
516
+
517
+ - fix: update change log format ([#76](https://github.com/MetaMask/bitcoin/pull/76))
518
+ - fix: update package.json ([#76](https://github.com/MetaMask/bitcoin/pull/74))
519
+
520
+ ## [0.1.1]
521
+
522
+ ### Added
523
+
524
+ - fix: update resp of chainService - boardcastTransaction ([#68](https://github.com/MetaMask/bitcoin/pull/68))
525
+ - feat: add auto install script ([#67](https://github.com/MetaMask/bitcoin/pull/67))
526
+ - feat: add while list domain ([#71](https://github.com/MetaMask/bitcoin/pull/71))
527
+ - chore: re structure ([#66](https://github.com/MetaMask/bitcoin/pull/66))
528
+ - fix: change to keyring state method get wallet ([#62](https://github.com/MetaMask/bitcoin/pull/62))
529
+ - feat: implement keyring api - btc_sendmany ([#65](https://github.com/MetaMask/bitcoin/pull/65))
530
+ - chore: update snap provider instance name ([#69](https://github.com/MetaMask/bitcoin/pull/69))
531
+ - build(deps-dev): bump @metamask/snaps-jest from 7.0.2 to 8.0.0 ([#50](https://github.com/MetaMask/bitcoin/pull/50))
532
+ - feat: add bufferToString method ([#61](https://github.com/MetaMask/bitcoin/pull/61))
533
+ - feat: add chain API - chain_broadcastTransaction ([#57](https://github.com/MetaMask/bitcoin/pull/57))
534
+ - chore: add unit test for get balances ([#58](https://github.com/MetaMask/bitcoin/pull/58))
535
+ - feat: add chain API - chain_getDataForTransaction ([#42](https://github.com/MetaMask/bitcoin/pull/42))
536
+ - feat: add chain API - chain_estimateFees ([#18](https://github.com/MetaMask/bitcoin/pull/18))
537
+ - feat: add keyring API - btc_sendmany skeleton ([#41](https://github.com/MetaMask/bitcoin/pull/41))
538
+ - fix: update btc asset ([#44](https://github.com/MetaMask/bitcoin/pull/44))
539
+ - feat: add ListAccountsButton card ([#43](https://github.com/MetaMask/bitcoin/pull/43))
540
+ - chore: move config to factory ([#35](https://github.com/MetaMask/bitcoin/pull/35))
541
+ - feat: add methods to support satoshi to btc, and btc to satoshi ([#34](https://github.com/MetaMask/bitcoin/pull/34))
542
+ - chore: add commit method in state management ([#32](https://github.com/MetaMask/bitcoin/pull/32))
543
+ - fix: restructure code ([#31](https://github.com/MetaMask/bitcoin/pull/31))
544
+ - fix: remove non ready code ([#30](https://github.com/MetaMask/bitcoin/pull/30))
545
+ - fix: fix snap publish package is not using builded snap config ([#29](https://github.com/MetaMask/bitcoin/pull/29))
546
+ - feat: add api key for blockchair ([#27](https://github.com/MetaMask/bitcoin/pull/27))
547
+ - chore: restructure the code repo to fit to chain api and keyring api structure ([#26](https://github.com/MetaMask/bitcoin/pull/26))
548
+ - fix: refine coding structure ([#25](https://github.com/MetaMask/bitcoin/pull/25))
549
+ - feat: support transactional state management ([#20](https://github.com/MetaMask/bitcoin/pull/20))
550
+ - feat: add permission validation ([#24](https://github.com/MetaMask/bitcoin/pull/24))
551
+ - fix: remove un use code in BaseSnapRpcHandler ([#19](https://github.com/MetaMask/bitcoin/pull/19))
552
+ - feat: add validation on api response ([#17](https://github.com/MetaMask/bitcoin/pull/17))
553
+ - feat: implement chain api - get balances ([#16](https://github.com/MetaMask/bitcoin/pull/16))
554
+ - feat: setup init cd to publish snap to npm public registry ([#15](https://github.com/MetaMask/bitcoin/pull/15))
555
+ - feat: implement chain api skeleton ([#14](https://github.com/MetaMask/bitcoin/pull/14))
556
+ - feat: emit keyring event before state store ([#13](https://github.com/MetaMask/bitcoin/pull/13))
557
+ - feat: implement keyring api ([#12](https://github.com/MetaMask/bitcoin/pull/12))
558
+ - feat: add blockchair ([#11](https://github.com/MetaMask/bitcoin/pull/11))
559
+ - chore: update keyring type and methods permission ([#10](https://github.com/MetaMask/bitcoin/pull/10))
560
+ - chore: update snap icon ([#9](https://github.com/MetaMask/bitcoin/pull/9))
561
+ - fix: the ci pipeline for metamask task issue ([#8](https://github.com/MetaMask/bitcoin/pull/8))
562
+ - build(deps): bump @metamask/keyring-api from 5.1.0 to 6.0.0 ([#6](https://github.com/MetaMask/bitcoin/pull/6))
563
+ - build(deps-dev): bump @metamask/snaps-jest from 6.0.2 to 7.0.2 ([#7](https://github.com/MetaMask/bitcoin/pull/7))
564
+ - feat: add snap unit test ([#1](https://github.com/MetaMask/bitcoin/pull/1))
565
+ - feat: add CI for lint and test ([#2](https://github.com/MetaMask/bitcoin/pull/2))
566
+ - feat: init commit
567
+
568
+ [Unreleased]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v1.10.0...HEAD
569
+ [1.10.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v1.9.0...v1.10.0
570
+ [1.9.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v1.8.0...v1.9.0
571
+ [1.8.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v1.7.0...v1.8.0
572
+ [1.7.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v1.6.0...v1.7.0
573
+ [1.6.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v1.5.0...v1.6.0
574
+ [1.5.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v1.4.5...v1.5.0
575
+ [1.4.5]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v1.4.4...v1.4.5
576
+ [1.4.4]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v1.4.3...v1.4.4
577
+ [1.4.3]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v1.4.2...v1.4.3
578
+ [1.4.2]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v1.4.1...v1.4.2
579
+ [1.4.1]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v1.4.0...v1.4.1
580
+ [1.4.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v1.3.0...v1.4.0
581
+ [1.3.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v1.2.0...v1.3.0
582
+ [1.2.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v1.1.0...v1.2.0
583
+ [1.1.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v1.0.0...v1.1.0
584
+ [1.0.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.19.3...v1.0.0
585
+ [0.19.3]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.19.2...v0.19.3
586
+ [0.19.2]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.19.1...v0.19.2
587
+ [0.19.1]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.19.0...v0.19.1
588
+ [0.19.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.18.0...v0.19.0
589
+ [0.18.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.17.0...v0.18.0
590
+ [0.17.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.16.1...v0.17.0
591
+ [0.16.1]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.16.0...v0.16.1
592
+ [0.16.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.15.0...v0.16.0
593
+ [0.15.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.14.1...v0.15.0
594
+ [0.14.1]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.14.0...v0.14.1
595
+ [0.14.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.13.0...v0.14.0
596
+ [0.13.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.12.1...v0.13.0
597
+ [0.12.1]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.12.0...v0.12.1
598
+ [0.12.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.11.0...v0.12.0
599
+ [0.11.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.10.0...v0.11.0
600
+ [0.10.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.9.0...v0.10.0
601
+ [0.9.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.8.2...v0.9.0
602
+ [0.8.2]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.8.1...v0.8.2
603
+ [0.8.1]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.8.0...v0.8.1
604
+ [0.8.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.7.0...v0.8.0
605
+ [0.7.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.6.1...v0.7.0
606
+ [0.6.1]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.6.0...v0.6.1
607
+ [0.6.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.5.0...v0.6.0
608
+ [0.5.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.4.0...v0.5.0
609
+ [0.4.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.3.0...v0.4.0
610
+ [0.3.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.2.5...v0.3.0
611
+ [0.2.5]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.2.4...v0.2.5
612
+ [0.2.4]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.2.3...v0.2.4
613
+ [0.2.3]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.2.2...v0.2.3
614
+ [0.2.2]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.2.1...v0.2.2
615
+ [0.2.1]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.2.0...v0.2.1
616
+ [0.2.0]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.1.2...v0.2.0
617
+ [0.1.2]: https://github.com/MetaMask/snap-bitcoin-wallet/compare/v0.1.1...v0.1.2
618
+ [0.1.1]: https://github.com/MetaMask/snap-bitcoin-wallet/releases/tag/v0.1.1
package/README.md ADDED
@@ -0,0 +1,35 @@
1
+ # Bitcoin Wallet Snap
2
+
3
+ This package contains the source code for the Bitcoin Wallet Snap - a MetaMask Snap that enables Bitcoin blockchain functionality directly within your MetaMask wallet. The Snap allows users to:
4
+
5
+ - Create and manage Bitcoin accounts accross all address types (p2pkh, p2sh, p2wpkh, p2tr)
6
+ - View BTC balances and history
7
+ - Sign transactions (PSBTs)
8
+ - Send and receive transactions
9
+ - Connect to Bitcoin dApps
10
+ - Support all networks (Bitcoin, Testnet3, Testnet4, Signet via Mutinynet and Regtest)
11
+
12
+ The Snap is built using the MetaMask Snaps SDK and integrates with [Bitcoindevkit](https://bitcoindevkit.org/). It follows best practices for security and provides a seamless user experience within the familiar MetaMask interface.
13
+
14
+ ![Snap UI](./docs/ui.png)
15
+
16
+ ## Running the snap locally
17
+
18
+ ```bash
19
+ yarn start
20
+ ```
21
+
22
+ > [!WARNING]
23
+ > When snap updates you will need to still reconnect from the dapp to see changes
24
+
25
+ ## Building
26
+
27
+ ```bash
28
+ yarn build:snap
29
+ ```
30
+
31
+ Further reading:
32
+
33
+ - [Development](../../docs/development.md)
34
+ - [Contributing](../../docs/contributing.md)
35
+ - [Releasing](../../docs/release.md)