Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CIP-0033 | update to ban reference scripts in the presence of old scripts #213

Merged
merged 1 commit into from
May 11, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions CIP-0033/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ Changing the script context will require a new Plutus language version in the le
The change is: a new optional field is added to outputs and inputs to represent reference scripts.
Reference scripts are represented by their hash in the script context.

Old versions of the language will retain the old interface.
We do not propose to try and include information about reference scripts in the old interface.
The interface for old versions of the language will not be changed.
Scripts with old versions cannot be spent in transactions that include reference scripts, attempting to do so will be a phase 1 transaction validation failure.

### CDDL

Expand Down Expand Up @@ -115,3 +115,9 @@ We could simply omit any information about reference scripts carried by outputs.
This would mean that we don't need to change the interface.

We don't have obvious use cases for the information about reference scripts, but the community may come up with use cases, and our general policy is to try and include as much information about the transaction as we can, unless there is a good reason not to.

We also have the question of what to do about old scripts.
We can't really present the information about reference scripts to them in a faithful way, there is nowhere to put hte information.
We could omit the information entirely, but this is dangerous in a different way.
Omitting information may lead scripts to make assumptions about the transaction that are untrue; for this reason we prefer not to silently omit information as a general principle.
That leaves us only one option: reject transactions where we would have to present information about reference scripts to old scripts.