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

Fix missing redeemers in certificate deregistration #268

Merged

Conversation

carbolymer
Copy link
Contributor

@carbolymer carbolymer commented Sep 25, 2023

Changelog

- description: |
    Fix missing redeemers in certificate deregistration
# uncomment types applicable to the change:
  type:
  # - feature        # introduces a new feature
  # - breaking       # the API has changed in a breaking way
  # - compatible     # the API has changed but is non-breaking
  # - optimisation   # measurable performance improvements
  # - improvement    # QoL changes e.g. refactoring
   - bugfix         # fixes a defect
  # - test           # fixes/modifies tests
  # - maintenance    # not directly related to the code
  # - release        # related to a new release preparation
  # - documentation  # change in code docs, haddocks...

Context

Part of:

Prerequisite of:

Checklist

  • Commit sequence broadly makes sense and commits have useful messages
  • The change log section in the PR description has been filled in
  • New tests are added if needed and existing tests are updated. These may include:
    • golden tests
    • property tests
    • round trip tests
    • integration tests
      See Running tests for more details
  • The version bounds in .cabal files are updated
  • CI passes. See note on CI. The following CI checks are required:
    • Code is linted with hlint. See .github/workflows/check-hlint.yml to get the hlint version
    • Code is formatted with stylish-haskell. See .github/workflows/stylish-haskell.yml to get the stylish-haskell version
    • Code builds on Linux, MacOS and Windows for ghc-8.10.7 and ghc-9.2.7
  • The changelog section in the PR is updated to describe the change
  • Self-reviewed the diff

@carbolymer carbolymer force-pushed the mgalazyn/fix/missing-redeemers-when-sending-transaction branch 2 times, most recently from 60447b4 to 27c9133 Compare September 26, 2023 12:11
@carbolymer carbolymer changed the title Fix missing redeemers in certificate delegation and deregistration Fix missing redeemers in certificate deregistration Sep 26, 2023
@carbolymer carbolymer force-pushed the mgalazyn/fix/missing-redeemers-when-sending-transaction branch from 27c9133 to dfbae6f Compare September 26, 2023 12:18
@carbolymer carbolymer force-pushed the mgalazyn/fix/missing-redeemers-when-sending-transaction branch from dfbae6f to 2fa9f38 Compare September 26, 2023 12:18
@carbolymer carbolymer marked this pull request as ready for review September 26, 2023 12:18
@carbolymer carbolymer added this pull request to the merge queue Sep 26, 2023
Merged via the queue into main with commit 59e5b9c Sep 26, 2023
@carbolymer carbolymer deleted the mgalazyn/fix/missing-redeemers-when-sending-transaction branch September 26, 2023 14:12
Just . Ledger.coerceKeyRole . Ledger.KeyHashObj $ Ledger.ppId poolParams
Ledger.RetirePoolTxCert poolId _ ->
Just . Ledger.coerceKeyRole $ Ledger.KeyHashObj poolId
_ -> Nothing
Copy link
Contributor

@Jimbo4350 Jimbo4350 Sep 26, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's handle all of the certificates for completeness

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

follow up: #277

Ledger.UnRegTxCert sCred -> Just sCred
Ledger.DelegStakeTxCert sCred _ -> Just sCred
Ledger.RegPoolTxCert poolParams ->
Just . Ledger.coerceKeyRole . Ledger.KeyHashObj $ Ledger.ppId poolParams
Copy link
Contributor

@Jimbo4350 Jimbo4350 Sep 26, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to think about our StakeCredential type because we are coercing from the keyrole Ledger.StakePool. We really should try to avoid breaking the ledger interface even if we think it looks "ok" to do so. The key role at the moment has no semantic meaning, it's just a tag, but we don't want to get bitten unexpectedly by this in the future because it's not guaranteed that this won't change.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

follow up: #341

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants