Skip to content

Commit

Permalink
update CHaPs
Browse files Browse the repository at this point in the history
* Change ledger bounds in cardano-api, cardano-cli.
* Add Plutus V3 support to cardano-api, only available in the conway ledger era.
* PState is now parametric in era, not crypto.
* Adjust for new conway era certificates.
  Note that the certificate design is currently wrong in ledger,
  making the conway support in cardano-api type-checking but broken.
* Ledger UMapCompact is now UMap
* Ledger types with names involving DState are renamed to CertState.
* Add the new query flag to the CLI ping.
  • Loading branch information
Jared Corduan authored and newhoggy committed May 30, 2023
1 parent 3d4a8ab commit f07636b
Show file tree
Hide file tree
Showing 16 changed files with 75 additions and 38 deletions.
6 changes: 3 additions & 3 deletions bench/tx-generator/tx-generator.cabal
Expand Up @@ -97,7 +97,7 @@ library
, attoparsec
, base16-bytestring
, bytestring
, cardano-api ^>= 8.1.0.1
, cardano-api ^>= 8.2
, cardano-binary
, cardano-cli
, cardano-crypto-class
Expand Down Expand Up @@ -193,7 +193,7 @@ test-suite tx-generator-apitest
, bytestring
, filepath
, optparse-applicative-fork
, cardano-api ^>= 8.1.0.1
, cardano-api ^>= 8.2
, cardano-cli
, cardano-node
, plutus-tx
Expand All @@ -209,7 +209,7 @@ test-suite tx-generator-apitest
, bytestring
, filepath
, optparse-applicative-fork
, cardano-api ^>= 8.1.0.1
, cardano-api ^>= 8.2
, cardano-cli
, cardano-node
, transformers
Expand Down
2 changes: 1 addition & 1 deletion cabal.project
Expand Up @@ -14,7 +14,7 @@ repository cardano-haskell-packages
-- you need to run if you change them
index-state:
, hackage.haskell.org 2023-05-10T10:34:57Z
, cardano-haskell-packages 2023-05-25T10:00:00Z
, cardano-haskell-packages 2023-05-25T17:36:19Z

packages:
cardano-cli
Expand Down
3 changes: 2 additions & 1 deletion cardano-cli/CHANGELOG.md
Expand Up @@ -2,7 +2,8 @@

## 8.1.0

-
- Updated ledger dependency bounds
- Support for query flag in `Ping` parser

## 8.0.0 -- May 2023

Expand Down
12 changes: 6 additions & 6 deletions cardano-cli/cardano-cli.cabal
Expand Up @@ -110,7 +110,7 @@ library
, binary
, bytestring
, canonical-json
, cardano-api ^>= 8.1.0.1
, cardano-api ^>= 8.2
, cardano-binary
, cardano-crypto
, cardano-crypto-class >= 2.1.1
Expand All @@ -120,7 +120,7 @@ library
, cardano-ledger-alonzo >= 1.1.1
, cardano-ledger-byron >= 1.0
, cardano-ledger-binary >= 1.0
, cardano-ledger-core >= 1.1
, cardano-ledger-core >= 1.2
, cardano-ledger-conway >= 1.1
, cardano-ledger-shelley >= 1.1.1
, cardano-ping ^>= 0.1.0.1
Expand All @@ -142,8 +142,8 @@ library
, microlens
, network
, optparse-applicative-fork
, ouroboros-consensus >= 0.6
, ouroboros-consensus-cardano >= 0.5
, ouroboros-consensus >= 0.7
, ouroboros-consensus-cardano >= 0.6
, ouroboros-consensus-protocol >= 0.5
, ouroboros-network-api
, ouroboros-network-protocols
Expand Down Expand Up @@ -198,7 +198,7 @@ test-suite cardano-cli-test
, base16-bytestring
, bech32 >= 1.1.0
, bytestring
, cardano-api ^>= 8.1.0.1
, cardano-api ^>= 8.2
, cardano-api-gen ^>= 8.1.0.2
, cardano-cli
, cardano-cli:cardano-cli-test-lib
Expand Down Expand Up @@ -242,7 +242,7 @@ test-suite cardano-cli-golden
build-depends: aeson >= 1.5.6.0
, base16-bytestring
, bytestring
, cardano-api ^>= 8.1.0.1
, cardano-api ^>= 8.2
, cardano-cli
, cardano-cli:cardano-cli-test-lib
, cardano-crypto-wrapper ^>= 1.5.1
Expand Down
24 changes: 16 additions & 8 deletions cardano-cli/src/Cardano/CLI/Ping.hs
Expand Up @@ -56,18 +56,20 @@ data PingCmd = PingCmd
, pingCmdMagic :: !Word32
, pingCmdJson :: !Bool
, pingCmdQuiet :: !Bool
, pingCmdQuery :: !Bool
} deriving (Eq, Show)

pingClient :: Tracer IO CNP.LogMsg -> Tracer IO String -> PingCmd -> [CNP.NodeVersion] -> AddrInfo -> IO ()
pingClient stdout stderr cmd = CNP.pingClient stdout stderr opts
where opts = CNP.PingOpts
{ CNP.pingOptsQuiet = pingCmdQuiet cmd
, CNP.pingOptsJson = pingCmdJson cmd
, CNP.pingOptsCount = pingCmdCount cmd
, CNP.pingOptsHost = maybeHostEndPoint (pingCmdEndPoint cmd)
, CNP.pingOptsUnixSock = maybeUnixSockEndPoint (pingCmdEndPoint cmd)
, CNP.pingOptsPort = pingCmdPort cmd
, CNP.pingOptsMagic = pingCmdMagic cmd
{ CNP.pingOptsQuiet = pingCmdQuiet cmd
, CNP.pingOptsJson = pingCmdJson cmd
, CNP.pingOptsCount = pingCmdCount cmd
, CNP.pingOptsHost = maybeHostEndPoint (pingCmdEndPoint cmd)
, CNP.pingOptsUnixSock = maybeUnixSockEndPoint (pingCmdEndPoint cmd)
, CNP.pingOptsPort = pingCmdPort cmd
, CNP.pingOptsMagic = pingCmdMagic cmd
, CNP.pingOptsHandshakeQuery = pingCmdQuery cmd
}

runPingCmd :: PingCmd -> ExceptT PingClientCmdError IO ()
Expand All @@ -89,7 +91,7 @@ runPingCmd options = do
return ([addr], CNP.supportedNodeToClientVersions $ pingCmdMagic options)

-- Logger async thread handle
laid <- liftIO . async $ CNP.logger msgQueue $ pingCmdJson options
laid <- liftIO . async $ CNP.logger msgQueue (pingCmdJson options) (pingCmdQuery options)
-- Ping client thread handles
caids <- forM addresses $ liftIO . async . pingClient (Tracer $ doLog msgQueue) (Tracer doErrLog) options versions
res <- L.zip addresses <$> mapM (liftIO . waitCatch) caids
Expand Down Expand Up @@ -196,3 +198,9 @@ pPing = PingCmd
, Opt.help "Quiet flag, CSV/JSON only output"
]
)
<*> ( Opt.switch $ mconcat
[ Opt.long "query"
, Opt.short 'q'
, Opt.help "Query flag."
]
)
6 changes: 3 additions & 3 deletions cardano-client-demo/StakeCredentialHistory.hs
Expand Up @@ -16,7 +16,7 @@ import Cardano.Ledger.Crypto (StandardCrypto)
import qualified Cardano.Ledger.Shelley.API as L
import qualified Cardano.Ledger.Shelley.Rewards as L
import qualified Cardano.Ledger.Shelley.RewardUpdate as L
import qualified Cardano.Ledger.UMapCompact as UM
import qualified Cardano.Ledger.UMap as UM
import qualified Ouroboros.Consensus.Shelley.Ledger as Shelley

import qualified Codec.Binary.Bech32 as Bech32
Expand Down Expand Up @@ -258,8 +258,8 @@ main = do
let getGoSnapshot = L.unStake . L.ssStake . L.ssStakeGo . L.esSnapshots . L.nesEs
getBalances = UM.rewView
. L.dsUnified
. L.dpsDState
. L.lsDPState
. L.certDState
. L.lsCertState
. L.esLState
. L.nesEs
getPV :: LC.EraPParams era => L.NewEpochState era -> L.ProtVer
Expand Down
6 changes: 3 additions & 3 deletions cardano-node/cardano-node.cabal
Expand Up @@ -137,7 +137,7 @@ library
, async
, base16-bytestring
, bytestring
, cardano-api ^>= 8.1.0.1
, cardano-api ^>= 8.2
, cardano-crypto-class
, cardano-crypto-wrapper
, cardano-git-rev
Expand Down Expand Up @@ -180,7 +180,7 @@ library
, ouroboros-consensus-protocol >= 0.5
, ouroboros-network-api
, ouroboros-network >= 0.6
, ouroboros-network-framework >= 0.5
, ouroboros-network-framework >= 0.6
, ouroboros-network-protocols
, prettyprinter
, prettyprinter-ansi-terminal
Expand Down Expand Up @@ -232,7 +232,7 @@ test-suite cardano-node-test
build-depends: base >= 4.14 && < 4.17
, aeson >= 1.5.6.0
, bytestring
, cardano-api ^>= 8.1.0.1
, cardano-api ^>= 8.2
, cardano-ledger-core
, cardano-node
, cardano-slotting >= 0.1
Expand Down
6 changes: 3 additions & 3 deletions cardano-node/src/Cardano/Node/Queries.hs
Expand Up @@ -55,7 +55,7 @@ import qualified Cardano.Ledger.SafeHash as Ledger
import qualified Cardano.Ledger.Shelley.LedgerState as Shelley
import qualified Cardano.Ledger.Shelley.UTxO as Shelley
import qualified Cardano.Ledger.TxIn as Ledger
import qualified Cardano.Ledger.UMapCompact as UM
import qualified Cardano.Ledger.UMap as UM

import Ouroboros.Consensus.Block (ForgeStateInfo, ForgeStateUpdateError)
import Ouroboros.Consensus.Byron.Ledger.Block (ByronBlock)
Expand Down Expand Up @@ -251,8 +251,8 @@ instance LedgerQueries (Shelley.ShelleyBlock protocol era) where
UM.size
. UM.Delegations
. Shelley.dsUnified
. Shelley.dpsDState
. Shelley.lsDPState
. Shelley.certDState
. Shelley.lsCertState
. Shelley.esLState
. Shelley.nesEs
. Shelley.shelleyLedgerState
Expand Down
14 changes: 14 additions & 0 deletions cardano-node/src/Cardano/Node/Tracing/Era/Shelley.hs
Expand Up @@ -1040,6 +1040,20 @@ instance ( ShelleyBasedEra era
, "govActionId" .= govActionIdToText govActionId
]

instance ( ShelleyBasedEra era
, LogFormatting (PredicateFailure (Ledger.EraRule "CERT" era))
) => LogFormatting (Conway.ConwayDelegsPredFailure era) where
forMachine _ (Conway.DelegateeNotRegisteredDELEG poolID) =
mconcat [ "kind" .= String "DelegateeNotRegisteredDELEG"
, "poolID" .= String (textShow poolID)
]
forMachine _ (Conway.WithdrawalsNotInRewardsDELEGS rs) =
mconcat [ "kind" .= String "WithdrawalsNotInRewardsDELEGS"
, "rewardAccounts" .= rs
]
forMachine dtal (Conway.CertFailure certFailure) =
forMachine dtal certFailure


instance Core.Crypto crypto => LogFormatting (Praos.PraosValidationErr crypto) where
forMachine _ err' =
Expand Down
2 changes: 1 addition & 1 deletion cardano-node/src/Cardano/Node/Tracing/Tracers.hs
Expand Up @@ -330,7 +330,7 @@ mkConsensusTracers configReflection trBase trForward mbTrEKG _trDataPoint trConf
traceWith blockchainTimeTr
, Consensus.keepAliveClientTracer = Tracer $
traceWith keepAliveClientTr
, Consensus.consensusStartupErrorTracer = Tracer $
, Consensus.consensusErrorTracer = Tracer $
traceWith consensusStartupErrorTr . ConsensusStartupException
}

Expand Down
14 changes: 14 additions & 0 deletions cardano-node/src/Cardano/Tracing/OrphanInstances/Shelley.hs
Expand Up @@ -265,6 +265,20 @@ instance ( ShelleyBasedEra era
, "govActionId" .= govActionIdToText govActionId
]

instance ( ShelleyBasedEra era
, ToObject (PredicateFailure (Ledger.EraRule "CERT" era))
) => ToObject (Conway.ConwayDelegsPredFailure era) where
toObject _ (Conway.DelegateeNotRegisteredDELEG poolID) =
mconcat [ "kind" .= String "DelegateeNotRegisteredDELEG"
, "poolID" .= String (textShow poolID)
]
toObject _ (Conway.WithdrawalsNotInRewardsDELEGS rs) =
mconcat [ "kind" .= String "WithdrawalsNotInRewardsDELEGS"
, "rewardAccounts" .= rs
]
toObject v (Conway.CertFailure certFailure) =
toObject v certFailure

instance ( ShelleyBasedEra era
, ToObject (PPUPPredFailure era)
, ToObject (PredicateFailure (Ledger.EraRule "UTXO" era))
Expand Down
4 changes: 2 additions & 2 deletions cardano-node/src/Cardano/Tracing/Tracers.hs
Expand Up @@ -466,7 +466,7 @@ mkTracers _ _ _ _ _ enableP2P =
, Consensus.mempoolTracer = nullTracer
, Consensus.forgeTracer = nullTracer
, Consensus.blockchainTimeTracer = nullTracer
, Consensus.consensusStartupErrorTracer = nullTracer
, Consensus.consensusErrorTracer = nullTracer
}
, nodeToClientTracers = NodeToClient.Tracers
{ NodeToClient.tChainSyncTracer = nullTracer
Expand Down Expand Up @@ -742,7 +742,7 @@ mkConsensusTracers mbEKGDirect trSel verb tr nodeKern fStats = do
, Consensus.blockchainTimeTracer = tracerOnOff' (traceBlockchainTime trSel) $
Tracer $ \ev ->
traceWith (toLogObject tr) (readableTraceBlockchainTimeEvent ev)
, Consensus.consensusStartupErrorTracer =
, Consensus.consensusErrorTracer =
Tracer $ \err -> traceWith (toLogObject tr) (ConsensusStartupException err)
}
where
Expand Down
2 changes: 1 addition & 1 deletion cardano-submit-api/cardano-submit-api.cabal
Expand Up @@ -38,7 +38,7 @@ library
, aeson
, async
, bytestring
, cardano-api ^>= 8.1.0.1
, cardano-api ^>= 8.2
, cardano-binary
, cardano-cli
, cardano-crypto-class ^>= 2.1
Expand Down
4 changes: 2 additions & 2 deletions cardano-testnet/cardano-testnet.cabal
Expand Up @@ -34,7 +34,7 @@ library
build-depends: aeson
, ansi-terminal
, bytestring
, cardano-api ^>= 8.1.0.1
, cardano-api ^>= 8.2
, cardano-cli
, cardano-crypto-class
, cardano-crypto-wrapper
Expand Down Expand Up @@ -164,7 +164,7 @@ test-suite cardano-testnet-test
build-depends: aeson
, async
, bytestring
, cardano-api ^>= 8.1.0.1
, cardano-api ^>= 8.2
, cardano-api-gen ^>= 8.1.0.2
, cardano-cli
, cardano-testnet
Expand Down
6 changes: 3 additions & 3 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion trace-forward/trace-forward.cabal
Expand Up @@ -64,7 +64,7 @@ library
, extra
, io-classes
, ouroboros-network-api >= 0.3
, ouroboros-network-framework >= 0.5
, ouroboros-network-framework >= 0.6
, serialise
, stm
, text
Expand Down

0 comments on commit f07636b

Please sign in to comment.