Add wrap constructor to V1/V2 StakeCredential #1023
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.
I'm not entirely sure if this is the right approach, but I wanted to suggest a potential solution to the missing constructor when a V1/V2 validator Purpose is of the Rewarding type. In such cases, the StakingCredential type must be wrapped in a StakingHash constructor as per the Plutus Ledger API for V1/V2:
Previous Aiken versions used to encode the StakeCredential as follows:
121([_ 122([_ h\'524A8B6C686BF0C225C8BC8EB63100BDF1047A35599626878EDF3BFE\'])])
For V3, however, this extra constructor in the Rewarding Purpose is not required , which seems to be correctly reflected in the latest Aiken version:
I'd also suggest renaming StakeCredential to Credential, as the current name can be misleading.