Sync README from source repository [skip ci]
Jun 09, 3-4 AM (3)
Jun 09, 4-5 AM (26)
Jun 09, 5-6 AM (5)
Jun 09, 6-7 AM (23)
Jun 09, 7-8 AM (51)
Jun 09, 8-9 AM (35)
Jun 09, 9-10 AM (45)
Jun 09, 10-11 AM (51)
Jun 09, 11-12 PM (46)
Jun 09, 12-1 PM (86)
Jun 09, 1-2 PM (84)
Jun 09, 2-3 PM (36)
Jun 09, 3-4 PM (38)
Jun 09, 4-5 PM (16)
Jun 09, 5-6 PM (18)
Jun 09, 6-7 PM (18)
Jun 09, 7-8 PM (19)
Jun 09, 8-9 PM (16)
Jun 09, 9-10 PM (16)
Jun 09, 10-11 PM (28)
Jun 09, 11-12 AM (10)
Jun 10, 12-1 AM (11)
Jun 10, 1-2 AM (16)
Jun 10, 2-3 AM (11)
Jun 10, 3-4 AM (19)
Jun 10, 4-5 AM (5)
Jun 10, 5-6 AM (2)
Jun 10, 6-7 AM (46)
Jun 10, 7-8 AM (82)
Jun 10, 8-9 AM (18)
Jun 10, 9-10 AM (59)
Jun 10, 10-11 AM (46)
Jun 10, 11-12 PM (134)
Jun 10, 12-1 PM (49)
Jun 10, 1-2 PM (33)
Jun 10, 2-3 PM (32)
Jun 10, 3-4 PM (28)
Jun 10, 4-5 PM (36)
Jun 10, 5-6 PM (12)
Jun 10, 6-7 PM (12)
Jun 10, 7-8 PM (38)
Jun 10, 8-9 PM (11)
Jun 10, 9-10 PM (10)
Jun 10, 10-11 PM (20)
Jun 10, 11-12 AM (7)
Jun 11, 12-1 AM (10)
Jun 11, 1-2 AM (2)
Jun 11, 2-3 AM (0)
Jun 11, 3-4 AM (2)
Jun 11, 4-5 AM (8)
Jun 11, 5-6 AM (12)
Jun 11, 6-7 AM (34)
Jun 11, 7-8 AM (106)
Jun 11, 8-9 AM (37)
Jun 11, 9-10 AM (20)
Jun 11, 10-11 AM (105)
Jun 11, 11-12 PM (25)
Jun 11, 12-1 PM (38)
Jun 11, 1-2 PM (38)
Jun 11, 2-3 PM (15)
Jun 11, 3-4 PM (20)
Jun 11, 4-5 PM (5)
Jun 11, 5-6 PM (7)
Jun 11, 6-7 PM (26)
Jun 11, 7-8 PM (90)
Jun 11, 8-9 PM (11)
Jun 11, 9-10 PM (5)
Jun 11, 10-11 PM (25)
Jun 11, 11-12 AM (5)
Jun 12, 12-1 AM (8)
Jun 12, 1-2 AM (2)
Jun 12, 2-3 AM (2)
Jun 12, 3-4 AM (4)
Jun 12, 4-5 AM (7)
Jun 12, 5-6 AM (15)
Jun 12, 6-7 AM (46)
Jun 12, 7-8 AM (19)
Jun 12, 8-9 AM (28)
Jun 12, 9-10 AM (22)
Jun 12, 10-11 AM (29)
Jun 12, 11-12 PM (42)
Jun 12, 12-1 PM (24)
Jun 12, 1-2 PM (26)
Jun 12, 2-3 PM (22)
Jun 12, 3-4 PM (38)
Jun 12, 4-5 PM (23)
Jun 12, 5-6 PM (19)
Jun 12, 6-7 PM (26)
Jun 12, 7-8 PM (12)
Jun 12, 8-9 PM (17)
Jun 12, 9-10 PM (5)
Jun 12, 10-11 PM (30)
Jun 12, 11-12 AM (6)
Jun 13, 12-1 AM (6)
Jun 13, 1-2 AM (2)
Jun 13, 2-3 AM (0)
Jun 13, 3-4 AM (3)
Jun 13, 4-5 AM (0)
Jun 13, 5-6 AM (3)
Jun 13, 6-7 AM (7)
Jun 13, 7-8 AM (5)
Jun 13, 8-9 AM (6)
Jun 13, 9-10 AM (14)
Jun 13, 10-11 AM (12)
Jun 13, 11-12 PM (2)
Jun 13, 12-1 PM (23)
Jun 13, 1-2 PM (21)
Jun 13, 2-3 PM (8)
Jun 13, 3-4 PM (1)
Jun 13, 4-5 PM (4)
Jun 13, 5-6 PM (4)
Jun 13, 6-7 PM (3)
Jun 13, 7-8 PM (3)
Jun 13, 8-9 PM (7)
Jun 13, 9-10 PM (16)
Jun 13, 10-11 PM (19)
Jun 13, 11-12 AM (24)
Jun 14, 12-1 AM (18)
Jun 14, 1-2 AM (0)
Jun 14, 2-3 AM (0)
Jun 14, 3-4 AM (0)
Jun 14, 4-5 AM (2)
Jun 14, 5-6 AM (0)
Jun 14, 6-7 AM (2)
Jun 14, 7-8 AM (3)
Jun 14, 8-9 AM (0)
Jun 14, 9-10 AM (1)
Jun 14, 10-11 AM (2)
Jun 14, 11-12 PM (10)
Jun 14, 12-1 PM (8)
Jun 14, 1-2 PM (4)
Jun 14, 2-3 PM (8)
Jun 14, 3-4 PM (2)
Jun 14, 4-5 PM (1)
Jun 14, 5-6 PM (1)
Jun 14, 6-7 PM (0)
Jun 14, 7-8 PM (11)
Jun 14, 8-9 PM (1)
Jun 14, 9-10 PM (13)
Jun 14, 10-11 PM (29)
Jun 14, 11-12 AM (23)
Jun 15, 12-1 AM (8)
Jun 15, 1-2 AM (10)
Jun 15, 2-3 AM (4)
Jun 15, 3-4 AM (4)
Jun 15, 4-5 AM (1)
Jun 15, 5-6 AM (3)
Jun 15, 6-7 AM (3)
Jun 15, 7-8 AM (41)
Jun 15, 8-9 AM (24)
Jun 15, 9-10 AM (11)
Jun 15, 10-11 AM (34)
Jun 15, 11-12 PM (25)
Jun 15, 12-1 PM (40)
Jun 15, 1-2 PM (26)
Jun 15, 2-3 PM (20)
Jun 15, 3-4 PM (24)
Jun 15, 4-5 PM (21)
Jun 15, 5-6 PM (13)
Jun 15, 6-7 PM (13)
Jun 15, 7-8 PM (7)
Jun 15, 8-9 PM (26)
Jun 15, 9-10 PM (20)
Jun 15, 10-11 PM (22)
Jun 15, 11-12 AM (39)
Jun 16, 12-1 AM (7)
Jun 16, 1-2 AM (5)
Jun 16, 2-3 AM (1)
Jun 16, 3-4 AM (1)
3,309 commits this week
Jun 09, 2026
-
Jun 16, 2026
feat(tray/notifications): multi-target monitoring + native dispatch
Adds a fyne-free notifications engine that consumes ConnectionManager events, derives one rule per (kind, param) from a multi-target SetupPlan (Wallets/DReps/Pools/MonitorEverything), and emits Requests through a tumbling-window rate limiter that connection alerts bypass. A Dispatch goroutine in setupTray turns each Request into a native fyne notification — replacing the inline dispatchNotification. Rule bodies render through Cardano-aware template helpers (trunc / ada / outAddr / outAda / field) shared with the Telegram output via internal/cardanofmt. Wizard step 3 is rebuilt with three editable target sections plus an exclusive Monitor Everything toggle, with cross-template validation hints. SetRules atomically swaps the engine's rule set on reconfigure (draining stale pre-swap Requests) so changes take effect without a restart. Filter persistence lives on TrayConfig (not the sidecar engine's filter.cardano block) so multi-target plans don't get AND-combined on transaction events. ToEngineConfig scrubs legacy knobs and a one-time migration in SetupPlanFromEngineConfig preserves them across upgrade. Removes tray/adder_config.go (dead code; setup/codec.go is the live SetupPlan→YAML path). Closes #685 Closes #686 Signed-off-by: Ales Verbic <[email protected]>
feat(tray/notifications): multi-target monitoring + native dispatch
Adds a fyne-free notifications engine that consumes ConnectionManager events, derives one rule per (kind, param) from a multi-target SetupPlan (Wallets/DReps/Pools/MonitorEverything), and emits Requests through a tumbling-window rate limiter that connection alerts bypass. A Dispatch goroutine in setupTray turns each Request into a native fyne notification — replacing the inline dispatchNotification. Rule bodies render through Cardano-aware template helpers (trunc / ada / outAddr / outAda / field) shared with the Telegram output via internal/cardanofmt. Wizard step 3 is rebuilt with three editable target sections plus an exclusive Monitor Everything toggle, with cross-template validation hints. SetRules atomically swaps the engine's rule set on reconfigure (draining stale pre-swap Requests) so changes take effect without a restart. Filter persistence lives on TrayConfig (not the sidecar engine's filter.cardano block) so multi-target plans don't get AND-combined on transaction events. ToEngineConfig scrubs legacy knobs and a one-time migration in SetupPlanFromEngineConfig preserves them across upgrade. Removes tray/adder_config.go (dead code; setup/codec.go is the live SetupPlan→YAML path). Closes #685 Closes #686 Signed-off-by: Ales Verbic <[email protected]>
test(ledger): drive real treasury-withdrawal enactment with donation
Add an integration test that exercises the actual Conway enactment path rather than a modelled treasury: it seeds a ratified treasury-withdrawal proposal plus a registered reward account, then runs governance.ProcessEpoch followed by applyEpochDonations exactly as processEpochRollover sequences them. It asserts the withdrawal is applied against the pre-donation treasury (1000 - 400) and the donation is added afterwards (+300 = 900), and that the withdrawal credits the reward account, closing the #2374 acceptance criterion that a withdrawal is checked against the treasury value the ledger uses at the boundary. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]> Signed-off-by: Chris Guiney <[email protected]>
fix(blockfrost): align transaction detail endpoints with OpenAPI 0.1.88 (#2554)
* fix(blockfrost): Made changes to align blockfrost transaction detail responses with OpenAPI 0.1.88 Signed-off-by: Akhil Repala <[email protected]> * fix(blockfrost): Fixed the bot comments Signed-off-by: Akhil Repala <[email protected]> --------- Signed-off-by: Akhil Repala <[email protected]>
refactor(ledger): remove mempool DTO from provider interface (#2563)
* refactor(ledger): Made changes to decouple mempool provider transaction view Signed-off-by: Akhil Repala <[email protected]> * refactor(ledger): Added a new test where it verifies the adapted mempool source feeds pending transaction CBOR into block construction Signed-off-by: Akhil Repala <[email protected]> * refactor(ledger): removed the added test Signed-off-by: Akhil Repala <[email protected]> --------- Signed-off-by: Akhil Repala <[email protected]>
feat(ledger): apply Conway treasury donations to treasury at epoch boundary
Conway transaction donations were never tracked, so the treasury (NetworkState) drifted from the value the ledger would compute, which can make a future treasury-withdrawal enactment validate against stale local state. Wire the donation accumulator (added in the previous commit) into the ledger: - Block processing (delta.apply) sums the Donation() of each valid transaction in a block and records it via AddNetworkDonation, keyed by block slot and tagged with the current epoch. Invalid (phase-2 failed) transactions do not contribute, since their body is not applied. - The epoch rollover (processEpochRollover) moves the ending epoch's donations into the treasury via applyEpochDonations, after governance.ProcessEpoch. Ordering donations after enacted withdrawals matches the Conway EPOCH rule: a withdrawal is checked against the pre-donation treasury, and the donation is reflected for subsequent epochs. - Chain rollback drops the donation rows after the rollback slot alongside the NetworkState rows, so treasury/reserves are restored and re-application re-derives the same total. Tests cover the donation-to-treasury application, the no-donation no-op, and the acceptance scenario: a treasury withdrawal followed by a donation at the boundary, then a rollback restoring the prior treasury. DATABASE.md and ARCHITECTURE.md document the new network_donation table/model. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]> Signed-off-by: Chris Guiney <[email protected]>
feat(database): add NetworkDonation accumulator
Conway transaction donations need to accumulate during an epoch and move into the treasury at the epoch boundary, but dingo does not track them. Add the storage layer for that accumulator: - NetworkDonation model (slot, epoch, amount), keyed by slot so a rollback can drop rows by slot like NetworkState. Amount is a plain integer column so SUM aggregates directly across all three backends. - Store methods AddNetworkDonation (idempotent per slot), SumNetworkDonationsForEpoch, and DeleteNetworkDonationsAfterSlot, implemented for sqlite/postgres/mysql, plus the Database rollback wrapper. Wiring into block processing, the epoch boundary, and rollback follows in subsequent commits. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]> Signed-off-by: Chris Guiney <[email protected]>
fix(chainsync): address issue
Signed-off-by: cryptodj413 <[email protected]>
:card_file_box: Update status summary [skip ci] [upptime]
:pencil: Update summary in README [skip ci] [upptime]
:pencil: Update summary in README [skip ci] [upptime]
:card_file_box: Update status summary [skip ci] [upptime]
test(stm): reuse assets in ivc prover slow tests
chore(demo): adapt to the aggregate signature api changes
refactor(stm): rename genesis message to its preimage and gate behind future_snark
Rename the AncillaryGenesisData genesis_message field to genesis_message_preimage and gate it, with its getter, behind the future_snark feature.
docs(stm): update genesis_message_preimage doc reference in IvcGenesisBootstrapInput
feat(stm): redesign IvcProver::prove with genesis bootstrap and add IvcRollingState predicates
refactor(common): adapt to the genesis message preimage gating
Build an empty genesis ancillary data without future_snark and update the dummy accordingly.
refactor(common): explicitly mark the genesis certificate used without future_snark
Replace the function-level unused_variables allow with a scoped use.
refactor(stm): rename IvcProvingSetup to IvcProverSetup, move prove_with_transcript to IvcProof, rename prover_input and proof locals
fix(stm): genesis prove returns None for Blake2b external proof
test(stm): add slow golden tests for IvcProver::prove across all three transition types
feat(stm): rename IvcSetup to IvcProvingSetup and store full KZG SRS for IVC proof generation
feat(stm): add IvcProofError::ProofGenerationFailed for prove path