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

Upgrade to cardano-api-8.21.0.0 #304

Merged
merged 1 commit into from
Sep 27, 2023
Merged

Conversation

newhoggy
Copy link
Contributor

@newhoggy newhoggy commented Sep 22, 2023

Changelog

- description: |
    Upgrade to `cardano-api-8.21.0.0`
# 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

Depends on IntersectMBO/cardano-api#262

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 marked this pull request as ready for review September 22, 2023 13:31
Copy link
Contributor

@carbolymer carbolymer left a comment

Choose a reason for hiding this comment

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

needs flake.lock and cabal.project update

@newhoggy newhoggy force-pushed the newhoggy/ugprade-to-8.21.0.0 branch from 0d53054 to 7b5a9da Compare September 26, 2023 10:30
@newhoggy newhoggy requested review from a team as code owners September 26, 2023 10:30
@newhoggy newhoggy requested a review from carbolymer September 26, 2023 10:30
@newhoggy newhoggy force-pushed the newhoggy/ugprade-to-8.21.0.0 branch 2 times, most recently from ada3b0d to e7c48b7 Compare September 26, 2023 11:29
@newhoggy newhoggy requested a review from smelc September 26, 2023 11:35
@newhoggy newhoggy force-pushed the newhoggy/ugprade-to-8.21.0.0 branch from e7c48b7 to bd8ec85 Compare September 26, 2023 11:49
@newhoggy newhoggy force-pushed the newhoggy/ugprade-to-8.21.0.0 branch from bd8ec85 to 27df686 Compare September 26, 2023 13:07
@newhoggy newhoggy enabled auto-merge September 26, 2023 13:08
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.

Looks good but blocked on one concern: #304 (comment)

Please also have QA run their tests on this PR just to make sure nothing is broken.

then error $ show l <> " lovelace exceeds the Word64 upper bound"
else TxOutAdaOnly AdaOnlyInByronEra . Lovelace $ toInteger l
then error $ show l <> " lovelace exceeds the Word64 upper bound"
else TxOutAdaOnly ByronToAllegraEraByron . Lovelace $ toInteger l
Copy link
Contributor

Choose a reason for hiding this comment

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

👍

@@ -206,7 +206,7 @@ txSpendUTxOByronPBFT nId sk txIns outs = do
, txOuts = outs
, txTotalCollateral = TxTotalCollateralNone
, txReturnCollateral = TxReturnCollateralNone
, txFee = TxFeeImplicit TxFeesImplicitInByronEra
, txFee = TxFeeImplicit ByronEraOnlyByron
Copy link
Contributor

Choose a reason for hiding this comment

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

Why not ByronEraOnly?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We can do that. I'll put a PR to remove the era suffix for all the Only eons.

@@ -44,7 +44,7 @@ pGovernanceCmds era envCli =

pCreateMirCertificatesCmds :: CardanoEra era -> Maybe (Parser (GovernanceCmds era))
pCreateMirCertificatesCmds era = do
w <- maybeFeatureInEra era
w <- maybeEonInEra era
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 rethink these names. They are confusing. maybeEonInEra does not make sense and we're going to have to break the API again :(

<- caseByronToMaryOrAlonzoEraOnwards
(\_ ->
caseByronToAlonzoOrBabbageEraOnwards
(const $ pure (TxOutDatumNone, ReferenceScriptNone))
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.

I'm confused here. Shouldn't the first case be:

caseByronToMaryOrAlonzoEraOnwards
  (\_ -> const $ pure (TxOutDatumNone, ReferenceScriptNone))
  ...

And then it looks like we are missing: caseAlonzoOnlyOrBabbageEraOnwards to handle the second callback.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Added.

caseByronToAlonzoOrBabbageEraOnwards
(const $ pure (TxOutDatumNone, ReferenceScriptNone))
-- TODO: Figure out how to make this state unrepresentable
(const $ error "toTxOutInAnyEra: Should not be possible that inline datums are allowed but datums are not")
Copy link
Contributor

Choose a reason for hiding this comment

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

It seems like we still haven't found the "perfect" abstraction 😆

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This case no longer exists.

<$> firstExceptT TxCmdScriptFileError (readFileScriptInAnyLang fp)

toTxDatumReferenceScriptBabbage :: ()
=> AlonzoEraOnwards era
Copy link
Contributor

Choose a reason for hiding this comment

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

Yep, looks like we need caseAlonzoOnlyOrBabbageEraOnwards

@newhoggy newhoggy force-pushed the newhoggy/ugprade-to-8.21.0.0 branch from 27df686 to 6bda43c Compare September 27, 2023 11:51
@newhoggy newhoggy force-pushed the newhoggy/ugprade-to-8.21.0.0 branch from 6bda43c to d93346e Compare September 27, 2023 12:04
@newhoggy newhoggy dismissed Jimbo4350’s stale review September 27, 2023 12:04

Addressed review comments

@newhoggy newhoggy requested a review from Jimbo4350 September 27, 2023 12:04
@newhoggy newhoggy added this pull request to the merge queue Sep 27, 2023
@carbolymer carbolymer mentioned this pull request Sep 27, 2023
10 tasks
Merged via the queue into main with commit 795931e Sep 27, 2023
19 checks passed
@newhoggy newhoggy deleted the newhoggy/ugprade-to-8.21.0.0 branch September 27, 2023 12:34
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.

4 participants