Skip to content

Conversation

@shruggr
Copy link
Collaborator

@shruggr shruggr commented Oct 21, 2025

Consolidating all un-released work for a clean review process

shruggr and others added 30 commits July 16, 2025 14:28
- Remove committed vendor/ directory to avoid vendoring mode conflicts
- Uncomment vendor/ in .gitignore to prevent future vendoring issues
- All tests pass without vendoring
…alue

- Add limit field to RequestSyncResponseBody in OpenAPI spec
- Configure as uint32 with default value of 0
- Update generated OpenAPI types to include limit field
- Fix test expectations to match actual limit values passed in service calls
- Ensure all tests pass with proper type handling
- Fix ProvideForeignGASPNode to use outpoint parameter instead of graphId for correct dependency lookup
- Add global deduplication cache to prevent duplicate processing across UTXOs
- Add network-level flow control in OverlayGASPRemote for RequestNode calls
- Add InFlight deduplication in OverlayGASPRemote to prevent duplicate network requests
- Convert sharedOutpoints from map to sync.Map for concurrent access safety
Fix variable scoping bug and add local coin lookup during graph validation.
Enhance both ValidateGraphAnchor and FindNeededInputs to check tempGraphNodeRefs for missing dependencies, enabling multi-level dependency chain validation.
Properly reads server error messages instead of causing nil pointer
dereferences when requestSyncResponse returns 500 errors. Now provides
actual server error details instead of panicking on JSON decode failures.
Fixes 'unexpected end of JSON input' server errors by using json.Marshal
and bytes.NewReader instead of reusing bytes.Buffer after String() calls.
The String() method can corrupt buffer state for subsequent reads.
Replace memory-intensive all-UTXO loading with efficient page-based lookups using new HasOutputs method. Reduces memory usage and improves sync performance for large UTXO datasets.
shruggr and others added 17 commits September 16, 2025 13:28
- Replace HasOutputs with three-state system using *bool pointers:
  * nil = unknown (not in storage)
  * &true = known valid (has valid merkle proof)
  * &false = known invalid (needs merkle proof update)
- Add UpdateProof method to GASP storage interface
- Add upfront merkle proof validation in HandleNewMerkleProof
- Update GASP sync logic with proper error handling
- Add SyncInvalidatedOutputs method to sync outputs with invalidated merkle proofs.
- Introduce MerkleState type to represent validation states of outputs.
- Update HasOutputs method to return boolean results for output existence checks.
- Modify storage interface to include methods for finding outpoints by merkle state and reconciling merkle roots.
- Adjust tests to accommodate changes in storage interface and output validation logic.
- Add omitempty tags to GASP Node struct fields for TypeScript compatibility
- Ensures unmined transactions (without merkle proofs) don't break the sync process
@github-actions
Copy link
Contributor

Manual Tests

ℹ️ Remember to ask team members to perform manual tests and to assign tested label after testing.

shruggr and others added 5 commits October 21, 2025 12:24
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Jason Chavannes <jason.chavannes@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Michal Gosek <michal.gosek@4chain.studio>
Co-authored-by: Mr. Z <mrz1836@users.noreply.github.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
@sonarqubecloud
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants