Repository navigation
Conversation
colll78
marked this pull request as ready for review
October 8, 2026 01:35
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Construct Dijkstra Receiving witnesses using
Map Word32 (AnyScriptWitness era), keyed by each protected output's original body-local position.Same-hash and identical Plutus outputs retain separate contexts and budgets. Native scripts and authorization remain shared by hash, without Plutus redeemers. Protected key signatures remain deduplicated.
Balancing and offline fee estimation preserve authored output positions and append change. Balancing evaluates final outputs, including protected change, preserves each output's budget and isolates parent/child reports. Fees include recipient/native signatures and unsigned child witness sizes. Construction rejects protected collateral returns and changes that invalidate signed children. Protected addresses retain their identity through API, RPC and WASM conversions.
RPC preserves separate Receiving indices, payloads, budgets and traces. Its current wire enum lacks Guarding and Receiving constructors, so both use
UNSPECIFIED; the API purposes remain typed.Dependencies are the coordinated ledger #1, Plutus #1, consensus 5.x #3, addresses #2, keys #2 and config #2 proposals. The normal project pins the published ledger
4b06e253and release consensus8268ddc7. API70415a82is signed and published; current-head fork CI passes at metadata childe645b7a4, as recorded below. The public consensus successor changes only disk fixtures; API production inputs and its recorded normal-graph proof remain valid.The ledger-state JSON adapter also follows the upstream six-field
NewEpochState: its existing six outer keys remain unchanged, andstakeDistribreads the current set-snapshot pool distribution. Nested ledger-state JSON/CBOR follows the upstream schema.Evidence
GitHub Actions runs in this fork. Earlier upstream CI links are historical evidence.
Fork head
e645b7a4is a changelog-metadata-only child of implementation/dependency pin70415a82: the existing Heraldprfields now identify this fork PR. The immutable parent dependency pins remain unchanged. All 13 applicable fork Actions workflows pass ate645b7a4, including native CI attempt 2, WASM CI and changelog validation.All local compilation/runtime evidence below uses GHC 9.6.7 with the coordinated native integration graph (
blockio +serialblockio,crypto -external-libsodium-vrf). Normal default-flag source resolution, Nix evaluation and remote CI are separate evidence.The preceding per-output implementation passed all 293 API units, 125 goldens and 171 RPC tests, with genuine repeated-output validators, budgets, reference fees and signatures. Its remote platform/build/binding checks passed, including WASM browser/Node/Elm regressions and generic binding quickstarts. A single synthetic extraction scaling run measured 29.146/61.544/129.120 µs at 101/201/401 Plutus outputs; it supplies no paired-baseline, allocation or script-resolution claim. These results retain their pre-upstream-state-migration scope.
DebugLedgerStateserialization passes against the fresh library: exactly six keys, epoch 7, an independently authored nonempty current SET pool/stake distribution, exclusion of a different MARK snapshot, andencode/toJSONequality. Actual library, harness and binary hashes were verified.eras/shelley/test-suite, selecting the migrated local package instead of the stale published test library. Fresh strict API/CLI/node-testnet and release-consensus builds pass; the original source-selection failure is retained. The recorded twelve-target build also included a tracer-test script now deferred outside the final CIP candidate, so the entire build is not presented as an exact final-candidate proof.Merge Danger
Door: two-way
Blast Radius: consumers
Address and body-content constructors change; proposed development versions are cardano-api 11.9 and cardano-api-gen 10.3. Dependency acceptance and protocol activation remain separate decisions. Independent upstream CI failures and external approval gates are tracked separately from the required API implementation and compatibility changes.
The upstream ledger-state JSON/CBOR schema changes with this dependency update. Existing outer JSON keys remain stable. Old persisted NES/Mark states require replay; current-format restart does not establish old-format restoration.