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
64 changes: 61 additions & 3 deletions cabal.project
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,16 @@ repository cardano-haskell-packages
-- See CONTRIBUTING for information about these, including some Nix commands
-- you need to run if you change them
index-state:
, hackage.haskell.org 2025-11-05T09:40:54Z
, cardano-haskell-packages 2025-11-24T10:27:41Z
, hackage.haskell.org 2025-12-03T15:53:31Z
, cardano-haskell-packages 2025-12-01T07:41:27Z

packages:
cardano-api
cardano-api-gen
cardano-wasm
cardano-rpc
-- TODO: cabal cannot construct a build plan due to cardano-rpc,
-- we probably need to constrain it's dependencies further
-- cardano-rpc

extra-packages: Cabal

Expand Down Expand Up @@ -164,3 +166,59 @@ if arch(wasm32)
-- IMPORTANT
-- Do NOT add more source-repository-package stanzas here unless they are strictly
-- temporary! Please read the section in CONTRIBUTING about updating dependencies.

source-repository-package
type: git
location: https://github.com/IntersectMBO/cardano-ledger
tag: 71ec2758703b75b5a6187438a08eb3386773850e
--sha256: sha256-elIA+esNslfejQEuoYszrG7MkKJVc1AulUBDSIIEUEo=
subdir:
eras/allegra/impl
eras/alonzo/impl
eras/alonzo/test-suite
eras/babbage/impl
eras/byron/chain/executable-spec
eras/byron/crypto
eras/byron/ledger/executable-spec
eras/byron/ledger/impl
eras/conway/impl
eras/dijkstra/impl
eras/mary/impl
eras/shelley-ma/test-suite
eras/shelley/impl
eras/shelley/test-suite
libs/cardano-data
libs/cardano-ledger-api
libs/cardano-ledger-binary
libs/cardano-ledger-core
libs/cardano-protocol-tpraos
libs/non-integral
libs/plutus-preprocessor
libs/small-steps
libs/vector-map

source-repository-package
type: git
location: https://github.com/IntersectMBO/ouroboros-consensus
tag: c6c00805ea5b450e16efdfe22a3b3b6f3a360c82
--sha256: sha256-DtiaTJI5uAt4CZEv/OBsv8SSv9/OwK1wm2mMPn56XJE=
subdir:
ouroboros-consensus
ouroboros-consensus-cardano
ouroboros-consensus-diffusion
ouroboros-consensus-protocol
strict-sop-core
sop-extras

-- Backported version of https://github.com/IntersectMBO/ouroboros-network/pull/5161
source-repository-package
type: git
location: https://github.com/IntersectMBO/ouroboros-network
tag: 1385b53cefb81e79553b6b0252537455833ea9c4
--sha256: sha256-zZ7WsMfRs1fG16bmvI5vIh4fhQ8RGyEvYGLSWlrxpg0=
subdir:
ouroboros-network-api
ouroboros-network
ouroboros-network-framework
ouroboros-network-mock
ouroboros-network-protocols
27 changes: 13 additions & 14 deletions cardano-api/cardano-api.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -125,16 +125,16 @@ library
cardano-binary,
cardano-crypto,
cardano-crypto-class ^>=2.2.3.2,
cardano-crypto-wrapper ^>=1.6,
cardano-crypto-wrapper ^>=1.7,
cardano-data >=1.0,
cardano-ledger-allegra >=1.7,
cardano-ledger-alonzo >=1.13,
cardano-ledger-api ^>=1.12.1,
cardano-ledger-api ^>=1.13,
cardano-ledger-babbage >=1.11,
cardano-ledger-binary >=1.6,
cardano-ledger-byron >=1.2,
cardano-ledger-conway >=1.19,
cardano-ledger-core >=1.17 && <1.19,
cardano-ledger-core >=1.17 && <1.20,
cardano-ledger-dijkstra >=0.1,
cardano-ledger-mary >=1.8,
cardano-ledger-shelley >=1.16,
Expand All @@ -156,7 +156,7 @@ library
groups,
iproute,
memory,
microlens,
microlens <0.5,
mono-traversable,
mtl,
network,
Expand All @@ -172,8 +172,8 @@ library
ouroboros-network-framework,
ouroboros-network-protocols >=0.15,
parsec,
plutus-core ^>=1.53,
plutus-ledger-api ^>=1.53,
plutus-core ^>=1.53.1,
plutus-ledger-api ^>=1.53.1,
pretty-simple,
prettyprinter,
prettyprinter-ansi-terminal,
Expand Down Expand Up @@ -323,10 +323,9 @@ library gen
base16-bytestring,
bytestring,
cardano-api,
cardano-binary >=1.6 && <1.8,
cardano-crypto-class,
cardano-crypto-test ^>=1.6,
cardano-crypto-wrapper,
cardano-binary >=1.6 && <1.9,
cardano-crypto-class ^>=2.2.1,
cardano-crypto-wrapper:{cardano-crypto-wrapper, testlib} ^>=1.7,
cardano-ledger-alonzo >=1.8.1,
cardano-ledger-babbage,
cardano-ledger-byron,
Expand Down Expand Up @@ -371,7 +370,7 @@ test-suite cardano-api-test
cardano-crypto-tests ^>=2.2,
cardano-crypto-wrapper,
cardano-ledger-alonzo,
cardano-ledger-api ^>=1.12.1,
cardano-ledger-api ^>=1.13,
cardano-ledger-binary,
cardano-ledger-conway,
cardano-ledger-core >=1.14,
Expand Down Expand Up @@ -446,7 +445,7 @@ test-suite cardano-api-golden
cardano-crypto-class,
cardano-data >=1.0,
cardano-ledger-alonzo,
cardano-ledger-api ^>=1.12.1,
cardano-ledger-api ^>=1.13,
cardano-ledger-binary,
cardano-ledger-core >=1.14,
cardano-ledger-shelley,
Expand All @@ -457,8 +456,8 @@ test-suite cardano-api-golden
hedgehog >=1.1,
hedgehog-extras ^>=0.10,
microlens,
plutus-core ^>=1.53,
plutus-ledger-api ^>=1.53,
plutus-core ^>=1.53.1,
plutus-ledger-api ^>=1.53.1,
tasty,
tasty-discover,
tasty-hedgehog,
Expand Down
13 changes: 7 additions & 6 deletions cardano-api/src/Cardano/Api/Address.hs
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ import Cardano.Ledger.Address qualified as Shelley
import Cardano.Ledger.BaseTypes qualified as Shelley
import Cardano.Ledger.Credential qualified as Shelley
import Cardano.Ledger.Plutus.TxInfo qualified as Plutus
import Cardano.Ledger.Keys qualified as Shelley
import PlutusLedgerApi.V1 qualified as PlutusAPI

import Control.Applicative ((<|>))
Expand Down Expand Up @@ -183,7 +184,7 @@ data Address addrtype where
-- in Shelley era and are thus supported from the Shelley era onwards
ShelleyAddress
:: Shelley.Network
-> Shelley.PaymentCredential
-> Shelley.Credential Shelley.Payment
-> Shelley.StakeReference
-> Address ShelleyAddr

Expand Down Expand Up @@ -527,7 +528,7 @@ makeShelleyAddressInEra sbe nw pc scr =
data StakeAddress where
StakeAddress
:: Shelley.Network
-> Shelley.StakeCredential
-> Shelley.Credential Shelley.Staking
-> StakeAddress
deriving (Eq, Ord, Show)

Expand Down Expand Up @@ -652,15 +653,15 @@ toShelleyStakeAddr (StakeAddress nw sc) =

toShelleyPaymentCredential
:: PaymentCredential
-> Shelley.PaymentCredential
-> Shelley.Credential Shelley.Payment
toShelleyPaymentCredential (PaymentCredentialByKey (PaymentKeyHash kh)) =
Shelley.KeyHashObj kh
toShelleyPaymentCredential (PaymentCredentialByScript sh) =
Shelley.ScriptHashObj (toShelleyScriptHash sh)

toShelleyStakeCredential
:: StakeCredential
-> Shelley.StakeCredential
-> Shelley.Credential Shelley.Staking
toShelleyStakeCredential (StakeCredentialByKey (StakeKeyHash kh)) =
Shelley.KeyHashObj kh
toShelleyStakeCredential (StakeCredentialByScript sh) =
Expand Down Expand Up @@ -704,15 +705,15 @@ fromShelleyStakeAddr :: Shelley.RewardAccount -> StakeAddress
fromShelleyStakeAddr (Shelley.RewardAccount nw sc) = StakeAddress nw sc

fromShelleyStakeCredential
:: Shelley.StakeCredential
:: Shelley.Credential Shelley.Staking
-> StakeCredential
fromShelleyStakeCredential (Shelley.KeyHashObj kh) =
StakeCredentialByKey (StakeKeyHash kh)
fromShelleyStakeCredential (Shelley.ScriptHashObj sh) =
StakeCredentialByScript (fromShelleyScriptHash sh)

fromShelleyPaymentCredential
:: Shelley.PaymentCredential
:: Shelley.Credential Shelley.Payment
-> PaymentCredential
fromShelleyPaymentCredential (Shelley.KeyHashObj kh) =
PaymentCredentialByKey (PaymentKeyHash kh)
Expand Down
2 changes: 2 additions & 0 deletions cardano-api/src/Cardano/Api/Block.hs
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,8 @@ getShelleyBlockTxs
getShelleyBlockTxs era (Ledger.Block _header txs) =
[ ShelleyTx era txinblock
| txinblock <- toList (Ledger.fromTxSeq txs)
-- TODO: Need to Ledger.fromTxSeq -> txSeqBlockBodyL,
-- but the latter causes a blow-up of constraints
]

-- ----------------------------------------------------------------------------
Expand Down
72 changes: 36 additions & 36 deletions cardano-api/src/Cardano/Api/Certificate/Internal.hs
Original file line number Diff line number Diff line change
Expand Up @@ -353,11 +353,11 @@ makeStakeAddressDelegationCertificate = \case
data StakePoolRegistrationRequirements era where
StakePoolRegistrationRequirementsConwayOnwards
:: ConwayEraOnwards era
-> Ledger.PoolParams
-> Ledger.StakePoolParams
-> StakePoolRegistrationRequirements era
StakePoolRegistrationRequirementsPreConway
:: ShelleyToBabbageEra era
-> Ledger.PoolParams
-> Ledger.StakePoolParams
-> StakePoolRegistrationRequirements era

{-# DEPRECATED
Expand Down Expand Up @@ -672,7 +672,7 @@ fromShelleyCertificate
fromShelleyCertificate =
caseShelleyToBabbageOrConwayEraOnwards ShelleyRelatedCertificate ConwayCertificate

toShelleyPoolParams :: StakePoolParameters -> Ledger.PoolParams
toShelleyPoolParams :: StakePoolParameters -> Ledger.StakePoolParams
toShelleyPoolParams
StakePoolParameters
{ stakePoolId = StakePoolKeyHash poolkh
Expand All @@ -687,23 +687,23 @@ toShelleyPoolParams
} =
-- TODO: validate pool parameters such as the PoolMargin below, but also
-- do simple client-side sanity checks, e.g. on the pool metadata url
Ledger.PoolParams
{ Ledger.ppId = poolkh
, Ledger.ppVrf = Ledger.toVRFVerKeyHash vrfkh
, Ledger.ppPledge = stakePoolPledge
, Ledger.ppCost = stakePoolCost
, Ledger.ppMargin =
Ledger.StakePoolParams
{ Ledger.sppId = poolkh
, Ledger.sppVrf = Ledger.toVRFVerKeyHash vrfkh
, Ledger.sppPledge = stakePoolPledge
, Ledger.sppCost = stakePoolCost
, Ledger.sppMargin =
fromMaybe
(error "toShelleyPoolParams: invalid PoolMargin")
(Ledger.boundRational stakePoolMargin)
, Ledger.ppRewardAccount = toShelleyStakeAddr stakePoolRewardAccount
, Ledger.ppOwners =
, Ledger.sppRewardAccount = toShelleyStakeAddr stakePoolRewardAccount
, Ledger.sppOwners =
fromList
[kh | StakeKeyHash kh <- stakePoolOwners]
, Ledger.ppRelays =
, Ledger.sppRelays =
fromList
(map toShelleyStakePoolRelay stakePoolRelays)
, Ledger.ppMetadata =
, Ledger.sppMetadata =
toShelleyPoolMetadata
<$> Ledger.maybeToStrictMaybe stakePoolMetadata
}
Expand Down Expand Up @@ -745,35 +745,35 @@ toShelleyPoolParams
Ledger.textToUrl (Text.length url) url

fromShelleyPoolParams
:: Ledger.PoolParams
:: Ledger.StakePoolParams
-> StakePoolParameters
fromShelleyPoolParams
Ledger.PoolParams
{ Ledger.ppId
, Ledger.ppVrf
, Ledger.ppPledge
, Ledger.ppCost
, Ledger.ppMargin
, Ledger.ppRewardAccount
, Ledger.ppOwners
, Ledger.ppRelays
, Ledger.ppMetadata
Ledger.StakePoolParams
{ Ledger.sppId
, Ledger.sppVrf
, Ledger.sppPledge
, Ledger.sppCost
, Ledger.sppMargin
, Ledger.sppRewardAccount
, Ledger.sppOwners
, Ledger.sppRelays
, Ledger.sppMetadata
} =
StakePoolParameters
{ stakePoolId = StakePoolKeyHash ppId
, stakePoolVRF = VrfKeyHash (Ledger.fromVRFVerKeyHash ppVrf)
, stakePoolCost = ppCost
, stakePoolMargin = Ledger.unboundRational ppMargin
, stakePoolRewardAccount = fromShelleyStakeAddr ppRewardAccount
, stakePoolPledge = ppPledge
, stakePoolOwners = map StakeKeyHash (toList ppOwners)
{ stakePoolId = StakePoolKeyHash sppId
, stakePoolVRF = VrfKeyHash (Ledger.fromVRFVerKeyHash sppVrf)
, stakePoolCost = sppCost
, stakePoolMargin = Ledger.unboundRational sppMargin
, stakePoolRewardAccount = fromShelleyStakeAddr sppRewardAccount
, stakePoolPledge = sppPledge
, stakePoolOwners = map StakeKeyHash (toList sppOwners)
, stakePoolRelays =
map
fromShelleyStakePoolRelay
(toList ppRelays)
(toList sppRelays)
, stakePoolMetadata =
fromShelleyPoolMetadata
<$> Ledger.strictMaybeToMaybe ppMetadata
<$> Ledger.strictMaybeToMaybe sppMetadata
}
where
fromShelleyStakePoolRelay :: Ledger.StakePoolRelay -> StakePoolRelay
Expand Down Expand Up @@ -832,7 +832,7 @@ fromShelleyStakePoolState
, stakePoolVRF = VrfKeyHash (Ledger.fromVRFVerKeyHash spsVrf)
, stakePoolCost = spsCost
, stakePoolMargin = Ledger.unboundRational spsMargin
, stakePoolRewardAccount = fromShelleyStakeAddr spsRewardAccount
, stakePoolRewardAccount = StakeAddress undefined spsRewardAccount -- TODO the Network argument was removed in Ledger
, stakePoolPledge = spsPledge
, stakePoolOwners = map StakeKeyHash (toList spsOwners)
, stakePoolRelays =
Expand Down Expand Up @@ -901,7 +901,7 @@ getAnchorDataFromCertificate c =
Ledger.RegTxCert _ -> return Nothing
Ledger.UnRegTxCert _ -> return Nothing
Ledger.DelegStakeTxCert _ _ -> return Nothing
Ledger.RegPoolTxCert poolParams -> strictMaybe (return Nothing) anchorDataFromPoolMetadata $ Ledger.ppMetadata poolParams
Ledger.RegPoolTxCert poolParams -> strictMaybe (return Nothing) anchorDataFromPoolMetadata $ Ledger.sppMetadata poolParams
Ledger.RetirePoolTxCert _ _ -> return Nothing
Ledger.GenesisDelegTxCert{} -> return Nothing
Ledger.MirTxCert _ -> return Nothing
Expand All @@ -915,7 +915,7 @@ getAnchorDataFromCertificate c =
Ledger.UnRegDepositTxCert _ _ -> return Nothing
Ledger.RegDepositDelegTxCert{} -> return Nothing
Ledger.DelegTxCert{} -> return Nothing
Ledger.RegPoolTxCert poolParams -> strictMaybe (return Nothing) anchorDataFromPoolMetadata $ Ledger.ppMetadata poolParams
Ledger.RegPoolTxCert poolParams -> strictMaybe (return Nothing) anchorDataFromPoolMetadata $ Ledger.sppMetadata poolParams
Ledger.RetirePoolTxCert _ _ -> return Nothing
Ledger.RegDRepTxCert _ _ mAnchor -> return $ Ledger.strictMaybeToMaybe mAnchor
Ledger.UnRegDRepTxCert _ _ -> return Nothing
Expand Down
Loading
Loading