hydra-plutus
Safe HaskellSafe-Inferred
LanguageGHC2021

Hydra.Contract.HeadState

Synopsis

Documentation

type Hash = BuiltinByteString Source #

type Signature = BuiltinByteString Source #

data OpenDatum Source #

Sub-type for the open state-machine state.

Constructors

OpenDatum 

Fields

Instances

Instances details
Generic OpenDatum Source # 
Instance details

Defined in Hydra.Contract.HeadState

Associated Types

type Rep OpenDatum :: Type -> Type Source #

Show OpenDatum Source # 
Instance details

Defined in Hydra.Contract.HeadState

FromData OpenDatum Source # 
Instance details

Defined in Hydra.Contract.HeadState

Methods

fromBuiltinData :: BuiltinData -> Maybe OpenDatum

ToData OpenDatum Source # 
Instance details

Defined in Hydra.Contract.HeadState

Methods

toBuiltinData :: OpenDatum -> BuiltinData

UnsafeFromData OpenDatum Source # 
Instance details

Defined in Hydra.Contract.HeadState

Methods

unsafeFromBuiltinData :: BuiltinData -> OpenDatum

type Rep OpenDatum Source # 
Instance details

Defined in Hydra.Contract.HeadState

data ClosedDatum Source #

Sub-type for the closed state-machine state.

Constructors

ClosedDatum 

Fields

Instances

Instances details
Generic ClosedDatum Source # 
Instance details

Defined in Hydra.Contract.HeadState

Associated Types

type Rep ClosedDatum :: Type -> Type Source #

Show ClosedDatum Source # 
Instance details

Defined in Hydra.Contract.HeadState

FromData ClosedDatum Source # 
Instance details

Defined in Hydra.Contract.HeadState

Methods

fromBuiltinData :: BuiltinData -> Maybe ClosedDatum

ToData ClosedDatum Source # 
Instance details

Defined in Hydra.Contract.HeadState

Methods

toBuiltinData :: ClosedDatum -> BuiltinData

UnsafeFromData ClosedDatum Source # 
Instance details

Defined in Hydra.Contract.HeadState

Methods

unsafeFromBuiltinData :: BuiltinData -> ClosedDatum

type Rep ClosedDatum Source # 
Instance details

Defined in Hydra.Contract.HeadState

type Rep ClosedDatum = D1 ('MetaData "ClosedDatum" "Hydra.Contract.HeadState" "hydra-plutus-2.3.0-GZuRkjMlaaiDs5DtXvwJLz" 'False) (C1 ('MetaCons "ClosedDatum" 'PrefixI 'True) (((S1 ('MetaSel ('Just "headId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CurrencySymbol) :*: S1 ('MetaSel ('Just "parties") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Party])) :*: (S1 ('MetaSel ('Just "contestationPeriod") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ContestationPeriod) :*: (S1 ('MetaSel ('Just "depositPeriod") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DepositPeriod) :*: S1 ('MetaSel ('Just "version") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SnapshotVersion)))) :*: ((S1 ('MetaSel ('Just "snapshotNumber") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SnapshotNumber) :*: S1 ('MetaSel ('Just "contesters") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [PubKeyHash])) :*: (S1 ('MetaSel ('Just "contestationDeadline") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 POSIXTime) :*: (S1 ('MetaSel ('Just "accumulatorCommitment") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BuiltinBLS12_381_G1_Element) :*: S1 ('MetaSel ('Just "headAdaOverhead") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer))))))

data FanoutProgressDatum Source #

Sub-type for intermediate partial fanout state. Carries only the fields needed for subsequent partial fanout steps.

Constructors

FanoutProgressDatum 

Fields

Instances

Instances details
Generic FanoutProgressDatum Source # 
Instance details

Defined in Hydra.Contract.HeadState

Associated Types

type Rep FanoutProgressDatum :: Type -> Type Source #

Show FanoutProgressDatum Source # 
Instance details

Defined in Hydra.Contract.HeadState

FromData FanoutProgressDatum Source # 
Instance details

Defined in Hydra.Contract.HeadState

Methods

fromBuiltinData :: BuiltinData -> Maybe FanoutProgressDatum

ToData FanoutProgressDatum Source # 
Instance details

Defined in Hydra.Contract.HeadState

Methods

toBuiltinData :: FanoutProgressDatum -> BuiltinData

UnsafeFromData FanoutProgressDatum Source # 
Instance details

Defined in Hydra.Contract.HeadState

type Rep FanoutProgressDatum Source # 
Instance details

Defined in Hydra.Contract.HeadState

type Rep FanoutProgressDatum = D1 ('MetaData "FanoutProgressDatum" "Hydra.Contract.HeadState" "hydra-plutus-2.3.0-GZuRkjMlaaiDs5DtXvwJLz" 'False) (C1 ('MetaCons "FanoutProgressDatum" 'PrefixI 'True) ((S1 ('MetaSel ('Just "headId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CurrencySymbol) :*: S1 ('MetaSel ('Just "parties") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Party])) :*: (S1 ('MetaSel ('Just "contestationDeadline") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 POSIXTime) :*: (S1 ('MetaSel ('Just "accumulatorCommitment") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BuiltinBLS12_381_G1_Element) :*: S1 ('MetaSel ('Just "headAdaOverhead") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)))))

progressFromClosed :: ClosedDatum -> FanoutProgressDatum Source #

Extract the fields needed for partial fanout steps from a ClosedDatum. Called both on-chain (in the validator dispatch) and off-chain (in tx building).

data State Source #

Instances

Instances details
Generic State Source # 
Instance details

Defined in Hydra.Contract.HeadState

Associated Types

type Rep State :: Type -> Type Source #

Methods

from :: State -> Rep State x Source #

to :: Rep State x -> State Source #

Show State Source # 
Instance details

Defined in Hydra.Contract.HeadState

FromData State Source # 
Instance details

Defined in Hydra.Contract.HeadState

Methods

fromBuiltinData :: BuiltinData -> Maybe State

ToData State Source # 
Instance details

Defined in Hydra.Contract.HeadState

Methods

toBuiltinData :: State -> BuiltinData

UnsafeFromData State Source # 
Instance details

Defined in Hydra.Contract.HeadState

Methods

unsafeFromBuiltinData :: BuiltinData -> State

type Rep State Source # 
Instance details

Defined in Hydra.Contract.HeadState

data CloseRedeemer Source #

Sub-type for close transition with auxiliary data as needed.

Constructors

CloseInitial

Initial snapshot is used to close.

CloseAny

Any snapshot which doesn't contain anything to inc/decrement but snapshot number is higher than zero.

Fields

  • signature :: [Signature]

    Multi-signature of a snapshot ξ

  • accumulatorHash :: Hash

    Digest of the accumulator hash

  • decommitOutputsHash :: Hash

    Digest of the ordered decommit outputs (Uω); empty-list hash when the signed snapshot has no pending decommit. Binds Uω into the multi-signature.

  • commitOutputsHash :: Hash

    Digest of the ordered commit outputs (Uα); empty-list hash when the signed snapshot has no pending commit. Binds Uα into the multi-signature.

CloseUnused

Closing snapshot refers to the current state version (pending inc/dec not yet applied)

Fields

  • signature :: [Signature]

    Multi-signature of a snapshot ξ

  • accumulatorHash :: Hash

    Digest of the accumulator hash

  • decommitOutputsHash :: Hash

    Digest of the ordered decommit outputs (Uω); empty-list hash when the signed snapshot has no pending decommit. Binds Uω into the multi-signature.

  • commitOutputsHash :: Hash

    Digest of the ordered commit outputs (Uα); empty-list hash when the signed snapshot has no pending commit. Binds Uα into the multi-signature.

CloseUsed

Closing snapshot refers to the previous state version (pending inc/dec already applied)

Fields

  • signature :: [Signature]

    Multi-signature of a snapshot ξ

  • accumulatorHash :: Hash

    Digest of the accumulator hash

  • decommitOutputsHash :: Hash

    Digest of the ordered decommit outputs (Uω); empty-list hash when the signed snapshot has no pending decommit. Binds Uω into the multi-signature.

  • commitOutputsHash :: Hash

    Digest of the ordered commit outputs (Uα); empty-list hash when the signed snapshot has no pending commit. Binds Uα into the multi-signature.

Instances

Instances details
Generic CloseRedeemer Source # 
Instance details

Defined in Hydra.Contract.HeadState

Associated Types

type Rep CloseRedeemer :: Type -> Type Source #

Show CloseRedeemer Source # 
Instance details

Defined in Hydra.Contract.HeadState

FromData CloseRedeemer Source # 
Instance details

Defined in Hydra.Contract.HeadState

Methods

fromBuiltinData :: BuiltinData -> Maybe CloseRedeemer

ToData CloseRedeemer Source # 
Instance details

Defined in Hydra.Contract.HeadState

Methods

toBuiltinData :: CloseRedeemer -> BuiltinData

UnsafeFromData CloseRedeemer Source # 
Instance details

Defined in Hydra.Contract.HeadState

Methods

unsafeFromBuiltinData :: BuiltinData -> CloseRedeemer

type Rep CloseRedeemer Source # 
Instance details

Defined in Hydra.Contract.HeadState

type Rep CloseRedeemer = D1 ('MetaData "CloseRedeemer" "Hydra.Contract.HeadState" "hydra-plutus-2.3.0-GZuRkjMlaaiDs5DtXvwJLz" 'False) ((C1 ('MetaCons "CloseInitial" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CloseAny" 'PrefixI 'True) ((S1 ('MetaSel ('Just "signature") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Signature]) :*: S1 ('MetaSel ('Just "accumulatorHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Hash)) :*: (S1 ('MetaSel ('Just "decommitOutputsHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Hash) :*: S1 ('MetaSel ('Just "commitOutputsHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Hash)))) :+: (C1 ('MetaCons "CloseUnused" 'PrefixI 'True) ((S1 ('MetaSel ('Just "signature") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Signature]) :*: S1 ('MetaSel ('Just "accumulatorHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Hash)) :*: (S1 ('MetaSel ('Just "decommitOutputsHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Hash) :*: S1 ('MetaSel ('Just "commitOutputsHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Hash))) :+: C1 ('MetaCons "CloseUsed" 'PrefixI 'True) ((S1 ('MetaSel ('Just "signature") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Signature]) :*: S1 ('MetaSel ('Just "accumulatorHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Hash)) :*: (S1 ('MetaSel ('Just "decommitOutputsHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Hash) :*: S1 ('MetaSel ('Just "commitOutputsHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Hash)))))

data ContestRedeemer Source #

Sub-type for contest transition with auxiliary data as needed.

Constructors

ContestUnused

Contesting snapshot refers to the current state version (inc/dec not yet applied, or no pending action)

Fields

  • signature :: [Signature]

    Multi-signature of a snapshot ξ

  • accumulatorHash :: Hash

    Digest of the accumulator hash

  • decommitOutputsHash :: Hash

    Digest of the ordered decommit outputs (Uω); empty-list hash when the signed snapshot has no pending decommit. Binds Uω into the multi-signature.

  • commitOutputsHash :: Hash

    Digest of the ordered commit outputs (Uα); empty-list hash when the signed snapshot has no pending commit. Binds Uα into the multi-signature.

ContestUsed

Contesting snapshot refers to the previous state version (pending inc/dec already applied)

Fields

  • signature :: [Signature]

    Multi-signature of a snapshot ξ

  • accumulatorHash :: Hash

    Digest of the accumulator hash

  • decommitOutputsHash :: Hash

    Digest of the ordered decommit outputs (Uω); empty-list hash when the signed snapshot has no pending decommit. Binds Uω into the multi-signature.

  • commitOutputsHash :: Hash

    Digest of the ordered commit outputs (Uα); empty-list hash when the signed snapshot has no pending commit. Binds Uα into the multi-signature.

Instances

Instances details
Generic ContestRedeemer Source # 
Instance details

Defined in Hydra.Contract.HeadState

Associated Types

type Rep ContestRedeemer :: Type -> Type Source #

Show ContestRedeemer Source # 
Instance details

Defined in Hydra.Contract.HeadState

FromData ContestRedeemer Source # 
Instance details

Defined in Hydra.Contract.HeadState

Methods

fromBuiltinData :: BuiltinData -> Maybe ContestRedeemer

ToData ContestRedeemer Source # 
Instance details

Defined in Hydra.Contract.HeadState

Methods

toBuiltinData :: ContestRedeemer -> BuiltinData

UnsafeFromData ContestRedeemer Source # 
Instance details

Defined in Hydra.Contract.HeadState

Methods

unsafeFromBuiltinData :: BuiltinData -> ContestRedeemer

type Rep ContestRedeemer Source # 
Instance details

Defined in Hydra.Contract.HeadState

type Rep ContestRedeemer = D1 ('MetaData "ContestRedeemer" "Hydra.Contract.HeadState" "hydra-plutus-2.3.0-GZuRkjMlaaiDs5DtXvwJLz" 'False) (C1 ('MetaCons "ContestUnused" 'PrefixI 'True) ((S1 ('MetaSel ('Just "signature") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Signature]) :*: S1 ('MetaSel ('Just "accumulatorHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Hash)) :*: (S1 ('MetaSel ('Just "decommitOutputsHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Hash) :*: S1 ('MetaSel ('Just "commitOutputsHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Hash))) :+: C1 ('MetaCons "ContestUsed" 'PrefixI 'True) ((S1 ('MetaSel ('Just "signature") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Signature]) :*: S1 ('MetaSel ('Just "accumulatorHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Hash)) :*: (S1 ('MetaSel ('Just "decommitOutputsHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Hash) :*: S1 ('MetaSel ('Just "commitOutputsHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Hash))))

data IncrementRedeemer Source #

Sub-type for increment transition

Constructors

IncrementRedeemer 

Fields

Instances

Instances details
Generic IncrementRedeemer Source # 
Instance details

Defined in Hydra.Contract.HeadState

Associated Types

type Rep IncrementRedeemer :: Type -> Type Source #

Show IncrementRedeemer Source # 
Instance details

Defined in Hydra.Contract.HeadState

FromData IncrementRedeemer Source # 
Instance details

Defined in Hydra.Contract.HeadState

Methods

fromBuiltinData :: BuiltinData -> Maybe IncrementRedeemer

ToData IncrementRedeemer Source # 
Instance details

Defined in Hydra.Contract.HeadState

Methods

toBuiltinData :: IncrementRedeemer -> BuiltinData

UnsafeFromData IncrementRedeemer Source # 
Instance details

Defined in Hydra.Contract.HeadState

Methods

unsafeFromBuiltinData :: BuiltinData -> IncrementRedeemer

type Rep IncrementRedeemer Source # 
Instance details

Defined in Hydra.Contract.HeadState

type Rep IncrementRedeemer = D1 ('MetaData "IncrementRedeemer" "Hydra.Contract.HeadState" "hydra-plutus-2.3.0-GZuRkjMlaaiDs5DtXvwJLz" 'False) (C1 ('MetaCons "IncrementRedeemer" 'PrefixI 'True) ((S1 ('MetaSel ('Just "signature") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Signature]) :*: S1 ('MetaSel ('Just "snapshotNumber") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SnapshotNumber)) :*: (S1 ('MetaSel ('Just "increment") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TxOutRef) :*: S1 ('MetaSel ('Just "decommitOutputsHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Hash))))

data DecrementRedeemer Source #

Sub-type for decrement transition with auxiliary data as needed.

Constructors

DecrementRedeemer 

Fields

Instances

Instances details
Generic DecrementRedeemer Source # 
Instance details

Defined in Hydra.Contract.HeadState

Associated Types

type Rep DecrementRedeemer :: Type -> Type Source #

Show DecrementRedeemer Source # 
Instance details

Defined in Hydra.Contract.HeadState

FromData DecrementRedeemer Source # 
Instance details

Defined in Hydra.Contract.HeadState

Methods

fromBuiltinData :: BuiltinData -> Maybe DecrementRedeemer

ToData DecrementRedeemer Source # 
Instance details

Defined in Hydra.Contract.HeadState

Methods

toBuiltinData :: DecrementRedeemer -> BuiltinData

UnsafeFromData DecrementRedeemer Source # 
Instance details

Defined in Hydra.Contract.HeadState

Methods

unsafeFromBuiltinData :: BuiltinData -> DecrementRedeemer

type Rep DecrementRedeemer Source # 
Instance details

Defined in Hydra.Contract.HeadState

type Rep DecrementRedeemer = D1 ('MetaData "DecrementRedeemer" "Hydra.Contract.HeadState" "hydra-plutus-2.3.0-GZuRkjMlaaiDs5DtXvwJLz" 'False) (C1 ('MetaCons "DecrementRedeemer" 'PrefixI 'True) ((S1 ('MetaSel ('Just "signature") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Signature]) :*: S1 ('MetaSel ('Just "snapshotNumber") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SnapshotNumber)) :*: (S1 ('MetaSel ('Just "numberOfDecommitOutputs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Just "commitOutputsHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Hash))))

data Input Source #

Constructors

Increment IncrementRedeemer 
Decrement DecrementRedeemer 
Close CloseRedeemer 
Contest ContestRedeemer 
Fanout 

Fields

PartialFanout 

Fields

FinalPartialFanout 

Fields

Instances

Instances details
Generic Input Source # 
Instance details

Defined in Hydra.Contract.HeadState

Associated Types

type Rep Input :: Type -> Type Source #

Methods

from :: Input -> Rep Input x Source #

to :: Rep Input x -> Input Source #

Show Input Source # 
Instance details

Defined in Hydra.Contract.HeadState

FromData Input Source # 
Instance details

Defined in Hydra.Contract.HeadState

Methods

fromBuiltinData :: BuiltinData -> Maybe Input

ToData Input Source # 
Instance details

Defined in Hydra.Contract.HeadState

Methods

toBuiltinData :: Input -> BuiltinData

UnsafeFromData Input Source # 
Instance details

Defined in Hydra.Contract.HeadState

Methods

unsafeFromBuiltinData :: BuiltinData -> Input

type Rep Input Source # 
Instance details

Defined in Hydra.Contract.HeadState

type Rep Input = D1 ('MetaData "Input" "Hydra.Contract.HeadState" "hydra-plutus-2.3.0-GZuRkjMlaaiDs5DtXvwJLz" 'False) ((C1 ('MetaCons "Increment" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IncrementRedeemer)) :+: (C1 ('MetaCons "Decrement" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DecrementRedeemer)) :+: C1 ('MetaCons "Close" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CloseRedeemer)))) :+: ((C1 ('MetaCons "Contest" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ContestRedeemer)) :+: C1 ('MetaCons "Fanout" 'PrefixI 'True) (S1 ('MetaSel ('Just "numberOfFanoutOutputs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: (S1 ('MetaSel ('Just "proof") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BuiltinBLS12_381_G1_Element) :*: S1 ('MetaSel ('Just "crsRef") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TxOutRef)))) :+: (C1 ('MetaCons "PartialFanout" 'PrefixI 'True) (S1 ('MetaSel ('Just "numberOfPartialOutputs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Just "crsRef") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TxOutRef)) :+: C1 ('MetaCons "FinalPartialFanout" 'PrefixI 'True) (S1 ('MetaSel ('Just "numberOfPartialOutputs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: (S1 ('MetaSel ('Just "proof") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BuiltinBLS12_381_G1_Element) :*: S1 ('MetaSel ('Just "crsRef") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TxOutRef))))))