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

Delete TxFeesExplicitInEra and TxFeesImplicitInEra #244

Merged

Conversation

newhoggy
Copy link
Collaborator

@newhoggy newhoggy commented Sep 14, 2023

Changelog

- description: |
    Delete `TxFeesExplicitInEra` and `TxFeesImplicitInEra`
    New `ByronEraOnly` feature
    Move `ShelleyBasedEra` into its own module as it is a legitimate feature
# 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

Feature types make these types unnecessary.

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

@newhoggy newhoggy changed the title Delete TxFeesExplicitInEra and TxFeesImplicitInEra` Delete TxFeesExplicitInEra and TxFeesImplicitInEra Sep 14, 2023
@newhoggy newhoggy force-pushed the newhoggy/delete-TxFeesExplicitInEra-and-TxFeesImplicitInEra branch from ddef9c8 to 95bedc8 Compare September 14, 2023 07:17
@newhoggy newhoggy marked this pull request as ready for review September 14, 2023 07:18
@newhoggy newhoggy force-pushed the newhoggy/delete-TxFeesExplicitInEra-and-TxFeesImplicitInEra branch from 95bedc8 to ac738db Compare September 14, 2023 07:24
@@ -983,7 +981,7 @@ makeTransactionBodyAutoBalance systemstart history lpp@(LedgerProtocolParameters
let (dummyCollRet, dummyTotColl) = maybeDummyTotalCollAndCollReturnOutput txbodycontent changeaddr
txbody1 <- first TxBodyError $ -- TODO: impossible to fail now
createAndValidateTransactionBody txbodycontent1 {
txFee = TxFeeExplicit explicitTxFees $ Lovelace (2^(32 :: Integer) - 1),
txFee = TxFeeExplicit sbe $ Lovelace (2^(32 :: Integer) - 1),
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

We can just provide sbe as the witness instead of make up another one.

caseByronOrShelleyBasedEra
TxFeeImplicit
(\w -> TxFeeExplicit w mempty)
(cardanoEra @era)
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

We can using casing functions now, avoiding the need to enumerate all eras.

fromShelleyLovelace $ body ^. L.feeTxBodyL
shelleyBasedEraConstraints sbe
$ TxFeeExplicit sbe
$ fromShelleyLovelace $ body ^. L.feeTxBodyL
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

We can use sbe here as well and not have to enumerate all eras and use constraints functions to summon constraints.

@newhoggy newhoggy force-pushed the newhoggy/delete-TxFeesExplicitInEra-and-TxFeesImplicitInEra branch 2 times, most recently from e0eff20 to 5f35c61 Compare September 14, 2023 08:43
Copy link
Contributor

@Jimbo4350 Jimbo4350 left a comment

Choose a reason for hiding this comment

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

No, I disagree. The era itself isn't a feature, it represents a boundary between feature sets IMO.

@@ -984,7 +981,7 @@ makeTransactionBodyAutoBalance systemstart history lpp@(LedgerProtocolParameters
let (dummyCollRet, dummyTotColl) = maybeDummyTotalCollAndCollReturnOutput txbodycontent changeaddr
txbody1 <- first TxBodyError $ -- TODO: impossible to fail now
createAndValidateTransactionBody txbodycontent1 {
txFee = TxFeeExplicit explicitTxFees $ Lovelace (2^(32 :: Integer) - 1),
txFee = TxFeeExplicit sbe $ Lovelace (2^(32 :: Integer) - 1),
Copy link
Contributor

@Jimbo4350 Jimbo4350 Sep 14, 2023

Choose a reason for hiding this comment

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

The explicit/implicit refactoring looks good.

@newhoggy
Copy link
Collaborator Author

newhoggy commented Sep 15, 2023

No, I disagree. The era itself isn't a feature, it represents a boundary between feature sets IMO.

Maybe Feature is not the right word? Stuff like ShelleyToBabbageEra and ConwayEraOnwards are more like era selectors for other things that are features. BabbageEraOnly has that kind of shape.

If we had another word to replace Feature that fit, I think it would work.

@Jimbo4350
Copy link
Contributor

No, I disagree. The era itself isn't a feature, it represents a boundary between feature sets IMO.

Maybe Feature is not the right word? Stuff like ShelleyToBabbageEra and ConwayEraOnwards are more like era selectors for other things that are features. BabbageEraOnly has that kind of shape.

If we had another word to replace Feature that fit, I think it would work.

I don't think it's worth the churn. However the fee refactoring is good.

@newhoggy newhoggy force-pushed the newhoggy/delete-TxFeesExplicitInEra-and-TxFeesImplicitInEra branch from 5f35c61 to 7e4c46e Compare September 19, 2023 02:59
@newhoggy newhoggy force-pushed the newhoggy/delete-TxFeesExplicitInEra-and-TxFeesImplicitInEra branch from 7e4c46e to 37d672e Compare September 20, 2023 22:03
@newhoggy newhoggy requested a review from Jimbo4350 September 20, 2023 22:03
@newhoggy newhoggy dismissed Jimbo4350’s stale review September 20, 2023 22:04

Comments addressed

@newhoggy newhoggy enabled auto-merge September 20, 2023 22:05
@newhoggy
Copy link
Collaborator Author

FeatureInEra has been renamed to Eon so the misnaming doesn't apply anymore.

@newhoggy newhoggy added this pull request to the merge queue Sep 20, 2023
Merged via the queue into main with commit 039693b Sep 20, 2023
20 checks passed
@newhoggy newhoggy deleted the newhoggy/delete-TxFeesExplicitInEra-and-TxFeesImplicitInEra branch September 20, 2023 22:34
newhoggy added a commit that referenced this pull request Mar 11, 2024
…d-prefix-from-era-based-commands

Remove `EraBased` prefix from era-based commands
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