cardano-ledger-dijkstra-0.5.0.0: Cardano ledger with nested transactions
Safe HaskellNone
LanguageHaskell2010

Test.Cardano.Ledger.Dijkstra.ImpTest

Synopsis

Documentation

class (ConwayEraImp era, DijkstraEraTest era, DijkstraEraForecast era, DijkstraEraBlockBody era, EraEndorserBlock era, InjectRuleFailure "BBODY" DijkstraBbodyPredFailure era, InjectRuleFailure "BBODY" DijkstraLeiosCertPredFailure era, InjectRuleFailure "LEDGER" DijkstraLedgerPredFailure era, InjectRuleFailure "LEDGER" DijkstraPoolPredFailure era, InjectRuleFailure "LEDGER" EntitiesPredFailure era, InjectRuleFailure "LEDGER" SubEntitiesPredFailure era, InjectRuleFailure "LEDGER" DijkstraUtxoPredFailure era, InjectRuleFailure "LEDGER" DijkstraUtxowPredFailure era, InjectRuleFailure "MEMPOOL" DijkstraMempoolPredFailure era, InjectRuleFailure "MEMPOOL" DijkstraUtxoPredFailure era, InjectRuleFailure "LEDGER" DijkstraSubUtxoPredFailure era, InjectRuleFailure "LEDGER" DijkstraGovPredFailure era, InjectRuleFailure "LEDGER" DijkstraSubGovPredFailure era, InjectRuleFailure "LEDGER" DijkstraSubUtxowPredFailure era, InjectRuleFailure "LEDGER" DijkstraSubPoolPredFailure era, InjectRuleFailure "LEDGER" DijkstraSubDelegPredFailure era, InjectRuleFailure "LEDGER" DijkstraSubLedgerPredFailure era, InjectRuleFailure "LEDGER" DijkstraSubGovCertPredFailure era, InjectRuleFailure "EB" EbPredFailure era, Inject (NonEmpty (PredicateFailure (EraRule "MEMPOOL" era))) (ApplyTxError era), STS (EraRule "EB" era), BaseM (EraRule "EB" era) ~ ShelleyBase, Environment (EraRule "EB" era) ~ ShelleyLedgersEnv era, State (EraRule "EB" era) ~ NewEpochState era, Signal (EraRule "EB" era) ~ EndorserBlock era, ToExpr (PredicateFailure (EraRule "EB" era)), STS (EraRule "EBLEDGERS" era), EraRuleFailure "EB" era ~ PredicateFailure (EraRule "EB" era)) ⇒ DijkstraEraImp era Source #

Instances

Instances details
DijkstraEraImp DijkstraEra Source # 
Instance details

Defined in Test.Cardano.Ledger.Dijkstra.ImpTest

mkTopTxWithSubTxs ∷ DijkstraEraImp era ⇒ [Tx 'SubTx era] → Tx 'TopTx era Source #

A top level transaction that nests the given sub-transactions and is otherwise empty.

distinctSubTxs ∷ DijkstraEraImp era ⇒ [Tx 'SubTx era] → ImpTestM era [Tx 'SubTx era] Source #

Give each sub-transaction a fresh input, so that otherwise identical sub-transactions get distinct transaction ids

traverseSubTxs ∷ (Applicative m, EraTx era, DijkstraEraTxBody era) ⇒ (Tx 'SubTx era → m (Tx 'SubTx era)) → Tx 'TopTx era → m (Tx 'TopTx era) Source #

Apply an effectful modification to every sub-transaction of a top level transaction.

Sub-transactions are keyed by their transaction id, so a modification that makes two of them equal keeps only the first.

withPostFixupSubTxs ∷ (HasCallStack, DijkstraEraImp era) ⇒ (Tx 'SubTx era → ImpTestM era (Tx 'SubTx era)) → ImpTestM era a → ImpTestM era a Source #

Apply a modification to every sub-transaction, after the given fixup f has run, in order to provoke a failure that f otherwise repairs.

The top level transaction is signed again afterwards, since sub-transactions are part of its body and modifying one invalidates its witnesses.

submitFailingSubTx ∷ (HasCallStack, DijkstraEraImp era) ⇒ Tx 'SubTx era → NonEmpty (PredicateFailure (EraRule "LEDGER" era)) → ImpTestM era () Source #

Submit a sub-transaction, nested in an otherwise empty top level transaction, that is expected to be rejected with exactly the given predicate failures.

submitFailingMempoolTx ∷ (HasCallStack, DijkstraEraImp era) ⇒ Tx 'TopTx era → NonEmpty (DijkstraMempoolPredFailure era) → ImpTestM era () Source #

Submit a transaction through the mempool that is expected to be rejected with exactly the given predicate failures.

expectMempoolRejection ∷ (HasCallStack, DijkstraEraImp era) ⇒ Either (ApplyTxError era) a → NonEmpty (DijkstraMempoolPredFailure era) → ImpTestM era () Source #

Expect the result of a mempool submission to be a rejection with exactly the given predicate failures.

voteSubTx ∷ DijkstraEraImp era ⇒ Vote → Voter → GovActionId → Tx 'SubTx era Source #

A sub-transaction that casts a single vote.

declareTreasurySubTx ∷ DijkstraEraImp era ⇒ Coin → Tx 'SubTx era Source #

A sub-transaction that declares the given value as the current treasury value.

setupLeiosCommittee ∷ (HasCallStack, DijkstraEraImp era) ⇒ Int → ImpTestM era [LeiosSigningKey] Source #

Sets up the given number of stake pools with BLS keys and equal stake delegated to them, and passes the two epochs it takes for them to be seated in the Leios committee. Returns the keys the pools vote with.

mkLeiosCert ∷ HasCallStack ⇒ [LeiosSigningKey] → SafeHash EraIndependentBlockHeader → ImpTestM era LeiosCert Source #

Certifies the endorser block announced in the given block header with the votes of the given keys, each of which has to hold a seat in the current Leios committee.

Orphan instances

AllegraEraImp DijkstraEra Source # 
Instance details

AlonzoEraImp DijkstraEra Source # 
Instance details

BabbageEraImp DijkstraEra Source # 
Instance details

ConwayEraImp DijkstraEra Source # 
Instance details

MaryEraImp DijkstraEra Source # 
Instance details

ShelleyEraImp DijkstraEra Source # 
Instance details

Methods

initGenesis ∷ (HasKeyPairs s, MonadState s m, HasStatefulGen g m, MonadFail m) ⇒ m (Genesis DijkstraEra) Source #

initTransitionConfig ∷ (HasKeyPairs s, MonadState s m, HasStatefulGen g m, MonadFail m) ⇒ m (TransitionConfig DijkstraEra) Source #

initNewEpochState ∷ (HasKeyPairs s, MonadState s m, HasStatefulGen g m, MonadFail m) ⇒ m (NewEpochState DijkstraEra) Source #

initImpTestState ∷ (HasKeyPairs s, MonadState s m, HasStatefulGen g m, MonadFail m) ⇒ m (ImpTestState DijkstraEra) Source #

impSatisfyNativeScript ∷ ∀ (l ∷ TxLevel). Set (KeyHash 'Witness) → TxBody l DijkstraEra → NativeScript DijkstraEra → ImpTestM DijkstraEra (Maybe (Map (KeyHash 'Witness) (KeyPair 'Witness))) Source #

modifyPParams ∷ (PParams DijkstraEra → PParams DijkstraEra) → ImpTestM DijkstraEra () Source #

modifyImpInitProtVer ∷ Version → SpecWith (ImpInit (LedgerSpec DijkstraEra)) → SpecWith (ImpInit (LedgerSpec DijkstraEra)) Source #

fixupTx ∷ Tx 'TopTx DijkstraEra → ImpTestM DijkstraEra (Tx 'TopTx DijkstraEra) Source #

expectTxSuccess ∷ Tx 'TopTx DijkstraEra → ImpTestM DijkstraEra () Source #

genRegTxCert ∷ Credential 'Staking → ImpTestM DijkstraEra (TxCert DijkstraEra) Source #

genUnRegTxCert ∷ Credential 'Staking → ImpTestM DijkstraEra (TxCert DijkstraEra) Source #

delegStakeTxCert ∷ Credential 'Staking → KeyHash 'StakePool → TxCert DijkstraEra Source #

topTxFromAnyLevel ∷ (∀ (l ∷ TxLevel). Typeable l ⇒ Tx l DijkstraEra) → ImpTestM DijkstraEra (Tx 'TopTx DijkstraEra) Source #

InjectRuleFailure "CERT" ShelleyDelegPredFailure DijkstraEra Source # 
Instance details

InjectRuleFailure "CERTS" ShelleyDelegPredFailure DijkstraEra Source # 
Instance details

InjectRuleFailure "DELEG" ShelleyDelegPredFailure DijkstraEra Source # 
Instance details

InjectRuleFailure "ENTITIES" ShelleyDelegPredFailure DijkstraEra Source # 
Instance details

InjectRuleFailure "LEDGER" DijkstraSubDelegPredFailure DijkstraEra Source # 
Instance details

InjectRuleFailure "LEDGER" DijkstraSubGovPredFailure DijkstraEra Source # 
Instance details

InjectRuleFailure "LEDGER" DijkstraSubGovCertPredFailure DijkstraEra Source # 
Instance details

InjectRuleFailure "LEDGER" DijkstraSubLedgerPredFailure DijkstraEra Source # 
Instance details

InjectRuleFailure "LEDGER" DijkstraSubUtxoPredFailure DijkstraEra Source # 
Instance details

InjectRuleFailure "LEDGER" DijkstraSubUtxowPredFailure DijkstraEra Source # 
Instance details

InjectRuleFailure "LEDGER" ShelleyDelegPredFailure DijkstraEra Source # 
Instance details

InjectRuleFailure "SUBCERTS" DijkstraSubDelegPredFailure DijkstraEra Source # 
Instance details

InjectRuleFailure "SUBCERTS" DijkstraSubGovCertPredFailure DijkstraEra Source # 
Instance details

InjectRuleFailure "SUBENTITIES" DijkstraSubDelegPredFailure DijkstraEra Source # 
Instance details

InjectRuleFailure "SUBENTITIES" DijkstraSubGovCertPredFailure DijkstraEra Source # 
Instance details

InjectRuleFailure "SUBLEDGER" DijkstraSubDelegPredFailure DijkstraEra Source # 
Instance details

InjectRuleFailure "SUBLEDGER" DijkstraSubGovCertPredFailure DijkstraEra Source # 
Instance details

InjectRuleFailure "SUBLEDGER" DijkstraSubUtxoPredFailure DijkstraEra Source # 
Instance details

InjectRuleFailure "SUBLEDGERS" DijkstraSubDelegPredFailure DijkstraEra Source # 
Instance details

InjectRuleFailure "SUBLEDGERS" DijkstraSubGovPredFailure DijkstraEra Source # 
Instance details

InjectRuleFailure "SUBLEDGERS" DijkstraSubGovCertPredFailure DijkstraEra Source # 
Instance details

InjectRuleFailure "SUBLEDGERS" DijkstraSubUtxoPredFailure DijkstraEra Source # 
Instance details

InjectRuleFailure "SUBLEDGERS" DijkstraSubUtxowPredFailure DijkstraEra Source # 
Instance details