Skip to content

Latest commit

 

History

History
1990 lines (1525 loc) · 74.2 KB

CHANGELOG.md

File metadata and controls

1990 lines (1525 loc) · 74.2 KB

Changelog for cardano-api

8.39.2.0

  • Update ouroboros-consensus-0.16, ouroboros-consensus-cardano-0.14, ouroboros-consensus-diffusion-0.11, ouroboros-consensus-protocol-0.7, ouroboros-network-api-0.7 (compatible) PR 459

8.39.1.0

  • Enable deposit return script addresses Enable constitutional scripts (bugfix, compatible, feature) PR 456

8.39.0.0

  • Allow checkLedgerStateCondition check to run in IO. Rename to foldEpochState. (feature, breaking) PR 453

  • Fix Conway script hash mismatch (bugfix) PR 452

  • add types for reexport (improvement) PR 420

8.38.0.2

  • Support constructing DRep update certificates (feature, compatible) PR 421

8.38.0.1

  • Make it build with ghc-9.8 (maintenance, compatible) PR 436

8.38.0.0

  • Make committee keys able to sign transactions (feature, compatible) PR 441

  • bech32 prefixes for committee keys hashes were incorrect. This PR fixes that, in accordance with CIP-5: https://github.com/cardano-foundation/CIPs/blob/master/CIP-0005/README.md?plain=1#L111 (breaking) PR 440

  • Bump CHaP for cardano node 8.8 release Parameterize TransactionValidityError and TxBodyErrorAutoBalance on era Data constructor TransactionValidityTranslationError is now parameterized on ContextError (ShelleyLedgerEra era) cppPoolRetireMaxEpoch, protocolParamPoolRetireMaxEpoch, icCommitteeTermLength and protocolUpdatePoolRetireMaxEpoch records are updated to Ledger.EpochInterval Records cppMaxBlockBodySize, cppMaxTxSize, protocolUpdateMaxBlockBodySize, protocolUpdateMaxTxSize have been updated to StrictMaybe Word32 RecordscppMaxBlockHeaderSize, protocolUpdateMaxBlockHeaderSize has been updated to StrictMaybe Word16 Inhabitants SuccessfulPlutusScript and FailedPlutusScript of LedgerEvent are now parameterized on NonEmpty PlutusWithContext queryNodeLocalState are now executeLocalStateQueryExpr parameterized on Target ChainPoint ResolvablePointers data constructor has been updated with associated data types PlutusPurpose AsIndex (ShelleyLedgerEra era) and PlutusPurpose AsItem (ShelleyLedgerEra era) Replace PrevGovActionId with GovPurposeId Implement TxProposalProcedures and TxVotingProcedures which enables Plutus script witnessing of proposals and votes. Remove support for intermediate tx body format. (feature, breaking) PR 407

  • Expose getAnyNewEpochState. Simplify rendering LedgerState errors (breaking, improvement) PR 439

  • Add return value to checkLedgerStateCondition (breaking) PR 433

  • Fix that bech32 prefixes for CC keys were incorrect (breaking, bugfix) PR 435

  • Bump hedgehog-extras to 0.6.0.1 to benefit of this fix: input-output-hk/hedgehog-extras#58 (compatible, test, release) PR 434

  • Better MonadError handling to avoid nesting ExceptT in modifyError (compatible, improvement) PR 431

8.37.1.0

  • Implement checkLedgerStateConditions. This new function gives direct access to the NewEpochState which contains the ledger state. It also requires an EpochNo upon which it will terminate if the supplied condition is not met. (feature, compatible) PR 424

  • Use MonadError for 'LedgerState'. Add Show LedgerState, IOException handling in foldBlocks (compatible, improvement) PR 422

  • Support signing with drep extended key (compatible) PR 419

8.37.0.0

  • Expose CurrentEra and UpcomingEra pattern synonyms (feature, breaking, compatible) PR 414

  • Add renderSafeHashAsHex, which we want to remove from cardano-node and use in cardano-cli (feature, compatible) PR 410

  • Implement Era GADT and UseEra class as an alternative to the existing era handling code (feature, compatible) PR 402

  • Make it possible to merge again, by fixing dead links (improvement) PR 411

  • Expose all ledger events and convert the pattern synonyms to functions so GHC will warn us if we haven't handled a particular ledger event. (feature, breaking, improvement) PR 400

  • split cases in textEnvelopeType account for eras after conway using forEraInEon (breaking, bugfix) PR 390

8.36.1.1

  • Restore the inclusion of datum hashes in Alonzo era tx bodies (bugfix) PR 398

8.36.1.0

  • Expose AnyProposals and AnyRatificationState (feature, compatible) PR 395

8.36.0.0

  • New ToJSON instance for TxValidationErrorInCardanoMode (feature) PR 393

  • Remove ByronTx data constructor from data Tx era Delete Cardano.Api.Eon.ByronEraOnly module Remove TxFeeImplicit and TxValidityNoUpperBound (breaking) PR 382

8.35.0.0

  • Remove renderEra Use docToText . pretty instead. Rename prettyTo* functions to docTo*. (breaking, improvement) PR 387

  • Expose NewGovernanceProposals and EpochBoundaryRatificationState ledger events in Conway era (feature, compatible) PR 388

  • Guard queries with their respective eras (breaking, improvement) PR 386

8.34.1.0

  • Expose stakeCredentialWitness function, which returns only stake credentials for the certificates requiring witnessing: delegation and deregistration. (compatible, bugfix) PR 383

8.34.0.0

  • Parameterize createAndValidateTransactionBody on ShelleyBasedEra era (breaking) PR 378

  • Add QueryStakeVoteDelegatees to return the vote delegatee associated to a stake credential (feature, compatible) PR 367

  • ToJSON instance for TxValidationError (feature, compatible) PR 379

8.33.0.0

  • Error instance for FileError instead of Pretty Make prettyToText return strict Text and add prettyToLazyText Export Doc (feature, breaking) PR 375

  • Use Pretty for rendering errors instead of Show (breaking, improvement) PR 370

  • Integrate ledger relocation of Plutus modules. Eliminate Ledger.Coin wrapper in MaryValue uses. Update consensus dependencies. Use Ledger.THKD on ConwayPParams. (breaking) PR 359

8.32.0.0

  • Export AllegraEraOnwards (compatible) PR 374

  • Isolation of Byron era 1/n. Changes made to cardano-api where Byron era was never being called in the first place. (breaking) PR 362

  • Update and export Test.Gen.Cardano.Api.ProtocolParameters (bugfix, test) PR 369

  • Fix round trip for empty Value. Add tests. (bugfix) PR 365

8.31.0.0

  • Use ledger presentation of multi-asset values directly. Lens to make this uniform over ShelleyBasedEra.

    Delete ByronToAllegraEra.

    New module Cardano.Api.Ledger.Lens.

    Modify TxOutValue to have TxOutValueByron and TxOutValueShelleyBased instead of TxOutAdaOnly and TxOutValue respectively. TxOutValueShelleyBased now directly uses the ledger type instead of the Value type.

    These functions have changed to either L.Value (ShelleyLedgerEra era) instead of Value or eons or both:

    • genValue
    • genValueDefault
    • genValueForMinting (breaking) PR 360
  • Replace IsCardanoEra and IsShelleyBasedEra contraints in GADT constructors with Typeable (breaking, improvement) PR 354

  • Modify foldBlocks to recurse on ledger events instead of mapping over them. This allows finer grained control over when foldBlocks is stopped. (optimisation) PR 353

  • --protocol-(minor|major)-version cannot be changed via create-protocol-parameters-update command in conway (breaking) PR 358

  • Modify foldBlocks to allow the fold to terminate from the accumulator via the FoldStatus type.

    Modify foldBlocks to accumulate the chain tip rather than only immutable blocks (blocks that are k blocks away from the tip).

    Add debug mode to foldBlocks which forces it to error with information about ledger states, client and server tip, number of requests in flight and the current IORef state. (feature, breaking) PR 350

  • Delete types:

    • ByronAndAllegraEraOnwards
    • ByronToMaryEra
    • MaryEraOnly

    Delete functions:

    • allegraEraOnwardsToByronAndAllegraOnwardsEra
    • byronAndAllegraEraOnwardsConstraints
    • byronAndAllegraEraOnwardsToCardanoEra
    • byronToMaryEraConstraints
    • byronToMaryEraToCardanoEra
    • caseByronToMaryOrAlonzoEraOnwards
    • caseMaryEraOnlyOrAlonzoEraOnwards
    • maryEraOnlyConstraints
    • maryEraOnlyToCardanoEra
    • maryEraOnlyToShelleyBasedEra (breaking, improvement) PR 355

8.30.0.0

  • Remove uses of coerceKeyRole, use asWitness when key role conversion is required (feature, breaking) PR 341

  • Delete ByronMode and ShelleyMode Delete anyEraInModeToAnyEra Delete AnyEraInMode Modify to use CardanoMode only:

    • executeQueryAnyMode
    • connectToLocalNode
    • `connectToLocalNodeWithVersion
    • mkLocalNodeClientParams
    • queryNodeLocalState
    • submitTxToNodeLocal
    • queryTxMonitoringLocal
    • getLocalChainTip
    • executeLocalStateQueryExpr Deparameterise LocalNodeClientProtocolsInMode Modify LocalNodeClientProtocols to only work in CardanoMode. Rename LocalNodeClientProtocolsInMode to LocalNodeClientProtocolsInIO Rename TxValidationErrorInMode to TxValidationErrorInCardanoMode Deparameterise TxValidationErrorInMode Modify to use CardanoMode only
    • determineEra Deparameterise LocalNodeConnectInfo Deparameterise LocalTxMonitoringResult Deparameterise LocalTxMonitoringQuery Deparameterise TxInMode Modify to use CardanoMode only
    • fromConsensusBlock
    • toConsensusBlock
    • queryExpr
    • getProgress
    • getSlotForRelativeTime
    • toLedgerEpochInfo
    • slotToEpoch
    • queryCurrentEpochState
    • queryEpoch
    • queryDebugLedgerState
    • queryGenesisParameters
    • queryPoolDistribution
    • queryPoolState
    • queryProtocolParameters
    • queryConstitutionHash
    • queryProtocolParametersUpdate
    • queryProtocolState
    • queryStakeAddresses
    • queryStakeDelegDeposits
    • queryStakeDistribution
    • queryStakePoolParameters
    • queryStakePools
    • queryStakeSnapshot
    • queryUtxo
    • queryConstitution
    • queryGovState
    • queryDRepState
    • queryDRepStakeDistribution
    • queryCommitteeMembersState Deparameterise BlockInMode Deparameterise TxIdInMode Remove EraInMode argument in QueryInEra constructor Delete ConsensusBlockForMode Modify TxInMode to carry CardanoEra instead of EraInMode Deparameterise BlockInMode Deparameterise TxIdInMode Deparameterise EraHistory Modify to not take EraInMode argument
    • queryCurrentEpochState
    • queryEpoch
    • queryDebugLedgerState
    • queryGenesisParameters
    • queryPoolDistribution
    • queryPoolState
    • queryProtocolParameters
    • queryConstitutionHash
    • queryProtocolParametersUpdate
    • queryProtocolState
    • queryStakeAddresses
    • queryStakeDelegDeposits
    • queryStakeDistribution
    • queryStakePoolParameters
    • queryStakePools
    • queryStakeSnapshot
    • queryUtxo
    • queryConstitution
    • queryGovState
    • queryDRepState
    • queryDRepStakeDistribution
    • queryCommitteeMembersState Modify TxInMode constructors to remove EraInMode arguments from constructors Remove EraInMode from TxValidationErrorInCardanoMode constructors Delete EraInMode, eraInModeToEra and toEraInMode Remove ConsensusMode argument from:
    • fromConsensusBlock
    • fromConsensusTip
    • determineEra Delete determineEraExpr. Use queryCurrentEra instead. Deparameterise QueryInMode Delete AnyConsensusModeParams Deparametrise ConsensusModeParams Remove ConsensusMode argument from EraHistory constructor Delete EraConsensusModeMismatch constructor Delete localConsensusMode, AnyConsensusMode and renderMode Delete EraConsensusModeMismatch Delete CardanoMode and ConsensusMode. (breaking) PR 342
  • Switch to use lens and eons for txbody construction (improvement) PR 334

  • Simplify createTransactionBody (improvement) PR 333

  • In Tx, ByronTx now carries additional ByronEraOnly witness In TxBody, TxBodyByron now carries additional ByronEraOnly witness Delete CardanoEraStyle because eons solve the same problem more generally Delete cardanoEraStyle (breaking) PR 335

8.29.0.0

  • Updated ledger, consensus and typed-protocol packages Adapted ProtocolParameters to the new ProtVer >=8 constraint in in ppuProtocolVersionL Replaced queryCommitteState with new queryCommitteeMembersState Improved costModel generation for tests Adapt to new type HKDNoUpdate f ProtVer of cppProtocolVersion Export types needed for querying the committee state Adjust to type change of proposalProceduresTxBodyL Remove invalidBeforeL and invalidHereAfterL defined in ledger (breaking, maintenance) PR 321

  • Expose PlutusScriptV3 (bugfix) PR 343

  • Add support for simple scripts in Conway (bugfix) PR 344

  • Delete ProtocolUTXOCostPerWord feature (breaking) PR 339

  • Delete ProtocolUTxOCostPerByteFeature (breaking) PR 340

  • Add Show instance for FoldBlocksError (feature, compatible) PR 338

  • Split the txValidityRange field into two fields. New function allegraEraOnwardsToByronAndAllegraOnwardsEra (breaking, improvement) PR 332

  • Add support for Plutus V1 in Conway (bugfix) PR 323

  • DRep extended key: add CastVerificationKeyRole (compatible) PR 327

8.28.0.0

  • Delete AlonzoEraOnly. Export caseMaryEraOnlyOrAlonzoEraOnwards (feature, breaking) PR 330

  • New shelleyToAlonzoEraToShelleyToBabbageEra function (feature, compatible) PR 329

  • Delete unnecessary calls to shelleyBasedEraConstraints (improvement) PR 325

8.27.0.0

  • Remove IsShelleyBasedEra and IsCardanoEra from all functions and types. Use ShelleyBasedEra and CardanoEra instead. (breaking) PR 313

8.26.0.0

  • Add support for DRep extended keys (feature, compatible) PR 320

  • Parameterize GovernanceAction on era (breaking) PR 322

  • Haddock-document the case* functions (compatible, improvement) PR 314

  • New MaryEraOnly eon New functions:

    • caseMaryEraOnlyOrAlonzoEraOnwards
    • disjointByronEraOnlyAndShelleyBasedEra
    • disjointAlonzoEraOnlyAndBabbageEraOnwards Deprecate:
    • noByronEraInShelleyBasedEra. Use disjointByronEraOnlyAndShelleyBasedEra instead. (feature, breaking) PR 312
  • Delete EraCast type class (breaking) PR 308

  • Fewer constraints in functions (compatible) PR 310

  • Introduce anchor newtypes for drep registration certificate (feature, compatible) PR 305

  • Reduce constraint usage with eons (compatible, improvement) PR 299

  • Delete EraCast instance for Certificate (breaking) PR 307

  • Add certs to txbody of Conway transactions (feature, compatible) PR 306

  • Add BabbageEraOnly (feature, compatible) PR 304

8.25.2.0

  • Add support for committee hot key witnesses (feature, compatible) PR 300

  • Delete withShelleyBasedEraConstraintsForLedger. Use shelleyBasedEraConstraints instead. (breaking, improvement) PR 297

  • Simplify DebugLedgerState with eons (breaking, improvement) PR 296

8.25.0.1

  • Haddock bug fix (compatible bug fix)

8.25.0.0

  • Rename AnyEraInEon to EraInEon (breaking, improvement) PR 289

  • Require conway onwards for voting. Functions with modified type signatures:

    • createVotingProcedure
    • toVotingCredential
    • singletonVotingProcedures (breaking, improvement) PR 293
  • Add witness committee cold key (feature, compatible) PR 292

  • More use of ReexposeLedger (improvement) PR 290

8.24.0.0

  • Expose Conway drep registration certificate anchor (breaking, improvement) PR 284

  • Parameterize AnyEraInEon. Add AnyEon (breaking) PR 287

  • Add support for conway era protocol parameters. Adapted GenesisCardano to upstream Ledger/Consensus changes. (feature, breaking) PR 270

8.23.0.0

  • New caseAlonzoOnlyOrBabbageEraOnwards and alonzoEraOnlyToAlonzoEraOnwards functions (feature, compatible) PR 282

  • Delete AuxScriptsSupportedInEra. Use AllegraEraOnwards instead. (breaking, improvement) PR 273

    • Rename inShelleyBasedEraEonMaybe to forShelleyBasedEraInEonMaybe
    • Rename inShelleyBasedEraEon to forShelleyBasedEraInEon
    • Rename maybeEonInShelleyBasedEra to forShelleyBasedEraMaybeEon
    • Rename eonInShelleyBasedEra to inEonForShelleyBasedEra
    • Rename maybeEonInEra to forEraMaybeEon
    • Rename inEraEonMaybe to forEraInEonMaybe
    • New inEonForEraMaybe function
    • New inEonForShelleyBasedEraMaybe function (feature, breaking) PR 281
  • Remove CollateralSupportedInEra. Use AlonzoEraOnwards instead. Remove collateralSupportedInEra. Use inEonForEra instead. (breaking) PR 271

  • Replace TxScriptValiditySupportedInEra. Use AlonzoEraOnwards instead. Delete txScriptValiditySupportedInCardanoEra. Use forEraInEra instead. Delete txScriptValiditySupportedInShelleyBasedEra. Use forEraInEra instead. (breaking) PR 261

  • Delete ValidityUpperBoundSupportedInEra. Use ShelleyBasedEra instead. Delete ValidityNoUpperBoundSupportedInEra. Use ByronAndAllegraEraOnwards instead. New caseByronAndAllegraEraOnwardsOrShelleyEraOnly function. New ShelleyEraOnly eon New ByronAndAllegraEraOnwards eon Delete validityUpperBoundSupportedInEra. Use inEonForEra instead. Delete validityNoUpperBoundSupportedInEra. Use inEonForEra instead. Delete IsByronToAllegraEra. Delete IsByronToMaryEra. Delete IsByronToAlonzoEra. (breaking, improvement) PR 272

  • New AnyEraInEon. Delete:

    • AnyByronEraOnly
    • AnyByronToAllegraEra
    • AnyByronToMaryEra
    • AnyByronToAlonzoEra
    • AnyShelleyToAllegraEra
    • AnyShelleyToMaryEra
    • AnyShelleyToAlonzoEra
    • AnyShelleyToBabbageEra
    • AnyShelleyBasedEra
    • AnyMaryEraOnwards
    • AnyAlonzoEraOnly
    • AnyAlonzoEraOnwards
    • AnyBabbageEraOnwards
    • AnyConwayEraOnwards Use AnyEraInEon instead. (feature, breaking) PR 280
  • Delete ValidityLowerBoundSupportedInEra. Use AllegraEraOnwards instead Delete validityLowerBoundSupportedInEra. Use inEonForEra or equivalent instead (breaking, improvement) PR 279

  • Delete TxExtraKeyWitnessesSupportedInEra. Use AlonzoEraOnwards instead. Delete extraKeyWitnessesSupportedInEra. Use inEonForEra or related instead. (breaking, improvement) PR 278

  • Delete TxTotalAndReturnCollateralSupportedInEra. Use BabbageEraOnwards instead. Delete totalAndReturnCollateralSupportedInEra. Use inEonForEra or related instead. (breaking, improvement) PR 275

  • Explicit pattern match on all ledger certificates constructors. Remove getIsCardanoEraConstraint. Use cardanoEraConstraints instead. (breaking, improvement) PR 277

8.22.0.0

  • A prior refactor accidentally defaulted to isLeadingSlotsTPraos regardless of the era (compatible, bugfix) PR 274

  • Fix missing redeemers in certificate deregistration (bugfix) PR 268

  • Delete WithdrawalsSupportedInEra. Use ShelleyBasedEra instead. Delete withdrawalsSupportedInEra. Use inEonForEra instead. (breaking, improvement) PR 260

  • Replace UpdateproposalSupportedInEra with ShelleyToBabbageEra (breaking) PR 258

  • Delete TxMetadataSupportedInEra. Use ShelleyBasedEra instead. Delete txMetadataSupportedInEra. Use inEonForEra instead. (breaking, improvement) PR 263

  • New functions alonzoEraOnwardsToMaryEraOnwards and shelleyToAllegraEraToByronToAllegraEra (feature, compatible) PR 266

  • Export getTxBodyContent (feature, compatible) PR 267

  • Delete CertificatesSupportedInEra. Use ShelleyBasedEra instead. Delete certificatesSupportedInEra. Use inEonForEra instead. (breaking) PR 259

8.21.0.0

  • Make ProposeNewCommittee use the appropriate type of key (breaking, improvement) PR 264

    • Organise eon re-exports from Cardano.Api.
    • Export MaryEraOnwards (feature, compatible) PR 265
    • Delete AdaSupportedInEra. Use ByronToAllegraEra instead.
    • Delete MultiAssetSupportedInEra. Use MaryEraOnwards instead.
    • Delete function multiAssetSupportedInEra. Use caseByronToAllegraOrMaryEraOnwards instead.
    • New ByronToAllegraEra eon.
    • New MaryEraOnwards eon.
    • New functions:
      • caseByronToAllegraOrMaryEraOnwards
      • caseShelleyToAllegraOrMaryEraOnwards
      • caseShelleyToMaryOrAlonzoEraOnwards
      • shelleyToAllegraEraToByronToAllegraEra (breaking, improvement) PR 254
  • Delete unused eon type classes:

    • IsAlonzoEraOnly
    • IsAlonzoEraOnwards
    • IsBabbageEraOnwards
    • IsByronEraOnly
    • IsCardanoEra
    • IsConwayEraOnwards
    • IsShelleyToAllegraEra
    • IsShelleyToAlonzoEra
    • IsShelleyToBabbageEra
    • IsShelleyToMaryEra (breaking) PR 256
  • Export ByronEraOnly (feature) PR 255

  • Update to the pre-commit script, so that it fails on hlint errors (improvement) PR 253

  • Delete TxFeesExplicitInEra and TxFeesImplicitInEra New ByronEraOnly feature Move ShelleyBasedEra into its own module as it is a legitimate feature (breaking, improvement) PR 244

    • Rename FeatureInEra to Eon
    • Rename the following modules:
      • Cardano.Api.Feature.AlonzoEraOnly -> Cardano.Api.Eon.AlonzoEraOnly
      • Cardano.Api.Feature.AlonzoEraOnwards -> Cardano.Api.Eon.AlonzoEraOnwards
      • Cardano.Api.Feature.BabbageEraOnwards -> Cardano.Api.Eon.BabbageEraOnwards
      • Cardano.Api.Feature.ConwayEraOnwards -> Cardano.Api.Eon.ConwayEraOnwards
      • Cardano.Api.Feature.ShelleyToAllegraEra -> Cardano.Api.Eon.ShelleyToAllegraEra
      • Cardano.Api.Feature.ShelleyToAlonzoEra -> Cardano.Api.Eon.ShelleyToAlonzoEra
      • Cardano.Api.Feature.ShelleyToBabbageEra -> Cardano.Api.Eon.ShelleyToBabbageEra
      • Cardano.Api.Feature.ShelleyToMaryEra -> Cardano.Api.Eon.ShelleyToMaryEra
    • Rename the following functions:
      • inEraFeature to inEonEra
      • inEraFeature to eraInEon
    • Rename the following functions (conservatively replacing "feature" with "eon" until we have a better naming convention):
      • inEraFeatureMaybe -> inEraEonMaybe
      • maybeFeatureInEra -> maybeEonInEra
      • featureInShelleyBasedEra -> eonInShelleyBasedEra
      • inShelleyBasedEraFeature -> inShelleyBasedEraEon
      • inShelleyBasedEraFeatureMaybe -> inShelleyBasedEraEonMaybe
      • maybeFeatureInShelleyBasedEra -> maybeEonInShelleyBasedEra (breaking, improvement) PR 247

8.20.2.0

  • Add JSON instance for Hash GenesisKey (improvement) PR 249

  • Support more ledger constraints (feature, compatible) PR 248

8.20.1.0

  • Fix typos in some deserialization error messages (bugfix) PR 243

  • Fix DRep Stake and DRep Stake queries for empty lists (bugfix) PR 245

  • Fix querying for dreps in transaction build in eras before conway (bugfix) PR 240

  • Fix Query error in QueryStakeDelegDeposits when executing transaction build (bugfix) PR 239

8.20.0.0

  • Expose constraints from casing functions (feature, compatible) PR 237

  • New functions:

    • caseByronOrShelleyBasedEra
    • caseShelleyToMaryOrAlonzoEraOnwards
    • caseShelleyToAlonzoOrBabbageEraOnwards Renamed caseShelleyToBabbageAndConwayEraOnwards to caseShelleyToBabbageOrConwayEraOnwards (breaking) PR 232
  • Fix existing test constraints functions. Type signatures changed on:

    • shelleyBasedEraTestConstraints
    • shelleyToBabbageEraTestConstraints
    • conwayEraOnwardsTestConstraints (breaking, bugfix) PR 233
  • Add the following features:

    • AlonzoEraOnly
    • ShelleyToAllegraEra
    • BabbageEraOnwards
    • AlonzoEraOnwards
    • ShelleyToMaryEra
    • ShelleyToAlonzoEra (feature) PR 220
  • New caseShelleyToBabbageAndConwayEraOnwards function (feature, compatible) PR 231

  • Delete deprecated functions and types:

    • Allegra
    • AsAllegra
    • AsByron
    • AsMary
    • AsShelley
    • Byron
    • Mary
    • Shelley
    • eitherDeserialiseFromRawBytes
    • hashScriptData
    • makeStakeAddressPoolDelegationCertificate
    • makeTransactionBody
    • queryPparams (breaking, improvement) PR 230
  • Updated to cardano-ledger-conway-1.18. PR 227

8.19.0.0

  • New foldSomeAddressVerification key function (feature, compatible) PR 225

  • FeatureInEra instances for CardanoEra and ShelleyBasedEra (feature, compatible) PR 226

  • Fix type signature of queryGenesisParameters so that it can be queried in any era (breaking, bugfix) PR 224

8.18.0.0

  • Fix exception when executing drep queries (bugfix) PR 221

  • Use newtype instead of GADT for LedgerProtocolParameters (breaking, improvement) PR 218

  • Changes:

    • Deleted TxGovernanceActions
    • New generators: genProposals, genProposal, genVotingProcedures
    • New test constraints functions: shelleyBasedEraTestConstraints, shelleyToBabbageEraTestConstraints, conwayEraOnwardsTestConstraints
    • New era functions: inEraFeatureMaybe, inShelleyBasedEraFeatureMaybe, maybeFeatureInShelleyBasedEra (breaking, improvement) PR 217
  • Replace ProtocolParameters usage with ledger's PParams (breaking) PR 214

8.17.0.0

  • Delete TxVotes and VotingEntry and use VotingProcedures instead (breaking) PR 209

  • New functions emptyVotingProcedures, singletonVotingProcedures and mergeVotingProcedures (feature, compatible) PR 208

  • Expose ledger lenses for governance types: drepExpiryL, drepAnchorL, drepDepositL, csCommitteeCredsL (feature, compatible) PR 206

  • New makeStakeAddressAndDRepDelegationCertificate function (feature, compatible) PR 207

  • Use injective type families to improve type inference (compatible) PR 210

8.16.1.0

  • Add VotingProcedures type. (feature, compatible) PR 204

8.16.0.0

  • Expose following queries from consensus:

    • GetGovState
    • GetDRepState
    • GetDRepStakeDistr
    • GetCommitteeState
    • GetConstitution (feature, compatible) PR 196
  • Update createAnchor to use hashAnchorData (feature, breaking) PR 200

8.15.0.0

  • Updating the ledger dependency to cardano-ledger-conway-1.7.0.0: Many superficial renamings TxVotes carries a map now ResolvablePointers now has a different representation than does the ledger ProposalNewCommitee requires the old committee's credentials The ProposalNewConstitution case of toGovernanceAction was hashing the argument'ByteString, but it was already a hash. See temporarilyOptOutOfPrevGovAction makeGovernanceActionId was reusing the transaction id as the governance action id, but the types no longer allow that. Semigroup oprhan was missing for ConwayPParams QueryConstitutionHash phantom type is now more specific Cardano.Ledger.Api no longer export EraCrypto Introduced (internal) pattern synonyms for scripts to coverup a change in the corresponding ledger types. (feature, breaking) PR 179

  • New VotingEntry type (compatible) PR 194

  • Fix parameterisation of GovernanceActionId (breaking) PR 192

  • Implement createPParams and begin propagating Ledger.PParams in cardano-api (feature) PR 190

  • Delete deprecated functions and types (improvement) PR 173

8.14.0.0

  • Fix parameterisation of GovernanceActionId (breaking) PR 192

  • Implement createPParams and begin propagating Ledger.PParams in cardano-api (feature) PR 190

  • Delete deprecated functions and types (improvement) PR 173

8.13.1.0

  • Implement EraBasedProtocolParametersUpdate (feature) PR 180

8.13.0.0

  • Modify queryGenesisParameters so that its type advertises it only returns genesis parameters for the Shelley era (breaking) PR 181

8.12.0.0

  • Fix EraCast Certificate (bugfix; no-api-changes) PR 170

  • Fix committee hot keys (feature; breaking) PR 167

  • New inEraFeature and inShelleyBasedEraFeature functions (feature; compatible) PR 162

  • Add SerialiseAsBech32 (Hash CommitteeHotKey) instance (feature; no-api-changes) PR 160

8.11.1.0

  • Fix typo: Constitional -> Constitutional (bugfix; no-api-changes) PR 163

8.11.0.0

  • Add parent feature constraints. New IsShelleyToBabbageEra and ConwayEraOnwards type classes. (feature; compatible) PR 159

  • Deprecate TxVotesSupportedInEra (feature; breaking) PR 154

  • Deprecate shelleyCertificateConstraints and conwayCertificateConstraints (feature; breaking) PR 155

  • More shelleyBasedEraConstraint constraints (feature; compatible) PR 149

  • Deprecate TxGovernanceActionSupportedInEra (feature; breaking) PR 150

  • Deprecate some constraint functions (feature; breaking) PR 151

  • Add SerialiseAsBech32 instances for committee cold and hot keys Remove CommitteeKey as it was redundant (feature; breaking) PR 152

  • Clean up constraints on Proposal and Vote instances, add their generators for tests (bugfix; compatible) PR 118

8.10.2.0

  • Expose shelleyCertificateConstraints and conwayCertificateConstraints (feature; compatible) PR 147

  • Provide additional constraints in shelleyBasedEraConstraints. This will obsolete the following:

    • obtainEraCryptoConstraints
    • obtainCryptoConstraints
    • obtainEraPParamsConstraint
    • obtainSafeToHashConstraint Also provide additional constraints in conwayEraOnwardsConstraints and shelleyToBabbageEraConstraints (feature; compatible) PR 143
  • Expose shelleyCertificateConstraints and conwayCertificateConstraints (feature; compatible) PR 147

8.10.1.0

  • Fix permissions of file written using handleFileForWritingWithOwnerPermissionImpl (bugfix; no-api-changes) PR 141

  • Support more constraints for Conway witnesses

    • conwayEraOnwardsConstraints
    • shelleyToBabbageEraConstraints New types:
    • AnyConwayEraOnwards
    • AnyShelleyToBabbageEra (feature; compatible) PR 137
  • Expose functions for errors messages testing in golden files (feature; compatible) PR 126

8.10.0.0

  • Improved feature ergonomics New:

    • Featured
    • asFeaturedInEra
    • asFeaturedInShelleyBasedEra
    • genFeaturedInEra
    • genMaybeFeaturedInEra
    • conwayEraOnwardsToCardanoEra
    • conwayEraOnwardsToCardanoEra
    • conwayEraOnwardsToShelleyBasedEra
    • shelleyToBabbageEraConstraints
    • shelleyToBabbageEraToCardanoEra
    • shelleyToBabbageEraToShelleyBasedEra Deprecated:
    • FeatureValue Use Maybe Featured instead
    • isFeatureValue
    • valueOrDefault
    • asFeatureValue
    • asFeatureValueInShelleyBasedEra (feature; breaking) PR 128
  • Expose toShelleyPoolParams for Conway integration (feature; compatible) PR 134

  • FeatureInEra instance for ShelleyBasedEra (feature; compatible) PR 131

8.9.0.0

  • Expose more functionality from cardano-api (feature; compatible) PR 130

  • Rename AtMostBabbageEra to ShelleyToBabbageEra and add FeatureInEra instances to ShelleyToBabbageEra and ConwayEraOnwards. (feature; breaking) PR 127

  • Incorporate remaining conway certificate types into cardano-api (feature; breaking) PR 119

  • Wire up remaining Conway governance actions (feature; compatible) PR 112

  • Fix ghc version CPP (bugfix; compatible) PR 123

8.8.1.1

  • Add a HasTypeProxy constraint to getVerificationKey (feature; compatible) PR 122

8.8.1.0

  • Make it build with ghc-9.6 (feature; no-api-changes) PR 104

  • Fix Show and Eq instances for Proposal type (bugfix; no-api-changes) PR 115

  • Export withShelleyBasedEraConstraintsForLedger Use the ^>= version range operator for ledger and consensus libraries to avoid breaking changes affecting builds. (feature; compatible) PR 108

    • Update to the latest ledger and consensus
    • Introduce CommitteeKey (feature; breaking) PR 99

8.8.0.0

  • Add CastVerificationKeyRole StakePoolKey StakeKey instance (feature; compatible) PR 101

  • New shelleyBasedEraConstraints function (feature; compatible) PR 103

  • Propagate ledger's TxCert type family throughout the api (feature; breaking) PR 97

  • Parameterise Certificate with era (feature; breaking) PR 84

8.7.0.0

  • Update VotingCredential to be parameterized on cardano-api's era type (feature; breaking) PR 85

8.6.0.0

    • Parameterise Certificate type with phantom era type argument
    • Additional CardanoEra era argument for:
      • makeCommitteeDelegationCertificate
      • makeCommitteeHotKeyUnregistrationCertificate
      • makeMIRCertificate
      • makeStakeAddressDeregistrationCertificate
      • makeStakeAddressPoolDelegationCertificate
      • makeStakeAddressRegistrationCertificate
      • makeStakePoolRegistrationCertificate
      • makeStakePoolRetirementCertificate
    • New functions:
      • cardanoEraConstraints
      • textEnvelopeTypeInEra
    • Delete Certificate constructor arguments from:
      • PoolRegistration
      • PoolReRegistration (feature; breaking) PR 83
    • Conway related
    • Incorporate the ability to specify votes and governance actions in transactions
    • Introduce TxVotes and TxGovernanceActions types (feature; breaking) PR 41

8.5.2.0

  • New requireShelleyBasedEra function (feature; compatible) PR 58

8.5.1.0

  • New queryEpoch function (feature; compatible) PR 56

8.5.0.0

  • New queries:
    • queryCurrentEpochState
    • queryDebugLedgerState
    • queryGenesisParameters
    • queryPoolDistribution
    • queryPoolState
    • queryProtocolParameters
    • queryProtocolParametersUpdate
    • queryProtocolState
    • queryStakeAddresses
    • queryStakeDistribution
    • queryStakePoolParameters
    • queryStakeSnapshot Deprecate:
    • queryPparams (feature; breaking) PR 53

8.4.0.0

  • Simplify queryStateForBalancedTx such that:
    • It no longer invokes executeQueryCardanoMode `queryNodeLocalState, allowing it to run over a single connection
    • It no longer takes socketPath and networkId parameters (feature; breaking) PR 47

8.3.0.0

  • This module exports our query API as functions. It is intended to replace our query API as the public API.

    Having functions as our public API rather than data allows us to export non-primitive functions as well as afford us the ability to refactor our query data types without breaking user code (feature; compatible) PR 48

  • Generate fields only if they make sense for the given era. Changes:

    • New Cardano.Api.Feature module
    • NewFeatureInEra type class
    • New FeatureValue type
    • New functions:
      • genFeatureValueInEra
      • featureInShelleyBasedEra
      • isFeatureValue
      • valueOrDefault
      • asFeatureValue
      • asFeatureValueInShelleyBasedEra
    • genProtocolParameters and genValidProtocolParameters functions take additional era argument (feature; breaking) PR 40

8.2.0.0

  • Changes:

    • Updated plutus, ledger, and consensus dependency bounds
    • Added support for Plutus V3 in conway
    • Added a query field to LocalNodeConnectInfo
    • Field added to LocalNodeConnectInfo (feature; breaking) PR 24
  • Crypto pinning via iohkNix overlay (bugfix; no-api-changes) PR 27

8.1.1.1

  • Make cardano-api:internal component public (feature; compatible) PR 26

8.1.1.0

  • Expose toAlonzoCostModels function from Cardano.Api (feature; compatible) PR 17

  • Add Eq and Data instances to various error types (feature; compatible) PR 9

  • Remove support for reading ApplicationName and ApplicationVersion from node configuration and replace with hardcoded values. (feature; breaking) PR 8

  • Add new checkVrfFilePermissions function (feature; compatible) PR 11

  • Added genValidProtocolParameters generator producing ProtocolParameters which do pass validations in Cardano.Api.ProtocolParameters module. Remove Cardano.Api.Orphans from public API. (feature, test; breaking) PR 1

8.1.0

  • Addition of QueryStakeDelegDeposits ledger state query.

  • Breaking change - evaluateTransactionBalance, makeTransactionBodyAutoBalance and constructBalancedTx requires a mapping from StakeCredential to a deposit for every unregistration certificate present in the transaction

  • Breaking change - queryStateForBalancedTx now requires a list of certificates and produces a Map with StakeCredential to a deposit for every deregistration certificate in the supplied list

Features

  • New functions: intoFile, readByteStringFile, readLazyByteStringFile, readTextFile. Modify functions in Cardano.Api.IO to use unspecified content type rather than (). (PR 5194)

  • Breaking change

  • Delete Cardano.Api.Environment module. Merge two SocketPath type definitions to the one defined in Cardano.Api.IO Delete EnvSocketError and associated functions and types. (PR 5215)

  • NodeConfigFile newtype replaced with NodeConfigFile type alias. GenesisConfigFile newtype replaced with ByronGenesisFile, ShelleyGenesisFile, AlonzoGenesisFile, ConwayGenesisFile type aliases. New ByronGenesisConfig, ShelleyGenesisConfig, AlonzoGenesisConfig, ConwayGenesisConfig type aliases. (PR 5217)

Bugs

  • Fix toEraInMode for Conway (PR 5175)

8.0.0 -- May 2023

  • Add getSlotForRelativeTime function (PR 5130)

  • New ToJSON ScriptWitnessIndex instance that produces machine readable output. Any JSON output uses this instance. PR 5168

Features

  • Delete readEnvSocketPath function. (PR 5207)

  • Expose node config reading functionality: NodeConfig, NodeConfigFile and readNodeConfig

  • Expose genesis file reading functionality:

    • All eras: GenesisConfig and readCardanoGenesisConfig
    • Byron: readByronGenesisConfig
    • Shelley: ShelleyConfig, GenesisHashShelley, readShelleyGenesisConfig and shelleyPraosNonce
    • Alonzo: GenesisHashAlonzo and readAlonzoGenesisConfig
    • Conway: GenesisHashConway and readConwayGenesisConfig
  • Expose envirnment construction functionality: mkProtocolInfoCardano and genesisConfigToEnv

  • New error exports:

    • TxOutInAnyEra(..)
    • txOutInAnyEra
    • StakePoolMetadataValidationError(..)
    • ScriptHash(..) (PR 5188)
  • Rename TestEnableDevelopmentHardForkEras to ExperimentalHardForksEnabled and TestEnableDevelopmentNetworkProtocols to ExperimentalProtocolsEnabled (PR 4341)

  • Changed type of protocolParamTxFeeFixed, protocolParamTxFeePerByte from Natural to Lovelace and protocolUpdateTxFeeFixed and protocolUpdateTxFeePerByte from Maybe Natural to Maybe Lovelace (PR 5013)

  • Append, not prepend change output when balancing a transaction (PR 4343)

  • Expose convenience functions executeQueryCardanoMode, determineEra, constructBalancedTx and queryStateForBalancedTx (PR 4446)

  • Expand BalancedTxBody to include TxBodyContent (PR 4491)

  • Change calculateMinimumUTxO to return Lovelace instead of a Value (PR 4482)

  • Breaking change - Reduce exposed modules in cardano-api (PR4546)

  • Breaking change - deserialiseFromRawBytes method of the SerialiseAsRawBytes type class to return Either instead of Maybe. Deprecate eitherDeserialiseFromRawBytes. Use deserialiseFromRawBytes instead. (PR 4876)

  • Breaking change - Preserve ScriptData bytes with HashableScriptData (PR4886)

  • Breaking change - determineEraExpr to return IO (Either UnsupportedNtcVersionError AnyCardanoEra) instead of IO AnyCardanoEra. (PR4788)

  • Breaking change - queryExpr to return IO (Either UnsupportedNtcVersionError a) instead of IO a. (PR4788)

  • Breaking change - Remove distinction between multisig and timelock scripts(PR4763)

  • Breaking change Change return type of queryNodeLocalState to new AcquiringFailure type.

  • Breaking change - For performance reasons, evaluateTransactionFee to take a Ledger.PParams (ShelleyLedgerEra era) argument instead of ProtocolParameters New type BundledProtocolParameters and new functions bundleProtocolParams and unbundleProtocolParams. (PR4903)

  • Auto-balance multi asset transactions (PR 4450)

  • Breaking change - Removed fromShelleyPParams in favor of fromLedgerPParams ShelleyBasedEraShelley (PR 5013)

  • Breaking change - JSON fields have been changed: (PR 5013)

    • For PState:
      • Renamed "pParams pState" -> "pParams"
      • Renamed "fPParams pState" -> "fPParams"
      • Renamed "retiring pState" -> "retiring"
      • Added "deposits"
    • For DState:
      • Removed "unifiedRewards"
      • Added "unified", which contains an object with both rewards and deposits.
    • For InstantaneousRewards:
      • Addition of "deltaReserves" and "deltaTreasury" fields
    • CostModel in AlonzoGenesis and PParams is formatted with a list of values to promote forward compatibility
  • Fix a bug where only metadata from TxAuxData was hashed upon transaction body creation with createTransactionBody (PR 5013)

  • Breaking change - Change representation of CostModel. It is no longer a mapping from param name to values, but instead a list with values, where order of value dictates the mapping to param names of a plutus cost model for a particular plutus version (PR 5013)

  • Breaking change - ToJSON instance for CostModel and consequently for ProtocolParameters will now produce a list of values instead of a key value mapping. (PR 5013)

  • Breaking change - calculateMinimumUTxO no longer fails, it is a total computation. (PR 5013)

  • New generators in gen sublibrary: genPositiveLovelace, genPositiveQuantity and genSignedNonZeroQuantity. (PR 5013)

  • New 'Governance.Poll' API implementing CIP-0094 (PR 5050)

  • Split serialisation from IO (PR 5049)

  • Move parsers to reusable location (PR 5046)

  • Remove unused error constructors (PR 5041)

  • New bounded function (PR 4919)

  • Modify constructBalancedTx to take LedgerEpochInfo (PR 4858)

  • Add ReaderT of NodeToClientVersion to LocalStateQueryExpr (PR 4809)

  • New QueryStakeSnapshot query (PR 4754) (PR 4179)

  • Move signing key reading to cardano-api (PR 4698)

  • Replace Data.Map with Data.Map.Strict (PR 4675)

  • New Cardano.Api.DeserialiseAnyOf module (PR 4639)

  • Replace deserialiseFromRawBytes function with eitherDeserialiseFromRawBytes (PR 4626)

  • New deserialiseFromTextEnvelopeCddlAnyOf function (PR 4625)

  • ** Breaking ** Replace NotScriptLockedTxInsError type with ScriptLockedTxInsError (PR 4484)

  • Separate validation and creation of transaction bodies (PR 4468)

  • New QueryPoolDistribution query (PR 4250)

  • More efficient ToJSON instances that make use of toEncoding for streaming. (PR 4205)

  • Expose AcquireFailure and SystemStart from Cardano.Api.Shelley (PR 4199)

  • Update makeTransactionBodyAutoBalance function to automatically calculate the total and return collateral values (PR 4198)

  • New QueryPoolState query (PR 4170)

  • Add utxoCostPerByte protocol parameter (PR 4141)

  • Expose Key interface in Cardano.Api.Shelley (PR 4048)

  • New generateInsecureSigningKey function (PR 4021)

  • SPO on-chain poll commands adjustments (PR 5132)

  • UTC Time to slots conversion function (PR 5130)

  • Add new interim governance commands: {create, answer, verify}-poll (PR 5112)

  • CIP-1694 make space for DRep certificates (PR 5108)

  • File type to track the content and direction of files (PR 5105)

  • Expose UsingRawBytes et al types (PR 5086)

  • Expose SerialiseAsRawBytesError in Cardano.Api (PR 5085)

  • New genCardanoKeyWitness function (PR 5071)

  • Replace roundtripCBOR with trippingCbor (PR 5069)

  • Remove non-round-trippable value TxInsReferenceNone for babbage onwards in generator (PR 5064)

  • Improve roundtrip functions to report annotations on callsite (PR 5063)

  • Define Functor instance for FileError (PR 5057)

  • Script data serialisation (PR 5002)

  • Add LedgerStateBabbage and LedgerStateConway pattern synonyms (PR 5001)

  • Conway hard forks on prot-ver 9 (PR 4988)

  • Guard against overflows in Shelley TxIns (PR 4956)

  • Remove duplicate scripts when building transaction body for Mary, Alonzo and Babbage (PR 4953)

  • Combinators for TxBodyContent and related types (PR 4941)

  • Preserve ScriptData bytes fix (PR 4926)

  • Detect invalid counter and certificate (PR 4880)

  • Implement ADR-2: Restructure modules for generators (PR 4833)

  • New NodeToClientVersionOf typeclass (PR 4787)

  • Implement signArbitraryBytesKes for use in Mithril (PR 4779)

  • Export SubmitResult from Cardano.Api (PR 4753)

  • Add support for ghc-9.2 and partial support for CHaP (PR 4701)

  • Append tx output in cli transaction build command (PR 4696)

  • Add ToJSON/FromJSON instances for ChainPoint (PR 4686)

  • Add an Ord ChainPoint instance (PR 4685)

  • Derive Eq instance for AcquiringFailure (PR 4683)

  • Export fromShelleyBasedScript from Cardano.Api (PR 4682)

  • Expose TextEnvelopeCddl from Cardano.Api (PR 4635)

  • Expose txScriptValidityToScriptValidity in Cardano.Api (PR 4628)

  • Cardano Node 1.35.6 aka Single Relay P2P release (PR 4612)

  • Update ouroboros-network and cardano-ledger dependencies (PR 4608)

  • export RawBytesHexError (PR 4599)

  • Module reshuffle (PR 4593)

  • Add Ord instance for AddressInEra (PR 4587)

  • Add ToJSON and FromJSON instances for Address (PR 4568)

  • Export TxIns type alias (PR 4565)

  • Export IsPlutusScriptLanguage (PR 4554)

  • Export more generators (PR 4534)

  • Condense Read and Validation modules in cardano-cli (PR 4516)

  • Export TxTotalAndReturnCollateralSupportedInEra from Cardano.Api (PR 4496)

  • Export LocalTxSubmissionClient data constructor (PR 5096)

Bugs

  • Fix: Add AStakeExtendedVerificationKey back into deserialiseAnyVerificationKeyTextEnvelope (PR 4918)

  • Fix: Re-add AGenesisExtendedVerificationKey back into deserialiseAnyVerificationKeyTextEnvelope (PR 4894)

  • Allow reading text envelopes from pipes (PR 4384)

  • Fix 4493 bug - TxWitness text envelope format does not roundtrip in Shelley era (PR 4501)

  • Fix minUTxO calculation in calculateMinimumUTxO function in cardano-api (PR 5013)

1.35.3 -- August 2022

  • Fix leadership schedule for current on babbage (#4106)
  • Update build to allow all invalid scripts (again) (#4088)
  • Fix building of Alonzo transaction in Babbage era. (#4166)
  • Add utxoCostPerByte protocol parameter (#4141)

1.35.2 -- July 2022 (not released)

None

1.35.1 -- July 2022 (not released)

None

1.35.0 -- June 2022

  • Add Vasil hardfork to cardano-api and cardano-cli (#3765)
  • Reference script integration (#3953)
  • Wire up remaining Plutusv2 reference script types (#4034)
  • Add IsString (Hash BlockHeader) (#3619)
  • Make LedgerStateEvents a type alias (#3692)
  • Propagate protocol epoch state decode error (#3696)
  • Expose the tx mempool monitoring mini protocol in cardano-api (#3706)
  • Babbage functionality integration in cardano api Part 1 (#3803)
  • Remove unused package (#3816)
  • Add IsCardanoEra constraint to BlockInMode (#3665)
  • Update cardano-api's TxOut with inline datum (#3773)
  • Update cardano-api txout with reference scripts (#3779)
  • Implement return and total collateral in cardano-api (#3787)
  • Add reference transaction inputs to cardano-api (#3804)
  • Fix datum in tx and ref scripts (#3882)
  • Support the babbage era in the API function cddlTypeToEra (#3916)
  • Fix typo for TxWitness BabbageEra (#3961)
  • kes-period-info property test (#3718)
  • Extend deserialiseFromRawBytesHex to produce error description (#3304)
  • add genesis create-cardano command (#3832)
  • Propagate protocol in block type (#3818)
  • Create VRF signing key file with correct permissions (#1948)
  • Update example-reference-script-usage.sh to also use inline datums (#4006)
  • Restore deleted comment (#4044)
  • Do not require decentralization parameter in protocol parameters (#4051)

1.34.0 -- February 2022

  • Expose lovelaceToTxOutValue. (#3381)
  • Implement two functions: currentEpochEligibleLeadershipSlots and nextEpochEligibleLeadershipSlots to get the leadership slots for the current/next epoch respectively. (#3464, #3494)
  • Various small internal fixes. (#3466)
  • Add a capi library to support using the cardano node as a C library in other software. (#3501)
  • fromShelleyAddr now takes an explicit ShelleyBasedEra parameter to determine the era. The previous behaviour (with an implicit IsShelleyBasedEra constraint) can be obtained with fromShelleyAddrIsSbe. (#2253, #3606)

1.33.0 -- December 2021

1.32.1 -- November 2021

  • Asset names are now rendered in a more consistent fashion in JSON output. Previously names which happened to be valid ASCII were rendered as such, and ones which were not resulted in unprintable characters. Now all names are rendered as hex. Future clients may choose to additionally render ASCII names if plausible to do so. (#3211)
  • Various testing improvements. (#3361)
  • Expose ledger events via the ledger state API. (#3374)

1.31.0 -- October 2021

  • Various internal improvements and refactorings. (#3163, #3253, #3288)

1.30.0 -- September 2021

  • Improvements to the ledger state API. (#3143)
  • Make it easier to use monadic queries. (#3151)
  • Implement 'getBlockHeader' for Alonzo. This was a stray function that got missed when implementing Alonzo in the API. (#3158)
  • A few additional exports for API consumers. (#3156)
  • Expose ledger events through the API. Ledger events provide a way for consumers to receive details about things that are happening inside the ledger, and will be used by tools such as db-sync. (#3085)
  • Improve the error message reported when you try to spend a non-Plutus locked input using a Plutus script. (#3187)

1.29.0 -- August 2021

  • Support for automated Tx building. (#2953)
  • A few additional exports for API consumers. (#3001, #3055)
  • Miscellaneous internal improvements. (#2948)
  • Block folding interface now derives the network ID automatically from the ledger config. (#2955, #2975)
  • Improve the error generated when a Tx output does not meet the minimum UTxO value. (#3027)
  • Add support for querying the Alonzo ledger state. (#2974)
  • Update the API documentation.

1.28.0 -- July 2021

  • Support for the upcoming Alonzo era, including protocol parameters, Plutus scripts and collateral inputs. (#2784, #2798, #2808, #2810, #2815, #2818, #2823, #2828)
  • Add a function 'getTransactionBodyContent'. This extracts a general view of the TxBody from the era-specific bodies. (#2663)
  • Add API support for new node queries:
    • QuerySystemStart gets the system start time.
    • QueryStakePools and QueryStakePoolParameters can be used to get details on the currently known stake pools.
    • QueryUTxOFilter provides various ways to query a filtered subset of the UTxO. (#2843)
  • Added functions to the API to assist in automated transaction building:
    • evaluateTransactionBalance computes the current balance of a (partial) transaction, which is helpful for determining what needs to be done to correctly balance it (such that value produced equals value consumed).
    • evaluateTransactionExecutionUnits computes how many ExUnits will be needed by all the scripts in a (partial) transaction.
    • evaluateTransactionFee computes the fee for a (partial) transaction, assuming a given number of VKey witnesses (corresponding to inputs).
    • estimateTransactionKeyWitnessCount attempts to estimate the number of VKey witnesses needed.
    • makeTransactionBodyAutoBalance attempts to create and automatically balance a transaction body, using the above tools. (#2906)
  • Miscellaneous internal improvements. (#2836, #2840)

1.27.0 -- April 2021

  • Add initial support for the ledger state and folding over blocks to the API. (#2633)
  • Scripts are now stored within the TxBody in the API, rather than in the witnesses. (#2547)

1.26.1 -- March 2021

  • The cardano-submit-api now takes transactions encoded as CBOR rather than JSON. This reverts a change to existing behaviour for backwards compatibility. (#2491, #2512)
  • Remove a backwards-compatibility workaround related to the optional query point (#2241 below) when querying the NodeLocalState. This had resulted in spurious notifications of disconnection in the logs. Note that as a consequence of this, instances of the CLI and other tools using the 1.26.1 API will fail to query node state from older versions of the node. (#2540)

1.26.0 -- March 2020

  • Added a demo for the use of cardano-client. This is an API to allow writing programs to interact with the cardano node. (#2295, #2303)
  • Removed code pertaining to the old IPC API (#2319)
  • Add the ability to calculate the minimum deposit needed for a transaction to the API, given a value. (#2325)
  • When querying the NodeLocalState, make the query point optional, and use the chain tip when not specified. (#2241)
  • Various internal improvements and refactoring (#2349, #2458)

1.25.0 -- January 2020

  • New IPC modules for easier interaction with the node, including support for all existing local state queries (#2230, #2238, #2263, #2277, #2286)
  • API support for Byron era update proposals and votes (#2209, #2271)
  • Make Cardano.Api the primary public module for the API.
  • API support for serialising multi-asset PolicyId and AssetName (#2270)
  • API for pretty-printing JSON output (#2103)
  • Improved tests for Byron era legacy key formats (#2259)
  • More precise error cases for tx outputs that are out of range (#2217)
  • Host up-to-date generated API documentation via github https://github.com/IntersectMBO/cardano-node (#2273, #2276, #2278)

1.24.2 -- December 2020

None

1.24.1 -- December 2020

  • Fix the getTxId implementation for Byron-era transactions (#2169)

1.24.0 -- December 2020

  • Full API support for the Allegra and Mary eras, including creating transactions for the new eras, and support for the special new features in the new eras: script extensions, tx validity intervals, auxiliary scripts, multi-asset tx outputs and asset minting (#2092, #2110, #2111, #2121, #2127, #2128, #2141, #2149)

1.23.0 -- November 2020

  • Preliminary support for the Allegra script language extensions (#2069)
  • Preliminary support for the Mary multi-asset extensions (#2083, #2085, #2093)
  • Internal refactoring of the API code (#2040, #2055, #2094)

1.22.1 -- October 2020

None

1.22.0 -- October 2020

  • Preliminary support for the upcoming Allegra and Mary eras (#1958, #2019)
  • Additional test coverage (#1999)

1.21.2 -- September 2020

  • Add a Ed25519-BIP32 instance of the new crypto classes (#1933, #1952)
  • Adjust what is exposed via Cardano.Api.{Byron,Shelley} (#1932)

1.21.1 -- September 2020

None

1.21.0 -- September 2020

  • Support for multi-signature scripts (#1788)
  • Support for Byron witnesses for addresses that use attributes, which includes all addresses in legacy Daedalus Byron wallets (#1851, #1871)
  • Introduce a Cardano.Api top level module exporting only the public parts and modules Cardano.Api.{Byron,Shelley} that expose the underlying library types for applications that need it (#1881)

1.20.0 -- September 2020

  • Improved support for JSON to Tx metadata conversions, with two supported JSON schemas, suitable for different use cases (#1797)

1.19.1 -- September 2020

  • Adjust the tx metadata JSON schema to be fully recursive (#1735)
  • Audit compliance with CIP5 for common bech32 prefixes (#1781)
  • Add functionality for validating tx metadata (#1432, #1677)

1.19.0 -- August 2020

  • Support for scripts and specifically multi-sig scripts (#1623)
  • Support for JSON syntax for multi-sig scripts (#1660)
  • Support for converting tx metadata to/from JSON (#1606, #1682)
  • Support for Bech32-encoded stake pool IDs (#1528, #1638)
  • Code tidying using hlint and style tool (#1590, #1625, #1663, #1707, #1708)

1.18.0 -- July 2020

None

1.17.0 -- July 2020

  • Allow genesis keys as tx witnesses (#1483)
  • Allow extended genesis delegate keys to sign operational certs (#1497)
  • Add support for extended keys for stake, genesis and delegate keys (#1487)

1.16.0 -- July 2020

  • Remove the old API (#1444, #1456)
  • Added raw serialisation instances for all key types (#1455)
  • Added bech32 serialisation following draft CIP 5 (#1455)

1.15.1 -- July 2020

  • Include tx metadata in transactions in the new api (#1406)
  • Add support for extended ed25519 keys for payment keys (#1411)
  • Improve tx submission API in the new API (#1430)

1.15.0 -- July 2020

  • Fix the ledger state dump query (#1333, #1334)
  • Support for Byron witnesses in Shelley txs in the typed API (#1339)
  • Support for Bech32 serialisation in the typed API (#1382)
  • Support for other additional functionality in the typed API (#1337, #1375)
  • More tests for the typed API (#1360, #1369, #1378)
  • Moving code around to eliminate the cardano-config package (#1289, #1380)

1.14.2 -- June 2020

  • Fix the query that dumps the ledger state as JSON (#1333)

1.14.1 -- June 2020

No changes in the cardano-api. There were changes in the cardano-node.

1.14.0 -- June 2020

  • Improvements to the strongly-typed API (#1112, #1220, #1227, #1246)

    The API is not yet stable in this release.

1.13.0 -- June 2020

  • Initial version of an improved strongly-typed API. Initially focusing on creating and serialising keys.

    The API is not yet stable in this release.

1.11.0 -- April 2020

  • Initial version of the API package. The package provides client-side functionality for constructing and submitting transactions.

    The API is not yet stable in this release.

  • Initial transaction API with Byron support and Shelley stubs (#787)

  • Shelley address key pair generation (#799)