Skip to main content

Test results for hydra-tx

Hydra.Tx.IsTx

Tx

JSON encoding of (ReasonablySized (Tx ConwayEra))

  • allows to encode values with aeson and read them back

    Details
    +++ OK, passed 100 tests.
  • produces the same JSON as is found in golden/ReasonablySized (Tx ConwayEra).json

  • Same TxId before/after JSON encoding

    Details
    +++ OK, passed 100 tests.
  • Same TxId as TxBody after JSON decoding

    Details
    +++ OK, passed 100 tests.
  • Roundtrip to and from Ledger

    Details
    +++ OK, passed 100 tests.
  • Roundtrip CBOR encoding

    Details
    +++ OK, passed 100 tests.
  • JSON decode Babbage era transactions

    Details
    +++ OK, passed 100 tests.
  • CBOR decode Babbage era transactions

    Details
    +++ OK, passed 100 tests.

UTxO

JSON encoding of (UTxO' (TxOut CtxUTxO ConwayEra))

  • allows to encode values with aeson and read them back

    Details
    +++ OK, passed 100 tests.
  • produces the same JSON as is found in golden/UTxO' (TxOut CtxUTxO ConwayEra).json

  • Roundtrip to and from Api

    Details
    +++ OK, passed 100 tests.

Hydra.Tx.Contract.Contract

Fanout

  • is healthy

    Details
    +++ OK, passed 1 test.
  • does not survive random adversarial mutations

    Details
    +++ OK, passed 100 tests.

    FanoutMutation (100 in total):
    23% MutateFanoutOutputValue
    22% MutateThreadTokenQuantity
    20% MutateValidityBeforeDeadline
    19% MutateAddUnexpectedOutput
    16% MutateDecommitOutputValue

ContestCurrent

  • is healthy

    Details
    +++ OK, passed 1 test.
  • does not survive random adversarial mutations

    Details
    +++ OK, passed 200 tests.

    ContestMutation (200 in total):
    10.5% MutateContestUTxOHash
    6.5% MutateContesters
    6.5% MutateSignatureButNotSnapshotNumber
    6.5% PushDeadlineAlthoughItShouldNot
    6.0% MutateSnapshotNumberButNotSignature
    6.0% NotContinueContract
    5.5% MutateHeadIdInOutput
    5.0% MutateValueInOutput
    5.0% SnapshotNotSignedByAllParties
    4.5% MutateOutputContestationPeriod
    4.5% MutateRequiredSigner
    4.0% MutateToNonNewerSnapshot
    4.0% MutateTokenMintingOrBurning
    3.5% ContestFromDifferentHead
    3.5% MutatePartiesInOutput
    3.5% MutateSnapshotVersion
    3.5% NotUpdateDeadlineAlthoughItShould
    3.0% MutateInputContesters
    3.0% MutateMultipleRequiredSigner
    3.0% MutateValidityPastDeadline
    2.5% MutateNoRequiredSigner

CloseUsed

  • is healthy

    Details
    +++ OK, passed 1 test.
  • does not survive random adversarial mutations

    Details
    +++ OK, passed 200 tests.

    CloseMutation (200 in total):
    6.5% MutateContesters
    6.0% MutateSignatureButNotSnapshotNumber
    6.0% MutateSnapshotNumberButNotSignature
    5.5% MutateCloseSignatures
    5.5% MutateNoRequiredSigner
    5.5% MutateValidityInterval
    5.5% NotContinueContract
    5.0% CloseFromDifferentHead
    5.0% MutateCloseUTxOHash
    4.5% MutateMultipleRequiredSigner
    4.5% MutateValueInOutput
    4.0% MutateCloseType
    4.0% MutatePartiesInOutput
    3.5% MutateCloseUTxOToDecommitHash
    3.5% MutateContestationPeriod
    3.5% MutateInfiniteLowerBound
    3.5% MutateSnapshotVersion
    3.5% MutateTokenMintingOrBurning
    3.5% SnapshotNotSignedByAllParties
    3.0% MutateContestationDeadline
    3.0% MutateInfiniteUpperBound
    3.0% MutateRequiredSigner
    2.5% MutateHeadIdInOutput

CloseUnused

  • is healthy

    Details
    +++ OK, passed 1 test.
  • does not survive random adversarial mutations

    Details
    +++ OK, passed 200 tests.

    CloseMutation (200 in total):
    7.5% MutateValidityInterval
    6.5% MutateContesters
    6.5% MutateSignatureButNotSnapshotNumber
    6.5% NotContinueContract
    6.0% MutateSnapshotNumberButNotSignature
    5.5% MutateMultipleRequiredSigner
    5.5% MutateNoRequiredSigner
    5.0% CloseFromDifferentHead
    5.0% MutateCloseUTxOHash
    5.0% MutatePartiesInOutput
    5.0% MutateSnapshotVersion
    5.0% SnapshotNotSignedByAllParties
    4.5% MutateValueInOutput
    4.0% MutateInfiniteLowerBound
    4.0% MutateTokenMintingOrBurning
    3.5% MutateCloseUTxOToDecommitHash
    3.5% MutateContestationPeriod
    3.0% MutateContestationDeadline
    3.0% MutateInfiniteUpperBound
    3.0% MutateRequiredSigner
    2.5% MutateHeadIdInOutput

CloseInitial

  • is healthy

    Details
    +++ OK, passed 1 test.
  • does not survive random adversarial mutations

    Details
    +++ OK, passed 400 tests.

    CloseInitialMutation (400 in total):
    100.0% MutateCloseContestationDeadline'

Recover

  • is healthy

    Details
    +++ OK, passed 1 test.
  • does not survive random adversarial mutations

    Details
    +++ OK, passed 100 tests.

    RecoverMutation (100 in total):
    37% MutateRecoverOutput
    33% RemoveTxValidityLowerBound
    30% MutateDepositDeadline

Deposit

  • is healthy

    Details
    +++ OK, passed 1 test.

Decrement

  • is healthy

    Details
    +++ OK, passed 1 test.
  • does not survive random adversarial mutations

    Details
    +++ OK, passed 200 tests.

    DecrementMutation (200 in total):
    16.5% UseDifferentSnapshotVersion
    15.5% ChangePartiesInOuput
    15.0% ChangeHeadValue
    14.0% ProduceInvalidSignatures
    12.0% AlterRequiredSigner
    11.5% DropDecommitOutput
    8.5% ExtractSomeValue
    7.0% ChangeDecrementedValue

CollectCom

  • is healthy

    Details
    +++ OK, passed 1 test.
  • does not survive random adversarial mutations

    Details
    +++ OK, passed 200 tests.

    CollectComMutation (200 in total):
    15.5% RemoveSTFromOutput
    12.0% MutateOpenUTxOHash
    11.5% MutateTokenMintingOrBurning
    10.5% MutateHeadId
    10.0% ExtractSomeValue
    9.0% MutateNumberOfParties
    9.0% NotContinueContract
    8.0% MutateOpenVersion
    8.0% MutateRequiredSigner
    6.5% MutateCommitToInitial

Commit

  • is healthy

    Details
    +++ OK, passed 1 test.
  • does not survive random adversarial mutations

    Details
    +++ OK, passed 200 tests.

    CommitMutation (200 in total):
    16.5% MutateCommitOutputValue
    15.5% NonContinuousHeadId
    15.0% MutateRequiredSigner
    14.0% MutateCommittedValue
    12.0% MutateCommittedAddress
    11.5% UsePTFromDifferentHead
    8.5% MutateTokenMintingOrBurning
    7.0% RecordAllCommittedUTxO

Abort

  • is healthy

    Details
    +++ OK, passed 100 tests.
  • does not survive random adversarial mutations

    Details
    +++ OK, passed 400 tests.

    AbortMutation (400 in total):
    10.2% MintOnAbort
    9.8% DropOneCommitOutput
    8.8% DoNotBurnST
    8.5% ReorderCommitOutputs
    8.2% MutateParties
    8.0% DropCollectedInput
    7.5% DoNotBurnSTInitial
    7.2% ExtractValue
    6.8% MutateUseDifferentHeadToAbort
    6.5% UseInputFromOtherHead
    6.2% BurnOneTokenMore
    6.2% MutateThreadTokenQuantity
    6.0% MutateRequiredSigner

Init

  • is healthy

    Details
    +++ OK, passed 1 test.
  • does not survive random adversarial mutations

    Details
    +++ OK, passed 200 tests.

    InitMutation (200 in total):
    16.5% MutateAddAnotherPT
    15.5% MintTooManyTokens
    15.0% MutateHeadIdInDatum
    14.0% MutateInitialOutputValue
    12.0% MutateDropInitialOutput
    11.5% MutateHeadIdInInitialDatum
    8.5% MutateSeedInDatum
    7.0% MutateDropSeedInput

Serializing commits

  • deserializeCommit . serializeCommit === id

    Details
    +++ OK, passed 100 tests.

TxOut hashing

  • hashUTxO == OnChain.hashTxOuts (on sorted tx outs)

    Details
    +++ OK, passed 20 tests.
  • OnChain.hashPreSerializedCommits == OnChain.hashTxOuts (on sorted tx outs)

    Details
    +++ OK, passed 20 tests.
  • does care about ordering of TxOut

    Details
    +++ OK, passed 20 tests; 41 discarded.

Signature validator

  • verifies snapshot multi-signature

    Details
    +++ OK, passed 100 tests.