Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
e495335
refactor: migrate from TransactionStatus to TransactionInfo API
Ignacio-87 Feb 4, 2026
f552043
fix: allow Confirmed to Dispatched transition for orphan transactions…
Ignacio-87 Feb 4, 2026
4f1aa3c
config: move confirmation_threshold to indexer_settings
Ignacio-87 Feb 4, 2026
cd86580
test: add logging improvements and cleanup test code
Ignacio-87 Feb 4, 2026
3e76394
ci: remove unused submodule_branches parameter from workflow
Ignacio-87 Feb 4, 2026
889da8e
Merge branch 'dev' into change-get-transaction
Ignacio-87 Feb 4, 2026
9f64dc1
refactor: consolidate active transaction processing into single method
Ignacio-87 Feb 5, 2026
2e25d2a
refactor: simplify monitor ready check in tick method
Ignacio-87 Feb 5, 2026
b4dc837
refactor: unify transaction states and remove retry mechanism
Ignacio-87 Feb 7, 2026
3183eca
refactor: consolidate transaction and speedup processing in coordinator
Ignacio-87 Feb 7, 2026
b948a6b
test: update tests to reflect unified states and refactored processing
Ignacio-87 Feb 7, 2026
2a361f0
Remove debugging statements and clean up code
Ignacio-87 Feb 10, 2026
c1afe3e
refactor: remove unnecessary logging in BitcoinCoordinator
Ignacio-87 Feb 10, 2026
19a1d05
test: enhance replace_speedup_regtest_test with detailed phases and a…
Ignacio-87 Feb 10, 2026
dc71d0a
refactor: update transaction handling in BitcoinCoordinator
Ignacio-87 Feb 10, 2026
d8c9681
refactor: update monitor type in BitcoinCoordinator and clean up test…
Ignacio-87 Feb 12, 2026
6d73ec5
remove monitor api
Ignacio-87 Feb 13, 2026
692366d
refactor: enhance transaction processing in BitcoinCoordinator
Ignacio-87 Feb 18, 2026
5d08538
Add dispatch_without_speedup and stuck in mempool detection
Ignacio-87 Feb 18, 2026
24d9507
Add IndexerError mapping to BitcoinCoordinatorError
Ignacio-87 Feb 19, 2026
67deb6b
Remove duplicate info! logs in tick method
Ignacio-87 Feb 19, 2026
87b7dc0
Update is_finalized to use max_monitoring_confirmations from settings
Ignacio-87 Feb 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,5 @@ jobs:
submodule_path: "rust-bitcoin-coordinator"
cargo_lock_path: "rust-bitcoin-coordinator/Cargo.lock"
target_path: "rust-bitcoin-coordinator/target"
submodule_branches: "{}"
single_thread_tests: true
secrets: inherit
16 changes: 11 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,17 @@ The following is a list of all public methods available in the `BitcoinCoordinat

4. **dispatch**: Dispatches a transaction to the Bitcoin network. Includes options for speedup, additional context, and a confirmation trigger threshold.

5. **cancel**: Cancels the monitor and the dispatch of a type of data, removing it from the coordinator's store.
5. **dispatch_without_speedup**: Dispatches a transaction to the Bitcoin network without speedup support. Includes options for additional context, a confirmation trigger threshold, and a stuck in mempool threshold (number of blocks to wait before considering the transaction stuck).

6. **add_funding**: Registers funding information for potential transaction speed-ups, allowing the creation of child pays for parents transactions.
6. **cancel**: Cancels the monitor and the dispatch of a type of data, removing it from the coordinator's store.

7. **get_transaction**: Retrieves the status of a specific transaction by its transaction ID.
7. **add_funding**: Registers funding information for potential transaction speed-ups, allowing the creation of child pays for parents transactions.

8. **get_news**: Retrieves news about monitored transactions, providing information about transaction confirmations.
8. **get_transaction**: Retrieves the status of a specific transaction by its transaction ID.

9. **ack_news**: Acknowledges that news has been processed, preventing the same news from being returned in subsequent calls to `get_news()`.
9. **get_news**: Retrieves news about monitored transactions, providing information about transaction confirmations and stuck transactions.

10. **ack_news**: Acknowledges that news has been processed, preventing the same news from being returned in subsequent calls to `get_news()`.

## Usage Examples

Expand Down Expand Up @@ -66,6 +68,10 @@ coordinator.monitor(tx_to_monitor);
let speedup_data = Some(SpeedupData::new(speedup_utxo));
coordinator.dispatch(transaction, speedup_data, tx_context.clone(), None, None);

// Dispatch a transaction without speedup support, with a stuck in mempool threshold
// stuck_in_mempool_blocks: number of blocks to wait before considering the transaction stuck in mempool
coordinator.dispatch_without_speedup(transaction, tx_context.clone(), None, None, 10);

// Provide funding UTXO for future speedup transactions (e.g., CPFP)
let utxo = Utxo::new(txid, vout_index, amount.to_sat(), &public_key);
coordinator.add_funding(utxo);
Expand Down
2 changes: 0 additions & 2 deletions config/coordinator_config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ key_storage:
password: secret_password
path: data/key_manager


# Each setting is optional and will use the default values if not provided
settings:
max_unconfirmed_speedups: 10
Expand All @@ -33,7 +32,6 @@ settings:
retry_attempts_sending_tx: 3
min_network_fee_rate: 1
monitor_settings:
confirmation_threshold: 6
max_monitoring_confirmations: 6
indexer_settings:
checkpoint_height: 0
Loading
Loading