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.
- Add
PlutusDebug
toTransactionScriptFailure.ValidationFailedV{1|2}
: #3135- Also add a harmless dummy
Show
instance forPlutusDebug
with a constant"PlutusDebug Omitted"
- Also add a harmless dummy
- Create a
cardano-ledger-binary
package that does versioned serialization as a replacement forcardano-binary
package: #3063, #3078 - Switch to
cardano-ledger-binary
package throughout the ledger codebase: #3138 - Created
translateEraThroughCBOR
: #3138 - 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 - Added
evaluateTransactionExecutionUnitsWithLogs
toAlonzo
: #3111 - Added
mkAlonzoTxAuxData
andgetAlonzoTxAuxDataScripts
that help to recover previous behavior ofAlonzoTxAuxData
#3165 and #3166 - Addition of
Memoized
type class and helper functions that utilize this new abstraction:mkMemoized
,getMemoSafeHash
,getMemoRawType
,zipMemoRawType
,getMemoRawBytes
andlensMemoRawType
#3165
-
Changed
FromCBOR
instance inBabbage.TxOut
to fail pointer address deserialization starting with protocol version 9: #3174 -
Updated
Conway
low protocol version to 9 andBabbage
high protocol version to 8: #3174 -
Fixed mismathed parenthesis in the
Show
instance forPtr
: #3184. -
Moved Cardano.Ledger.Shelley.LedgerState(DPState) to Cardano.Ledger(DPState) in Core
- Since the old file was hidden, this will have no noticeable effects.
-
Split
cardano-ledger-shelley-ma
intocardano-ledger-allegra
andcardano-ledger-mary
#3175:- Moved
ShelleyMA.AuxiliaryData
->Allegra.TxAuxData
- Moved
ShelleyMA.Timelocks
->Allegra.Scripts
ShelleyMA.TxBody.MATxBody
was split intoAllegra.AllegraTxBody
andMary.MaryTxBody
. pattern record fields were renamed correspondinglyinputs
toatbInputs
andmtbInputs
outputs
toatbOutputs
andmtbOutputs
certs
toatbCerts
andmtbCerts
wdrls
toatbWdrls
andmtbWdrls
txfee
toatbTxFee
andmtbTxFee
vldt
toatbValidityInterval
andmtbValidityInterval
update
toatbUpdate
andmtbUpdate
adHash
toatbAuxDataHash
andmtbAuxDataHash
mint
tomtbMint
- Moved
-
Changed structure and field names of
Cardano.Ledger.Alonzo.Data.AlonzoTxAuxData
#3165:- Renamed
AlonzoTxAuxData.txMD
toAlonzoTxAuxData.atadMetadata
: - Removed
AlonzoTxAuxData.scripts
in favor of two new fieldsatadTimelock
andatadPlutus
. This was needed due to #3166
- Renamed
-
Changed major version in
ProtVer
to use new typeVersion
instead ofNatural
: #3138 -
Renamed records fields in
Cardano.Ledger
to names without_
(underscores) #3126Alonzo.TxBody.AlonzoTxBody
pattern synonyminputs
toatbInputs
collateral
toatbCollateral
outputs
toatbOutputs
txcerts
toatbCerts
txwdrls
toatbWdrls
txfee
toatbTxFee
txvldt
toatbValidityInterval
txUpdates
toatbUpdate
reqSignerHashes
toatbReqSignerHashes
mint
toatbMint
scriptIntegrityHash
toatbScriptIntegrityHash
adHash
toatbAuxDataHash
txnetworkid
toatbTxNetworkId
Babbage.TxBody.BabbageTxBody
pattern synonyminputs
tobtbInputs
collateral
tobtbCollateral
referenceInputs
tobtbReferenceInputs
outputs
tobtbOutputs
collateralReturn
tobtbCollateralReturn
totalCollateral
tobtbTotalCollateral
txcerts
tobtbCerts
txwdrls
tobtbWdrls
txfee
tobtbTxFee
txvldt
tobtbValidityInterval
txUpdates
tobtbUpdate
reqSignerHashes
tobtbReqSignerHashes
mint
tobtbMint
scriptIntegrityHash
tobtbScriptIntegrityHash
adHash
tobtbAuxDataHash
txnetworkid
tobtbrTxNetworkId
Shelley.TxBody.TxBodyRaw
toShelley.TxBody.ShelleyTxBodyRaw
inputsX
tostbrInputs
outputsX
tostbrOutputs
certsX
tostbrCerts
wdrlsX
tostbrWdrls
txfeeX
tostbrTxFee
ttlX
tostbrTTL
txUpdateX
tostbrUpdate
mdHashX
tostbrMDHash
Shelley.TxBody.ShelleyTxBody
pattern synonym_inputs
tostbInputs
_outputs
tostbOutputs
_certs
tostbCerts
_wdrls
tostbWdrls
_txfee
tostbTxFee
_ttl
tostbTTL
_txUpdate
tostbUpdate
_mdHash
tostbMDHash
-
Renamed records fields in
Cardano.Ledger
to names without_
(underscores) #3118 -
Shelley.LedgerState.Types.AccountState
_treasury -> asTreasury
_reserves -> asReserves
-
PoolParams.PoolParams
_poolId -> ppId
_poolVrf -> ppVrf
_poolPledge -> ppPledge
_poolCost -> ppCost
_poolMargin -> ppMargin
_poolRAcnt -> ppRewardAcnt
_poolOwners -> ppOwners
_poolRelays -> ppRelays
_poolMD -> ppMetadata
-
PoolParams.PoolMetadata
_poolMDUrl -> pmUrl
_poolMDHash -> pmHash
-
Renamed records fields in
Cardano.Ledger
to names without_
(underscores) #3120Shelley.Delegation.Certificates
_delegator
todDelegator
_delegatee
todDelegatee
EpochBoundary.SnapShot
_stake
tossStake
_delegations
tossDelegations
_poolParams
tossPoolParams
EpochBoundary.SnapShots
_pstakeMark
tossStakeMark
_pstakeSet
tossStakeSet
_pstakeGo
tossStakeGo
_feeSS
tossFee
-
Renamed records fields in
Cardano.Ledger.Shelley.LedgerState.DPState
to names without_
(underscores) #3116DState
_unified -> dsUnified
_fGenDelegs -> dsFutureGenDelegs
_genDelegs -> dsGenDelegs
_irwd -> dsIRewards
PState
_pParams -> psStakePoolParams
_fPParams -> psFutureStakePoolParams
_retiring -> psRetiring
-
Renamed
Cardano.Ledger.Shelley.LedgerState.Types.UTxOState
fields to names without_
(underscores) #3108_utxo -> utxosUtxo
_deposited -> utxosDeposited
_fees -> utxosFees
_ppups -> utxosPpups
_stakeDistro -> utxosStakeDistr
(notice the lackingo
at the end)
-
Moved Cardano.Ledger.Shelley.Orphans to Cardano.Ledger.Orphans in the core modules
-
Moved Cardano.Ledger.Shelley.PoolParms to Cardano.Ledger.PoolParams in the core modules
-
Moved Cardano.Ledger.Shelley.EpochBoundary to Cardano.Ledger.EpochBoundary in the core modules
-
Added deprecated modules that import the moved ones and export their contents
-
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
#2976: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
) #2976: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
) #2976:ShelleyWitnesses
toShelleyTxWits
addrShelleyWitsL
toaddrShelleyTxWitsL
bootAddrShelleyWitsL
tobootAddrShelleyTxWitsL
scriptShelleyWitsL
toscriptShelleyTxWitsL
-
Updated package metadata #3023
-
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
- Removed unused
deserialiseAddrStakeRef
function fromAddress
module: #3174 MAClass
is gone: #3175ShelleyMAEra
type in favor ofAllegraEra
andMaryEra
: #3175MATxBody
type in favor ofAllegraTxBody
andMaryTxBody
: #3175- Deprecated
Cardano.Ledger.Serialization
in favor ofCardano.Ledger.Binary
fromcardano-ledger-binary
: #3138 - Removed
Data.Coders
fromcardano-data
in favor ofCardano.Ledger.Binary.Coders
fromcardano-ledger-binary
: #3138 - Removed
Data.Sharing
fromcardano-data
in favor ofCardano.Ledger.Binary
fromcardano-ledger-binary
: #3138 - Removed
boundedRationalFromCBOR
/boundedRationalToCBOR
as obsolete and invalid: #3138 - Removed pattern synonym
Cardano.Ledger.ShelleyMA.TxBody.MATxBody.TxBody'
with fields #3126adHash'
certs'
inputs'
mint'
outputs'
txfee'
update'
vldt'
wdrls'
- 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 - Removed
getMultiSigBytes
as unused #3138 - Removed
hashCostModel
as unused and invalid #3138 - Removed
EncodeMint
/DecodeMint
classes in favor of regularToCBOR
/FromCBOR
#3172
- Fixed typo in makeHashWithExplicitProxys phantom type (indexl to index). #3072
- Fixed the incorrect conversion of the validity interval's upper bound in
transVITime
(fixes #3043). #3200
- 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