IntersectMBO / plutus-apps

The Plutus application platform
Apache License 2.0
305 stars 213 forks source link

Adapt helper functions in `marconi-chain-index` test-lib to support multiple era. #979

Closed koslambrou closed 1 year ago

koslambrou commented 1 year ago

Rational is that we currently need to work with an older version of cardano-testnet which only supports eras up to Alonzo. However, in those test cases, we want to create transaction with Babbage era. Thus, in order to limit duplication, this commit adapts the existing helper functions to work with any era.

I worked on this issue because it was needed for another coming PR about adding some new test cases which reuse the functionalities in the helper modules (like emptyTxBodyContent, but with Babbage era instead of Alonzo)

@james-iohk @eyeinsky I made some opinionated changes here. Feel free to request changes or start a discussion.

@james-iohk Some stuff here might be useful for you in the cardano-e2e-tests.

Pre-submit checklist:

catch-21 commented 1 year ago

older version of cardano-testnet which only supports eras up to Alonzo.

The 1.35.4 cardano-testnet we use does support Babbage. We use it in e2e tests.

catch-21 commented 1 year ago

If we can, we should somehow join the effort with @james-iohk e2e testing, perhaps make plutus-e2e-tests have a library part and make marconi depend on that?

Yeah, not saying the current e2e tests is the best way of doing things but it would make sense to share all we can.

koslambrou commented 1 year ago

The 1.35.4 cardano-testnet we use does support Babbage. We use it in e2e tests

@james-iohk I'll double-check, but I'm pretty sure that it does not. Yes, there is the Testnet.Babbage module, but I needed to use the Testnet.Cardano module in order to be able to run a testnet for multiple eras. The main reason was that the testnet helper in Marconi functions only worked on eras until Alonzo.

What's missing is the Babbage dataconstructor in the Testnet.Cardano.Era datatype.

catch-21 commented 1 year ago

What's missing is the Babbage dataconstructor in the Testnet.Cardano.Era datatype.

True. This was one reason why e2e tests need the slightly modified cardano-testnet. If marconi only needs Alonzo and Babbage then we can use this in the mean time once #977 is merged https://github.com/input-output-hk/plutus-apps/blob/56ccc5f8ce902904ce59f3f02995924e33289e9f/plutus-e2e-tests/test/CardanoTestnet.hs#L67

koslambrou commented 1 year ago

@james-iohk @eyeinsky Since I need this for another PR, I suggest we merge this one. However, as we will meetup to work on a common framework, we'll address the several issues mentioned in this PR.