cardano-ledger-shelley-test
Safe HaskellSafe-Inferred
LanguageHaskell2010

Test.Cardano.Ledger.Shelley.Examples.Combinators

Description

A collection of combinators for manipulating Chain State. The idea is to provide a clear way of describing the changes to the chain state when a block is processed.

Synopsis

Documentation

evolveNonceFrozen ∷ ∀ era. NonceChainState era → ChainState era Source #

Evolve Nonces - Frozen

Evolve the appropriate nonces under the assumption that the candidate nonce is now frozen.

evolveNonceUnfrozen ∷ ∀ era. NonceChainState era → ChainState era Source #

Evolve Nonces - Unfrozen

Evolve the appropriate nonces under the assumption that the candidate nonce is not frozen. Note: do not use this function when crossing the epoch boundary, instead use newEpoch.

newLab ∷ ∀ era. Era era ⇒ Block (BHeader (EraCrypto era)) era → ChainState era → ChainState era Source #

New LastAppliedBlock (*NOT* on epoch boundaries)

Update the chain state with the details of LastAppliedBlock that occur when a new block is processed. Note: do not use this function when crossing the epoch boundary, instead use newEpoch.

feesAndDeposits ∷ ∀ era. EraPParams era ⇒ PParams era → Coin → [Credential 'Staking (EraCrypto era)] → [PoolParams (EraCrypto era)] → ChainState era → ChainState era Source #

Update Fees and Deposits

Update the fee pot and deposit pot with the new fees and deposits adjust the deposit tables in the UTxOState and the CertState. Notes 1) do not give this function duplicates in the stakes or pools inputs. 2) do not use this function when crossing the epoch boundary, instead use newEpoch.

newUTxO ∷ ∀ era. (EraTx era, EraGov era) ⇒ TxBody era → ChainState era → ChainState era Source #

Update the UTxO

Update the UTxO for given transaction body.

newStakeCred ∷ ∀ era. Credential 'Staking (EraCrypto era) → PtrChainState era → ChainState era Source #

New Stake Credential

Add a newly registered stake credential, initialize the rdRewards component of the RDPair. The rdDeposit component of the RDPair is set by feesAndDeposits

deregStakeCred ∷ ∀ era. Credential 'Staking (EraCrypto era) → ChainState era → ChainState era Source #

De-Register Stake Credential

De-register a stake credential and all associated data. Be sure to run feesAndKeyRefund before you run this because this throws away the stored refund, which then can't be used to balance the utxosDeposited field in feesAndKeyRefund

delegation ∷ ∀ era. Credential 'Staking (EraCrypto era) → KeyHash 'StakePool (EraCrypto era) → ChainState era → ChainState era Source #

New Delegation

Create a delegation from the given stake credential to the given stake pool.

newPool ∷ ∀ era. PoolParams (EraCrypto era) → ChainState era → ChainState era Source #

New Stake Pool

Add a newly registered stake pool

reregPool ∷ ∀ era. PoolParams (EraCrypto era) → ChainState era → ChainState era Source #

Re-Register Stake Pool

updatePoolParams ∷ ∀ era. PoolParams (EraCrypto era) → ChainState era → ChainState era Source #

Re-Register Stake Pool

stageRetirement ∷ ∀ era. KeyHash 'StakePool (EraCrypto era) → EpochNoChainState era → ChainState era Source #

Pool Retirement

Stage a stake pool for retirement.

reapPool ∷ ∀ era. EraGov era ⇒ PoolParams (EraCrypto era) → ChainState era → ChainState era Source #

Reap Pool

Remove a stake pool.

mir ∷ ∀ era. Credential 'Staking (EraCrypto era) → MIRPotCoinChainState era → ChainState era Source #

MIR

Add a credential to the MIR mapping for the given pot (reserves or treasury)

applyMIR ∷ ∀ era. MIRPotMap (Credential 'Staking (EraCrypto era)) CoinChainState era → ChainState era Source #

Apply MIR

On the epoch boundary, reset the MIR mappings and augment the rewards.

rewardUpdate ∷ ∀ era. RewardUpdate (EraCrypto era) → ChainState era → ChainState era Source #

Reward Update

Update the chain state with the given reward update

pulserUpdate ∷ ∀ era. PulsingRewUpdate (EraCrypto era) → ChainState era → ChainState era Source #

Pulser

Update the chain state with the given reward update pulser

applyRewardUpdate ∷ ∀ era. EraGov era ⇒ RewardUpdate (EraCrypto era) → ChainState era → ChainState era Source #

Apply a Reward Update

Apply the given reward update to the chain state

setPoolDistr ∷ ∀ era. PoolDistr (EraCrypto era) → ChainState era → ChainState era Source #

Set Pool Distribution

Set the stake pool distribution to the given one.

setOCertCounter ∷ ∀ era. KeyHash 'BlockIssuer (EraCrypto era) → Word64ChainState era → ChainState era Source #

Set Operation Certificate Counter

Set the operational certificates counter for a given stake pool.

newSnapshot ∷ ∀ era. SnapShot (EraCrypto era) → CoinChainState era → ChainState era Source #

New Snapshot

Add a new snapshot and rotate the others

incrBlockCount ∷ ∀ era. KeyHash 'StakePool (EraCrypto era) → ChainState era → ChainState era Source #

Increase Block Count

Record that the given stake pool (non-core node) produced a block.

newEpoch ∷ ∀ era. (ProtVerAtMost era 6, EraGov era) ⇒ Block (BHeader (EraCrypto era)) era → ChainState era → ChainState era Source #

New Epoch

Update the new epoch number, set the nonces, set the last applied block, and reset blocks made. Note: This function subsumes the manipulations done by newLab, evolveNonceUnfrozen, and evolveNonceFrozen.

setCurrentProposals ∷ ∀ era. (GovState era ~ ShelleyGovState era, EraPParams era) ⇒ ProposedPPUpdates era → ChainState era → ChainState era Source #

Set Current Proposals

Set the current protocol parameter proposals.

setFutureProposals ∷ ∀ era. GovState era ~ ShelleyGovState era ⇒ ProposedPPUpdates era → ChainState era → ChainState era Source #

Set Future Proposals

Set the future protocol parameter proposals.

solidifyProposals ∷ ∀ era. EraGov era ⇒ ChainState era → ChainState era Source #

setPParams ∷ ∀ era. EraGov era ⇒ PParams era → ChainState era → ChainState era Source #

Set the Protocol Proposals

Set the protocol parameters.

setPrevPParams ∷ ∀ era. EraGov era ⇒ PParams era → ChainState era → ChainState era Source #

Set the Previous Protocol Proposals

Set the previous protocol parameters.

setFutureGenDeleg ∷ ∀ era. (FutureGenDeleg (EraCrypto era), GenDelegPair (EraCrypto era)) → ChainState era → ChainState era Source #

Set a future genesis delegation.

adoptFutureGenDeleg ∷ ∀ era. (FutureGenDeleg (EraCrypto era), GenDelegPair (EraCrypto era)) → ChainState era → ChainState era Source #

Set a future genesis delegation.