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 100 tests.
  • does not survive random adversarial mutations

    Details
    +++ OK, passed 100 tests.

    FanoutMutation (100 in total):
    22% MutateThreadTokenQuantity
    22% MutateValidityBeforeDeadline
    21% MutateFanoutOutputValue
    18% MutateAddUnexpectedOutput
    17% MutateDecommitOutputValue

ContestCurrent

  • is healthy

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

    Details
    +++ OK, passed 200 tests.

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

CloseUsed

  • is healthy

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

    Details
    +++ OK, passed 200 tests.

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

CloseUnused

  • is healthy

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

    Details
    +++ OK, passed 200 tests.

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

CloseInitial

  • is healthy

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

    Details
    +++ OK, passed 400 tests.

    CloseInitialMutation (400 in total):
    100.0% MutateCloseContestationDeadline'

Recover

  • is healthy

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

    Details
    +++ OK, passed 200 tests.

    RecoverMutation (200 in total):
    40.5% MutateRecoverOutput
    31.5% MutateDepositDeadline
    28.0% RemoveTxValidityLowerBound

Deposit

  • is healthy

    Details
    +++ OK, passed 100 tests.

Decrement

  • is healthy

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

    Details
    +++ OK, passed 200 tests.

    DecrementMutation (200 in total):
    16.5% ChangeHeadValue
    15.5% AlterRequiredSigner
    13.5% ExtractSomeValue
    13.0% UseDifferentSnapshotVersion
    11.5% ChangePartiesInOuput
    11.0% ProduceInvalidSignatures
    9.5% ChangeDecrementedValue
    9.5% DropDecommitOutput

Increment

  • is healthy

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

    Details
    +++ OK, passed 200 tests.

    IncrementMutation (200 in total):
    58.5% DepositMutateHeadId
    41.5% DepositMutateDepositDeadline

CollectCom

  • is healthy

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

    Details
    +++ OK, passed 100 tests.

    CollectComMutation (100 in total):
    14% MutateHeadId
    13% MutateTokenMintingOrBurning
    13% RemoveSTFromOutput
    12% MutateOpenVersion
    9% ExtractSomeValue
    9% MutateOpenUTxOHash
    8% MutateCommitToInitial
    8% NotContinueContract
    7% MutateNumberOfParties
    7% MutateRequiredSigner

Commit

  • is healthy

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

    Details
    +++ OK, passed 200 tests.

    CommitMutation (200 in total):
    16.5% MutateRequiredSigner
    15.5% MutateCommittedAddress
    13.5% MutateTokenMintingOrBurning
    13.0% MutateCommitOutputValue
    11.5% NonContinuousHeadId
    11.0% MutateCommittedValue
    9.5% RecordAllCommittedUTxO
    9.5% UsePTFromDifferentHead

Abort

  • is healthy

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

    Details
    +++ OK, passed 100 tests.

    AbortMutation (100 in total):
    14% MutateRequiredSigner
    12% MutateThreadTokenQuantity
    10% ReorderCommitOutputs
    9% MintOnAbort
    7% DropCollectedInput
    7% ExtractValue
    7% UseInputFromOtherHead
    6% BurnOneTokenMore
    6% DropOneCommitOutput
    6% MutateParties
    6% MutateUseDifferentHeadToAbort
    5% DoNotBurnST
    5% DoNotBurnSTInitial

Init

  • is healthy

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

    Details
    +++ OK, passed 200 tests.

    InitMutation (200 in total):
    16.5% MutateHeadIdInDatum
    15.5% MutateDropInitialOutput
    13.5% MutateSeedInDatum
    13.0% MutateAddAnotherPT
    11.5% MintTooManyTokens
    11.0% MutateInitialOutputValue
    9.5% MutateDropSeedInput
    9.5% MutateHeadIdInInitialDatum

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; 31 discarded.

Signature validator

  • verifies snapshot multi-signature

    Details
    +++ OK, passed 100 tests.