{-# LANGUAGE BlockArguments #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE ViewPatterns #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -Wno-simplifiable-class-constraints #-}
{-# OPTIONS_GHC -fno-omit-interface-pragmas #-}
{-# OPTIONS_GHC -fno-specialise #-}
{-# OPTIONS_GHC -fno-strictness #-}
module PlutusLedgerApi.V4.Contexts
( AccountId (..)
, AccountBalanceInterval (..)
, AccountBalanceIntervals (..)
, ColdCommitteeCredential (..)
, HotCommitteeCredential (..)
, DRepCredential (..)
, DRep (..)
, Delegatee (..)
, TxCert (..)
, Voter (..)
, Vote (..)
, GovernanceActionId (..)
, Committee (..)
, Constitution (..)
, ProtocolVersion (..)
, ChangedParameters (..)
, GovernanceAction (..)
, ProposalProcedure (..)
, ScriptPurpose (..)
, ScriptInfo (..)
, TxInInfo (..)
, TxInfo (..)
, TopTxInfoSimplified (..)
, TopTxInfo (..)
, ScriptContext (..)
, findOwnInput
, findDatum
, findDatumHash
, findTxInByTxOutRef
, findContinuingOutputs
, getContinuingOutputs
, txSignedBy
, pubKeyOutputsAt
, valuePaidTo
, valueSpent
, valueProduced
, ownCurrencySymbol
, spendsOutput
) where
import Data.Function ((&))
import GHC.Generics (Generic)
import PlutusLedgerApi.V2 qualified as V2
import PlutusLedgerApi.V3.Contexts
( ChangedParameters (..)
, ColdCommitteeCredential (..)
, Committee (..)
, Constitution (..)
, DRep (..)
, DRepCredential (..)
, Delegatee (..)
, GovernanceAction (..)
, GovernanceActionId (..)
, HotCommitteeCredential (..)
, ProposalProcedure (..)
, ProtocolVersion (..)
, Vote (..)
, Voter (..)
)
import PlutusLedgerApi.V3.MintValue qualified as V3
import PlutusLedgerApi.V3.Tx qualified as V3
import PlutusLedgerApi.V4.Address (AccountId (..), Address (..))
import PlutusLedgerApi.V4.Tx (TxOut (..))
import PlutusTx (makeIsDataSchemaIndexed)
import PlutusTx qualified
import PlutusTx.AssocMap (Map, lookup, toList)
import PlutusTx.Blueprint
( HasBlueprintDefinition
, HasBlueprintSchema
, SchemaInfo (..)
)
import PlutusTx.Blueprint.Class (HasBlueprintSchema (..))
import PlutusTx.Blueprint.Definition.Derive (definitionRef)
import PlutusTx.Blueprint.Schema (withSchemaInfo)
import PlutusTx.Foldable qualified as F
import PlutusTx.Lift (makeLift)
import PlutusTx.List qualified as List
import PlutusTx.Prelude qualified as PlutusTx
import Prettyprinter (nest, vsep, (<+>))
import Prettyprinter.Extras (Pretty (pretty), PrettyShow (PrettyShow))
import Prelude qualified as Haskell
data AccountBalanceInterval
= AccountBalanceLowerBound V2.Lovelace
| AccountBalanceUpperBound V2.Lovelace
| AccountBalanceBothBounds V2.Lovelace V2.Lovelace
| AccountBalanceExact V2.Lovelace
deriving stock ((forall x. AccountBalanceInterval -> Rep AccountBalanceInterval x)
-> (forall x.
Rep AccountBalanceInterval x -> AccountBalanceInterval)
-> Generic AccountBalanceInterval
forall x. Rep AccountBalanceInterval x -> AccountBalanceInterval
forall x. AccountBalanceInterval -> Rep AccountBalanceInterval x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. AccountBalanceInterval -> Rep AccountBalanceInterval x
from :: forall x. AccountBalanceInterval -> Rep AccountBalanceInterval x
$cto :: forall x. Rep AccountBalanceInterval x -> AccountBalanceInterval
to :: forall x. Rep AccountBalanceInterval x -> AccountBalanceInterval
Generic, Int -> AccountBalanceInterval -> ShowS
[AccountBalanceInterval] -> ShowS
AccountBalanceInterval -> String
(Int -> AccountBalanceInterval -> ShowS)
-> (AccountBalanceInterval -> String)
-> ([AccountBalanceInterval] -> ShowS)
-> Show AccountBalanceInterval
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AccountBalanceInterval -> ShowS
showsPrec :: Int -> AccountBalanceInterval -> ShowS
$cshow :: AccountBalanceInterval -> String
show :: AccountBalanceInterval -> String
$cshowList :: [AccountBalanceInterval] -> ShowS
showList :: [AccountBalanceInterval] -> ShowS
Haskell.Show, AccountBalanceInterval -> AccountBalanceInterval -> Bool
(AccountBalanceInterval -> AccountBalanceInterval -> Bool)
-> (AccountBalanceInterval -> AccountBalanceInterval -> Bool)
-> Eq AccountBalanceInterval
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AccountBalanceInterval -> AccountBalanceInterval -> Bool
== :: AccountBalanceInterval -> AccountBalanceInterval -> Bool
$c/= :: AccountBalanceInterval -> AccountBalanceInterval -> Bool
/= :: AccountBalanceInterval -> AccountBalanceInterval -> Bool
Haskell.Eq, Eq AccountBalanceInterval
Eq AccountBalanceInterval =>
(AccountBalanceInterval -> AccountBalanceInterval -> Ordering)
-> (AccountBalanceInterval -> AccountBalanceInterval -> Bool)
-> (AccountBalanceInterval -> AccountBalanceInterval -> Bool)
-> (AccountBalanceInterval -> AccountBalanceInterval -> Bool)
-> (AccountBalanceInterval -> AccountBalanceInterval -> Bool)
-> (AccountBalanceInterval
-> AccountBalanceInterval -> AccountBalanceInterval)
-> (AccountBalanceInterval
-> AccountBalanceInterval -> AccountBalanceInterval)
-> Ord AccountBalanceInterval
AccountBalanceInterval -> AccountBalanceInterval -> Bool
AccountBalanceInterval -> AccountBalanceInterval -> Ordering
AccountBalanceInterval
-> AccountBalanceInterval -> AccountBalanceInterval
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: AccountBalanceInterval -> AccountBalanceInterval -> Ordering
compare :: AccountBalanceInterval -> AccountBalanceInterval -> Ordering
$c< :: AccountBalanceInterval -> AccountBalanceInterval -> Bool
< :: AccountBalanceInterval -> AccountBalanceInterval -> Bool
$c<= :: AccountBalanceInterval -> AccountBalanceInterval -> Bool
<= :: AccountBalanceInterval -> AccountBalanceInterval -> Bool
$c> :: AccountBalanceInterval -> AccountBalanceInterval -> Bool
> :: AccountBalanceInterval -> AccountBalanceInterval -> Bool
$c>= :: AccountBalanceInterval -> AccountBalanceInterval -> Bool
>= :: AccountBalanceInterval -> AccountBalanceInterval -> Bool
$cmax :: AccountBalanceInterval
-> AccountBalanceInterval -> AccountBalanceInterval
max :: AccountBalanceInterval
-> AccountBalanceInterval -> AccountBalanceInterval
$cmin :: AccountBalanceInterval
-> AccountBalanceInterval -> AccountBalanceInterval
min :: AccountBalanceInterval
-> AccountBalanceInterval -> AccountBalanceInterval
Haskell.Ord)
deriving anyclass (DefinitionId
DefinitionId -> HasBlueprintDefinition AccountBalanceInterval
forall t. DefinitionId -> HasBlueprintDefinition t
$cdefinitionId :: DefinitionId
definitionId :: DefinitionId
HasBlueprintDefinition)
deriving ((forall ann. AccountBalanceInterval -> Doc ann)
-> (forall ann. [AccountBalanceInterval] -> Doc ann)
-> Pretty AccountBalanceInterval
forall ann. [AccountBalanceInterval] -> Doc ann
forall ann. AccountBalanceInterval -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. AccountBalanceInterval -> Doc ann
pretty :: forall ann. AccountBalanceInterval -> Doc ann
$cprettyList :: forall ann. [AccountBalanceInterval] -> Doc ann
prettyList :: forall ann. [AccountBalanceInterval] -> Doc ann
Pretty) via (PrettyShow AccountBalanceInterval)
PlutusTx.deriveEq ''AccountBalanceInterval
$(makeLift ''AccountBalanceInterval)
$( makeIsDataSchemaIndexed
''AccountBalanceInterval
[ ('AccountBalanceLowerBound, 0)
, ('AccountBalanceUpperBound, 1)
, ('AccountBalanceBothBounds, 2)
, ('AccountBalanceExact, 3)
]
)
newtype AccountBalanceIntervals = AccountBalanceIntervals (Map AccountId AccountBalanceInterval)
deriving stock ((forall x.
AccountBalanceIntervals -> Rep AccountBalanceIntervals x)
-> (forall x.
Rep AccountBalanceIntervals x -> AccountBalanceIntervals)
-> Generic AccountBalanceIntervals
forall x. Rep AccountBalanceIntervals x -> AccountBalanceIntervals
forall x. AccountBalanceIntervals -> Rep AccountBalanceIntervals x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. AccountBalanceIntervals -> Rep AccountBalanceIntervals x
from :: forall x. AccountBalanceIntervals -> Rep AccountBalanceIntervals x
$cto :: forall x. Rep AccountBalanceIntervals x -> AccountBalanceIntervals
to :: forall x. Rep AccountBalanceIntervals x -> AccountBalanceIntervals
Generic)
deriving anyclass (DefinitionId
DefinitionId -> HasBlueprintDefinition AccountBalanceIntervals
forall t. DefinitionId -> HasBlueprintDefinition t
$cdefinitionId :: DefinitionId
definitionId :: DefinitionId
HasBlueprintDefinition)
deriving ((forall ann. AccountBalanceIntervals -> Doc ann)
-> (forall ann. [AccountBalanceIntervals] -> Doc ann)
-> Pretty AccountBalanceIntervals
forall ann. [AccountBalanceIntervals] -> Doc ann
forall ann. AccountBalanceIntervals -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. AccountBalanceIntervals -> Doc ann
pretty :: forall ann. AccountBalanceIntervals -> Doc ann
$cprettyList :: forall ann. [AccountBalanceIntervals] -> Doc ann
prettyList :: forall ann. [AccountBalanceIntervals] -> Doc ann
Pretty) via (PrettyShow AccountBalanceIntervals)
deriving newtype
( AccountBalanceIntervals -> AccountBalanceIntervals -> Bool
(AccountBalanceIntervals -> AccountBalanceIntervals -> Bool)
-> (AccountBalanceIntervals -> AccountBalanceIntervals -> Bool)
-> Eq AccountBalanceIntervals
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AccountBalanceIntervals -> AccountBalanceIntervals -> Bool
== :: AccountBalanceIntervals -> AccountBalanceIntervals -> Bool
$c/= :: AccountBalanceIntervals -> AccountBalanceIntervals -> Bool
/= :: AccountBalanceIntervals -> AccountBalanceIntervals -> Bool
Haskell.Eq
, Eq AccountBalanceIntervals
Eq AccountBalanceIntervals =>
(AccountBalanceIntervals -> AccountBalanceIntervals -> Ordering)
-> (AccountBalanceIntervals -> AccountBalanceIntervals -> Bool)
-> (AccountBalanceIntervals -> AccountBalanceIntervals -> Bool)
-> (AccountBalanceIntervals -> AccountBalanceIntervals -> Bool)
-> (AccountBalanceIntervals -> AccountBalanceIntervals -> Bool)
-> (AccountBalanceIntervals
-> AccountBalanceIntervals -> AccountBalanceIntervals)
-> (AccountBalanceIntervals
-> AccountBalanceIntervals -> AccountBalanceIntervals)
-> Ord AccountBalanceIntervals
AccountBalanceIntervals -> AccountBalanceIntervals -> Bool
AccountBalanceIntervals -> AccountBalanceIntervals -> Ordering
AccountBalanceIntervals
-> AccountBalanceIntervals -> AccountBalanceIntervals
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: AccountBalanceIntervals -> AccountBalanceIntervals -> Ordering
compare :: AccountBalanceIntervals -> AccountBalanceIntervals -> Ordering
$c< :: AccountBalanceIntervals -> AccountBalanceIntervals -> Bool
< :: AccountBalanceIntervals -> AccountBalanceIntervals -> Bool
$c<= :: AccountBalanceIntervals -> AccountBalanceIntervals -> Bool
<= :: AccountBalanceIntervals -> AccountBalanceIntervals -> Bool
$c> :: AccountBalanceIntervals -> AccountBalanceIntervals -> Bool
> :: AccountBalanceIntervals -> AccountBalanceIntervals -> Bool
$c>= :: AccountBalanceIntervals -> AccountBalanceIntervals -> Bool
>= :: AccountBalanceIntervals -> AccountBalanceIntervals -> Bool
$cmax :: AccountBalanceIntervals
-> AccountBalanceIntervals -> AccountBalanceIntervals
max :: AccountBalanceIntervals
-> AccountBalanceIntervals -> AccountBalanceIntervals
$cmin :: AccountBalanceIntervals
-> AccountBalanceIntervals -> AccountBalanceIntervals
min :: AccountBalanceIntervals
-> AccountBalanceIntervals -> AccountBalanceIntervals
Haskell.Ord
, Int -> AccountBalanceIntervals -> ShowS
[AccountBalanceIntervals] -> ShowS
AccountBalanceIntervals -> String
(Int -> AccountBalanceIntervals -> ShowS)
-> (AccountBalanceIntervals -> String)
-> ([AccountBalanceIntervals] -> ShowS)
-> Show AccountBalanceIntervals
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AccountBalanceIntervals -> ShowS
showsPrec :: Int -> AccountBalanceIntervals -> ShowS
$cshow :: AccountBalanceIntervals -> String
show :: AccountBalanceIntervals -> String
$cshowList :: [AccountBalanceIntervals] -> ShowS
showList :: [AccountBalanceIntervals] -> ShowS
Haskell.Show
, AccountBalanceIntervals -> BuiltinData
(AccountBalanceIntervals -> BuiltinData)
-> ToData AccountBalanceIntervals
forall a. (a -> BuiltinData) -> ToData a
$ctoBuiltinData :: AccountBalanceIntervals -> BuiltinData
toBuiltinData :: AccountBalanceIntervals -> BuiltinData
PlutusTx.ToData
, BuiltinData -> Maybe AccountBalanceIntervals
(BuiltinData -> Maybe AccountBalanceIntervals)
-> FromData AccountBalanceIntervals
forall a. (BuiltinData -> Maybe a) -> FromData a
$cfromBuiltinData :: BuiltinData -> Maybe AccountBalanceIntervals
fromBuiltinData :: BuiltinData -> Maybe AccountBalanceIntervals
PlutusTx.FromData
, BuiltinData -> AccountBalanceIntervals
(BuiltinData -> AccountBalanceIntervals)
-> UnsafeFromData AccountBalanceIntervals
forall a. (BuiltinData -> a) -> UnsafeFromData a
$cunsafeFromBuiltinData :: BuiltinData -> AccountBalanceIntervals
unsafeFromBuiltinData :: BuiltinData -> AccountBalanceIntervals
PlutusTx.UnsafeFromData
)
instance
( HasBlueprintSchema AccountId referencedTypes
, HasBlueprintSchema AccountBalanceInterval referencedTypes
)
=> HasBlueprintSchema AccountBalanceIntervals referencedTypes
where
schema :: Schema referencedTypes
schema =
forall t (referencedTypes :: [*]).
HasBlueprintSchema t referencedTypes =>
Schema referencedTypes
schema @(Map AccountId AccountBalanceInterval) @referencedTypes
Schema referencedTypes
-> (Schema referencedTypes -> Schema referencedTypes)
-> Schema referencedTypes
forall a b. a -> (a -> b) -> b
& (SchemaInfo -> SchemaInfo)
-> Schema referencedTypes -> Schema referencedTypes
forall (referencedTypes :: [*]).
(SchemaInfo -> SchemaInfo)
-> Schema referencedTypes -> Schema referencedTypes
withSchemaInfo \SchemaInfo
info -> SchemaInfo
info {title = Haskell.Just "AccountBalanceIntervals"}
data TxCert
= TxCertRegAccount AccountId V2.Lovelace
| TxCertUnRegAccount AccountId V2.Lovelace
| TxCertDelegAccount AccountId Delegatee
| TxCertRegAccountDeleg AccountId Delegatee V2.Lovelace
| TxCertRegDRep DRepCredential V2.Lovelace
| TxCertUpdateDRep DRepCredential
| TxCertUnRegDRep DRepCredential V2.Lovelace
| TxCertPoolRegister V2.PubKeyHash V2.PubKeyHash
| TxCertPoolRetire V2.PubKeyHash Haskell.Integer
| TxCertAuthHotCommittee ColdCommitteeCredential HotCommitteeCredential
| TxCertResignColdCommittee ColdCommitteeCredential
deriving stock ((forall x. TxCert -> Rep TxCert x)
-> (forall x. Rep TxCert x -> TxCert) -> Generic TxCert
forall x. Rep TxCert x -> TxCert
forall x. TxCert -> Rep TxCert x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. TxCert -> Rep TxCert x
from :: forall x. TxCert -> Rep TxCert x
$cto :: forall x. Rep TxCert x -> TxCert
to :: forall x. Rep TxCert x -> TxCert
Generic, Int -> TxCert -> ShowS
[TxCert] -> ShowS
TxCert -> String
(Int -> TxCert -> ShowS)
-> (TxCert -> String) -> ([TxCert] -> ShowS) -> Show TxCert
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TxCert -> ShowS
showsPrec :: Int -> TxCert -> ShowS
$cshow :: TxCert -> String
show :: TxCert -> String
$cshowList :: [TxCert] -> ShowS
showList :: [TxCert] -> ShowS
Haskell.Show, TxCert -> TxCert -> Bool
(TxCert -> TxCert -> Bool)
-> (TxCert -> TxCert -> Bool) -> Eq TxCert
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TxCert -> TxCert -> Bool
== :: TxCert -> TxCert -> Bool
$c/= :: TxCert -> TxCert -> Bool
/= :: TxCert -> TxCert -> Bool
Haskell.Eq, Eq TxCert
Eq TxCert =>
(TxCert -> TxCert -> Ordering)
-> (TxCert -> TxCert -> Bool)
-> (TxCert -> TxCert -> Bool)
-> (TxCert -> TxCert -> Bool)
-> (TxCert -> TxCert -> Bool)
-> (TxCert -> TxCert -> TxCert)
-> (TxCert -> TxCert -> TxCert)
-> Ord TxCert
TxCert -> TxCert -> Bool
TxCert -> TxCert -> Ordering
TxCert -> TxCert -> TxCert
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: TxCert -> TxCert -> Ordering
compare :: TxCert -> TxCert -> Ordering
$c< :: TxCert -> TxCert -> Bool
< :: TxCert -> TxCert -> Bool
$c<= :: TxCert -> TxCert -> Bool
<= :: TxCert -> TxCert -> Bool
$c> :: TxCert -> TxCert -> Bool
> :: TxCert -> TxCert -> Bool
$c>= :: TxCert -> TxCert -> Bool
>= :: TxCert -> TxCert -> Bool
$cmax :: TxCert -> TxCert -> TxCert
max :: TxCert -> TxCert -> TxCert
$cmin :: TxCert -> TxCert -> TxCert
min :: TxCert -> TxCert -> TxCert
Haskell.Ord)
deriving anyclass (DefinitionId
DefinitionId -> HasBlueprintDefinition TxCert
forall t. DefinitionId -> HasBlueprintDefinition t
$cdefinitionId :: DefinitionId
definitionId :: DefinitionId
HasBlueprintDefinition)
deriving ((forall ann. TxCert -> Doc ann)
-> (forall ann. [TxCert] -> Doc ann) -> Pretty TxCert
forall ann. [TxCert] -> Doc ann
forall ann. TxCert -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. TxCert -> Doc ann
pretty :: forall ann. TxCert -> Doc ann
$cprettyList :: forall ann. [TxCert] -> Doc ann
prettyList :: forall ann. [TxCert] -> Doc ann
Pretty) via (PrettyShow TxCert)
PlutusTx.deriveEq ''TxCert
data ScriptPurpose
= Minting V2.ScriptHash V2.CurrencySymbol
| Spending V2.ScriptHash V3.TxOutRef
| Withdrawing V2.ScriptHash V2.Credential
| Certifying V2.ScriptHash Haskell.Integer TxCert
| Voting V2.ScriptHash Voter
| Proposing V2.ScriptHash Haskell.Integer ProposalProcedure
| Guarding V2.ScriptHash Haskell.Integer
deriving stock ((forall x. ScriptPurpose -> Rep ScriptPurpose x)
-> (forall x. Rep ScriptPurpose x -> ScriptPurpose)
-> Generic ScriptPurpose
forall x. Rep ScriptPurpose x -> ScriptPurpose
forall x. ScriptPurpose -> Rep ScriptPurpose x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. ScriptPurpose -> Rep ScriptPurpose x
from :: forall x. ScriptPurpose -> Rep ScriptPurpose x
$cto :: forall x. Rep ScriptPurpose x -> ScriptPurpose
to :: forall x. Rep ScriptPurpose x -> ScriptPurpose
Generic, Int -> ScriptPurpose -> ShowS
[ScriptPurpose] -> ShowS
ScriptPurpose -> String
(Int -> ScriptPurpose -> ShowS)
-> (ScriptPurpose -> String)
-> ([ScriptPurpose] -> ShowS)
-> Show ScriptPurpose
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ScriptPurpose -> ShowS
showsPrec :: Int -> ScriptPurpose -> ShowS
$cshow :: ScriptPurpose -> String
show :: ScriptPurpose -> String
$cshowList :: [ScriptPurpose] -> ShowS
showList :: [ScriptPurpose] -> ShowS
Haskell.Show, ScriptPurpose -> ScriptPurpose -> Bool
(ScriptPurpose -> ScriptPurpose -> Bool)
-> (ScriptPurpose -> ScriptPurpose -> Bool) -> Eq ScriptPurpose
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ScriptPurpose -> ScriptPurpose -> Bool
== :: ScriptPurpose -> ScriptPurpose -> Bool
$c/= :: ScriptPurpose -> ScriptPurpose -> Bool
/= :: ScriptPurpose -> ScriptPurpose -> Bool
Haskell.Eq, Eq ScriptPurpose
Eq ScriptPurpose =>
(ScriptPurpose -> ScriptPurpose -> Ordering)
-> (ScriptPurpose -> ScriptPurpose -> Bool)
-> (ScriptPurpose -> ScriptPurpose -> Bool)
-> (ScriptPurpose -> ScriptPurpose -> Bool)
-> (ScriptPurpose -> ScriptPurpose -> Bool)
-> (ScriptPurpose -> ScriptPurpose -> ScriptPurpose)
-> (ScriptPurpose -> ScriptPurpose -> ScriptPurpose)
-> Ord ScriptPurpose
ScriptPurpose -> ScriptPurpose -> Bool
ScriptPurpose -> ScriptPurpose -> Ordering
ScriptPurpose -> ScriptPurpose -> ScriptPurpose
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: ScriptPurpose -> ScriptPurpose -> Ordering
compare :: ScriptPurpose -> ScriptPurpose -> Ordering
$c< :: ScriptPurpose -> ScriptPurpose -> Bool
< :: ScriptPurpose -> ScriptPurpose -> Bool
$c<= :: ScriptPurpose -> ScriptPurpose -> Bool
<= :: ScriptPurpose -> ScriptPurpose -> Bool
$c> :: ScriptPurpose -> ScriptPurpose -> Bool
> :: ScriptPurpose -> ScriptPurpose -> Bool
$c>= :: ScriptPurpose -> ScriptPurpose -> Bool
>= :: ScriptPurpose -> ScriptPurpose -> Bool
$cmax :: ScriptPurpose -> ScriptPurpose -> ScriptPurpose
max :: ScriptPurpose -> ScriptPurpose -> ScriptPurpose
$cmin :: ScriptPurpose -> ScriptPurpose -> ScriptPurpose
min :: ScriptPurpose -> ScriptPurpose -> ScriptPurpose
Haskell.Ord)
deriving anyclass (DefinitionId
DefinitionId -> HasBlueprintDefinition ScriptPurpose
forall t. DefinitionId -> HasBlueprintDefinition t
$cdefinitionId :: DefinitionId
definitionId :: DefinitionId
HasBlueprintDefinition)
deriving ((forall ann. ScriptPurpose -> Doc ann)
-> (forall ann. [ScriptPurpose] -> Doc ann) -> Pretty ScriptPurpose
forall ann. [ScriptPurpose] -> Doc ann
forall ann. ScriptPurpose -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. ScriptPurpose -> Doc ann
pretty :: forall ann. ScriptPurpose -> Doc ann
$cprettyList :: forall ann. [ScriptPurpose] -> Doc ann
prettyList :: forall ann. [ScriptPurpose] -> Doc ann
Pretty) via (PrettyShow ScriptPurpose)
data TxInInfo = TxInInfo
{ TxInInfo -> TxOutRef
txInInfoOutRef :: V3.TxOutRef
, TxInInfo -> TxOut
txInInfoResolved :: TxOut
}
deriving stock ((forall x. TxInInfo -> Rep TxInInfo x)
-> (forall x. Rep TxInInfo x -> TxInInfo) -> Generic TxInInfo
forall x. Rep TxInInfo x -> TxInInfo
forall x. TxInInfo -> Rep TxInInfo x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. TxInInfo -> Rep TxInInfo x
from :: forall x. TxInInfo -> Rep TxInInfo x
$cto :: forall x. Rep TxInInfo x -> TxInInfo
to :: forall x. Rep TxInInfo x -> TxInInfo
Generic, Int -> TxInInfo -> ShowS
[TxInInfo] -> ShowS
TxInInfo -> String
(Int -> TxInInfo -> ShowS)
-> (TxInInfo -> String) -> ([TxInInfo] -> ShowS) -> Show TxInInfo
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TxInInfo -> ShowS
showsPrec :: Int -> TxInInfo -> ShowS
$cshow :: TxInInfo -> String
show :: TxInInfo -> String
$cshowList :: [TxInInfo] -> ShowS
showList :: [TxInInfo] -> ShowS
Haskell.Show, TxInInfo -> TxInInfo -> Bool
(TxInInfo -> TxInInfo -> Bool)
-> (TxInInfo -> TxInInfo -> Bool) -> Eq TxInInfo
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TxInInfo -> TxInInfo -> Bool
== :: TxInInfo -> TxInInfo -> Bool
$c/= :: TxInInfo -> TxInInfo -> Bool
/= :: TxInInfo -> TxInInfo -> Bool
Haskell.Eq)
deriving anyclass (DefinitionId
DefinitionId -> HasBlueprintDefinition TxInInfo
forall t. DefinitionId -> HasBlueprintDefinition t
$cdefinitionId :: DefinitionId
definitionId :: DefinitionId
HasBlueprintDefinition)
PlutusTx.deriveEq ''TxInInfo
instance Pretty TxInInfo where
pretty :: forall ann. TxInInfo -> Doc ann
pretty TxInInfo {TxOutRef
txInInfoOutRef :: TxInInfo -> TxOutRef
txInInfoOutRef :: TxOutRef
txInInfoOutRef, TxOut
txInInfoResolved :: TxInInfo -> TxOut
txInInfoResolved :: TxOut
txInInfoResolved} =
TxOutRef -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. TxOutRef -> Doc ann
pretty TxOutRef
txInInfoOutRef Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> Doc ann
"->" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> TxOut -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. TxOut -> Doc ann
pretty TxOut
txInInfoResolved
data TxInfo = TxInfo
{ TxInfo -> TxId
txInfoId :: V3.TxId
, TxInfo -> Maybe Integer
txInfoSubTxIx :: Haskell.Maybe Haskell.Integer
, TxInfo -> [TxInInfo]
txInfoInputs :: [TxInInfo]
, TxInfo -> [TxInInfo]
txInfoReferenceInputs :: [TxInInfo]
, TxInfo -> [TxOut]
txInfoOutputs :: [TxOut]
, TxInfo -> Lovelace
txInfoFee :: V2.Lovelace
, TxInfo -> MintValue
txInfoMint :: V3.MintValue
, TxInfo -> [TxCert]
txInfoTxCerts :: [TxCert]
, TxInfo -> Map AccountId Lovelace
txInfoWithdrawals :: Map AccountId V2.Lovelace
, TxInfo -> Map AccountId Lovelace
txInfoDirectDeposits :: Map AccountId V2.Lovelace
, TxInfo -> AccountBalanceIntervals
txInfoAccountBalanceIntervals :: AccountBalanceIntervals
, TxInfo -> POSIXTimeRange
txInfoValidRange :: V2.POSIXTimeRange
, TxInfo -> [Credential]
txInfoGuards :: [V2.Credential]
, TxInfo -> Map Credential (Maybe Datum)
txInfoRequiredTopLevelGuards :: Map V2.Credential (Haskell.Maybe V2.Datum)
, TxInfo -> Map ScriptPurpose Redeemer
txInfoRedeemers :: Map ScriptPurpose V2.Redeemer
, TxInfo -> Map DatumHash Datum
txInfoData :: Map V2.DatumHash V2.Datum
, TxInfo -> Map Voter (Map GovernanceActionId Vote)
txInfoVotes :: Map Voter (Map GovernanceActionId Vote)
, TxInfo -> [ProposalProcedure]
txInfoProposalProcedures :: [ProposalProcedure]
, TxInfo -> Maybe Lovelace
txInfoCurrentTreasuryAmount :: Haskell.Maybe V2.Lovelace
, TxInfo -> Lovelace
txInfoTreasuryDonation :: V2.Lovelace
}
deriving stock ((forall x. TxInfo -> Rep TxInfo x)
-> (forall x. Rep TxInfo x -> TxInfo) -> Generic TxInfo
forall x. Rep TxInfo x -> TxInfo
forall x. TxInfo -> Rep TxInfo x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. TxInfo -> Rep TxInfo x
from :: forall x. TxInfo -> Rep TxInfo x
$cto :: forall x. Rep TxInfo x -> TxInfo
to :: forall x. Rep TxInfo x -> TxInfo
Generic, Int -> TxInfo -> ShowS
[TxInfo] -> ShowS
TxInfo -> String
(Int -> TxInfo -> ShowS)
-> (TxInfo -> String) -> ([TxInfo] -> ShowS) -> Show TxInfo
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TxInfo -> ShowS
showsPrec :: Int -> TxInfo -> ShowS
$cshow :: TxInfo -> String
show :: TxInfo -> String
$cshowList :: [TxInfo] -> ShowS
showList :: [TxInfo] -> ShowS
Haskell.Show, TxInfo -> TxInfo -> Bool
(TxInfo -> TxInfo -> Bool)
-> (TxInfo -> TxInfo -> Bool) -> Eq TxInfo
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TxInfo -> TxInfo -> Bool
== :: TxInfo -> TxInfo -> Bool
$c/= :: TxInfo -> TxInfo -> Bool
/= :: TxInfo -> TxInfo -> Bool
Haskell.Eq)
deriving anyclass (DefinitionId
DefinitionId -> HasBlueprintDefinition TxInfo
forall t. DefinitionId -> HasBlueprintDefinition t
$cdefinitionId :: DefinitionId
definitionId :: DefinitionId
HasBlueprintDefinition)
instance Pretty TxInfo where
pretty :: forall ann. TxInfo -> Doc ann
pretty TxInfo {[Credential]
[TxOut]
[ProposalProcedure]
[TxCert]
[TxInInfo]
Maybe Integer
Maybe Lovelace
Map DatumHash Datum
Map Credential (Maybe Datum)
Map AccountId Lovelace
Map Voter (Map GovernanceActionId Vote)
Map ScriptPurpose Redeemer
POSIXTimeRange
TxId
Lovelace
MintValue
AccountBalanceIntervals
txInfoId :: TxInfo -> TxId
txInfoSubTxIx :: TxInfo -> Maybe Integer
txInfoInputs :: TxInfo -> [TxInInfo]
txInfoReferenceInputs :: TxInfo -> [TxInInfo]
txInfoOutputs :: TxInfo -> [TxOut]
txInfoFee :: TxInfo -> Lovelace
txInfoMint :: TxInfo -> MintValue
txInfoTxCerts :: TxInfo -> [TxCert]
txInfoWithdrawals :: TxInfo -> Map AccountId Lovelace
txInfoDirectDeposits :: TxInfo -> Map AccountId Lovelace
txInfoAccountBalanceIntervals :: TxInfo -> AccountBalanceIntervals
txInfoValidRange :: TxInfo -> POSIXTimeRange
txInfoGuards :: TxInfo -> [Credential]
txInfoRequiredTopLevelGuards :: TxInfo -> Map Credential (Maybe Datum)
txInfoRedeemers :: TxInfo -> Map ScriptPurpose Redeemer
txInfoData :: TxInfo -> Map DatumHash Datum
txInfoVotes :: TxInfo -> Map Voter (Map GovernanceActionId Vote)
txInfoProposalProcedures :: TxInfo -> [ProposalProcedure]
txInfoCurrentTreasuryAmount :: TxInfo -> Maybe Lovelace
txInfoTreasuryDonation :: TxInfo -> Lovelace
txInfoId :: TxId
txInfoSubTxIx :: Maybe Integer
txInfoInputs :: [TxInInfo]
txInfoReferenceInputs :: [TxInInfo]
txInfoOutputs :: [TxOut]
txInfoFee :: Lovelace
txInfoMint :: MintValue
txInfoTxCerts :: [TxCert]
txInfoWithdrawals :: Map AccountId Lovelace
txInfoDirectDeposits :: Map AccountId Lovelace
txInfoAccountBalanceIntervals :: AccountBalanceIntervals
txInfoValidRange :: POSIXTimeRange
txInfoGuards :: [Credential]
txInfoRequiredTopLevelGuards :: Map Credential (Maybe Datum)
txInfoRedeemers :: Map ScriptPurpose Redeemer
txInfoData :: Map DatumHash Datum
txInfoVotes :: Map Voter (Map GovernanceActionId Vote)
txInfoProposalProcedures :: [ProposalProcedure]
txInfoCurrentTreasuryAmount :: Maybe Lovelace
txInfoTreasuryDonation :: Lovelace
..} =
[Doc ann] -> Doc ann
forall ann. [Doc ann] -> Doc ann
vsep
[ Doc ann
"TxId:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> TxId -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. TxId -> Doc ann
pretty TxId
txInfoId
, Doc ann
"Sub-transaction index:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> Maybe Integer -> Doc ann
forall ann. Maybe Integer -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty Maybe Integer
txInfoSubTxIx
, Doc ann
"Inputs:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> [TxInInfo] -> Doc ann
forall ann. [TxInInfo] -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty [TxInInfo]
txInfoInputs
, Doc ann
"Reference inputs:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> [TxInInfo] -> Doc ann
forall ann. [TxInInfo] -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty [TxInInfo]
txInfoReferenceInputs
, Doc ann
"Outputs:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> [TxOut] -> Doc ann
forall ann. [TxOut] -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty [TxOut]
txInfoOutputs
, Doc ann
"Fee:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> Lovelace -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. Lovelace -> Doc ann
pretty Lovelace
txInfoFee
, Doc ann
"Value minted:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> MintValue -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. MintValue -> Doc ann
pretty MintValue
txInfoMint
, Doc ann
"TxCerts:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> [TxCert] -> Doc ann
forall ann. [TxCert] -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty [TxCert]
txInfoTxCerts
, Doc ann
"Withdrawals:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> Map AccountId Lovelace -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. Map AccountId Lovelace -> Doc ann
pretty Map AccountId Lovelace
txInfoWithdrawals
, Doc ann
"Direct deposits:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> Map AccountId Lovelace -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. Map AccountId Lovelace -> Doc ann
pretty Map AccountId Lovelace
txInfoDirectDeposits
, Doc ann
"Account balance intervals:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> AccountBalanceIntervals -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. AccountBalanceIntervals -> Doc ann
pretty AccountBalanceIntervals
txInfoAccountBalanceIntervals
, Doc ann
"Valid range:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> POSIXTimeRange -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. POSIXTimeRange -> Doc ann
pretty POSIXTimeRange
txInfoValidRange
, Doc ann
"Guards:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> [Credential] -> Doc ann
forall ann. [Credential] -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty [Credential]
txInfoGuards
, Doc ann
"Required top-level guards:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> Map Credential (Maybe Datum) -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. Map Credential (Maybe Datum) -> Doc ann
pretty Map Credential (Maybe Datum)
txInfoRequiredTopLevelGuards
, Doc ann
"Redeemers:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> Map ScriptPurpose Redeemer -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. Map ScriptPurpose Redeemer -> Doc ann
pretty Map ScriptPurpose Redeemer
txInfoRedeemers
, Doc ann
"Datums:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> Map DatumHash Datum -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. Map DatumHash Datum -> Doc ann
pretty Map DatumHash Datum
txInfoData
, Doc ann
"Votes:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> Map Voter (Map GovernanceActionId Vote) -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. Map Voter (Map GovernanceActionId Vote) -> Doc ann
pretty Map Voter (Map GovernanceActionId Vote)
txInfoVotes
, Doc ann
"Proposal procedures:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> [ProposalProcedure] -> Doc ann
forall ann. [ProposalProcedure] -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty [ProposalProcedure]
txInfoProposalProcedures
, Doc ann
"Current treasury amount:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> Maybe Lovelace -> Doc ann
forall ann. Maybe Lovelace -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty Maybe Lovelace
txInfoCurrentTreasuryAmount
, Doc ann
"Treasury donation:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> Lovelace -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. Lovelace -> Doc ann
pretty Lovelace
txInfoTreasuryDonation
]
data TopTxInfoSimplified = TopTxInfoSimplified
{ TopTxInfoSimplified -> [TxId]
ttisIds :: [V3.TxId]
, TopTxInfoSimplified -> [TxInInfo]
ttisInputs :: [TxInInfo]
, TopTxInfoSimplified -> [TxInInfo]
ttisReferenceInputs :: [TxInInfo]
, TopTxInfoSimplified -> [TxOut]
ttisOutputs :: [TxOut]
, TopTxInfoSimplified -> MintValue
ttisMints :: V3.MintValue
, TopTxInfoSimplified -> MintValue
ttisBurns :: V3.MintValue
, TopTxInfoSimplified -> [TxCert]
ttisTxCerts :: [TxCert]
, TopTxInfoSimplified -> Map AccountId Lovelace
ttisWithdrawals :: Map AccountId V2.Lovelace
, TopTxInfoSimplified -> Map AccountId Lovelace
ttisDirectDeposits :: Map AccountId V2.Lovelace
, TopTxInfoSimplified -> POSIXTimeRange
ttisValidRange :: V2.POSIXTimeRange
, TopTxInfoSimplified -> Map Credential ()
ttisGuards :: Map V2.Credential ()
, TopTxInfoSimplified -> Map ScriptPurpose ()
ttisScriptPurposes :: Map ScriptPurpose ()
, TopTxInfoSimplified -> Map DatumHash Datum
ttisData :: Map V2.DatumHash V2.Datum
, TopTxInfoSimplified -> Map Voter (Map GovernanceActionId Vote)
ttisVotes :: Map Voter (Map GovernanceActionId Vote)
, TopTxInfoSimplified -> [ProposalProcedure]
ttisProposalProcedures :: [ProposalProcedure]
, TopTxInfoSimplified -> Maybe Lovelace
ttisCurrentTreasuryAmount :: Haskell.Maybe V2.Lovelace
, TopTxInfoSimplified -> Lovelace
ttisTreasuryDonations :: V2.Lovelace
}
deriving stock ((forall x. TopTxInfoSimplified -> Rep TopTxInfoSimplified x)
-> (forall x. Rep TopTxInfoSimplified x -> TopTxInfoSimplified)
-> Generic TopTxInfoSimplified
forall x. Rep TopTxInfoSimplified x -> TopTxInfoSimplified
forall x. TopTxInfoSimplified -> Rep TopTxInfoSimplified x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. TopTxInfoSimplified -> Rep TopTxInfoSimplified x
from :: forall x. TopTxInfoSimplified -> Rep TopTxInfoSimplified x
$cto :: forall x. Rep TopTxInfoSimplified x -> TopTxInfoSimplified
to :: forall x. Rep TopTxInfoSimplified x -> TopTxInfoSimplified
Generic, Int -> TopTxInfoSimplified -> ShowS
[TopTxInfoSimplified] -> ShowS
TopTxInfoSimplified -> String
(Int -> TopTxInfoSimplified -> ShowS)
-> (TopTxInfoSimplified -> String)
-> ([TopTxInfoSimplified] -> ShowS)
-> Show TopTxInfoSimplified
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TopTxInfoSimplified -> ShowS
showsPrec :: Int -> TopTxInfoSimplified -> ShowS
$cshow :: TopTxInfoSimplified -> String
show :: TopTxInfoSimplified -> String
$cshowList :: [TopTxInfoSimplified] -> ShowS
showList :: [TopTxInfoSimplified] -> ShowS
Haskell.Show, TopTxInfoSimplified -> TopTxInfoSimplified -> Bool
(TopTxInfoSimplified -> TopTxInfoSimplified -> Bool)
-> (TopTxInfoSimplified -> TopTxInfoSimplified -> Bool)
-> Eq TopTxInfoSimplified
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TopTxInfoSimplified -> TopTxInfoSimplified -> Bool
== :: TopTxInfoSimplified -> TopTxInfoSimplified -> Bool
$c/= :: TopTxInfoSimplified -> TopTxInfoSimplified -> Bool
/= :: TopTxInfoSimplified -> TopTxInfoSimplified -> Bool
Haskell.Eq)
deriving anyclass (DefinitionId
DefinitionId -> HasBlueprintDefinition TopTxInfoSimplified
forall t. DefinitionId -> HasBlueprintDefinition t
$cdefinitionId :: DefinitionId
definitionId :: DefinitionId
HasBlueprintDefinition)
deriving ((forall ann. TopTxInfoSimplified -> Doc ann)
-> (forall ann. [TopTxInfoSimplified] -> Doc ann)
-> Pretty TopTxInfoSimplified
forall ann. [TopTxInfoSimplified] -> Doc ann
forall ann. TopTxInfoSimplified -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. TopTxInfoSimplified -> Doc ann
pretty :: forall ann. TopTxInfoSimplified -> Doc ann
$cprettyList :: forall ann. [TopTxInfoSimplified] -> Doc ann
prettyList :: forall ann. [TopTxInfoSimplified] -> Doc ann
Pretty) via (PrettyShow TopTxInfoSimplified)
data TopTxInfo = TopTxInfo
{ TopTxInfo -> [TxInfo]
topTxInfoSubTransactions :: [TxInfo]
, TopTxInfo -> Map Integer Datum
topTxInfoDatums :: Map Haskell.Integer V2.Datum
, TopTxInfo -> AccountBalanceIntervals
topTxInfoStartingBalanceIntervals :: AccountBalanceIntervals
, TopTxInfo -> TopTxInfoSimplified
topTxInfoSimplified :: TopTxInfoSimplified
}
deriving stock ((forall x. TopTxInfo -> Rep TopTxInfo x)
-> (forall x. Rep TopTxInfo x -> TopTxInfo) -> Generic TopTxInfo
forall x. Rep TopTxInfo x -> TopTxInfo
forall x. TopTxInfo -> Rep TopTxInfo x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. TopTxInfo -> Rep TopTxInfo x
from :: forall x. TopTxInfo -> Rep TopTxInfo x
$cto :: forall x. Rep TopTxInfo x -> TopTxInfo
to :: forall x. Rep TopTxInfo x -> TopTxInfo
Generic, Int -> TopTxInfo -> ShowS
[TopTxInfo] -> ShowS
TopTxInfo -> String
(Int -> TopTxInfo -> ShowS)
-> (TopTxInfo -> String)
-> ([TopTxInfo] -> ShowS)
-> Show TopTxInfo
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TopTxInfo -> ShowS
showsPrec :: Int -> TopTxInfo -> ShowS
$cshow :: TopTxInfo -> String
show :: TopTxInfo -> String
$cshowList :: [TopTxInfo] -> ShowS
showList :: [TopTxInfo] -> ShowS
Haskell.Show, TopTxInfo -> TopTxInfo -> Bool
(TopTxInfo -> TopTxInfo -> Bool)
-> (TopTxInfo -> TopTxInfo -> Bool) -> Eq TopTxInfo
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TopTxInfo -> TopTxInfo -> Bool
== :: TopTxInfo -> TopTxInfo -> Bool
$c/= :: TopTxInfo -> TopTxInfo -> Bool
/= :: TopTxInfo -> TopTxInfo -> Bool
Haskell.Eq)
deriving anyclass (DefinitionId
DefinitionId -> HasBlueprintDefinition TopTxInfo
forall t. DefinitionId -> HasBlueprintDefinition t
$cdefinitionId :: DefinitionId
definitionId :: DefinitionId
HasBlueprintDefinition)
deriving ((forall ann. TopTxInfo -> Doc ann)
-> (forall ann. [TopTxInfo] -> Doc ann) -> Pretty TopTxInfo
forall ann. [TopTxInfo] -> Doc ann
forall ann. TopTxInfo -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. TopTxInfo -> Doc ann
pretty :: forall ann. TopTxInfo -> Doc ann
$cprettyList :: forall ann. [TopTxInfo] -> Doc ann
prettyList :: forall ann. [TopTxInfo] -> Doc ann
Pretty) via (PrettyShow TopTxInfo)
data ScriptInfo
= MintingScript V2.CurrencySymbol
| SpendingScript V3.TxOutRef (Haskell.Maybe V2.Datum)
| WithdrawingScript AccountId
| CertifyingScript Haskell.Integer TxCert
| VotingScript Voter
| ProposingScript Haskell.Integer ProposalProcedure
| GuardingScript Haskell.Integer (Haskell.Maybe TopTxInfo)
deriving stock ((forall x. ScriptInfo -> Rep ScriptInfo x)
-> (forall x. Rep ScriptInfo x -> ScriptInfo) -> Generic ScriptInfo
forall x. Rep ScriptInfo x -> ScriptInfo
forall x. ScriptInfo -> Rep ScriptInfo x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. ScriptInfo -> Rep ScriptInfo x
from :: forall x. ScriptInfo -> Rep ScriptInfo x
$cto :: forall x. Rep ScriptInfo x -> ScriptInfo
to :: forall x. Rep ScriptInfo x -> ScriptInfo
Generic, Int -> ScriptInfo -> ShowS
[ScriptInfo] -> ShowS
ScriptInfo -> String
(Int -> ScriptInfo -> ShowS)
-> (ScriptInfo -> String)
-> ([ScriptInfo] -> ShowS)
-> Show ScriptInfo
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ScriptInfo -> ShowS
showsPrec :: Int -> ScriptInfo -> ShowS
$cshow :: ScriptInfo -> String
show :: ScriptInfo -> String
$cshowList :: [ScriptInfo] -> ShowS
showList :: [ScriptInfo] -> ShowS
Haskell.Show, ScriptInfo -> ScriptInfo -> Bool
(ScriptInfo -> ScriptInfo -> Bool)
-> (ScriptInfo -> ScriptInfo -> Bool) -> Eq ScriptInfo
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ScriptInfo -> ScriptInfo -> Bool
== :: ScriptInfo -> ScriptInfo -> Bool
$c/= :: ScriptInfo -> ScriptInfo -> Bool
/= :: ScriptInfo -> ScriptInfo -> Bool
Haskell.Eq)
deriving anyclass (DefinitionId
DefinitionId -> HasBlueprintDefinition ScriptInfo
forall t. DefinitionId -> HasBlueprintDefinition t
$cdefinitionId :: DefinitionId
definitionId :: DefinitionId
HasBlueprintDefinition)
deriving ((forall ann. ScriptInfo -> Doc ann)
-> (forall ann. [ScriptInfo] -> Doc ann) -> Pretty ScriptInfo
forall ann. [ScriptInfo] -> Doc ann
forall ann. ScriptInfo -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. ScriptInfo -> Doc ann
pretty :: forall ann. ScriptInfo -> Doc ann
$cprettyList :: forall ann. [ScriptInfo] -> Doc ann
prettyList :: forall ann. [ScriptInfo] -> Doc ann
Pretty) via (PrettyShow ScriptInfo)
data ScriptContext = ScriptContext
{ ScriptContext -> TxInfo
scriptContextTxInfo :: TxInfo
, ScriptContext -> Redeemer
scriptContextRedeemer :: V2.Redeemer
, ScriptContext -> ScriptInfo
scriptContextScriptInfo :: ScriptInfo
, ScriptContext -> ScriptHash
scriptContextScriptHash :: V2.ScriptHash
}
deriving stock ((forall x. ScriptContext -> Rep ScriptContext x)
-> (forall x. Rep ScriptContext x -> ScriptContext)
-> Generic ScriptContext
forall x. Rep ScriptContext x -> ScriptContext
forall x. ScriptContext -> Rep ScriptContext x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. ScriptContext -> Rep ScriptContext x
from :: forall x. ScriptContext -> Rep ScriptContext x
$cto :: forall x. Rep ScriptContext x -> ScriptContext
to :: forall x. Rep ScriptContext x -> ScriptContext
Generic, ScriptContext -> ScriptContext -> Bool
(ScriptContext -> ScriptContext -> Bool)
-> (ScriptContext -> ScriptContext -> Bool) -> Eq ScriptContext
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ScriptContext -> ScriptContext -> Bool
== :: ScriptContext -> ScriptContext -> Bool
$c/= :: ScriptContext -> ScriptContext -> Bool
/= :: ScriptContext -> ScriptContext -> Bool
Haskell.Eq, Int -> ScriptContext -> ShowS
[ScriptContext] -> ShowS
ScriptContext -> String
(Int -> ScriptContext -> ShowS)
-> (ScriptContext -> String)
-> ([ScriptContext] -> ShowS)
-> Show ScriptContext
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ScriptContext -> ShowS
showsPrec :: Int -> ScriptContext -> ShowS
$cshow :: ScriptContext -> String
show :: ScriptContext -> String
$cshowList :: [ScriptContext] -> ShowS
showList :: [ScriptContext] -> ShowS
Haskell.Show)
deriving anyclass (DefinitionId
DefinitionId -> HasBlueprintDefinition ScriptContext
forall t. DefinitionId -> HasBlueprintDefinition t
$cdefinitionId :: DefinitionId
definitionId :: DefinitionId
HasBlueprintDefinition)
instance Pretty ScriptContext where
pretty :: forall ann. ScriptContext -> Doc ann
pretty ScriptContext {ScriptHash
Redeemer
ScriptInfo
TxInfo
scriptContextTxInfo :: ScriptContext -> TxInfo
scriptContextRedeemer :: ScriptContext -> Redeemer
scriptContextScriptInfo :: ScriptContext -> ScriptInfo
scriptContextScriptHash :: ScriptContext -> ScriptHash
scriptContextTxInfo :: TxInfo
scriptContextRedeemer :: Redeemer
scriptContextScriptInfo :: ScriptInfo
scriptContextScriptHash :: ScriptHash
..} =
[Doc ann] -> Doc ann
forall ann. [Doc ann] -> Doc ann
vsep
[ Doc ann
"ScriptInfo:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> ScriptInfo -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. ScriptInfo -> Doc ann
pretty ScriptInfo
scriptContextScriptInfo
, Doc ann
"ScriptHash:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> ScriptHash -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. ScriptHash -> Doc ann
pretty ScriptHash
scriptContextScriptHash
, Int -> Doc ann -> Doc ann
forall ann. Int -> Doc ann -> Doc ann
nest Int
2 ([Doc ann] -> Doc ann
forall ann. [Doc ann] -> Doc ann
vsep [Doc ann
"TxInfo:", TxInfo -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. TxInfo -> Doc ann
pretty TxInfo
scriptContextTxInfo])
, Int -> Doc ann -> Doc ann
forall ann. Int -> Doc ann -> Doc ann
nest Int
2 ([Doc ann] -> Doc ann
forall ann. [Doc ann] -> Doc ann
vsep [Doc ann
"Redeemer:", Redeemer -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. Redeemer -> Doc ann
pretty Redeemer
scriptContextRedeemer])
]
findOwnInput :: ScriptContext -> Haskell.Maybe TxInInfo
findOwnInput :: ScriptContext -> Maybe TxInInfo
findOwnInput
ScriptContext
{ scriptContextTxInfo :: ScriptContext -> TxInfo
scriptContextTxInfo = TxInfo {[TxInInfo]
txInfoInputs :: TxInfo -> [TxInInfo]
txInfoInputs :: [TxInInfo]
txInfoInputs}
, scriptContextScriptInfo :: ScriptContext -> ScriptInfo
scriptContextScriptInfo = SpendingScript TxOutRef
txOutRef Maybe Datum
_
} =
(TxInInfo -> Bool) -> [TxInInfo] -> Maybe TxInInfo
forall a. (a -> Bool) -> [a] -> Maybe a
List.find
(\TxInInfo {TxOutRef
txInInfoOutRef :: TxInInfo -> TxOutRef
txInInfoOutRef :: TxOutRef
txInInfoOutRef} -> TxOutRef
txInInfoOutRef TxOutRef -> TxOutRef -> Bool
forall a. Eq a => a -> a -> Bool
PlutusTx.== TxOutRef
txOutRef)
[TxInInfo]
txInfoInputs
findOwnInput ScriptContext
_ = Maybe TxInInfo
forall a. Maybe a
Haskell.Nothing
{-# INLINEABLE findOwnInput #-}
findDatum :: V2.DatumHash -> TxInfo -> Haskell.Maybe V2.Datum
findDatum :: DatumHash -> TxInfo -> Maybe Datum
findDatum DatumHash
dsh TxInfo {Map DatumHash Datum
txInfoData :: TxInfo -> Map DatumHash Datum
txInfoData :: Map DatumHash Datum
txInfoData} = DatumHash -> Map DatumHash Datum -> Maybe Datum
forall k v. Eq k => k -> Map k v -> Maybe v
lookup DatumHash
dsh Map DatumHash Datum
txInfoData
{-# INLINEABLE findDatum #-}
findDatumHash :: V2.Datum -> TxInfo -> Haskell.Maybe V2.DatumHash
findDatumHash :: Datum -> TxInfo -> Maybe DatumHash
findDatumHash Datum
ds TxInfo {Map DatumHash Datum
txInfoData :: TxInfo -> Map DatumHash Datum
txInfoData :: Map DatumHash Datum
txInfoData} =
(DatumHash, Datum) -> DatumHash
forall a b. (a, b) -> a
PlutusTx.fst ((DatumHash, Datum) -> DatumHash)
-> Maybe (DatumHash, Datum) -> Maybe DatumHash
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
PlutusTx.<$> ((DatumHash, Datum) -> Bool)
-> [(DatumHash, Datum)] -> Maybe (DatumHash, Datum)
forall a. (a -> Bool) -> [a] -> Maybe a
List.find (\(DatumHash
_, Datum
ds') -> Datum
ds' Datum -> Datum -> Bool
forall a. Eq a => a -> a -> Bool
PlutusTx.== Datum
ds) (Map DatumHash Datum -> [(DatumHash, Datum)]
forall k v. Map k v -> [(k, v)]
toList Map DatumHash Datum
txInfoData)
{-# INLINEABLE findDatumHash #-}
findTxInByTxOutRef :: V3.TxOutRef -> TxInfo -> Haskell.Maybe TxInInfo
findTxInByTxOutRef :: TxOutRef -> TxInfo -> Maybe TxInInfo
findTxInByTxOutRef TxOutRef
outRef TxInfo {[TxInInfo]
txInfoInputs :: TxInfo -> [TxInInfo]
txInfoInputs :: [TxInInfo]
txInfoInputs} =
(TxInInfo -> Bool) -> [TxInInfo] -> Maybe TxInInfo
forall a. (a -> Bool) -> [a] -> Maybe a
List.find
(\TxInInfo {TxOutRef
txInInfoOutRef :: TxInInfo -> TxOutRef
txInInfoOutRef :: TxOutRef
txInInfoOutRef} -> TxOutRef
txInInfoOutRef TxOutRef -> TxOutRef -> Bool
forall a. Eq a => a -> a -> Bool
PlutusTx.== TxOutRef
outRef)
[TxInInfo]
txInfoInputs
{-# INLINEABLE findTxInByTxOutRef #-}
findContinuingOutputs :: ScriptContext -> [Haskell.Integer]
findContinuingOutputs :: ScriptContext -> [Integer]
findContinuingOutputs ScriptContext
ctx
| Haskell.Just TxInInfo {txInInfoResolved :: TxInInfo -> TxOut
txInInfoResolved = TxOut {Address
txOutAddress :: Address
txOutAddress :: TxOut -> Address
txOutAddress}} <- ScriptContext -> Maybe TxInInfo
findOwnInput ScriptContext
ctx =
(TxOut -> Bool) -> [TxOut] -> [Integer]
forall a. (a -> Bool) -> [a] -> [Integer]
List.findIndices
(\TxOut {txOutAddress :: TxOut -> Address
txOutAddress = Address
otherAddress} -> Address
txOutAddress Address -> Address -> Bool
forall a. Eq a => a -> a -> Bool
PlutusTx.== Address
otherAddress)
(TxInfo -> [TxOut]
txInfoOutputs (ScriptContext -> TxInfo
scriptContextTxInfo ScriptContext
ctx))
findContinuingOutputs ScriptContext
_ = BuiltinString -> [Integer]
forall a. BuiltinString -> a
PlutusTx.traceError BuiltinString
"Le"
{-# INLINEABLE findContinuingOutputs #-}
getContinuingOutputs :: ScriptContext -> [TxOut]
getContinuingOutputs :: ScriptContext -> [TxOut]
getContinuingOutputs ScriptContext
ctx
| Haskell.Just TxInInfo {txInInfoResolved :: TxInInfo -> TxOut
txInInfoResolved = TxOut {Address
txOutAddress :: TxOut -> Address
txOutAddress :: Address
txOutAddress}} <- ScriptContext -> Maybe TxInInfo
findOwnInput ScriptContext
ctx =
(TxOut -> Bool) -> [TxOut] -> [TxOut]
forall a. (a -> Bool) -> [a] -> [a]
List.filter
(\TxOut {txOutAddress :: TxOut -> Address
txOutAddress = Address
otherAddress} -> Address
txOutAddress Address -> Address -> Bool
forall a. Eq a => a -> a -> Bool
PlutusTx.== Address
otherAddress)
(TxInfo -> [TxOut]
txInfoOutputs (ScriptContext -> TxInfo
scriptContextTxInfo ScriptContext
ctx))
getContinuingOutputs ScriptContext
_ = BuiltinString -> [TxOut]
forall a. BuiltinString -> a
PlutusTx.traceError BuiltinString
"Lf"
{-# INLINEABLE getContinuingOutputs #-}
txSignedBy :: TxInfo -> V2.PubKeyHash -> Haskell.Bool
txSignedBy :: TxInfo -> PubKeyHash -> Bool
txSignedBy TxInfo {[Credential]
txInfoGuards :: TxInfo -> [Credential]
txInfoGuards :: [Credential]
txInfoGuards} PubKeyHash
keyHash =
(Credential -> Bool) -> [Credential] -> Bool
forall a. (a -> Bool) -> [a] -> Bool
List.any (Credential -> Credential -> Bool
forall a. Eq a => a -> a -> Bool
(PlutusTx.==) (PubKeyHash -> Credential
V2.PubKeyCredential PubKeyHash
keyHash)) [Credential]
txInfoGuards
{-# INLINEABLE txSignedBy #-}
pubKeyOutputsAt :: V2.PubKeyHash -> TxInfo -> [V2.Value]
pubKeyOutputsAt :: PubKeyHash -> TxInfo -> [Value]
pubKeyOutputsAt PubKeyHash
pk TxInfo
txInfo =
let atPubKey :: TxOut -> Maybe Value
atPubKey TxOut {txOutAddress :: TxOut -> Address
txOutAddress = Address (V2.PubKeyCredential PubKeyHash
pk') Maybe AccountId
_, Value
txOutValue :: Value
txOutValue :: TxOut -> Value
txOutValue}
| PubKeyHash
pk PubKeyHash -> PubKeyHash -> Bool
forall a. Eq a => a -> a -> Bool
PlutusTx.== PubKeyHash
pk' = Value -> Maybe Value
forall a. a -> Maybe a
Haskell.Just Value
txOutValue
atPubKey TxOut
_ = Maybe Value
forall a. Maybe a
Haskell.Nothing
in (TxOut -> Maybe Value) -> [TxOut] -> [Value]
forall a b. (a -> Maybe b) -> [a] -> [b]
PlutusTx.mapMaybe TxOut -> Maybe Value
atPubKey (TxInfo -> [TxOut]
txInfoOutputs TxInfo
txInfo)
{-# INLINEABLE pubKeyOutputsAt #-}
valuePaidTo :: TxInfo -> V2.PubKeyHash -> V2.Value
valuePaidTo :: TxInfo -> PubKeyHash -> Value
valuePaidTo TxInfo
txInfo PubKeyHash
keyHash = [Value] -> Value
forall a. Monoid a => [a] -> a
PlutusTx.mconcat (PubKeyHash -> TxInfo -> [Value]
pubKeyOutputsAt PubKeyHash
keyHash TxInfo
txInfo)
{-# INLINEABLE valuePaidTo #-}
valueSpent :: TxInfo -> V2.Value
valueSpent :: TxInfo -> Value
valueSpent = (TxInInfo -> Value) -> [TxInInfo] -> Value
forall (t :: * -> *) m a.
(Foldable t, Monoid m) =>
(a -> m) -> t a -> m
F.foldMap (TxOut -> Value
txOutValue (TxOut -> Value) -> (TxInInfo -> TxOut) -> TxInInfo -> Value
forall b c a. (b -> c) -> (a -> b) -> a -> c
PlutusTx.. TxInInfo -> TxOut
txInInfoResolved) ([TxInInfo] -> Value) -> (TxInfo -> [TxInInfo]) -> TxInfo -> Value
forall b c a. (b -> c) -> (a -> b) -> a -> c
PlutusTx.. TxInfo -> [TxInInfo]
txInfoInputs
{-# INLINEABLE valueSpent #-}
valueProduced :: TxInfo -> V2.Value
valueProduced :: TxInfo -> Value
valueProduced = (TxOut -> Value) -> [TxOut] -> Value
forall (t :: * -> *) m a.
(Foldable t, Monoid m) =>
(a -> m) -> t a -> m
F.foldMap TxOut -> Value
txOutValue ([TxOut] -> Value) -> (TxInfo -> [TxOut]) -> TxInfo -> Value
forall b c a. (b -> c) -> (a -> b) -> a -> c
PlutusTx.. TxInfo -> [TxOut]
txInfoOutputs
{-# INLINEABLE valueProduced #-}
ownCurrencySymbol :: ScriptContext -> V2.CurrencySymbol
ownCurrencySymbol :: ScriptContext -> CurrencySymbol
ownCurrencySymbol ScriptContext {scriptContextScriptInfo :: ScriptContext -> ScriptInfo
scriptContextScriptInfo = MintingScript CurrencySymbol
currencySymbol} = CurrencySymbol
currencySymbol
ownCurrencySymbol ScriptContext
_ = BuiltinString -> CurrencySymbol
forall a. BuiltinString -> a
PlutusTx.traceError BuiltinString
"Lh"
{-# INLINEABLE ownCurrencySymbol #-}
spendsOutput :: TxInfo -> V3.TxId -> Haskell.Integer -> Haskell.Bool
spendsOutput :: TxInfo -> TxId -> Integer -> Bool
spendsOutput TxInfo
txInfo TxId
txId Integer
outputIndex =
(TxInInfo -> Bool) -> [TxInInfo] -> Bool
forall a. (a -> Bool) -> [a] -> Bool
List.any
( \TxInInfo {txInInfoOutRef :: TxInInfo -> TxOutRef
txInInfoOutRef = V3.TxOutRef TxId
refId Integer
refIndex} ->
TxId
txId TxId -> TxId -> Bool
forall a. Eq a => a -> a -> Bool
PlutusTx.== TxId
refId Bool -> Bool -> Bool
PlutusTx.&& Integer
outputIndex Integer -> Integer -> Bool
forall a. Eq a => a -> a -> Bool
PlutusTx.== Integer
refIndex
)
(TxInfo -> [TxInInfo]
txInfoInputs TxInfo
txInfo)
{-# INLINEABLE spendsOutput #-}
$(makeLift ''AccountBalanceIntervals)
$(makeLift ''TxCert)
$( makeIsDataSchemaIndexed
''TxCert
[ ('TxCertRegAccount, 0)
, ('TxCertUnRegAccount, 1)
, ('TxCertDelegAccount, 2)
, ('TxCertRegAccountDeleg, 3)
, ('TxCertRegDRep, 4)
, ('TxCertUpdateDRep, 5)
, ('TxCertUnRegDRep, 6)
, ('TxCertPoolRegister, 7)
, ('TxCertPoolRetire, 8)
, ('TxCertAuthHotCommittee, 9)
, ('TxCertResignColdCommittee, 10)
]
)
$(makeLift ''ScriptPurpose)
$( makeIsDataSchemaIndexed
''ScriptPurpose
[ ('Minting, 0)
, ('Spending, 1)
, ('Withdrawing, 2)
, ('Certifying, 3)
, ('Voting, 4)
, ('Proposing, 5)
, ('Guarding, 6)
]
)
$(makeLift ''TxInInfo)
$(makeIsDataSchemaIndexed ''TxInInfo [('TxInInfo, 0)])
$(makeLift ''TxInfo)
$(makeIsDataSchemaIndexed ''TxInfo [('TxInfo, 0)])
$(makeLift ''TopTxInfoSimplified)
$(makeIsDataSchemaIndexed ''TopTxInfoSimplified [('TopTxInfoSimplified, 0)])
$(makeLift ''TopTxInfo)
$(makeIsDataSchemaIndexed ''TopTxInfo [('TopTxInfo, 0)])
$(makeLift ''ScriptInfo)
$( makeIsDataSchemaIndexed
''ScriptInfo
[ ('MintingScript, 0)
, ('SpendingScript, 1)
, ('WithdrawingScript, 2)
, ('CertifyingScript, 3)
, ('VotingScript, 4)
, ('ProposingScript, 5)
, ('GuardingScript, 6)
]
)
$(makeLift ''ScriptContext)
$(makeIsDataSchemaIndexed ''ScriptContext [('ScriptContext, 0)])