Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data ShelleyUTXOW era
- data ShelleyUtxowPredFailure era
- = InvalidWitnessesUTXOW ![VKey 'Witness (EraCrypto era)]
- | MissingVKeyWitnessesUTXOW !(Set (KeyHash 'Witness (EraCrypto era)))
- | MissingScriptWitnessesUTXOW !(Set (ScriptHash (EraCrypto era)))
- | ScriptWitnessNotValidatingUTXOW !(Set (ScriptHash (EraCrypto era)))
- | UtxoFailure (PredicateFailure (EraRule "UTXO" era))
- | MIRInsufficientGenesisSigsUTXOW (Set (KeyHash 'Witness (EraCrypto era)))
- | MissingTxBodyMetadataHash !(AuxiliaryDataHash (EraCrypto era))
- | MissingTxMetadata !(AuxiliaryDataHash (EraCrypto era))
- | ConflictingMetadataHash !(AuxiliaryDataHash (EraCrypto era)) !(AuxiliaryDataHash (EraCrypto era))
- | InvalidMetadata
- | ExtraneousScriptWitnessesUTXOW !(Set (ScriptHash (EraCrypto era)))
- newtype ShelleyUtxowEvent era = UtxoEvent (Event (EraRule "UTXO" era))
- type family PredicateFailure a
- transitionRulesUTXOW ∷ ∀ era. (EraUTxO era, ShelleyEraTxBody era, ScriptsNeeded era ~ ShelleyScriptsNeeded era, BaseM (EraRule "UTXOW" era) ~ ShelleyBase, Embed (EraRule "UTXO" era) (EraRule "UTXOW" era), Environment (EraRule "UTXO" era) ~ UtxoEnv era, State (EraRule "UTXO" era) ~ UTxOState era, Signal (EraRule "UTXO" era) ~ Tx era, Environment (EraRule "UTXOW" era) ~ UtxoEnv era, State (EraRule "UTXOW" era) ~ UTxOState era, Signal (EraRule "UTXOW" era) ~ Tx era, InjectRuleFailure "UTXOW" ShelleyUtxowPredFailure era, STS (EraRule "UTXOW" era), DSignable (EraCrypto era) (Hash (EraCrypto era) EraIndependentTxBody)) ⇒ TransitionRule (EraRule "UTXOW" era)
- shelleyWitsVKeyNeeded ∷ ∀ era. (EraTx era, ShelleyEraTxBody era) ⇒ UTxO era → TxBody era → GenDelegs (EraCrypto era) → Set (KeyHash 'Witness (EraCrypto era))
- witsVKeyNeededGov ∷ ∀ era. ShelleyEraTxBody era ⇒ TxBody era → GenDelegs (EraCrypto era) → Set (KeyHash 'Witness (EraCrypto era))
- witsVKeyNeededNoGov ∷ ∀ era. EraTx era ⇒ UTxO era → TxBody era → Set (KeyHash 'Witness (EraCrypto era))
- validateFailedNativeScripts ∷ EraTx era ⇒ ScriptsProvided era → Tx era → Test (ShelleyUtxowPredFailure era)
- validateMissingScripts ∷ ShelleyScriptsNeeded era → ScriptsProvided era → Test (ShelleyUtxowPredFailure era)
- validateVerifiedWits ∷ (EraTx era, DSignable (EraCrypto era) (Hash (EraCrypto era) EraIndependentTxBody)) ⇒ Tx era → Test (ShelleyUtxowPredFailure era)
- validateMetadata ∷ EraTx era ⇒ PParams era → Tx era → Test (ShelleyUtxowPredFailure era)
- validateMIRInsufficientGenesisSigs ∷ (EraTx era, ShelleyEraTxBody era) ⇒ GenDelegs (EraCrypto era) → Word64 → Set (KeyHash 'Witness (EraCrypto era)) → Tx era → Test (ShelleyUtxowPredFailure era)
- validateNeededWitnesses ∷ EraUTxO era ⇒ Set (KeyHash 'Witness (EraCrypto era)) → CertState era → UTxO era → TxBody era → Test (ShelleyUtxowPredFailure era)
- propWits ∷ Maybe (Update era) → GenDelegs (EraCrypto era) → Set (KeyHash 'Witness (EraCrypto era))
Documentation
data ShelleyUTXOW era Source #
Instances
data ShelleyUtxowPredFailure era Source #
InvalidWitnessesUTXOW ![VKey 'Witness (EraCrypto era)] | |
MissingVKeyWitnessesUTXOW !(Set (KeyHash 'Witness (EraCrypto era))) | |
MissingScriptWitnessesUTXOW !(Set (ScriptHash (EraCrypto era))) | |
ScriptWitnessNotValidatingUTXOW !(Set (ScriptHash (EraCrypto era))) | |
UtxoFailure (PredicateFailure (EraRule "UTXO" era)) | |
MIRInsufficientGenesisSigsUTXOW (Set (KeyHash 'Witness (EraCrypto era))) | |
MissingTxBodyMetadataHash !(AuxiliaryDataHash (EraCrypto era)) | |
MissingTxMetadata !(AuxiliaryDataHash (EraCrypto era)) | |
ConflictingMetadataHash !(AuxiliaryDataHash (EraCrypto era)) !(AuxiliaryDataHash (EraCrypto era)) | |
InvalidMetadata | |
ExtraneousScriptWitnessesUTXOW !(Set (ScriptHash (EraCrypto era))) |
Instances
newtype ShelleyUtxowEvent era Source #
Instances
type family PredicateFailure a Source #
Descriptive type for the possible failures which might cause a transition to fail.
As a convention, PredicateFailure
s which are "structural" (meaning that
they are not "throwable" in practice, and are used to pass control from
one transition rule to another) are prefixed with S_
.
Structural PredicateFailure
s represent conditions between rules where
the disjunction of all rules' preconditions is equal to True
. That is,
either one rule will throw a structural PredicateFailure
and the other
will succeed, or vice-versa.
Instances
transitionRulesUTXOW ∷ ∀ era. (EraUTxO era, ShelleyEraTxBody era, ScriptsNeeded era ~ ShelleyScriptsNeeded era, BaseM (EraRule "UTXOW" era) ~ ShelleyBase, Embed (EraRule "UTXO" era) (EraRule "UTXOW" era), Environment (EraRule "UTXO" era) ~ UtxoEnv era, State (EraRule "UTXO" era) ~ UTxOState era, Signal (EraRule "UTXO" era) ~ Tx era, Environment (EraRule "UTXOW" era) ~ UtxoEnv era, State (EraRule "UTXOW" era) ~ UTxOState era, Signal (EraRule "UTXOW" era) ~ Tx era, InjectRuleFailure "UTXOW" ShelleyUtxowPredFailure era, STS (EraRule "UTXOW" era), DSignable (EraCrypto era) (Hash (EraCrypto era) EraIndependentTxBody)) ⇒ TransitionRule (EraRule "UTXOW" era) Source #
A generic Utxow witnessing function designed to be used across many Eras.
Note the embed
argument lifts from the simple Shelley (ShelleyUtxowPredFailure) to
the PredicateFailure (type family) of the context of where it is called.
shelleyWitsVKeyNeeded ∷ ∀ era. (EraTx era, ShelleyEraTxBody era) ⇒ UTxO era → TxBody era → GenDelegs (EraCrypto era) → Set (KeyHash 'Witness (EraCrypto era)) Source #
Deprecated: Use getShelleyWitsVKeyNeeded
instead
witsVKeyNeededGov ∷ ∀ era. ShelleyEraTxBody era ⇒ TxBody era → GenDelegs (EraCrypto era) → Set (KeyHash 'Witness (EraCrypto era)) Source #
Deprecated: As unnecessary. Use getWitsVKeyNeeded
instead
Collect the set of hashes of keys that needs to sign a given transaction. This set consists of the txin owners, certificate authors, and withdrawal reward accounts.
witsVKeyNeededNoGov ∷ ∀ era. EraTx era ⇒ UTxO era → TxBody era → Set (KeyHash 'Witness (EraCrypto era)) Source #
Deprecated: Use getShelleyWitsVKeyNeededNoGov
instead
Individual validation steps
validateFailedNativeScripts ∷ EraTx era ⇒ ScriptsProvided era → Tx era → Test (ShelleyUtxowPredFailure era) Source #
validateMissingScripts ∷ ShelleyScriptsNeeded era → ScriptsProvided era → Test (ShelleyUtxowPredFailure era) Source #
validateVerifiedWits ∷ (EraTx era, DSignable (EraCrypto era) (Hash (EraCrypto era) EraIndependentTxBody)) ⇒ Tx era → Test (ShelleyUtxowPredFailure era) Source #
Determine if the UTxO witnesses in a given transaction are correct.
validateMetadata ∷ EraTx era ⇒ PParams era → Tx era → Test (ShelleyUtxowPredFailure era) Source #
check metadata hash ((adh = ◇) ∧ (ad= ◇)) ∨ (adh = hashAD ad)
validateMIRInsufficientGenesisSigs ∷ (EraTx era, ShelleyEraTxBody era) ⇒ GenDelegs (EraCrypto era) → Word64 → Set (KeyHash 'Witness (EraCrypto era)) → Tx era → Test (ShelleyUtxowPredFailure era) Source #
check genesis keys signatures for instantaneous rewards certificates
genSig := { hashKey gkey | gkey ∈ dom(genDelegs)} ∩ witsKeyHashes { c ∈ txcerts txb ∩ TxCert_mir} ≠ ∅ ⇒ |genSig| ≥ Quorum
validateNeededWitnesses Source #
∷ EraUTxO era | |
⇒ Set (KeyHash 'Witness (EraCrypto era)) | Provided witness |
→ CertState era | |
→ UTxO era | |
→ TxBody era | |
→ Test (ShelleyUtxowPredFailure era) |
Verify that we provide at least all of the required witnesses
witsVKeyNeeded utxo tx ⊆ witsKeyHashes
propWits ∷ Maybe (Update era) → GenDelegs (EraCrypto era) → Set (KeyHash 'Witness (EraCrypto era)) Source #
Deprecated: This will become an internal function in the future. Submit an issue if you still need it.
Calculate the set of hash keys of the required witnesses for update proposals.