@exodus/bitcoin-api 4.1.6 → 4.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,26 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [4.2.1](https://github.com/ExodusMovement/assets/compare/@exodus/bitcoin-api@4.2.0...@exodus/bitcoin-api@4.2.1) (2025-11-03)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+
12
+ * fix: unbreak bitcoin send (#6838)
13
+
14
+
15
+
16
+ ## [4.2.0](https://github.com/ExodusMovement/assets/compare/@exodus/bitcoin-api@4.1.6...@exodus/bitcoin-api@4.2.0) (2025-11-03)
17
+
18
+
19
+ ### Features
20
+
21
+
22
+ * feat: support legacy chain index needed by desktop only (#6630)
23
+
24
+
25
+
6
26
  ## [4.1.6](https://github.com/ExodusMovement/assets/compare/@exodus/bitcoin-api@4.1.5...@exodus/bitcoin-api@4.1.6) (2025-10-16)
7
27
 
8
28
  **Note:** Version bump only for package @exodus/bitcoin-api
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@exodus/bitcoin-api",
3
- "version": "4.1.6",
3
+ "version": "4.2.1",
4
4
  "description": "Bitcoin transaction and fee monitors, RPC with the blockchain node, other networking code.",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
@@ -60,5 +60,5 @@
60
60
  "type": "git",
61
61
  "url": "git+https://github.com/ExodusMovement/assets.git"
62
62
  },
63
- "gitHead": "f193d5effadc719b3fb4ba7d32fc46c0979f258a"
63
+ "gitHead": "5fd21b2ea1793b7ad1550a6143bfdce28fdb0a96"
64
64
  }
@@ -286,12 +286,7 @@ async function createUnsignedTx({
286
286
  }
287
287
 
288
288
  const getTxHandler = (type) => {
289
- switch (type) {
290
- case 'transfer':
291
- return transferHandler
292
- default:
293
- throw new Error(`Unknown transaction type: ${type}`)
294
- }
289
+ return transferHandler
295
290
  }
296
291
 
297
292
  const transferHandler = {
@@ -25,6 +25,8 @@ export class BitcoinMonitorScanner {
25
25
  #yieldToUI
26
26
  #ordinalsEnabled
27
27
  #ordinalChainIndex
28
+ #extraChainIndexEnabled
29
+ #extraChainIndex
28
30
  #gapLimit
29
31
  #refreshGapLimit
30
32
  constructor({
@@ -36,6 +38,8 @@ export class BitcoinMonitorScanner {
36
38
  txFetchLimitResolver = ({ refresh }) => (refresh ? 50 : 10),
37
39
  ordinalsEnabled,
38
40
  ordinalChainIndex,
41
+ extraChainIndexEnabled,
42
+ extraChainIndex,
39
43
  gapLimit = 10,
40
44
  refreshGapLimit = 10,
41
45
  }) {
@@ -55,6 +59,8 @@ export class BitcoinMonitorScanner {
55
59
  this.#shouldExcludeVoutUtxo = shouldExcludeVoutUtxo
56
60
  this.#ordinalsEnabled = ordinalsEnabled
57
61
  this.#ordinalChainIndex = ordinalChainIndex
62
+ this.#extraChainIndexEnabled = extraChainIndexEnabled
63
+ this.#extraChainIndex = extraChainIndex
58
64
  this.#gapLimit = gapLimit
59
65
  this.#refreshGapLimit = refreshGapLimit
60
66
  }
@@ -314,6 +320,22 @@ export class BitcoinMonitorScanner {
314
320
  })
315
321
  }
316
322
 
323
+ if (
324
+ fetchCount === 0 &&
325
+ this.#extraChainIndexEnabled &&
326
+ this.#extraChainIndex &&
327
+ this.#extraChainIndex > 1 &&
328
+ purposes.includes(44)
329
+ ) {
330
+ // this is for the legacy special chain index
331
+ chainObjects.push({
332
+ purpose: 44,
333
+ chainIndex: this.#extraChainIndex,
334
+ startAddressIndex: 0,
335
+ endAddressIndex: 0,
336
+ })
337
+ }
338
+
317
339
  const addresses = await aggregateAddresses(chainObjects)
318
340
 
319
341
  if (fetchCount === 0) {
@@ -83,7 +83,7 @@ export const getCreateBatchTransaction = ({
83
83
  assetClientInterface.getAddress(addressOpts),
84
84
  assetClientInterface.getExtendedPublicKey(addressOpts),
85
85
  ])
86
- assert(String(address) === String(utxo.address))
86
+ assert(String(address) === String(utxo.address), 'address mismatch')
87
87
 
88
88
  const hdkey = BIP32.fromXPub(xpub)
89
89
  const masterFingerprint = Buffer.alloc(4)