Plutus V2 to fail phase 1 validation on Byron addr #2617
Merged
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.
In Plutus V1, we do not pass Byron addresses to the transaction context which is passed to Plutus, they are silently omitted. This includes both transaction inputs and outputs. Starting at major protocol version 7, we want to instead cause a phase 1 validation error instead. This PR does exactly that.
Additionally, this PR introduces a policy change for the
TxInfo
creation code: any time it sees something it can't deal with it forces a phase 1 validation error instead of ignoring it. In particular, two new logic errors are introduced, one for unknown transaction inputs (this is a logic error since the ledger already checks this) and one for unknown redeemer pointers (also something that the ledger already checks).Note that with the introduction of the babbage, it will probably not make sense for alonzo to have logic for Plutus V2. This is because the Plutus V2 context will probably contain a new field, namely reference inputs (as opposed to just combining them with the usual inputs). We can adapt accordingly when the time comes.
closes #2612