| License | Apache-2.0 |
|---|---|
| Safe Haskell | None |
| Language | GHC2021 |
Naming.Verify
Description
Pure predicates over already-resolved evidence for one retired record. All inputs are plain bytes supplied by the caller (a reader resolving them from transaction bodies); this module compares, recomputes and routes — it parses nothing, trusts no constants, and holds no keys.
The_EXE_ (retirement-verify) resolves every field below from retained transaction CBOR plus public log mappings; the unit tests pin every predicate here, including the wrong-policy/same-name discrimination (NOTE-026). Either side alone is insufficient: parsing without predicates proves nothing, predicates without parsing check nothing.
Synopsis
- data RetireEvidence = RetireEvidence {
- reRecord :: String
- reRetireTx :: String
- reKey :: ByteString
- reSpelling :: ByteString
- reCreationHash :: ByteString
- reCreationHashLog :: ByteString
- reCurrentControl :: ByteString
- reQuorum :: [ByteString]
- reStatePolicy :: ByteString
- reToken :: ByteString
- reCreationMint :: [(ByteString, ByteString, Integer)]
- reCustodyPolicy :: ByteString
- reCustodyName :: ByteString
- reCustodyQty :: Integer
- reRepLog :: ByteString
- reSigners :: [ByteString]
- reWitnesses :: [ByteString]
- data CompleteEvidence = CompleteEvidence {
- ceRetireTx :: String
- ceCompleteTx :: String
- ceCustodyTxid :: String
- ceRequestTxid :: String
- ceReqKey :: ByteString
- ceReqEdge :: Integer
- ceRepPolicy :: ByteString
- ceRepName :: ByteString
- ceCustodyPolicy :: ByteString
- ceCustodyName :: ByteString
- ceCustodyQty :: Integer
- ceMint :: [(ByteString, ByteString, Integer)]
- ceBurnRedeemerOk :: Bool
- ceIsModify :: Bool
- ceActionCount :: Int
- ceRootBefore :: ByteString
- ceRootAfter :: ByteString
- ceReqSigners :: [ByteString]
- ceWitnesses :: [ByteString]
- ceFeeOwner :: ByteString
- ceRouteKeys :: [ByteString]
- positiveMintPolicy :: [(ByteString, ByteString, Integer)] -> Either String ByteString
- verifyRetireEvidence :: RetireEvidence -> Either String ()
- verifyCompletion :: CompleteEvidence -> Either String ()
- singleNamingToken :: [ByteString] -> [(ByteString, ByteString, Integer)] -> Either String (ByteString, Integer)
Documentation
data RetireEvidence Source #
One retired record, fully resolved to plain evidence. Every hash is raw bytes as found in bodies or public lines — never a runner constant, never a key.
Constructors
| RetireEvidence | |
Fields
| |
Instances
| Show RetireEvidence Source # | |
Defined in Naming.Verify Methods showsPrec :: Int -> RetireEvidence -> ShowS Source # show :: RetireEvidence -> String Source # showList :: [RetireEvidence] -> ShowS Source # | |
| Eq RetireEvidence Source # | |
Defined in Naming.Verify Methods (==) :: RetireEvidence -> RetireEvidence -> Bool Source # (/=) :: RetireEvidence -> RetireEvidence -> Bool Source # | |
data CompleteEvidence Source #
One permissionless completion, fully resolved to plain evidence. The representative pair comes from an already-verified retirement (never re-derived here); every other field is resolved from the completion transaction's own bytes.
Constructors
| CompleteEvidence | |
Fields
| |
Instances
| Show CompleteEvidence Source # | |
Defined in Naming.Verify Methods showsPrec :: Int -> CompleteEvidence -> ShowS Source # show :: CompleteEvidence -> String Source # showList :: [CompleteEvidence] -> ShowS Source # | |
| Eq CompleteEvidence Source # | |
Defined in Naming.Verify Methods (==) :: CompleteEvidence -> CompleteEvidence -> Bool Source # (/=) :: CompleteEvidence -> CompleteEvidence -> Bool Source # | |
positiveMintPolicy :: [(ByteString, ByteString, Integer)] -> Either String ByteString Source #
The representative mint policy of a creation fold: exactly one positive-quantity policy (the approval burn is negative). Anything else — none, several — fails: the derivation admits no judgment calls about which policy is "the" representative one.
verifyRetireEvidence :: RetireEvidence -> Either String () Source #
The full binding verdict. Every clause names its own failure;
Right () means the retirement's key, name, custody triple,
creation mint, signers and witnesses all check out.
verifyCompletion :: CompleteEvidence -> Either String () Source #
The full completion verdict: co-created pair, exact burn,
singleton-Modify, genuine root change, and permissionless
authorization (empty required signers, fee-owner-only witness
outside every route).
singleNamingToken :: [ByteString] -> [(ByteString, ByteString, Integer)] -> Either String (ByteString, Integer) Source #
Read one naming token from complete non-ADA value triples. The caller supplies the deployment's allowed approval and representative policies.