Jun 04, 6-7 PM (46)
Jun 04, 7-8 PM (27)
Jun 04, 8-9 PM (4)
Jun 04, 9-10 PM (2)
Jun 04, 10-11 PM (24)
Jun 04, 11-12 AM (7)
Jun 05, 12-1 AM (6)
Jun 05, 1-2 AM (8)
Jun 05, 2-3 AM (1)
Jun 05, 3-4 AM (1)
Jun 05, 4-5 AM (1)
Jun 05, 5-6 AM (5)
Jun 05, 6-7 AM (9)
Jun 05, 7-8 AM (12)
Jun 05, 8-9 AM (8)
Jun 05, 9-10 AM (11)
Jun 05, 10-11 AM (12)
Jun 05, 11-12 PM (8)
Jun 05, 12-1 PM (52)
Jun 05, 1-2 PM (61)
Jun 05, 2-3 PM (26)
Jun 05, 3-4 PM (24)
Jun 05, 4-5 PM (17)
Jun 05, 5-6 PM (7)
Jun 05, 6-7 PM (14)
Jun 05, 7-8 PM (12)
Jun 05, 8-9 PM (6)
Jun 05, 9-10 PM (2)
Jun 05, 10-11 PM (20)
Jun 05, 11-12 AM (9)
Jun 06, 12-1 AM (6)
Jun 06, 1-2 AM (0)
Jun 06, 2-3 AM (3)
Jun 06, 3-4 AM (4)
Jun 06, 4-5 AM (0)
Jun 06, 5-6 AM (24)
Jun 06, 6-7 AM (1)
Jun 06, 7-8 AM (2)
Jun 06, 8-9 AM (3)
Jun 06, 9-10 AM (0)
Jun 06, 10-11 AM (3)
Jun 06, 11-12 PM (6)
Jun 06, 12-1 PM (2)
Jun 06, 1-2 PM (2)
Jun 06, 2-3 PM (2)
Jun 06, 3-4 PM (18)
Jun 06, 4-5 PM (1)
Jun 06, 5-6 PM (6)
Jun 06, 6-7 PM (0)
Jun 06, 7-8 PM (6)
Jun 06, 8-9 PM (0)
Jun 06, 9-10 PM (1)
Jun 06, 10-11 PM (27)
Jun 06, 11-12 AM (9)
Jun 07, 12-1 AM (14)
Jun 07, 1-2 AM (2)
Jun 07, 2-3 AM (0)
Jun 07, 3-4 AM (0)
Jun 07, 4-5 AM (1)
Jun 07, 5-6 AM (1)
Jun 07, 6-7 AM (3)
Jun 07, 7-8 AM (0)
Jun 07, 8-9 AM (0)
Jun 07, 9-10 AM (1)
Jun 07, 10-11 AM (2)
Jun 07, 11-12 PM (2)
Jun 07, 12-1 PM (5)
Jun 07, 1-2 PM (35)
Jun 07, 2-3 PM (2)
Jun 07, 3-4 PM (4)
Jun 07, 4-5 PM (2)
Jun 07, 5-6 PM (4)
Jun 07, 6-7 PM (0)
Jun 07, 7-8 PM (0)
Jun 07, 8-9 PM (17)
Jun 07, 9-10 PM (1)
Jun 07, 10-11 PM (21)
Jun 07, 11-12 AM (9)
Jun 08, 12-1 AM (9)
Jun 08, 1-2 AM (5)
Jun 08, 2-3 AM (3)
Jun 08, 3-4 AM (4)
Jun 08, 4-5 AM (2)
Jun 08, 5-6 AM (9)
Jun 08, 6-7 AM (5)
Jun 08, 7-8 AM (25)
Jun 08, 8-9 AM (36)
Jun 08, 9-10 AM (40)
Jun 08, 10-11 AM (24)
Jun 08, 11-12 PM (22)
Jun 08, 12-1 PM (40)
Jun 08, 1-2 PM (48)
Jun 08, 2-3 PM (33)
Jun 08, 3-4 PM (27)
Jun 08, 4-5 PM (12)
Jun 08, 5-6 PM (23)
Jun 08, 6-7 PM (14)
Jun 08, 7-8 PM (3)
Jun 08, 8-9 PM (6)
Jun 08, 9-10 PM (19)
Jun 08, 10-11 PM (29)
Jun 08, 11-12 AM (8)
Jun 09, 12-1 AM (5)
Jun 09, 1-2 AM (3)
Jun 09, 2-3 AM (1)
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 (50)
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 (48)
Jun 10, 1-2 PM (33)
Jun 10, 2-3 PM (32)
Jun 10, 3-4 PM (28)
Jun 10, 4-5 PM (35)
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 (9)
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 (34)
Jun 11, 9-10 AM (20)
Jun 11, 10-11 AM (103)
Jun 11, 11-12 PM (25)
Jun 11, 12-1 PM (38)
Jun 11, 1-2 PM (37)
Jun 11, 2-3 PM (13)
Jun 11, 3-4 PM (19)
Jun 11, 4-5 PM (5)
Jun 11, 5-6 PM (7)
Jun 11, 6-7 PM (11)
2,997 commits this week Jun 04, 2026 - Jun 11, 2026
Add ToJSON/FromJSON instances for EraTxWits
* Add ToJSON, FromJSON and NFData as EraTxWits superclass constraints
* Add ToJSON/FromJSON for WitVKey, BootstrapWitness
* Add ToJSONKey/FromJSONKey for AccountId
* Add ToJSON/FromJSON for Inclusive and Exclusive
* Add FromJSON for TxIn; fix txInToText to use unTxIx
* Add FromJSON for PoolCert
* Add ToJSON/FromJSON for ShelleyTxWits era
* Add FromJSON for AsIx, AlonzoPlutusPurpose AsIx, TxDats, Redeemers, AlonzoTxWits
* Add FromJSON for ConwayDelegCert, ConwayGovCert, ConwayTxCert era, ConwayPlutusPurpose
* Add FromJSON for GovActionId, Voter, Vote, VotingProcedure, ProposalProcedure, GovAction, GovPurposeId
* Add ToJSON/FromJSON for AccountBalanceInterval, DijkstraScript
* Add FromJSON for DijkstraDelegCert, DijkstraTxCert era
* Add round-trip JSON property test for TxWits era
chore(deps): Bump github.com/ClickHouse/ch-go in /ui
Bumps [github.com/ClickHouse/ch-go](https://github.com/ClickHouse/ch-go) from 0.61.5 to 0.65.0.
- [Release notes](https://github.com/ClickHouse/ch-go/releases)
- [Commits](https://github.com/ClickHouse/ch-go/compare/v0.61.5...v0.65.0)

---
updated-dependencies:
- dependency-name: github.com/ClickHouse/ch-go
  dependency-version: 0.65.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Fix headIsFinalizedWith predicate parsing finalizedUTxO as list instead of map
  finalizedUTxO serializes as a JSON object (UTxO map), but the predicate
  was trying to decode it as [TxOut] which requires a JSON array. The parse
  always returned Nothing, causing every HeadIsFinalized match to fail and
  all fanout cluster tests to time out once HeadIsFinalized is actually
  emitted.

Signed-off-by: Sasha Bogicevic <[email protected]>
Add ToJSON/FromJSON instances for EraTxAuxData
* Add ToJSON/FromJSON and NFData as EraTxAuxData superclass constraints
* Add ToJSON/FromJSON for Metadatum
* Add ToJSON/FromJSON for Data era and PlutusBinary
* Add FromJSON for PoolCert, ConwayGovCert, DijkstraDelegCert, DijkstraTxCert era
* Add ToJSON/FromJSON for ShelleyTxAuxData, AllegraTxAuxData, AlonzoTxAuxData
* Add round-trip JSON property test for TxAuxData era
Add ToJSON/FromJSON instances for EraScript
* Add ToJSON/FromJSON as superclass constraints to EraScript
* Add ToJSON/FromJSON instances for MultiSig, Timelock and DijkstraNativeScript
* Add structured JSON serialisation for native scripts across all eras (Shelley, Allegra, Dijkstra)
* Add ToJSON/FromJSON instances for AlonzoScript with structured JSON format
* Rename kindObject (returning Value) to kindObjectValue; add new kindObject returning Aeson.Object
* Fix shelleyBasedEraNativeScriptToJSON and sizedNativeScriptGens to accept a child continuation to correctly handle nested scripts across eras
* Add round-trip JSON property tests for NativeScript and Script to the shared era spec
fix(import): make cross-instance import work from mobile and other origins (#274)
The "Another instance" import flow failed two ways on mobile:

- The exportWallet endpoints used the allowlist-based CORS middleware,
  so any instance not in CORS_ORIGINS got a rejected preflight and the
  browser surfaced an opaque "Load failed". These endpoints are designed
  for cross-instance calls (credentials omitted, CIP-30 signature
  protected), so give them a public Access-Control-Allow-Origin: *
  policy instead.

- instance-tab passed the raw getRewardAddresses()[0] — hex-encoded
  CBOR bytes in mobile in-app browsers — into Mesh signData (throws on
  hex) and into the origin's bech32 signer-list check (never matches).
  Normalize to bech32 client-side, and defensively server-side too for
  older deployed clients.

Also translate opaque cross-origin fetch errors into an actionable
message, and let the Upload JSON tab accept pasted backup JSON since
mobile in-app browsers often can't reach downloaded files.

Co-authored-by: Claude Fable 5 <[email protected]>
fix(import): make cross-instance import work from mobile and other origins
The "Another instance" import flow failed two ways on mobile:

- The exportWallet endpoints used the allowlist-based CORS middleware,
  so any instance not in CORS_ORIGINS got a rejected preflight and the
  browser surfaced an opaque "Load failed". These endpoints are designed
  for cross-instance calls (credentials omitted, CIP-30 signature
  protected), so give them a public Access-Control-Allow-Origin: *
  policy instead.

- instance-tab passed the raw getRewardAddresses()[0] — hex-encoded
  CBOR bytes in mobile in-app browsers — into Mesh signData (throws on
  hex) and into the origin's bech32 signer-list check (never matches).
  Normalize to bech32 client-side, and defensively server-side too for
  older deployed clients.

Also translate opaque cross-origin fetch errors into an actionable
message, and let the Upload JSON tab accept pasted backup JSON since
mobile in-app browsers often can't reach downloaded files.

Co-Authored-By: Claude Fable 5 <[email protected]>
Fix StaleChainState regression in finalPartialFanout (H57 follow-up)
  The previous H57 fix threaded snapshotUTxO as utxoForProof into
  FinalPartialFanoutTx, then recomputed presettled = snapshotUTxO -
  remaining inside finalPartialFanout. This included already-distributed
  batches in the presettled set, so buildAndVerifyAccumulator always
  failed with StaleChainState after the first partial batch.

  Fix: compute presettledUTxO = snapshotUTxO - computeFullFanoutUTxO
  once in HeadLogic where both values are available, and thread it
  directly as a named field. Downstream functions receive the exact
  fixed set of elements that are in the accumulator but never distributed
  (mempty in the normal case; utxoToDecommit or utxoToCommit in the
  edge cases).

  Add tests covering all four presettledUTxO cases for both partialFanout
  and finalPartialFanout, including a new genClosedStateWithUnconfirmedCommit
  generator for the pending-but-not-confirmed deposit case.

  Rename utxoForProof -> presettledUTxO in FinalPartialFanoutTx and
  update the api.yaml schema accordingly.

Signed-off-by: Sasha Bogicevic <[email protected]>
Fix H57 PartialFanoutMembershipFailed when decommit settled before close
  When snapshotVersion < closedState.version (a DecrementTx was confirmed
  between the last snapshot and close), the closed-datum accumulator commits
  to snapshotUTxO = utxo <> utxoToDecommit, but fullUTxO for distribution
  excludes the decommit (already paid out). The remaining accumulator was
  built from fullUTxO - batch only, breaking the on-chain KZG split identity
  A_old = P_K · A_new for every chunk size → H57 for all chunks → fanout stuck.

  Fix: track presettled = UTxO.difference proofUTxO remainingUTxO and include
  it in the remaining accumulator at each partial fanout step, and in the proof
  accumulator at the final step. Thread utxoForProof through FinalPartialFanoutTx
  so the chain layer always has the original snapshotUTxO available.

Signed-off-by: Sasha Bogicevic <[email protected]>