Skip to content

Transaction validation - phase 1 (MS5.6) #200

@sandtreader

Description

@sandtreader

Description

Validate transaction witness signatures and other 'phase 1' items

Intersect Milestone

MS5.6

Acceptance Criteria

  • Able to phase 1 validate all existing Transactions (TXs)

Expected Deliverables

  • Transaction Phase 1 validation module
  • Test cases and reports

Design Notes

(from ChatGPT)

  • Well-formed CBOR / basic syntax
    • Transaction decodes correctly from CBOR.
    • All expected fields are present and correctly typed.
  • Size limits
    • Transaction size ≤ maxTxSize protocol parameter.
    • Number of inputs, outputs, certificates, witnesses ≤ limits.
  • Key validity
    • All input key hashes and witness signatures are valid Ed25519 signatures over the Tx body.
    • VKey witnesses match the inputs they are supposed to authorize.
  • Scripts (native or Plutus) referenced are present.
  • Fee and value preservation (basic)
    • Declared fee ≥ minFee (protocol parameter).
    • No negative values in outputs.
    • Token bundle policy IDs / asset names well-formed.
  • Timelock validity
    • Transaction validity interval (TTL, start slot, expiry) is syntactically correct.
    • If native scripts with timelock conditions are present, their conditions are checked.
  • Auxiliary data structure
    • Metadata, if present, is CBOR-valid and within size limits.

This list should be validated against the spec and Haskell code.

This should output a ValidationResult message on 'cardano.validation.tx-phase-1'.

Sub-issues

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions