Conversation
| }) | ||
| } catch (error) { | ||
| common.log.warn( | ||
| `failed to get scriptPubkey from address ${vin.addresses[0]}: `, |
There was a problem hiding this comment.
Bug: Undefined access from empty input addresses array
Potential undefined access when vin.addresses is an empty array. According to the BlockbookTransaction type definition, addresses can be an empty array (default value is []). For SparkSpend inputs in FIRO (the purpose of this PR), the addresses array may be empty. Accessing vin.addresses[0] on line 1371 will return undefined, which is then passed to validScriptPubkeyFromAddress. While the try-catch will handle the error, the error message on line 1376 will log undefined as the address, making debugging difficult. The code should check if vin.addresses[0] exists before attempting to use it.
This handles only the receiving inputs side of a transaction. It does not fully support tracking the wallet's own SparkSpend inputs which it cannot even make currently because FIRO is transparent-only for now.
56ec0a9 to
8e348af
Compare
swansontec
approved these changes
Nov 6, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
CHANGELOG
Does this branch warrant an entry to the CHANGELOG?
Dependencies
noneDescription
noneNote
Fixes FIRO SparkSpend transaction processing by accepting inputs without txid (using zero txid) and making vin scriptPubkey derivation resilient; also standardizes coinbase outputIndex.
src/common/utxobased/engine/UtxoEngineProcessor.ts):vin.txid(fallback to000...000) to support FIRO SparkSpend/private inputs; remove null-txid error.scriptPubkeyderivation with try/catch and warning logs; default to"unknown"on failure.0xfffffffffor coinbaseoutputIndex.Written by Cursor Bugbot for commit 8e348af. This will update automatically on new commits. Configure here.