Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions cabal.project
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ source-repository-package
-- NOTE: If you would like to update the above,
-- see CONTRIBUTING.md#to-update-the-referenced-agda-ledger-spec
index-state:
, hackage.haskell.org 2025-06-11T21:55:55Z
, cardano-haskell-packages 2025-06-11T08:32:56Z
, hackage.haskell.org 2025-08-05T00:00:00Z
, cardano-haskell-packages 2025-08-14T14:31:31Z

packages:
-- == Byron era ==
Expand Down Expand Up @@ -96,3 +96,9 @@ if impl(ghc >=9.12)
allow-newer:
-- Unique: https://github.com/kapralVV/Unique/issues/11
, Unique:hashable
-- See https://github.com/IntersectMBO/cardano-haskell-packages/issues/1123
allow-newer:
-- https://github.com/phadej/vec/issues/121
ral:QuickCheck,
fin:QuickCheck,
bin:QuickCheck,
1 change: 1 addition & 0 deletions eras/allegra/impl/cardano-ledger-allegra.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ library testlib
Test.Cardano.Ledger.Allegra.Binary.Cddl
Test.Cardano.Ledger.Allegra.CDDL
Test.Cardano.Ledger.Allegra.Era
Test.Cardano.Ledger.Allegra.Era.Spec
Test.Cardano.Ledger.Allegra.Examples
Test.Cardano.Ledger.Allegra.Imp
Test.Cardano.Ledger.Allegra.Imp.UtxowSpec
Expand Down
4 changes: 3 additions & 1 deletion eras/allegra/impl/test/Main.hs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ module Main where
import Cardano.Ledger.Allegra (AllegraEra)
import qualified Test.Cardano.Ledger.Allegra.Binary.CddlSpec as CddlSpec
import qualified Test.Cardano.Ledger.Allegra.BinarySpec as BinarySpec
import Test.Cardano.Ledger.Allegra.Era.Spec (allegraEraSpec)
import qualified Test.Cardano.Ledger.Allegra.Imp as Imp
import Test.Cardano.Ledger.Allegra.ImpTest ()
import Test.Cardano.Ledger.Common
Expand All @@ -13,7 +14,8 @@ import Test.Cardano.Ledger.Shelley.JSON (roundTripJsonShelleyEraSpec)

main :: IO ()
main =
ledgerTestMain $
ledgerTestMain $ do
allegraEraSpec @AllegraEra
describe "Allegra" $ do
BinarySpec.spec
CddlSpec.spec
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import Cardano.Ledger.Allegra
import Cardano.Ledger.Allegra.Core
import Cardano.Ledger.Allegra.Scripts
import Cardano.Ledger.Plutus (emptyCostModels)
import Paths_cardano_ledger_allegra
import Test.Cardano.Ledger.Allegra.Arbitrary ()
import Test.Cardano.Ledger.Allegra.TreeDiff ()
import Test.Cardano.Ledger.Shelley.Era
Expand All @@ -25,6 +26,8 @@ class
instance EraTest AllegraEra where
zeroCostModels = emptyCostModels

getEraDataFileName = getDataFileName

mkTestAccountState = mkShelleyTestAccountState

accountsFromAccountsMap = shelleyAccountsFromAccountsMap
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}

module Test.Cardano.Ledger.Allegra.Era.Spec (
allegraEraSpec,
) where

import Test.Cardano.Ledger.Allegra.ImpTest
import Test.Cardano.Ledger.Imp.Common
import Test.Cardano.Ledger.Shelley.Era.Spec (shelleyEraSpec)

-- | This spec is applicable to all eras and will be executed for every era starting with Allegra.
allegraEraSpec :: forall era. ShelleyEraImp era => Spec
allegraEraSpec = do
shelleyEraSpec @era
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ import Test.Cardano.Ledger.Allegra.TreeDiff ()
import Test.Cardano.Ledger.Core.KeyPair (KeyPair)
import Test.Cardano.Ledger.Shelley.ImpTest

instance EraImp AllegraEra

instance ShelleyEraImp AllegraEra where
impSatisfyNativeScript = impAllegraSatisfyNativeScript

Expand All @@ -55,7 +57,7 @@ impAllegraSatisfyNativeScript ::
impAllegraSatisfyNativeScript providedVKeyHashes txBody script = do
impState <- get
let
keyPairs = impState ^. impKeyPairsG
keyPairs = impState ^. keyPairsL
vi = txBody ^. vldtTxBodyL
satisfyMOf m Empty
| m <= 0 = Just mempty
Expand Down
1 change: 1 addition & 0 deletions eras/alonzo/impl/cardano-ledger-alonzo.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ library testlib
Test.Cardano.Ledger.Alonzo.Binary.TxWitsSpec
Test.Cardano.Ledger.Alonzo.CDDL
Test.Cardano.Ledger.Alonzo.Era
Test.Cardano.Ledger.Alonzo.Era.Spec
Test.Cardano.Ledger.Alonzo.Examples
Test.Cardano.Ledger.Alonzo.Imp
Test.Cardano.Ledger.Alonzo.Imp.UtxoSpec
Expand Down
196 changes: 196 additions & 0 deletions eras/alonzo/impl/golden/json/alonzo-genesis.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@
{
"lovelacePerUTxOWord": 34482,
"executionPrices": {
"prSteps":
{
"numerator" : 721,
"denominator" : 10000000
},
"prMem":
{
"numerator" : 577,
"denominator" : 10000
}
},
"maxTxExUnits": {
"exUnitsMem": 10000000,
"exUnitsSteps": 10000000000
},
"maxBlockExUnits": {
"exUnitsMem": 50000000,
"exUnitsSteps": 40000000000
},
"maxValueSize": 5000,
"collateralPercentage": 150,
"maxCollateralInputs": 3,
"costModels": {
"PlutusV1": {
"addInteger-cpu-arguments-intercept": 100788,
"addInteger-cpu-arguments-slope": 420,
"addInteger-memory-arguments-intercept": 1,
"addInteger-memory-arguments-slope": 1,
"appendByteString-cpu-arguments-intercept": 1000,
"appendByteString-cpu-arguments-slope": 173,
"appendByteString-memory-arguments-intercept": 0,
"appendByteString-memory-arguments-slope": 1,
"appendString-cpu-arguments-intercept": 1000,
"appendString-cpu-arguments-slope": 59957,
"appendString-memory-arguments-intercept": 4,
"appendString-memory-arguments-slope": 1,
"bData-cpu-arguments": 11183,
"bData-memory-arguments": 32,
"blake2b-cpu-arguments-intercept": 201305,
"blake2b-cpu-arguments-slope": 8356,
"blake2b-memory-arguments": 4,
"cekApplyCost-exBudgetCPU": 16000,
"cekApplyCost-exBudgetMemory": 100,
"cekBuiltinCost-exBudgetCPU": 16000,
"cekBuiltinCost-exBudgetMemory": 100,
"cekConstCost-exBudgetCPU": 16000,
"cekConstCost-exBudgetMemory": 100,
"cekDelayCost-exBudgetCPU": 16000,
"cekDelayCost-exBudgetMemory": 100,
"cekForceCost-exBudgetCPU": 16000,
"cekForceCost-exBudgetMemory": 100,
"cekLamCost-exBudgetCPU": 16000,
"cekLamCost-exBudgetMemory": 100,
"cekStartupCost-exBudgetCPU": 100,
"cekStartupCost-exBudgetMemory": 100,
"cekVarCost-exBudgetCPU": 16000,
"cekVarCost-exBudgetMemory": 100,
"chooseData-cpu-arguments": 94375,
"chooseData-memory-arguments": 32,
"chooseList-cpu-arguments": 132994,
"chooseList-memory-arguments": 32,
"chooseUnit-cpu-arguments": 61462,
"chooseUnit-memory-arguments": 4,
"consByteString-cpu-arguments-intercept": 72010,
"consByteString-cpu-arguments-slope": 178,
"consByteString-memory-arguments-intercept": 0,
"consByteString-memory-arguments-slope": 1,
"constrData-cpu-arguments": 22151,
"constrData-memory-arguments": 32,
"decodeUtf8-cpu-arguments-intercept": 91189,
"decodeUtf8-cpu-arguments-slope": 769,
"decodeUtf8-memory-arguments-intercept": 4,
"decodeUtf8-memory-arguments-slope": 2,
"divideInteger-cpu-arguments-constant": 85848,
"divideInteger-cpu-arguments-model-arguments-intercept": 228465,
"divideInteger-cpu-arguments-model-arguments-slope": 122,
"divideInteger-memory-arguments-intercept": 0,
"divideInteger-memory-arguments-minimum": 1,
"divideInteger-memory-arguments-slope": 1,
"encodeUtf8-cpu-arguments-intercept": 1000,
"encodeUtf8-cpu-arguments-slope": 42921,
"encodeUtf8-memory-arguments-intercept": 4,
"encodeUtf8-memory-arguments-slope": 2,
"equalsByteString-cpu-arguments-constant": 24548,
"equalsByteString-cpu-arguments-intercept": 29498,
"equalsByteString-cpu-arguments-slope": 38,
"equalsByteString-memory-arguments": 1,
"equalsData-cpu-arguments-intercept": 898148,
"equalsData-cpu-arguments-slope": 27279,
"equalsData-memory-arguments": 1,
"equalsInteger-cpu-arguments-intercept": 51775,
"equalsInteger-cpu-arguments-slope": 558,
"equalsInteger-memory-arguments": 1,
"equalsString-cpu-arguments-constant": 39184,
"equalsString-cpu-arguments-intercept": 1000,
"equalsString-cpu-arguments-slope": 60594,
"equalsString-memory-arguments": 1,
"fstPair-cpu-arguments": 141895,
"fstPair-memory-arguments": 32,
"headList-cpu-arguments": 83150,
"headList-memory-arguments": 32,
"iData-cpu-arguments": 15299,
"iData-memory-arguments": 32,
"ifThenElse-cpu-arguments": 76049,
"ifThenElse-memory-arguments": 1,
"indexByteString-cpu-arguments": 13169,
"indexByteString-memory-arguments": 4,
"lengthOfByteString-cpu-arguments": 22100,
"lengthOfByteString-memory-arguments": 10,
"lessThanByteString-cpu-arguments-intercept": 28999,
"lessThanByteString-cpu-arguments-slope": 74,
"lessThanByteString-memory-arguments": 1,
"lessThanEqualsByteString-cpu-arguments-intercept": 28999,
"lessThanEqualsByteString-cpu-arguments-slope": 74,
"lessThanEqualsByteString-memory-arguments": 1,
"lessThanEqualsInteger-cpu-arguments-intercept": 43285,
"lessThanEqualsInteger-cpu-arguments-slope": 552,
"lessThanEqualsInteger-memory-arguments": 1,
"lessThanInteger-cpu-arguments-intercept": 44749,
"lessThanInteger-cpu-arguments-slope": 541,
"lessThanInteger-memory-arguments": 1,
"listData-cpu-arguments": 33852,
"listData-memory-arguments": 32,
"mapData-cpu-arguments": 68246,
"mapData-memory-arguments": 32,
"mkCons-cpu-arguments": 72362,
"mkCons-memory-arguments": 32,
"mkNilData-cpu-arguments": 7243,
"mkNilData-memory-arguments": 32,
"mkNilPairData-cpu-arguments": 7391,
"mkNilPairData-memory-arguments": 32,
"mkPairData-cpu-arguments": 11546,
"mkPairData-memory-arguments": 32,
"modInteger-cpu-arguments-constant": 85848,
"modInteger-cpu-arguments-model-arguments-intercept": 228465,
"modInteger-cpu-arguments-model-arguments-slope": 122,
"modInteger-memory-arguments-intercept": 0,
"modInteger-memory-arguments-minimum": 1,
"modInteger-memory-arguments-slope": 1,
"multiplyInteger-cpu-arguments-intercept": 90434,
"multiplyInteger-cpu-arguments-slope": 519,
"multiplyInteger-memory-arguments-intercept": 0,
"multiplyInteger-memory-arguments-slope": 1,
"nullList-cpu-arguments": 74433,
"nullList-memory-arguments": 32,
"quotientInteger-cpu-arguments-constant": 85848,
"quotientInteger-cpu-arguments-model-arguments-intercept": 228465,
"quotientInteger-cpu-arguments-model-arguments-slope": 122,
"quotientInteger-memory-arguments-intercept": 0,
"quotientInteger-memory-arguments-minimum": 1,
"quotientInteger-memory-arguments-slope": 1,
"remainderInteger-cpu-arguments-constant": 85848,
"remainderInteger-cpu-arguments-model-arguments-intercept": 228465,
"remainderInteger-cpu-arguments-model-arguments-slope": 122,
"remainderInteger-memory-arguments-intercept": 0,
"remainderInteger-memory-arguments-minimum": 1,
"remainderInteger-memory-arguments-slope": 1,
"sha2_256-cpu-arguments-intercept": 270652,
"sha2_256-cpu-arguments-slope": 22588,
"sha2_256-memory-arguments": 4,
"sha3_256-cpu-arguments-intercept": 1457325,
"sha3_256-cpu-arguments-slope": 64566,
"sha3_256-memory-arguments": 4,
"sliceByteString-cpu-arguments-intercept": 20467,
"sliceByteString-cpu-arguments-slope": 1,
"sliceByteString-memory-arguments-intercept": 4,
"sliceByteString-memory-arguments-slope": 0,
"sndPair-cpu-arguments": 141992,
"sndPair-memory-arguments": 32,
"subtractInteger-cpu-arguments-intercept": 100788,
"subtractInteger-cpu-arguments-slope": 420,
"subtractInteger-memory-arguments-intercept": 1,
"subtractInteger-memory-arguments-slope": 1,
"tailList-cpu-arguments": 81663,
"tailList-memory-arguments": 32,
"trace-cpu-arguments": 59498,
"trace-memory-arguments": 32,
"unBData-cpu-arguments": 20142,
"unBData-memory-arguments": 32,
"unConstrData-cpu-arguments": 24588,
"unConstrData-memory-arguments": 32,
"unIData-cpu-arguments": 20744,
"unIData-memory-arguments": 32,
"unListData-cpu-arguments": 25933,
"unListData-memory-arguments": 32,
"unMapData-cpu-arguments": 24623,
"unMapData-memory-arguments": 32,
"verifySignature-cpu-arguments-intercept": 53384111,
"verifySignature-cpu-arguments-slope": 14333,
"verifySignature-memory-arguments": 10
}
}
}
4 changes: 3 additions & 1 deletion eras/alonzo/impl/test/Main.hs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import qualified Test.Cardano.Ledger.Alonzo.Binary.CddlSpec as CddlSpec
import qualified Test.Cardano.Ledger.Alonzo.Binary.CostModelsSpec as CostModelsSpec
import qualified Test.Cardano.Ledger.Alonzo.Binary.TxWitsSpec as TxWitsSpec
import qualified Test.Cardano.Ledger.Alonzo.BinarySpec as BinarySpec
import Test.Cardano.Ledger.Alonzo.Era.Spec (alonzoEraSpec)
import qualified Test.Cardano.Ledger.Alonzo.GoldenSpec as Golden
import qualified Test.Cardano.Ledger.Alonzo.GoldenTranslation as GoldenTranslation
import qualified Test.Cardano.Ledger.Alonzo.Imp as Imp
Expand All @@ -19,7 +20,8 @@ import Test.Cardano.Ledger.Shelley.JSON (roundTripJsonShelleyEraSpec)

main :: IO ()
main =
ledgerTestMain $
ledgerTestMain $ do
alonzoEraSpec @AlonzoEra
describe "Alonzo" $ do
BinarySpec.spec
Canonical.spec
Expand Down
3 changes: 3 additions & 0 deletions eras/alonzo/impl/testlib/Test/Cardano/Ledger/Alonzo/Era.hs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import Cardano.Ledger.Alonzo.Plutus.Context
import Cardano.Ledger.Alonzo.UTxO
import Cardano.Ledger.Plutus (Language (..))
import Data.TreeDiff
import Paths_cardano_ledger_alonzo
import Test.Cardano.Ledger.Alonzo.Arbitrary ()
import Test.Cardano.Ledger.Alonzo.TreeDiff ()
import Test.Cardano.Ledger.Mary.Era
Expand All @@ -36,6 +37,8 @@ class
instance EraTest AlonzoEra where
zeroCostModels = zeroTestingCostModels [PlutusV1]

getEraDataFileName = getDataFileName

mkTestAccountState = mkShelleyTestAccountState

accountsFromAccountsMap = shelleyAccountsFromAccountsMap
Expand Down
16 changes: 16 additions & 0 deletions eras/alonzo/impl/testlib/Test/Cardano/Ledger/Alonzo/Era/Spec.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}

module Test.Cardano.Ledger.Alonzo.Era.Spec (
alonzoEraSpec,
) where

import Test.Cardano.Ledger.Alonzo.ImpTest
import Test.Cardano.Ledger.Imp.Common
import Test.Cardano.Ledger.Mary.Era.Spec (maryEraSpec)

-- | This spec is applicable to all eras and will be executed for every era starting with Alonzo.
alonzoEraSpec :: forall era. AlonzoEraImp era => Spec
alonzoEraSpec = do
maryEraSpec @era
Loading
Loading