brk-client 0.3.0-alpha.0 → 0.3.0-alpha.2

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 (2) hide show
  1. package/index.js +108 -87
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -60,6 +60,8 @@
60
60
  * @property {?boolean=} iswitness - Whether this is a witness address
61
61
  * @property {?number=} witnessVersion - Witness version (0 for P2WPKH/P2WSH, 1 for P2TR)
62
62
  * @property {?string=} witnessProgram - Witness program in hex
63
+ * @property {?number[]=} errorLocations - Error locations (empty array for most errors)
64
+ * @property {?string=} error - Error message for invalid addresses
63
65
  */
64
66
  /**
65
67
  * Unified index for any address type (funded or empty)
@@ -142,9 +144,10 @@
142
144
  * A single block fees data point.
143
145
  *
144
146
  * @typedef {Object} BlockFeesEntry
145
- * @property {Height} avgHeight
146
- * @property {Timestamp} timestamp
147
- * @property {Sats} avgFees
147
+ * @property {Height} avgHeight - Average block height in this window
148
+ * @property {Timestamp} timestamp - Unix timestamp at the window midpoint
149
+ * @property {Sats} avgFees - Average fees per block in this window (sats)
150
+ * @property {Dollars} uSD - BTC/USD price at this height
148
151
  */
149
152
  /**
150
153
  * Block hash
@@ -171,17 +174,16 @@
171
174
  * @typedef {Object} BlockInfo
172
175
  * @property {BlockHash} id - Block hash
173
176
  * @property {Height} height - Block height
174
- * @property {number} version - Block version, used for soft fork signaling
175
- * @property {BlockHash} previousblockhash - Previous block hash
176
- * @property {string} merkleRoot - Merkle root of the transaction tree
177
- * @property {number} time - Block timestamp as claimed by the miner (Unix time)
178
- * @property {number} bits - Compact target (bits)
179
- * @property {number} nonce - Nonce used to produce a valid block hash
177
+ * @property {number} version - Block version
180
178
  * @property {Timestamp} timestamp - Block timestamp (Unix time)
181
- * @property {number} txCount - Number of transactions in the block
179
+ * @property {number} txCount - Number of transactions
182
180
  * @property {number} size - Block size in bytes
183
181
  * @property {Weight} weight - Block weight in weight units
182
+ * @property {string} merkleRoot - Merkle root of the transaction tree
183
+ * @property {BlockHash} previousblockhash - Previous block hash
184
184
  * @property {Timestamp} mediantime - Median time of the last 11 blocks
185
+ * @property {number} nonce - Nonce
186
+ * @property {number} bits - Compact target (bits)
185
187
  * @property {number} difficulty - Block difficulty
186
188
  */
187
189
  /**
@@ -190,17 +192,16 @@
190
192
  * @typedef {Object} BlockInfoV1
191
193
  * @property {BlockHash} id - Block hash
192
194
  * @property {Height} height - Block height
193
- * @property {number} version - Block version, used for soft fork signaling
194
- * @property {BlockHash} previousblockhash - Previous block hash
195
- * @property {string} merkleRoot - Merkle root of the transaction tree
196
- * @property {number} time - Block timestamp as claimed by the miner (Unix time)
197
- * @property {number} bits - Compact target (bits)
198
- * @property {number} nonce - Nonce used to produce a valid block hash
195
+ * @property {number} version - Block version
199
196
  * @property {Timestamp} timestamp - Block timestamp (Unix time)
200
- * @property {number} txCount - Number of transactions in the block
197
+ * @property {number} txCount - Number of transactions
201
198
  * @property {number} size - Block size in bytes
202
199
  * @property {Weight} weight - Block weight in weight units
200
+ * @property {string} merkleRoot - Merkle root of the transaction tree
201
+ * @property {BlockHash} previousblockhash - Previous block hash
203
202
  * @property {Timestamp} mediantime - Median time of the last 11 blocks
203
+ * @property {number} nonce - Nonce
204
+ * @property {number} bits - Compact target (bits)
204
205
  * @property {number} difficulty - Block difficulty
205
206
  * @property {BlockExtras} extras - Extended block data
206
207
  */
@@ -211,29 +212,31 @@
211
212
  * @property {number} id - Unique pool identifier
212
213
  * @property {string} name - Pool name
213
214
  * @property {PoolSlug} slug - URL-friendly pool identifier
215
+ * @property {?string=} minerNames - Alternative miner names (if identified)
214
216
  */
215
217
  /**
216
218
  * A single block rewards data point.
217
219
  *
218
220
  * @typedef {Object} BlockRewardsEntry
219
- * @property {number} avgHeight
220
- * @property {number} timestamp
221
- * @property {number} avgRewards
221
+ * @property {Height} avgHeight - Average block height in this window
222
+ * @property {Timestamp} timestamp - Unix timestamp at the window midpoint
223
+ * @property {Sats} avgRewards - Average coinbase reward per block (subsidy + fees, sats)
224
+ * @property {Dollars} uSD - BTC/USD price at this height
222
225
  */
223
226
  /**
224
227
  * A single block size data point.
225
228
  *
226
229
  * @typedef {Object} BlockSizeEntry
227
- * @property {number} avgHeight
228
- * @property {number} timestamp
229
- * @property {number} avgSize
230
+ * @property {Height} avgHeight - Average block height in this window
231
+ * @property {Timestamp} timestamp - Unix timestamp at the window midpoint
232
+ * @property {number} avgSize - Rolling 24h median block size (bytes)
230
233
  */
231
234
  /**
232
235
  * Combined block sizes and weights response.
233
236
  *
234
237
  * @typedef {Object} BlockSizesWeights
235
- * @property {BlockSizeEntry[]} sizes
236
- * @property {BlockWeightEntry[]} weights
238
+ * @property {BlockSizeEntry[]} sizes - Block size data points
239
+ * @property {BlockWeightEntry[]} weights - Block weight data points
237
240
  */
238
241
  /**
239
242
  * Block status indicating whether block is in the best chain
@@ -241,7 +244,7 @@
241
244
  * @typedef {Object} BlockStatus
242
245
  * @property {boolean} inBestChain - Whether this block is in the best chain
243
246
  * @property {(Height|null)=} height - Block height (only if in best chain)
244
- * @property {(BlockHash|null)=} nextBest - Hash of the next block in the best chain (only if in best chain and not tip)
247
+ * @property {(BlockHash|null)=} nextBest - Hash of the next block in the best chain (null if tip)
245
248
  */
246
249
  /**
247
250
  * Block information returned for timestamp queries
@@ -255,9 +258,9 @@
255
258
  * A single block weight data point.
256
259
  *
257
260
  * @typedef {Object} BlockWeightEntry
258
- * @property {number} avgHeight
259
- * @property {number} timestamp
260
- * @property {number} avgWeight
261
+ * @property {Height} avgHeight - Average block height in this window
262
+ * @property {Timestamp} timestamp - Unix timestamp at the window midpoint
263
+ * @property {Weight} avgWeight - Rolling 24h median block weight (weight units)
261
264
  */
262
265
  /**
263
266
  * Unsigned cents (u64) - for values that should never be negative.
@@ -342,17 +345,20 @@
342
345
  * A transaction in a CPFP relationship
343
346
  *
344
347
  * @typedef {Object} CpfpEntry
345
- * @property {Txid} txid
346
- * @property {Weight} weight
347
- * @property {Sats} fee
348
+ * @property {Txid} txid - Transaction ID
349
+ * @property {Weight} weight - Transaction weight
350
+ * @property {Sats} fee - Transaction fee (sats)
348
351
  */
349
352
  /**
350
353
  * CPFP (Child Pays For Parent) information for a transaction
351
354
  *
352
355
  * @typedef {Object} CpfpInfo
353
- * @property {CpfpEntry[]} ancestors
354
- * @property {CpfpEntry[]} descendants
355
- * @property {FeeRate} effectiveFeePerVsize
356
+ * @property {CpfpEntry[]} ancestors - Ancestor transactions in the CPFP chain
357
+ * @property {(CpfpEntry|null)=} bestDescendant - Best (highest fee rate) descendant, if any
358
+ * @property {CpfpEntry[]} descendants - Descendant transactions in the CPFP chain
359
+ * @property {FeeRate} effectiveFeePerVsize - Effective fee rate considering CPFP relationships (sat/vB)
360
+ * @property {Sats} fee - Transaction fee (sats)
361
+ * @property {VSize} adjustedVsize - Adjusted virtual size (accounting for sigops)
356
362
  */
357
363
  /**
358
364
  * Data range with output format for API query parameters
@@ -386,32 +392,35 @@
386
392
  * @typedef {Object} DifficultyAdjustment
387
393
  * @property {number} progressPercent - Progress through current difficulty epoch (0-100%)
388
394
  * @property {number} difficultyChange - Estimated difficulty change at next retarget (%)
389
- * @property {number} estimatedRetargetDate - Estimated Unix timestamp of next retarget
395
+ * @property {number} estimatedRetargetDate - Estimated timestamp of next retarget (milliseconds)
390
396
  * @property {number} remainingBlocks - Blocks remaining until retarget
391
- * @property {number} remainingTime - Estimated seconds until retarget
397
+ * @property {number} remainingTime - Estimated time until retarget (milliseconds)
392
398
  * @property {number} previousRetarget - Previous difficulty adjustment (%)
399
+ * @property {Timestamp} previousTime - Timestamp of most recent retarget (seconds)
393
400
  * @property {Height} nextRetargetHeight - Height of next retarget
394
- * @property {number} timeAvg - Average block time in current epoch (seconds)
395
- * @property {number} adjustedTimeAvg - Time-adjusted average (accounting for timestamp manipulation)
401
+ * @property {number} timeAvg - Average block time in current epoch (milliseconds)
402
+ * @property {number} adjustedTimeAvg - Time-adjusted average (milliseconds)
396
403
  * @property {number} timeOffset - Time offset from expected schedule (seconds)
404
+ * @property {number} expectedBlocks - Expected blocks based on wall clock time since epoch start
397
405
  */
398
406
  /**
399
407
  * A single difficulty adjustment entry.
400
408
  * Serializes as array: [timestamp, height, difficulty, change_percent]
401
409
  *
402
410
  * @typedef {Object} DifficultyAdjustmentEntry
403
- * @property {Timestamp} timestamp
404
- * @property {Height} height
405
- * @property {number} difficulty
406
- * @property {number} changePercent
411
+ * @property {Timestamp} timestamp - Unix timestamp of the adjustment
412
+ * @property {Height} height - Block height of the adjustment
413
+ * @property {number} difficulty - Difficulty value
414
+ * @property {number} changePercent - Adjustment ratio (new/previous, e.g. 1.068 = +6.8%)
407
415
  */
408
416
  /**
409
- * A single difficulty data point.
417
+ * A single difficulty data point in the hashrate summary.
410
418
  *
411
419
  * @typedef {Object} DifficultyEntry
412
- * @property {Timestamp} timestamp - Unix timestamp of the difficulty adjustment.
413
- * @property {number} difficulty - Difficulty value.
414
- * @property {Height} height - Block height of the adjustment.
420
+ * @property {Timestamp} time - Unix timestamp of the difficulty adjustment
421
+ * @property {Height} height - Block height of the adjustment
422
+ * @property {number} difficulty - Difficulty value
423
+ * @property {number} adjustment - Adjustment ratio (new/previous, e.g. 1.068 = +6.8%)
415
424
  */
416
425
  /**
417
426
  * Disk usage of the indexed data
@@ -499,10 +508,10 @@
499
508
  * Server health status
500
509
  *
501
510
  * @typedef {Object} Health
502
- * @property {string} status
503
- * @property {string} service
504
- * @property {string} version
505
- * @property {string} timestamp
511
+ * @property {string} status - Health status ("healthy")
512
+ * @property {string} service - Service name
513
+ * @property {string} version - Server version
514
+ * @property {string} timestamp - Current server time (ISO 8601)
506
515
  * @property {string} startedAt - Server start time (ISO 8601)
507
516
  * @property {number} uptimeSeconds - Uptime in seconds
508
517
  * @property {Height} indexedHeight - Height of the last indexed block
@@ -530,15 +539,15 @@
530
539
  * Historical price response
531
540
  *
532
541
  * @typedef {Object} HistoricalPrice
533
- * @property {HistoricalPriceEntry[]} prices
534
- * @property {ExchangeRates} exchangeRates
542
+ * @property {HistoricalPriceEntry[]} prices - Price data points
543
+ * @property {ExchangeRates} exchangeRates - Exchange rates (currently empty)
535
544
  */
536
545
  /**
537
546
  * A single price data point
538
547
  *
539
548
  * @typedef {Object} HistoricalPriceEntry
540
- * @property {number} time
541
- * @property {Dollars} uSD
549
+ * @property {number} time - Unix timestamp
550
+ * @property {Dollars} uSD - BTC/USD price
542
551
  */
543
552
  /** @typedef {number} Hour1 */
544
553
  /** @typedef {number} Hour12 */
@@ -600,21 +609,21 @@
600
609
  * @property {{ [key: string]: VSize }} feeHistogram - Fee histogram: `[[fee_rate, vsize], ...]` sorted by descending fee rate
601
610
  */
602
611
  /**
603
- * Simplified mempool transaction for the recent transactions endpoint
612
+ * Simplified mempool transaction for the `/api/mempool/recent` endpoint.
604
613
  *
605
614
  * @typedef {Object} MempoolRecentTx
606
- * @property {Txid} txid
607
- * @property {Sats} fee
608
- * @property {VSize} vsize
609
- * @property {Sats} value
615
+ * @property {Txid} txid - Transaction ID
616
+ * @property {Sats} fee - Transaction fee (sats)
617
+ * @property {VSize} vsize - Virtual size (vbytes)
618
+ * @property {Sats} value - Total output value (sats)
610
619
  */
611
620
  /**
612
621
  * Merkle inclusion proof for a transaction
613
622
  *
614
623
  * @typedef {Object} MerkleProof
615
- * @property {Height} blockHeight
616
- * @property {string[]} merkle
617
- * @property {number} pos
624
+ * @property {Height} blockHeight - Block height containing the transaction
625
+ * @property {string[]} merkle - Merkle proof path (hex-encoded hashes)
626
+ * @property {number} pos - Transaction position in the block
618
627
  */
619
628
  /** @typedef {number} Minute10 */
620
629
  /** @typedef {number} Minute30 */
@@ -729,12 +738,13 @@
729
738
  * Pool information for detail view
730
739
  *
731
740
  * @typedef {Object} PoolDetailInfo
732
- * @property {number} id - Unique pool identifier
741
+ * @property {number} id - Pool identifier
733
742
  * @property {string} name - Pool name
734
743
  * @property {string} link - Pool website URL
735
- * @property {string[]} addrs - Known payout addresses
744
+ * @property {string[]} addresses - Known payout addresses
736
745
  * @property {string[]} regexes - Coinbase tag patterns (regexes)
737
746
  * @property {PoolSlug} slug - URL-friendly pool identifier
747
+ * @property {number} uniqueId - Unique pool identifier
738
748
  */
739
749
  /**
740
750
  * A single pool hashrate data point.
@@ -753,7 +763,7 @@
753
763
  * @property {PoolSlug} slug - URL-friendly pool identifier
754
764
  * @property {number} uniqueId - Unique numeric pool identifier
755
765
  */
756
- /** @typedef {("unknown"|"blockfills"|"ultimuspool"|"terrapool"|"luxor"|"onethash"|"btccom"|"bitfarms"|"huobipool"|"wayicn"|"canoepool"|"btctop"|"bitcoincom"|"pool175btc"|"gbminers"|"axbt"|"asicminer"|"bitminter"|"bitcoinrussia"|"btcserv"|"simplecoinus"|"btcguild"|"eligius"|"ozcoin"|"eclipsemc"|"maxbtc"|"triplemining"|"coinlab"|"pool50btc"|"ghashio"|"stminingcorp"|"bitparking"|"mmpool"|"polmine"|"kncminer"|"bitalo"|"f2pool"|"hhtt"|"megabigpower"|"mtred"|"nmcbit"|"yourbtcnet"|"givemecoins"|"braiinspool"|"antpool"|"multicoinco"|"bcpoolio"|"cointerra"|"kanopool"|"solock"|"ckpool"|"nicehash"|"bitclub"|"bitcoinaffiliatenetwork"|"btcc"|"bwpool"|"exxbw"|"bitsolo"|"bitfury"|"twentyoneinc"|"digitalbtc"|"eightbaochi"|"mybtccoinpool"|"tbdice"|"hashpool"|"nexious"|"bravomining"|"hotpool"|"okexpool"|"bcmonster"|"onehash"|"bixin"|"tatmaspool"|"viabtc"|"connectbtc"|"batpool"|"waterhole"|"dcexploration"|"dcex"|"btpool"|"fiftyeightcoin"|"bitcoinindia"|"shawnp0wers"|"phashio"|"rigpool"|"haozhuzhu"|"sevenpool"|"miningkings"|"hashbx"|"dpool"|"rawpool"|"haominer"|"helix"|"bitcoinukraine"|"poolin"|"secretsuperstar"|"tigerpoolnet"|"sigmapoolcom"|"okpooltop"|"hummerpool"|"tangpool"|"bytepool"|"spiderpool"|"novablock"|"miningcity"|"binancepool"|"minerium"|"lubiancom"|"okkong"|"aaopool"|"emcdpool"|"foundryusa"|"sbicrypto"|"arkpool"|"purebtccom"|"marapool"|"kucoinpool"|"entrustcharitypool"|"okminer"|"titan"|"pegapool"|"btcnuggets"|"cloudhashing"|"digitalxmintsy"|"telco214"|"btcpoolparty"|"multipool"|"transactioncoinmining"|"btcdig"|"trickysbtcpool"|"btcmp"|"eobot"|"unomp"|"patels"|"gogreenlight"|"bitcoinindiapool"|"ekanembtc"|"canoe"|"tiger"|"onem1x"|"zulupool"|"secpool"|"ocean"|"whitepool"|"wiz"|"wk057"|"futurebitapollosolo"|"carbonnegative"|"portlandhodl"|"phoenix"|"neopool"|"maxipool"|"bitfufupool"|"gdpool"|"miningdutch"|"publicpool"|"miningsquared"|"innopolistech"|"btclab"|"parasite"|"redrockpool"|"est3lar")} PoolSlug */
766
+ /** @typedef {("unknown"|"blockfills"|"ultimuspool"|"terrapool"|"luxor"|"onethash"|"btccom"|"bitfarms"|"huobipool"|"wayicn"|"canoepool"|"btctop"|"bitcoincom"|"pool175btc"|"gbminers"|"axbt"|"asicminer"|"bitminter"|"bitcoinrussia"|"btcserv"|"simplecoinus"|"btcguild"|"eligius"|"ozcoin"|"eclipsemc"|"maxbtc"|"triplemining"|"coinlab"|"pool50btc"|"ghashio"|"stminingcorp"|"bitparking"|"mmpool"|"polmine"|"kncminer"|"bitalo"|"f2pool"|"hhtt"|"megabigpower"|"mtred"|"nmcbit"|"yourbtcnet"|"givemecoins"|"braiinspool"|"antpool"|"multicoinco"|"bcpoolio"|"cointerra"|"kanopool"|"solock"|"ckpool"|"nicehash"|"bitclub"|"bitcoinaffiliatenetwork"|"btcc"|"bwpool"|"exxbw"|"bitsolo"|"bitfury"|"twentyoneinc"|"digitalbtc"|"eightbaochi"|"mybtccoinpool"|"tbdice"|"hashpool"|"nexious"|"bravomining"|"hotpool"|"okexpool"|"bcmonster"|"onehash"|"bixin"|"tatmaspool"|"viabtc"|"connectbtc"|"batpool"|"waterhole"|"dcexploration"|"dcex"|"btpool"|"fiftyeightcoin"|"bitcoinindia"|"shawnp0wers"|"phashio"|"rigpool"|"haozhuzhu"|"sevenpool"|"miningkings"|"hashbx"|"dpool"|"rawpool"|"haominer"|"helix"|"bitcoinukraine"|"poolin"|"secretsuperstar"|"tigerpoolnet"|"sigmapoolcom"|"okpooltop"|"hummerpool"|"tangpool"|"bytepool"|"spiderpool"|"novablock"|"miningcity"|"binancepool"|"minerium"|"lubiancom"|"okkong"|"aaopool"|"emcdpool"|"foundryusa"|"sbicrypto"|"arkpool"|"purebtccom"|"marapool"|"kucoinpool"|"entrustcharitypool"|"okminer"|"titan"|"pegapool"|"btcnuggets"|"cloudhashing"|"digitalxmintsy"|"telco214"|"btcpoolparty"|"multipool"|"transactioncoinmining"|"btcdig"|"trickysbtcpool"|"btcmp"|"eobot"|"unomp"|"patels"|"gogreenlight"|"bitcoinindiapool"|"ekanembtc"|"canoe"|"tiger"|"onem1x"|"zulupool"|"secpool"|"ocean"|"whitepool"|"wiz"|"wk057"|"futurebitapollosolo"|"carbonnegative"|"portlandhodl"|"phoenix"|"neopool"|"maxipool"|"bitfufupool"|"gdpool"|"miningdutch"|"publicpool"|"miningsquared"|"innopolistech"|"btclab"|"parasite"|"redrockpool"|"est3lar"|"braiinssolo"|"solopool")} PoolSlug */
757
767
  /**
758
768
  * @typedef {Object} PoolSlugAndHeightParam
759
769
  * @property {PoolSlug} slug
@@ -775,6 +785,7 @@
775
785
  * @property {number} emptyBlocks - Number of empty blocks mined
776
786
  * @property {PoolSlug} slug - URL-friendly pool identifier
777
787
  * @property {number} share - Pool's share of total blocks (0.0 - 1.0)
788
+ * @property {number} poolUniqueId - Unique pool identifier
778
789
  */
779
790
  /**
780
791
  * Mining pools response for a time period
@@ -783,13 +794,15 @@
783
794
  * @property {PoolStats[]} pools - List of pools sorted by block count descending
784
795
  * @property {number} blockCount - Total blocks in the time period
785
796
  * @property {number} lastEstimatedHashrate - Estimated network hashrate (hashes per second)
797
+ * @property {number} lastEstimatedHashrate3d - Estimated network hashrate over last 3 days
798
+ * @property {number} lastEstimatedHashrate1w - Estimated network hashrate over last 1 week
786
799
  */
787
800
  /**
788
801
  * Current price response matching mempool.space /api/v1/prices format
789
802
  *
790
803
  * @typedef {Object} Prices
791
- * @property {Timestamp} time
792
- * @property {Dollars} uSD
804
+ * @property {Timestamp} time - Unix timestamp
805
+ * @property {Dollars} uSD - BTC/USD price
793
806
  */
794
807
  /**
795
808
  * A range boundary: integer index, date, or timestamp.
@@ -817,9 +830,9 @@
817
830
  * @typedef {Object} RewardStats
818
831
  * @property {Height} startBlock - First block in the range
819
832
  * @property {Height} endBlock - Last block in the range
820
- * @property {Sats} totalReward
821
- * @property {Sats} totalFee
822
- * @property {number} totalTx
833
+ * @property {Sats} totalReward - Total coinbase rewards (subsidy + fees) in sats
834
+ * @property {Sats} totalFee - Total transaction fees in sats
835
+ * @property {number} totalTx - Total number of transactions
823
836
  */
824
837
  /**
825
838
  * Satoshis
@@ -986,17 +999,17 @@
986
999
  * Transaction information compatible with mempool.space API format
987
1000
  *
988
1001
  * @typedef {Object} Transaction
989
- * @property {(TxIndex|null)=} index
990
- * @property {Txid} txid
991
- * @property {TxVersion} version
992
- * @property {RawLockTime} locktime
1002
+ * @property {(TxIndex|null)=} index - Internal transaction index (brk-specific, not in mempool.space)
1003
+ * @property {Txid} txid - Transaction ID
1004
+ * @property {TxVersion} version - Transaction version
1005
+ * @property {RawLockTime} locktime - Transaction lock time
1006
+ * @property {TxIn[]} vin - Transaction inputs
1007
+ * @property {TxOut[]} vout - Transaction outputs
993
1008
  * @property {number} size - Transaction size in bytes
994
1009
  * @property {Weight} weight - Transaction weight
995
1010
  * @property {number} sigops - Number of signature operations
996
1011
  * @property {Sats} fee - Transaction fee in satoshis
997
- * @property {TxIn[]} vin - Transaction inputs
998
- * @property {TxOut[]} vout - Transaction outputs
999
- * @property {TxStatus} status
1012
+ * @property {TxStatus} status - Confirmation status (confirmed, block height/hash/time)
1000
1013
  */
1001
1014
  /**
1002
1015
  * Hierarchical tree node for organizing series into categories
@@ -1008,13 +1021,15 @@
1008
1021
  *
1009
1022
  * @typedef {Object} TxIn
1010
1023
  * @property {Txid} txid - Transaction ID of the output being spent
1011
- * @property {Vout} vout
1024
+ * @property {Vout} vout - Output index being spent
1012
1025
  * @property {(TxOut|null)=} prevout - Information about the previous output being spent
1013
- * @property {string} scriptsig - Signature script (for non-SegWit inputs)
1026
+ * @property {string} scriptsig - Signature script (hex, for non-SegWit inputs)
1014
1027
  * @property {string} scriptsigAsm - Signature script in assembly format
1028
+ * @property {string[]} witness - Witness data (hex-encoded stack items, present for SegWit inputs)
1015
1029
  * @property {boolean} isCoinbase - Whether this input is a coinbase (block reward) input
1016
1030
  * @property {number} sequence - Input sequence number
1017
- * @property {?string=} innerRedeemscriptAsm - Inner redeemscript in assembly format (for P2SH-wrapped SegWit)
1031
+ * @property {string} innerRedeemscriptAsm - Inner redeemscript in assembly (for P2SH-wrapped SegWit: scriptsig + witness both present)
1032
+ * @property {string} innerWitnessscriptAsm - Inner witnessscript in assembly (for P2WSH: last witness item decoded as script)
1018
1033
  */
1019
1034
  /** @typedef {number} TxInIndex */
1020
1035
  /** @typedef {number} TxIndex */
@@ -1080,10 +1095,10 @@
1080
1095
  * Unspent transaction output
1081
1096
  *
1082
1097
  * @typedef {Object} Utxo
1083
- * @property {Txid} txid
1084
- * @property {Vout} vout
1085
- * @property {TxStatus} status
1086
- * @property {Sats} value
1098
+ * @property {Txid} txid - Transaction ID of the UTXO
1099
+ * @property {Vout} vout - Output index
1100
+ * @property {TxStatus} status - Confirmation status
1101
+ * @property {Sats} value - Output value in satoshis
1087
1102
  */
1088
1103
  /**
1089
1104
  * Virtual size in vbytes (weight / 4, rounded up)
@@ -5683,6 +5698,8 @@ function createTransferPattern(client, acc) {
5683
5698
  * @property {BlocksDominancePattern} parasite
5684
5699
  * @property {BlocksDominancePattern} redrockpool
5685
5700
  * @property {BlocksDominancePattern} est3lar
5701
+ * @property {BlocksDominancePattern} braiinssolo
5702
+ * @property {BlocksDominancePattern} solopool
5686
5703
  */
5687
5704
 
5688
5705
  /**
@@ -6546,7 +6563,7 @@ function createTransferPattern(client, acc) {
6546
6563
  * @extends BrkClientBase
6547
6564
  */
6548
6565
  class BrkClient extends BrkClientBase {
6549
- VERSION = "v0.3.0-alpha.0";
6566
+ VERSION = "v0.3.0-alpha.2";
6550
6567
 
6551
6568
  INDEXES = /** @type {const} */ ([
6552
6569
  "minute10",
@@ -6746,7 +6763,9 @@ class BrkClient extends BrkClientBase {
6746
6763
  "btclab": "BTCLab",
6747
6764
  "parasite": "Parasite",
6748
6765
  "redrockpool": "RedRock Pool",
6749
- "est3lar": "Est3lar"
6766
+ "est3lar": "Est3lar",
6767
+ "braiinssolo": "Braiins Solo",
6768
+ "solopool": "SoloPool.com"
6750
6769
  });
6751
6770
 
6752
6771
  TERM_NAMES = /** @type {const} */ ({
@@ -8712,6 +8731,8 @@ class BrkClient extends BrkClientBase {
8712
8731
  parasite: createBlocksDominancePattern(this, 'parasite'),
8713
8732
  redrockpool: createBlocksDominancePattern(this, 'redrockpool'),
8714
8733
  est3lar: createBlocksDominancePattern(this, 'est3lar'),
8734
+ braiinssolo: createBlocksDominancePattern(this, 'braiinssolo'),
8735
+ solopool: createBlocksDominancePattern(this, 'solopool'),
8715
8736
  },
8716
8737
  },
8717
8738
  prices: {
package/package.json CHANGED
@@ -40,5 +40,5 @@
40
40
  "url": "git+https://github.com/bitcoinresearchkit/brk.git"
41
41
  },
42
42
  "type": "module",
43
- "version": "0.3.0-alpha.0"
43
+ "version": "0.3.0-alpha.2"
44
44
  }