(RM) Forcing PR diff view on GH
May 20, 12-1 PM (50)
May 20, 1-2 PM (92)
May 20, 2-3 PM (21)
May 20, 3-4 PM (326)
May 20, 4-5 PM (23)
May 20, 5-6 PM (23)
May 20, 6-7 PM (17)
May 20, 7-8 PM (23)
May 20, 8-9 PM (15)
May 20, 9-10 PM (5)
May 20, 10-11 PM (34)
May 20, 11-12 AM (16)
May 21, 12-1 AM (16)
May 21, 1-2 AM (9)
May 21, 2-3 AM (11)
May 21, 3-4 AM (7)
May 21, 4-5 AM (4)
May 21, 5-6 AM (27)
May 21, 6-7 AM (14)
May 21, 7-8 AM (22)
May 21, 8-9 AM (34)
May 21, 9-10 AM (45)
May 21, 10-11 AM (37)
May 21, 11-12 PM (27)
May 21, 12-1 PM (63)
May 21, 1-2 PM (68)
May 21, 2-3 PM (60)
May 21, 3-4 PM (53)
May 21, 4-5 PM (20)
May 21, 5-6 PM (27)
May 21, 6-7 PM (27)
May 21, 7-8 PM (25)
May 21, 8-9 PM (23)
May 21, 9-10 PM (3)
May 21, 10-11 PM (29)
May 21, 11-12 AM (10)
May 22, 12-1 AM (16)
May 22, 1-2 AM (6)
May 22, 2-3 AM (8)
May 22, 3-4 AM (4)
May 22, 4-5 AM (11)
May 22, 5-6 AM (10)
May 22, 6-7 AM (21)
May 22, 7-8 AM (13)
May 22, 8-9 AM (38)
May 22, 9-10 AM (12)
May 22, 10-11 AM (18)
May 22, 11-12 PM (25)
May 22, 12-1 PM (24)
May 22, 1-2 PM (34)
May 22, 2-3 PM (56)
May 22, 3-4 PM (13)
May 22, 4-5 PM (29)
May 22, 5-6 PM (13)
May 22, 6-7 PM (19)
May 22, 7-8 PM (20)
May 22, 8-9 PM (12)
May 22, 9-10 PM (12)
May 22, 10-11 PM (41)
May 22, 11-12 AM (12)
May 23, 12-1 AM (9)
May 23, 1-2 AM (0)
May 23, 2-3 AM (3)
May 23, 3-4 AM (1)
May 23, 4-5 AM (1)
May 23, 5-6 AM (4)
May 23, 6-7 AM (12)
May 23, 7-8 AM (1)
May 23, 8-9 AM (3)
May 23, 9-10 AM (1)
May 23, 10-11 AM (1)
May 23, 11-12 PM (5)
May 23, 12-1 PM (1)
May 23, 1-2 PM (6)
May 23, 2-3 PM (5)
May 23, 3-4 PM (5)
May 23, 4-5 PM (4)
May 23, 5-6 PM (0)
May 23, 6-7 PM (3)
May 23, 7-8 PM (23)
May 23, 8-9 PM (1)
May 23, 9-10 PM (9)
May 23, 10-11 PM (21)
May 23, 11-12 AM (27)
May 24, 12-1 AM (9)
May 24, 1-2 AM (0)
May 24, 2-3 AM (1)
May 24, 3-4 AM (1)
May 24, 4-5 AM (0)
May 24, 5-6 AM (3)
May 24, 6-7 AM (1)
May 24, 7-8 AM (2)
May 24, 8-9 AM (2)
May 24, 9-10 AM (4)
May 24, 10-11 AM (4)
May 24, 11-12 PM (1)
May 24, 12-1 PM (7)
May 24, 1-2 PM (46)
May 24, 2-3 PM (5)
May 24, 3-4 PM (3)
May 24, 4-5 PM (18)
May 24, 5-6 PM (2)
May 24, 6-7 PM (4)
May 24, 7-8 PM (13)
May 24, 8-9 PM (10)
May 24, 9-10 PM (15)
May 24, 10-11 PM (33)
May 24, 11-12 AM (42)
May 25, 12-1 AM (9)
May 25, 1-2 AM (4)
May 25, 2-3 AM (6)
May 25, 3-4 AM (1)
May 25, 4-5 AM (6)
May 25, 5-6 AM (14)
May 25, 6-7 AM (17)
May 25, 7-8 AM (17)
May 25, 8-9 AM (32)
May 25, 9-10 AM (43)
May 25, 10-11 AM (64)
May 25, 11-12 PM (33)
May 25, 12-1 PM (43)
May 25, 1-2 PM (40)
May 25, 2-3 PM (20)
May 25, 3-4 PM (27)
May 25, 4-5 PM (16)
May 25, 5-6 PM (6)
May 25, 6-7 PM (7)
May 25, 7-8 PM (11)
May 25, 8-9 PM (12)
May 25, 9-10 PM (16)
May 25, 10-11 PM (43)
May 25, 11-12 AM (25)
May 26, 12-1 AM (11)
May 26, 1-2 AM (11)
May 26, 2-3 AM (8)
May 26, 3-4 AM (11)
May 26, 4-5 AM (6)
May 26, 5-6 AM (9)
May 26, 6-7 AM (26)
May 26, 7-8 AM (43)
May 26, 8-9 AM (39)
May 26, 9-10 AM (42)
May 26, 10-11 AM (45)
May 26, 11-12 PM (59)
May 26, 12-1 PM (34)
May 26, 1-2 PM (50)
May 26, 2-3 PM (50)
May 26, 3-4 PM (17)
May 26, 4-5 PM (20)
May 26, 5-6 PM (13)
May 26, 6-7 PM (20)
May 26, 7-8 PM (12)
May 26, 8-9 PM (15)
May 26, 9-10 PM (15)
May 26, 10-11 PM (35)
May 26, 11-12 AM (29)
May 27, 12-1 AM (16)
May 27, 1-2 AM (8)
May 27, 2-3 AM (9)
May 27, 3-4 AM (5)
May 27, 4-5 AM (32)
May 27, 5-6 AM (9)
May 27, 6-7 AM (49)
May 27, 7-8 AM (63)
May 27, 8-9 AM (37)
May 27, 9-10 AM (71)
May 27, 10-11 AM (83)
May 27, 11-12 PM (30)
May 27, 12-1 PM (31)
3,677 commits this week
May 20, 2026
-
May 27, 2026
refactor(explorer): use genesis vkey stored in store instead of fetching it remotely
Warm up KZG trusted setup before opening API server socket
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
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
Add ToJSON/FromJSON instances for EraTxOut
* Add FromJSON (TxOut era) as EraTxOut superclass constraint * Add FromJSON t as Val t superclass constraint * Add ToJSON/FromJSON for Datum era * Add FromJSON for ShelleyTxOut, AlonzoTxOut, BabbageTxOut * Add FromJSON for MaryValue; fix FromJSON/FromJSONKey for AssetName to hex-decode * Add round-trip JSON property test for TxOut era
sim-rs: tighten quorum threshold rounding
Two paired fixes flagged in PR review: - `vote_threshold()`: `(τ × expected_total_weight) as u64` truncated, so a non-exact product like 2.25 became 2 and a τ = 75% quorum accepted 2/3 = 67% of weight. Switched to `.ceil() as u64`; with integer weights, the strict-less `voted_weight < threshold` check now enforces `Σ weight ≥ τ × total` exactly. Mirrors the same fix in shared-consensus aggregation. - `expected_total_weight` for `WfaLs`: built from `(persistent_voters + non_persistent_voters) as u64`, which truncated f64 sums. A configured 600.7 quietly became 600, and any fractional sub-1 configuration zeroed the denominator and trivialised the threshold. Switched to `.round() as u64` — closest integer matches the "expected committee size" semantic. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
shared-consensus: ceil() the quorum threshold to enforce the doc
`record_vote`'s doc says `Σ weight ≥ τ × expected_total_weight`, but the integer threshold was computed via `as u64` truncation, which accepts quorum at less than τ when the product isn't an exact integer (e.g. total=3, τ=0.75 → 2.25 truncates to 2, so 2/3 = 67% passes a 75% quorum). Switch to `.ceil() as u64`. With integer weights and the strict-less `voted_weight < threshold` check this enforces the documented inequality exactly. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
feat(explorer): add script to generate genesis verification keys and integrate into build process
Keys are generated per network, with a manual addition for "dev" networks (e.g. e2e).
feat(explorer): replace genesis verification keys with aggregators list generation script
Updates scripts and build process to generate an aggregators list, replacing the genesis verification keys logic. Adjusted related files and output to align with the new structure.
refactor(explorer): relocate Certificates tab to the first position
refactor(explorer): simplify state management and lifecycle hooks in components
This fixes all new eslint warnings, mostly `react-hooks/set-state-in-effect`
chore(explorer): upgrade dependencies
sim-rs: replace vote-threshold with quorum-weight-fraction (CIP-164 PR #1196)
The YAML knob `vote-threshold: u64` (absolute count, mode-dependent in meaning) is replaced by `quorum-weight-fraction: f64` (always a fraction). The absolute threshold is derived at config build from `quorum_weight_fraction × expected_total_weight`, with the denominator per mode: PV+NPV seats (WfaLs), node count (Everyone), total active stake (TopStakeFraction). Default kept at 0.6 (legacy 300/500) in config.default.yaml to preserve existing-experiment numerics; code default 0.75 (CIP-0164). For TopStakeFraction, `try_vote_for_endorser_block` emits the voter's own stake as the per-EB weight (rather than 1). The quorum check is unchanged in form — `Σ weight ≥ vote_threshold()` — because the threshold method now returns stake-denominated values. `SimConfiguration::build` enforces σ_c > τ for TopStakeFraction and bails with a clear error referencing the PR. Two new tests: `top_stake_fraction_uses_stake_weighted_quorum` (per-voter weight = stake, low-stake majority does NOT certify) and `sim_config_rejects_top_stake_fraction_when_sigma_c_le_tau`. `shared_consensus.rs` adapter: `derive_quorum_fraction` collapses to a passthrough; expected_total_weight uses the new helper. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
shared-consensus: stake-weighted quorum for StakeCentile (CIP-164 PR #1196)
Quorum is now `Σ voter_stake ≥ τ × total_active_stake` under StakeCentile committee selection. WfaLs and EveryoneVotes keep their head-count semantics. The aggregator's per-voter weight unit is now mode-polymorphic — seats for WfaLs, 1 for Everyone, voter stake for StakeCentile — and the denominator returned by `committee::expected_total_weight` matches. `wfa.rs` is renamed to `committee.rs` since wFA^LS is one of three schemes now, not the only one. `voter_weights` and the `weight` parameter widen from u32 to u64 so stake values fit; quorum comparisons follow. `ElectionsConfig::validate()` enforces σ_c > τ at startup for StakeCentile (PR #1196 §"Quorum as a stake threshold"); both the sim-rs adapter and net-rs net-node panic on a misconfigured set. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Merge pull request #905 from input-output-hk/prc/con-allow-eb-and-inline
shared-consensus: let RB body and EB announcement coexist on overflow
Add custom validator and generator for sets
improve verification result handling
Add subtransactions custom generator
Add custom generator to constr