All notable changes to this repository will be documented in this file. At at later date we may adopt per-Haskell-package changelogs.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning in the naming of release branches.
- Create a
cardano-ledger-binary
package that does versioned serialization as a replacement forcardano-binary
package: #3063, #3078 - Start on the
cardano-ledger-api
package and implementsetMinCoinTxOut
+setMinCoinSizedTxOut
: #2995 - Added
getMinCoinTxOut
/getMinCoinSizedTxOut
toEraTxOut
: #3008 - Added
getMinFeeTx
toEraTx
- Added
datumTxOutF
toAlonzoEraTxOut
- Added
allInputsTxBodyF
- Added
EraUTxO
class withgetConsumedValue
- Added type synonyms for eras:
Shelley
,Allegra
,Mary
,Alonzo
,Babbage
andConway
. - Added
Twiddle
class to test alternative serializations: #2994 - Added
getScriptsNeeded
andgetScriptsHashesNeeded
toEraUTxO
class: #3019
-
Moved
Data.AbstractSize
fromcardano-data
tobyron-spec-ledger
#3046 -
Renamed in
Cardano.Ledger.Mary.Value
: #3047insert
toinsertMultiAsset
lookup
tolookupMultiAsset
-
Changed
mint
field type toMultiAsset (Crypto era)
inMATxBody
,AlonzoTxBody
,BabbageTxBody
#2954 -
All Shelley rules are now available through
Cadano.Ledger.Shelley.Rules
module: #2996 -
Renamed the
Crypto
dependent type in theEra
class toEraCrypto
#3009 -
Renamed in
Cardano.Ledger.Core
:EraWitnesses
toEraTxWits
Witnesses
toEraTxWits
mkBasicWitnesses
tomkBasicTxWits
addrWitsL
toaddrTxWitsL
bootAddrWitsL
tobootAddrTxWitsL
scriptWitsL
toscriptTxWitsL
-
Renamed in (new) module
Cardano.Ledger.Alonzo.TxWits
(renamed fromCardano.Ledger.Alonzo.TxWitness
):AlonzoEraWitnesses
toAlonzoEraTxWits
TxWitness
toAlonzoTxWits
addrAlonzoWitsL
toaddrAlonzoTxWitsL
bootAddrAlonzoWitsL
tobootAddrAlonzoTxWitsL
scriptAlonzoWitsL
toscriptAlonzoTxWitsL
datsWitsL
todatsTxWitsL
datsAlonzoWitsL
todatsAlonzoTxWitsL
rdmrsWitsL
tordmrsTxWitsL
rdmrsAlonzoWitsL
tordmrsAlonzoTxWitsL
-
Renamed in (new) module
Cardano.Ledger.Shelley.TxWits
(extracted fromCardano.Ledger.Shelley.Tx
):ShelleyWitnesses
toShelleyTxWits
addrShelleyWitsL
toaddrShelleyTxWitsL
bootAddrShelleyWitsL
tobootAddrShelleyTxWitsL
scriptShelleyWitsL
toscriptShelleyTxWitsL
-
Updated package metadata #3023 #2976
-
Moved
TxOut
to a separate module in each era #3024 -
Moved
mintedTxBodyF
intoShelleyMAEraTxBody
class #3019 -
Moved thet
RewardType
andReward
types from theCardano.Ledger.Shelley.Reward
module in thecardano-ledger-shelley
package into a new moduleCardano.Ledger.Reward
inside thecardano-ledger-core
package. #3059
- Deprecated the
validPlutusdata
function: #3006 - Deprecated the misspelled
HasAlgorithm
type alias: #3007 - Deprecated
CLI.evaluateMinLovelaceOutput
in favor of newly addedEraTxOut.getMinCoinTxOut
/EraTxOut.getMinCoinSizedTxOut
#3008 - Deprecated
minfee
andCLI.evaluateMinfee
in favor of newEraTx.getMinFeeTx
- Deprecated
ExtendedUTxO.getTxOutDatum
in favor of newAlonzoEraTxOut.datumTxOutF
- Removed
ExtendedUTxO.allOuts
andExtendedUTxO.allSizedOuts
in favor ofBabbageEraTxBody.allInputsTxBodyF
- Deprecated
consumed
andevaluateConsumed
in favor of newEraUTxO.getConsumedValue
- Removed
CLI
class - Deprecated
scriptsNeededFromBody
andscriptsNeeded
in all eras in favor of new class functionEraUTxO.getScriptsNeeded
#3019 - Remove model test framework #3019
- The
Cardano.Ledger.Alonzo.Scripts
module no longer re-exports theplutus-ledger-api
'sassertWellFormedCostModelParams
. #3065 - Removed unused
Data.BiMap
module fromcardano-data
#3089
- Fixed typo in makeHashWithExplicitProxys phantom type (indexl to index). #3072
- New
calculatePoolDistr'
function which is similar tocalculatePoolDistr
but has a new filter argument to only include the stake pool ids (stake pool key hashes) that are needed. #2957 - New package
cardano-ledger-conway
, which defines new era: theConwayEra
- Added
coinsPerUTxOByteToCoinsPerUTxOWord
helper function for Babbage #2896 - Core type classes:
EraSegWits
,EraTx
,EraTxBody
,EraTxOut
,EraPParams
,EraAuxiliaryData
,EraTxWits
,EraScript
- Era specific type classes:
ShelleyEraTxBody
,ShelleyMAEraTxBody
,AlonzoEraTxBody
,AlonzoEraTxOut
,AlonzoEraTx
,BabbageEraTxBody
,BabbageEraTxOut
- Type class hierarchy:
EraSegWits --> EraTx --> EraTxBody --> EraTxOut --> Era
\ `--> EraPParams --> Era
`--> EraTxWits --> EraScript --> Era
`--> EraAuxiliaryData --> Era
- Shelley:
ShelleyEraTxBody --> EraTxBody --> EraTxOut --> Era
- ShelleyMA:
ShelleyMAEraTxBody --> ShelleyEraTxBody --> EraTxBody --> EraTxOut --> Era
- Alonzo:
AlonzoEraTx --> EraTx --> ...
`--> AlonzoEraTxBody --> ShelleyMAEraTxBody --> ShelleyEraTxBody --> EraTxBody --> ...
`--> AlonzoEraTxOut -> ShelleyEraTxOut --> EraTxOut --> ...
- Babbage:
BabbageEraTxBody --> AlonzoEraTxBody --> ....
`--> BabbageEraTxOut -> AlonzoEraTxOut -->
- Some types have been moved:
- The
WitVKey
type has been moved into its own module in core. - The
HKD
type has been moved tocardano-ledger-core
. - The
PoolParams
type has been moved into its own module - The
DCert
type and related functionality fromTxBody
toCardano.Ledger.Shelley.Delegation.Certificates
. #2880
- The
- The initial funds and staking in the Shelley genesis type (used only for testing) now use
ListMap
instead ofMap
. #2871, #2890, #2892, #2895 - Renamed
SupportsSegWit
toEraSegWits
- Split
ValidateScript
intoEraScript
andEraTx.validateScript
- Renamed
ValidateAuxiliaryData
toEraAuxiliaryData
while removing usage of FunDeps. - Renamed in
Cardano.Ledger.Shelley
:Tx
toShelleyTx
(kept type synonym with a deprecation message)TxOut
toShelleyTxOut
(kept type synonym with a deprecation message)TxBody
toShelleyTxBody
(kept type synonym with a deprecation message)PParams
toShelleyPParams
(kept type synonym with a deprecation message)PParamsUpdate
toShelleyPParamsUpdate
(kept type synonym with a deprecation message)AuxiliaryData
toShelleyAuxiliaryData
(kept type synonym with a deprecation message)
- Renamed in
Cardano.Ledger.Mary
:- Renamed
Value
toMaryValue
(kept type synonym with a deprecation message)
- Renamed
- Renamed in
Cardano.Ledger.ShelleyMA
:TxBody
toMATxBody
(kept type synonym with a deprecation message)AuxiliaryData
toShelleyAuxiliaryData
(kept type synonym with a deprecation message)
- Renamed in
Cardano.Ledger.Alonzo
:ValidatedTx
toAlonzoTx
(kept type synonym with a deprecation message)TxOut
toAlonzoTxOut
(kept type synonym with a deprecation message)TxBody
toAlonzoTxBody
(kept type synonym with a deprecation message)Script
toAlonzoScript
(kept type synonym with a deprecation message)PParams
toAlonzoPParams
(kept type synonym with a deprecation message)PParamsUpdate
toAlonzoPParamsUpdate
(kept type synonym with a deprecation message)AuxiliaryData
toAlonzoAuxiliaryData
(kept type synonym with a deprecation message)
- Renamed in
Cardano.Ledger.Babbage
:TxOut
toBabbageTxOut
(kept type synonym with a deprecation message)TxBody
toBabbageTxBody
(kept type synonym with a deprecation message)PParams
toBabbagePParams
(kept type synonym with a deprecation message)PParamsUpdate
toBabbagePParamsUpdate
(kept type synonym with a deprecation message)
- Renamed Rules:
BBODY
->ShelleyBBODY
DELEG
->ShelleyDELEG
DELEGS
->ShelleyDELEGS
DELPL
->ShelleyDELPL
EPOCH
->ShelleyEPOCH
LEDGER
->ShelleyLEDGER
LEDGERS
->ShelleyLEDGERS
MIR
->ShelleyMIR
NEWEPOCH
->ShelleyNEWEPOCH
NEWPP
->ShelleyNEWPP
POOL
->ShelleyPOOL
POOLREAP
->ShelleyPOOLREAP
PPUP
->ShelleyPPUP
RUPD
->ShelleyRUPD
SNAP
->ShelleySNAP
TICK
->ShelleyTICK, ShelleyTICKF
UPEC
->ShelleyUPEC
UTXO
->ShelleyUTXO
UTXOW
->ShelleyUTXOW
- Renamed rules environments:
PPUPEnv -> PpupEnv
- Renamed rules events:
BbodyEvent
->ShelleyBbodyEvent
DelegEvent
->ShelleyDelegEvent
DelegsEvent
->ShelleyDelegsEvent
DelplEvent
->ShelleyDelplEvent
EpochEvent
->ShelleyEpochEvent
LedgerEvent
->ShelleyLedgerEvent
LedgersEvent
->ShelleyLedgersEvent
MirEvent
->ShelleyMirEvent
NewEpochEvent
->ShelleyNewEpochEvent
PoolreapEvent
->ShelleyPoolreapEvent
TickEvent
->ShelleyTickEvent
TickfEvent
->ShelleyTickfEvent
UtxowEvent
->ShelleyUtxowEvent
- Renamed predicate failure type names:
Cardano.Ledger.Shelley.Rules
:BbodyPredicateFailure
->ShelleyBbodyPredFailure
DelegPredicateFailure
->ShelleyDelegPredFailure
DelegsPredicateFailure
->ShelleyDelegsPredFailure
DelplPredicateFailure
->ShelleyDelplPredFailure
EpochPredicateFailure
->ShelleyEpochPredFailure
LedgerPredicateFailure
->ShelleyLedgerPredFailure
LedgersPredicateFailure
->ShelleyLedgersPredFailure
MirPredicateFailure
->ShelleyMirPredFailure
NewEpochPredicateFailure
->ShelleyNewEpochPredFailure
NewppPredicateFailure
->ShelleyNewppPredFailure
LedgerPredicateFailure
->ShelleyLedgerPredFailure
PoolPredicateFailure
->ShelleyPoolPredFailure
PoolreapPredicateFailure
->ShelleyPoolreapPredFailure
PpupPredicateFailure
->ShelleyPpupPredFailure
RupdPredicateFailure
->ShelleyRupdPredFailure
SnapPredicateFailure
->ShelleySnapPredFailure
TickPredicateFailure
->ShelleyTickPredFailure
TickfPredicateFailure
->ShelleyTickfPredFailure
UpecPredicateFailure
->ShelleyUpecPredFailure
UtxoPredicateFailure
->ShelleyUtxoPredFailure
UtxowPredicateFailure
->ShelleyUtxowPredFailure
Cardano.Ledger.ShelleyMA.Rules
:UtxoPredicateFailure
->ShelleyMAUtxoPredFailure
Cardano.Ledger.Alonzo.Rules
:AlonzoBbodyPredFail
->AlonzoBbodyPredFailure
and constructor:ShelleyInAlonzoPredFail
->ShelleyInAlonzoBbodyPredFailure
UtxoPredicateFailure
->AlonzoUtxoPredFailure
UtxosPredicateFailure
->AlonzoUtxosPredFailure
UtxowPredicateFail
->AlonzoUtxowPredFailure
and constructor:WrappedShelleyEraFailure
->ShelleyInAlonzoUtxowPredFailure
Cardano.Ledger.Babbage.Rules
:BabbageUtxoPred
->BabbageUtxoPredFailure
and constructor:FromAlonzoUtxoFail
->AlonzoInBabbageUtxoPredFailure
BabbageUtxowPred
->BabbageUtxowPredFailure
and constructor:FromAlonzoUtxowFail
->AlonzoInBabbageUtxowPredFailure
- The provenance for the reward calculation has been removed.
The type signature to the API function
getRewardProvenance
has not change, it just returns an empty provenance value. The type signature will be changed once the corresponding query has been deprecated in the ouroboros-network repository. #2879 getTxOutAddr txOut
in favor oftxOut ^. addrTxOutL
getTxOutEitherAddr txOut
in favor oftxOut ^. addrEitherTxOutL
getTxOutCompactAddr txOut
in favor oftxOut ^. compactAddrTxOutL
getTxOutBootstrapAddress txOut
in favor oftxOut ^. bootAddrTxOutF
getAllInputs txBody
in favor oftxBody ^. allInputsTxBodyF
getCoin txOut
in favor oftxOut ^. coinTxOutL
- The
StakeCreds
type was unused and is now removed. #2880 - The
Ord
instance forMemoBytes
was removed. #2881 makeTxOut
in favor ofmkBasicTxOut
HasField
instances for:"inputs"
,"outputs"
,"txfee"
,"auxiliaryData"
,"minted"
,"wdrls"
,"ttl"
,"update"
,"certs"
,"vldt"
,"mint"
,"collateral"
,"reqSignerHashes"
,"scriptIntegrityHash"
,"txnetworkid"
,"sizedOutputs"
,"referenceInputs"
,"totalCollateral"
,"collateralReturn"
,"sizedCollateralReturn"
,"body"
,"wits"
,"auxData"
,"size"
,"isValid"
,"addrWits"
,"scriptWits"
,"bootWits"
,"txdatahash"
,"addr"
,"bootAddr"
,"script"
,"dats"
,"rdmrs"
ValidateScript
in favor ofEraScript
andEraTx
- Type class synonyms:
Trans*
Uses*
:UsesPParams
,UsesScript
,UsesTxBody
,UsesTxOut
,UsesAuxiliaryData
BlockAnn
ChainData
AnnotatedData
SerialisableData
WellFormed
ConcreteAlonzo
ConcreteBabbage
- ...
- The error message for failed Plutus V2 scripts was being obscured by a bug which has now been fixed. #2888
The first release branch in the cardano-ledger repository,
namely release/1.0.0
, branches from the
cardano-ledger commit used for the 1.35.0 release of cardano-node release.
- Ensure Babbage TxOut decoder can't fail due to malformed Ptr. This bug was manifesting in the cardano-node as: if a node is running in the Babbage era and shuts down, when it comes back up it has to re-sync from genesis. #2897
- The Alonzo UTxO rule was previously using the incorrect minfee function (from Shelley). It now uses the Alonze minfee function. #2936