module Cooked.Skeleton
( module X,
TxSkel (..),
txSkelLabelsL,
txSkelOptsL,
txSkelMintsL,
txSkelValidityRangeL,
txSkelProposalsL,
txSkelSignatoriesL,
txSkelInputsL,
txSkelReferenceInputsL,
txSkelOutputsL,
txSkelWithdrawalsL,
txSkelCertificatesL,
txSkelProposingRedeemedScriptsT,
txSkelMintingRedeemedScriptsT,
txSkelCertifyingRedeemedUsersT,
txSkelWithdrawingRedeemedUsersT,
txSkelSpendingRedeemersT,
txSkelRedeemersT,
txSkelRedeemedScriptsT,
txSkelRedeemedPeersT,
txSkelAllocatedPeersT,
txSkelAllocatedScriptsT,
txSkelTemplate,
txSkelKnownTxOutRefs,
txSkelWithdrawnValue,
txSkelPaidValue,
txSkelReferenceInputsInRedeemers,
)
where
import Cooked.Skeleton.Anchor as X
import Cooked.Skeleton.Certificate as X
import Cooked.Skeleton.Datum as X
import Cooked.Skeleton.Label as X
import Cooked.Skeleton.Mint as X
import Cooked.Skeleton.Option as X
import Cooked.Skeleton.Output as X
import Cooked.Skeleton.Proposal as X
import Cooked.Skeleton.Redeemer as X
import Cooked.Skeleton.Signatory as X
import Cooked.Skeleton.User as X
import Cooked.Skeleton.ValidityRange as X
import Cooked.Skeleton.Value as X
import Cooked.Skeleton.Withdrawal as X
import Data.Default
import Data.Map (Map)
import Data.Map qualified as Map
import Data.Set (Set)
import Data.Set qualified as Set
import Data.Typeable
import Ledger.Slot qualified as P.Ledger
import Optics.Core
import Optics.TH
import Plutus.Script.Utils.Value qualified as Script
import PlutusLedgerApi.V3 qualified as Api
data TxSkel where
TxSkel ::
{
TxSkel -> Set TxSkelLabel
txSkelLabels :: Set TxSkelLabel,
TxSkel -> TxSkelOpts
txSkelOpts :: TxSkelOpts,
TxSkel -> TxSkelMints
txSkelMints :: TxSkelMints,
TxSkel -> [TxSkelSignatory]
txSkelSignatories :: [TxSkelSignatory],
TxSkel -> SlotRange
txSkelValidityRange :: P.Ledger.SlotRange,
TxSkel -> Map TxOutRef TxSkelRedeemer
txSkelInputs :: Map Api.TxOutRef TxSkelRedeemer,
TxSkel -> Set TxOutRef
txSkelReferenceInputs :: Set Api.TxOutRef,
TxSkel -> [TxSkelOut]
txSkelOutputs :: [TxSkelOut],
TxSkel -> [TxSkelProposal]
txSkelProposals :: [TxSkelProposal],
TxSkel -> TxSkelWithdrawals
txSkelWithdrawals :: TxSkelWithdrawals,
TxSkel -> [TxSkelCertificate]
txSkelCertificates :: [TxSkelCertificate]
} ->
TxSkel
deriving (Int -> TxSkel -> ShowS
[TxSkel] -> ShowS
TxSkel -> String
(Int -> TxSkel -> ShowS)
-> (TxSkel -> String) -> ([TxSkel] -> ShowS) -> Show TxSkel
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TxSkel -> ShowS
showsPrec :: Int -> TxSkel -> ShowS
$cshow :: TxSkel -> String
show :: TxSkel -> String
$cshowList :: [TxSkel] -> ShowS
showList :: [TxSkel] -> ShowS
Show, TxSkel -> TxSkel -> Bool
(TxSkel -> TxSkel -> Bool)
-> (TxSkel -> TxSkel -> Bool) -> Eq TxSkel
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TxSkel -> TxSkel -> Bool
== :: TxSkel -> TxSkel -> Bool
$c/= :: TxSkel -> TxSkel -> Bool
/= :: TxSkel -> TxSkel -> Bool
Eq)
makeLensesFor [("txSkelLabels", "txSkelLabelsL")] ''TxSkel
makeLensesFor [("txSkelOpts", "txSkelOptsL")] ''TxSkel
makeLensesFor [("txSkelMints", "txSkelMintsL")] ''TxSkel
makeLensesFor [("txSkelValidityRange", "txSkelValidityRangeL")] ''TxSkel
makeLensesFor [("txSkelProposals", "txSkelProposalsL")] ''TxSkel
makeLensesFor [("txSkelSignatories", "txSkelSignatoriesL")] ''TxSkel
makeLensesFor [("txSkelInputs", "txSkelInputsL")] ''TxSkel
makeLensesFor [("txSkelReferenceInputs", "txSkelReferenceInputsL")] ''TxSkel
makeLensesFor [("txSkelOutputs", "txSkelOutputsL")] ''TxSkel
makeLensesFor [("txSkelWithdrawals", "txSkelWithdrawalsL")] ''TxSkel
makeLensesFor [("txSkelCertificates", "txSkelCertificatesL")] ''TxSkel
txSkelProposingRedeemedScriptsT :: Traversal' TxSkel (User IsScript Redemption)
txSkelProposingRedeemedScriptsT :: Traversal' TxSkel (User 'IsScript 'Redemption)
txSkelProposingRedeemedScriptsT =
Lens' TxSkel [TxSkelProposal]
txSkelProposalsL
Lens' TxSkel [TxSkelProposal]
-> Optic
A_Traversal
'[]
[TxSkelProposal]
[TxSkelProposal]
TxSkelProposal
TxSkelProposal
-> Optic
A_Traversal '[] TxSkel TxSkel TxSkelProposal TxSkelProposal
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
A_Traversal
'[]
[TxSkelProposal]
[TxSkelProposal]
TxSkelProposal
TxSkelProposal
forall (t :: * -> *) a b.
Traversable t =>
Traversal (t a) (t b) a b
traversed
Optic A_Traversal '[] TxSkel TxSkel TxSkelProposal TxSkelProposal
-> Optic
An_AffineTraversal
'[]
TxSkelProposal
TxSkelProposal
(Maybe (User 'IsScript 'Redemption))
(Maybe (User 'IsScript 'Redemption))
-> Optic
A_Traversal
'[]
TxSkel
TxSkel
(Maybe (User 'IsScript 'Redemption))
(Maybe (User 'IsScript 'Redemption))
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
An_AffineTraversal
'[]
TxSkelProposal
TxSkelProposal
(Maybe (User 'IsScript 'Redemption))
(Maybe (User 'IsScript 'Redemption))
forall (kind :: UserKind).
Typeable kind =>
AffineTraversal' TxSkelProposal (Maybe (User kind 'Redemption))
txSkelProposalMConstitutionAT
Optic
A_Traversal
'[]
TxSkel
TxSkel
(Maybe (User 'IsScript 'Redemption))
(Maybe (User 'IsScript 'Redemption))
-> Optic
A_Prism
'[]
(Maybe (User 'IsScript 'Redemption))
(Maybe (User 'IsScript 'Redemption))
(User 'IsScript 'Redemption)
(User 'IsScript 'Redemption)
-> Traversal' TxSkel (User 'IsScript 'Redemption)
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
A_Prism
'[]
(Maybe (User 'IsScript 'Redemption))
(Maybe (User 'IsScript 'Redemption))
(User 'IsScript 'Redemption)
(User 'IsScript 'Redemption)
forall a b. Prism (Maybe a) (Maybe b) a b
_Just
txSkelMintingRedeemedScriptsT :: Traversal' TxSkel (User IsScript Redemption)
txSkelMintingRedeemedScriptsT :: Traversal' TxSkel (User 'IsScript 'Redemption)
txSkelMintingRedeemedScriptsT =
Lens' TxSkel TxSkelMints
txSkelMintsL
Lens' TxSkel TxSkelMints
-> Optic An_Iso '[] TxSkelMints TxSkelMints [Mint] [Mint]
-> Optic A_Lens '[] TxSkel TxSkel [Mint] [Mint]
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic An_Iso '[] TxSkelMints TxSkelMints [Mint] [Mint]
txSkelMintsListI
Optic A_Lens '[] TxSkel TxSkel [Mint] [Mint]
-> Optic A_Traversal '[] [Mint] [Mint] Mint Mint
-> Optic A_Traversal '[] TxSkel TxSkel Mint Mint
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Traversal '[] [Mint] [Mint] Mint Mint
forall (t :: * -> *) a b.
Traversable t =>
Traversal (t a) (t b) a b
traversed
Optic A_Traversal '[] TxSkel TxSkel Mint Mint
-> Optic
A_Lens
'[]
Mint
Mint
(User 'IsScript 'Redemption)
(User 'IsScript 'Redemption)
-> Traversal' TxSkel (User 'IsScript 'Redemption)
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
A_Lens
'[]
Mint
Mint
(User 'IsScript 'Redemption)
(User 'IsScript 'Redemption)
mintRedeemedScriptL
txSkelCertifyingRedeemedUsersT ::
forall user.
(Typeable user) =>
Traversal' TxSkel (User user Redemption)
txSkelCertifyingRedeemedUsersT :: forall (user :: UserKind).
Typeable user =>
Traversal' TxSkel (User user 'Redemption)
txSkelCertifyingRedeemedUsersT =
Lens' TxSkel [TxSkelCertificate]
txSkelCertificatesL
Lens' TxSkel [TxSkelCertificate]
-> Optic
A_Traversal
'[]
[TxSkelCertificate]
[TxSkelCertificate]
TxSkelCertificate
TxSkelCertificate
-> Optic
A_Traversal '[] TxSkel TxSkel TxSkelCertificate TxSkelCertificate
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
A_Traversal
'[]
[TxSkelCertificate]
[TxSkelCertificate]
TxSkelCertificate
TxSkelCertificate
forall (t :: * -> *) a b.
Traversable t =>
Traversal (t a) (t b) a b
traversed
Optic
A_Traversal '[] TxSkel TxSkel TxSkelCertificate TxSkelCertificate
-> Optic
An_AffineTraversal
'[]
TxSkelCertificate
TxSkelCertificate
(User user 'Redemption)
(User user 'Redemption)
-> Optic
A_Traversal
'[]
TxSkel
TxSkel
(User user 'Redemption)
(User user 'Redemption)
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% forall (user :: UserKind).
Typeable user =>
AffineTraversal' TxSkelCertificate (User user 'Redemption)
txSkelCertificateOwnerAT @user
txSkelWithdrawingRedeemedUsersT :: Traversal' TxSkel (User IsEither Redemption)
txSkelWithdrawingRedeemedUsersT :: Traversal' TxSkel (User 'IsEither 'Redemption)
txSkelWithdrawingRedeemedUsersT =
Lens' TxSkel TxSkelWithdrawals
txSkelWithdrawalsL
Lens' TxSkel TxSkelWithdrawals
-> Optic
An_Iso
'[]
TxSkelWithdrawals
TxSkelWithdrawals
[Withdrawal]
[Withdrawal]
-> Optic A_Lens '[] TxSkel TxSkel [Withdrawal] [Withdrawal]
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
An_Iso
'[]
TxSkelWithdrawals
TxSkelWithdrawals
[Withdrawal]
[Withdrawal]
txSkelWithdrawalsListI
Optic A_Lens '[] TxSkel TxSkel [Withdrawal] [Withdrawal]
-> Optic
A_Traversal '[] [Withdrawal] [Withdrawal] Withdrawal Withdrawal
-> Optic A_Traversal '[] TxSkel TxSkel Withdrawal Withdrawal
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
A_Traversal '[] [Withdrawal] [Withdrawal] Withdrawal Withdrawal
forall (t :: * -> *) a b.
Traversable t =>
Traversal (t a) (t b) a b
traversed
Optic A_Traversal '[] TxSkel TxSkel Withdrawal Withdrawal
-> Optic
A_Lens
'[]
Withdrawal
Withdrawal
(User 'IsEither 'Redemption)
(User 'IsEither 'Redemption)
-> Traversal' TxSkel (User 'IsEither 'Redemption)
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
A_Lens
'[]
Withdrawal
Withdrawal
(User 'IsEither 'Redemption)
(User 'IsEither 'Redemption)
withdrawalUserL
txSkelRedeemedScriptsT :: Traversal' TxSkel (User IsScript Redemption)
txSkelRedeemedScriptsT :: Traversal' TxSkel (User 'IsScript 'Redemption)
txSkelRedeemedScriptsT =
Traversal' TxSkel (User 'IsScript 'Redemption)
txSkelMintingRedeemedScriptsT
Traversal' TxSkel (User 'IsScript 'Redemption)
-> Traversal' TxSkel (User 'IsScript 'Redemption)
-> Traversal' TxSkel (User 'IsScript 'Redemption)
forall k l (is :: IxList) s a (js :: IxList).
(Is k A_Traversal, Is l A_Traversal) =>
Optic' k is s a -> Optic' l js s a -> Traversal' s a
`adjoin` Traversal' TxSkel (User 'IsScript 'Redemption)
txSkelProposingRedeemedScriptsT
Traversal' TxSkel (User 'IsScript 'Redemption)
-> Traversal' TxSkel (User 'IsScript 'Redemption)
-> Traversal' TxSkel (User 'IsScript 'Redemption)
forall k l (is :: IxList) s a (js :: IxList).
(Is k A_Traversal, Is l A_Traversal) =>
Optic' k is s a -> Optic' l js s a -> Traversal' s a
`adjoin` (Traversal' TxSkel (User 'IsEither 'Redemption)
txSkelWithdrawingRedeemedUsersT Traversal' TxSkel (User 'IsEither 'Redemption)
-> Optic
A_Prism
'[]
(User 'IsEither 'Redemption)
(User 'IsEither 'Redemption)
(User 'IsScript 'Redemption)
(User 'IsScript 'Redemption)
-> Traversal' TxSkel (User 'IsScript 'Redemption)
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
A_Prism
'[]
(User 'IsEither 'Redemption)
(User 'IsEither 'Redemption)
(User 'IsScript 'Redemption)
(User 'IsScript 'Redemption)
forall (mode :: UserMode).
Prism' (User 'IsEither mode) (User 'IsScript mode)
userEitherScriptP)
Traversal' TxSkel (User 'IsScript 'Redemption)
-> Traversal' TxSkel (User 'IsScript 'Redemption)
-> Traversal' TxSkel (User 'IsScript 'Redemption)
forall k l (is :: IxList) s a (js :: IxList).
(Is k A_Traversal, Is l A_Traversal) =>
Optic' k is s a -> Optic' l js s a -> Traversal' s a
`adjoin` (Traversal' TxSkel (User 'IsEither 'Redemption)
forall (user :: UserKind).
Typeable user =>
Traversal' TxSkel (User user 'Redemption)
txSkelCertifyingRedeemedUsersT Traversal' TxSkel (User 'IsEither 'Redemption)
-> Optic
A_Prism
'[]
(User 'IsEither 'Redemption)
(User 'IsEither 'Redemption)
(User 'IsScript 'Redemption)
(User 'IsScript 'Redemption)
-> Traversal' TxSkel (User 'IsScript 'Redemption)
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
A_Prism
'[]
(User 'IsEither 'Redemption)
(User 'IsEither 'Redemption)
(User 'IsScript 'Redemption)
(User 'IsScript 'Redemption)
forall (mode :: UserMode).
Prism' (User 'IsEither mode) (User 'IsScript mode)
userEitherScriptP)
txSkelRedeemedPeersT :: Traversal' TxSkel (User IsPubKey Redemption)
txSkelRedeemedPeersT :: Traversal' TxSkel (User 'IsPubKey 'Redemption)
txSkelRedeemedPeersT =
(Traversal' TxSkel (User 'IsEither 'Redemption)
txSkelWithdrawingRedeemedUsersT Traversal' TxSkel (User 'IsEither 'Redemption)
-> Optic
A_Prism
'[]
(User 'IsEither 'Redemption)
(User 'IsEither 'Redemption)
(User 'IsPubKey 'Redemption)
(User 'IsPubKey 'Redemption)
-> Traversal' TxSkel (User 'IsPubKey 'Redemption)
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
A_Prism
'[]
(User 'IsEither 'Redemption)
(User 'IsEither 'Redemption)
(User 'IsPubKey 'Redemption)
(User 'IsPubKey 'Redemption)
forall (mode :: UserMode).
Prism' (User 'IsEither mode) (User 'IsPubKey mode)
userEitherPubKeyP)
Traversal' TxSkel (User 'IsPubKey 'Redemption)
-> Traversal' TxSkel (User 'IsPubKey 'Redemption)
-> Traversal' TxSkel (User 'IsPubKey 'Redemption)
forall k l (is :: IxList) s a (js :: IxList).
(Is k A_Traversal, Is l A_Traversal) =>
Optic' k is s a -> Optic' l js s a -> Traversal' s a
`adjoin` (Traversal' TxSkel (User 'IsEither 'Redemption)
forall (user :: UserKind).
Typeable user =>
Traversal' TxSkel (User user 'Redemption)
txSkelCertifyingRedeemedUsersT Traversal' TxSkel (User 'IsEither 'Redemption)
-> Optic
A_Prism
'[]
(User 'IsEither 'Redemption)
(User 'IsEither 'Redemption)
(User 'IsPubKey 'Redemption)
(User 'IsPubKey 'Redemption)
-> Traversal' TxSkel (User 'IsPubKey 'Redemption)
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
A_Prism
'[]
(User 'IsEither 'Redemption)
(User 'IsEither 'Redemption)
(User 'IsPubKey 'Redemption)
(User 'IsPubKey 'Redemption)
forall (mode :: UserMode).
Prism' (User 'IsEither mode) (User 'IsPubKey mode)
userEitherPubKeyP)
Traversal' TxSkel (User 'IsPubKey 'Redemption)
-> Traversal' TxSkel (User 'IsPubKey 'Redemption)
-> Traversal' TxSkel (User 'IsPubKey 'Redemption)
forall k l (is :: IxList) s a (js :: IxList).
(Is k A_Traversal, Is l A_Traversal) =>
Optic' k is s a -> Optic' l js s a -> Traversal' s a
`adjoin` Traversal' TxSkel (User 'IsPubKey 'Redemption)
forall (user :: UserKind).
Typeable user =>
Traversal' TxSkel (User user 'Redemption)
txSkelCertifyingRedeemedUsersT
txSkelAllocatedPeersT :: Traversal' TxSkel (User IsPubKey Allocation)
txSkelAllocatedPeersT :: Traversal' TxSkel (User 'IsPubKey 'Allocation)
txSkelAllocatedPeersT =
(Lens' TxSkel [TxSkelOut]
txSkelOutputsL Lens' TxSkel [TxSkelOut]
-> Optic
A_Traversal '[] [TxSkelOut] [TxSkelOut] TxSkelOut TxSkelOut
-> Optic A_Traversal '[] TxSkel TxSkel TxSkelOut TxSkelOut
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Traversal '[] [TxSkelOut] [TxSkelOut] TxSkelOut TxSkelOut
forall (t :: * -> *) a b.
Traversable t =>
Traversal (t a) (t b) a b
traversed Optic A_Traversal '[] TxSkel TxSkel TxSkelOut TxSkelOut
-> Optic
A_Lens
'[]
TxSkelOut
TxSkelOut
(User 'IsEither 'Allocation)
(User 'IsEither 'Allocation)
-> Optic
A_Traversal
'[]
TxSkel
TxSkel
(User 'IsEither 'Allocation)
(User 'IsEither 'Allocation)
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
A_Lens
'[]
TxSkelOut
TxSkelOut
(User 'IsEither 'Allocation)
(User 'IsEither 'Allocation)
txSkelOutOwnerL Optic
A_Traversal
'[]
TxSkel
TxSkel
(User 'IsEither 'Allocation)
(User 'IsEither 'Allocation)
-> Optic
A_Prism
'[]
(User 'IsEither 'Allocation)
(User 'IsEither 'Allocation)
(User 'IsPubKey 'Allocation)
(User 'IsPubKey 'Allocation)
-> Traversal' TxSkel (User 'IsPubKey 'Allocation)
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
A_Prism
'[]
(User 'IsEither 'Allocation)
(User 'IsEither 'Allocation)
(User 'IsPubKey 'Allocation)
(User 'IsPubKey 'Allocation)
forall (mode :: UserMode).
Prism' (User 'IsEither mode) (User 'IsPubKey mode)
userEitherPubKeyP)
Traversal' TxSkel (User 'IsPubKey 'Allocation)
-> Traversal' TxSkel (User 'IsPubKey 'Allocation)
-> Traversal' TxSkel (User 'IsPubKey 'Allocation)
forall k l (is :: IxList) s a (js :: IxList).
(Is k A_Traversal, Is l A_Traversal) =>
Optic' k is s a -> Optic' l js s a -> Traversal' s a
`adjoin` (Lens' TxSkel [TxSkelSignatory]
txSkelSignatoriesL Lens' TxSkel [TxSkelSignatory]
-> Optic
A_Traversal
'[]
[TxSkelSignatory]
[TxSkelSignatory]
TxSkelSignatory
TxSkelSignatory
-> Optic
A_Traversal '[] TxSkel TxSkel TxSkelSignatory TxSkelSignatory
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
A_Traversal
'[]
[TxSkelSignatory]
[TxSkelSignatory]
TxSkelSignatory
TxSkelSignatory
forall (t :: * -> *) a b.
Traversable t =>
Traversal (t a) (t b) a b
traversed Optic A_Traversal '[] TxSkel TxSkel TxSkelSignatory TxSkelSignatory
-> Optic
A_Lens '[] TxSkelSignatory TxSkelSignatory PubKeyHash PubKeyHash
-> Optic A_Traversal '[] TxSkel TxSkel PubKeyHash PubKeyHash
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
A_Lens '[] TxSkelSignatory TxSkelSignatory PubKeyHash PubKeyHash
txSkelSignatoryPubKeyHashL Optic A_Traversal '[] TxSkel TxSkel PubKeyHash PubKeyHash
-> Optic
An_Iso
'[]
PubKeyHash
PubKeyHash
(User 'IsPubKey 'Allocation)
(User 'IsPubKey 'Allocation)
-> Traversal' TxSkel (User 'IsPubKey 'Allocation)
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
An_Iso
'[]
(User 'IsPubKey 'Allocation)
(User 'IsPubKey 'Allocation)
PubKeyHash
PubKeyHash
-> Optic
(ReversedOptic An_Iso)
'[]
PubKeyHash
PubKeyHash
(User 'IsPubKey 'Allocation)
(User 'IsPubKey 'Allocation)
forall (is :: IxList) s t a b.
AcceptsEmptyIndices "re" is =>
Optic An_Iso is s t a b -> Optic (ReversedOptic An_Iso) is b a t s
forall k (is :: IxList) s t a b.
(ReversibleOptic k, AcceptsEmptyIndices "re" is) =>
Optic k is s t a b -> Optic (ReversedOptic k) is b a t s
re Optic
An_Iso
'[]
(User 'IsPubKey 'Allocation)
(User 'IsPubKey 'Allocation)
PubKeyHash
PubKeyHash
forall (mode :: UserMode). Iso' (User 'IsPubKey mode) PubKeyHash
userPubKeyHashI)
txSkelAllocatedScriptsT :: Traversal' TxSkel (User IsScript Allocation)
txSkelAllocatedScriptsT :: Traversal' TxSkel (User 'IsScript 'Allocation)
txSkelAllocatedScriptsT = Lens' TxSkel [TxSkelOut]
txSkelOutputsL Lens' TxSkel [TxSkelOut]
-> Optic
A_Traversal '[] [TxSkelOut] [TxSkelOut] TxSkelOut TxSkelOut
-> Optic A_Traversal '[] TxSkel TxSkel TxSkelOut TxSkelOut
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Traversal '[] [TxSkelOut] [TxSkelOut] TxSkelOut TxSkelOut
forall (t :: * -> *) a b.
Traversable t =>
Traversal (t a) (t b) a b
traversed Optic A_Traversal '[] TxSkel TxSkel TxSkelOut TxSkelOut
-> Optic
A_Lens
'[]
TxSkelOut
TxSkelOut
(User 'IsEither 'Allocation)
(User 'IsEither 'Allocation)
-> Optic
A_Traversal
'[]
TxSkel
TxSkel
(User 'IsEither 'Allocation)
(User 'IsEither 'Allocation)
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
A_Lens
'[]
TxSkelOut
TxSkelOut
(User 'IsEither 'Allocation)
(User 'IsEither 'Allocation)
txSkelOutOwnerL Optic
A_Traversal
'[]
TxSkel
TxSkel
(User 'IsEither 'Allocation)
(User 'IsEither 'Allocation)
-> Optic
A_Prism
'[]
(User 'IsEither 'Allocation)
(User 'IsEither 'Allocation)
(User 'IsScript 'Allocation)
(User 'IsScript 'Allocation)
-> Traversal' TxSkel (User 'IsScript 'Allocation)
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
A_Prism
'[]
(User 'IsEither 'Allocation)
(User 'IsEither 'Allocation)
(User 'IsScript 'Allocation)
(User 'IsScript 'Allocation)
forall (mode :: UserMode).
Prism' (User 'IsEither mode) (User 'IsScript mode)
userEitherScriptP
txSkelSpendingRedeemersT :: Traversal' TxSkel TxSkelRedeemer
txSkelSpendingRedeemersT :: Traversal' TxSkel TxSkelRedeemer
txSkelSpendingRedeemersT =
Lens' TxSkel (Map TxOutRef TxSkelRedeemer)
txSkelInputsL
Lens' TxSkel (Map TxOutRef TxSkelRedeemer)
-> Optic
An_Iso
'[]
(Map TxOutRef TxSkelRedeemer)
(Map TxOutRef TxSkelRedeemer)
[(TxOutRef, TxSkelRedeemer)]
[(TxOutRef, TxSkelRedeemer)]
-> Optic
A_Lens
'[]
TxSkel
TxSkel
[(TxOutRef, TxSkelRedeemer)]
[(TxOutRef, TxSkelRedeemer)]
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% (Map TxOutRef TxSkelRedeemer -> [(TxOutRef, TxSkelRedeemer)])
-> ([(TxOutRef, TxSkelRedeemer)] -> Map TxOutRef TxSkelRedeemer)
-> Optic
An_Iso
'[]
(Map TxOutRef TxSkelRedeemer)
(Map TxOutRef TxSkelRedeemer)
[(TxOutRef, TxSkelRedeemer)]
[(TxOutRef, TxSkelRedeemer)]
forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b
iso Map TxOutRef TxSkelRedeemer -> [(TxOutRef, TxSkelRedeemer)]
forall k a. Map k a -> [(k, a)]
Map.toList [(TxOutRef, TxSkelRedeemer)] -> Map TxOutRef TxSkelRedeemer
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList
Optic
A_Lens
'[]
TxSkel
TxSkel
[(TxOutRef, TxSkelRedeemer)]
[(TxOutRef, TxSkelRedeemer)]
-> Optic
A_Traversal
'[]
[(TxOutRef, TxSkelRedeemer)]
[(TxOutRef, TxSkelRedeemer)]
(TxOutRef, TxSkelRedeemer)
(TxOutRef, TxSkelRedeemer)
-> Optic
A_Traversal
'[]
TxSkel
TxSkel
(TxOutRef, TxSkelRedeemer)
(TxOutRef, TxSkelRedeemer)
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
A_Traversal
'[]
[(TxOutRef, TxSkelRedeemer)]
[(TxOutRef, TxSkelRedeemer)]
(TxOutRef, TxSkelRedeemer)
(TxOutRef, TxSkelRedeemer)
forall (t :: * -> *) a b.
Traversable t =>
Traversal (t a) (t b) a b
traversed
Optic
A_Traversal
'[]
TxSkel
TxSkel
(TxOutRef, TxSkelRedeemer)
(TxOutRef, TxSkelRedeemer)
-> Optic
A_Lens
'[]
(TxOutRef, TxSkelRedeemer)
(TxOutRef, TxSkelRedeemer)
TxSkelRedeemer
TxSkelRedeemer
-> Traversal' TxSkel TxSkelRedeemer
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
A_Lens
'[]
(TxOutRef, TxSkelRedeemer)
(TxOutRef, TxSkelRedeemer)
TxSkelRedeemer
TxSkelRedeemer
forall s t a b. Field2 s t a b => Lens s t a b
_2
txSkelRedeemersT :: Traversal' TxSkel TxSkelRedeemer
txSkelRedeemersT :: Traversal' TxSkel TxSkelRedeemer
txSkelRedeemersT =
Traversal' TxSkel TxSkelRedeemer
txSkelSpendingRedeemersT
Traversal' TxSkel TxSkelRedeemer
-> Traversal' TxSkel TxSkelRedeemer
-> Traversal' TxSkel TxSkelRedeemer
forall k l (is :: IxList) s a (js :: IxList).
(Is k A_Traversal, Is l A_Traversal) =>
Optic' k is s a -> Optic' l js s a -> Traversal' s a
`adjoin` (Traversal' TxSkel (User 'IsScript 'Redemption)
txSkelRedeemedScriptsT Traversal' TxSkel (User 'IsScript 'Redemption)
-> Optic
A_Lens
'[]
(User 'IsScript 'Redemption)
(User 'IsScript 'Redemption)
TxSkelRedeemer
TxSkelRedeemer
-> Traversal' TxSkel TxSkelRedeemer
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
A_Lens
'[]
(User 'IsScript 'Redemption)
(User 'IsScript 'Redemption)
TxSkelRedeemer
TxSkelRedeemer
userRedeemerL)
txSkelTemplate :: TxSkel
txSkelTemplate :: TxSkel
txSkelTemplate =
TxSkel
{ txSkelLabels :: Set TxSkelLabel
txSkelLabels = Set TxSkelLabel
forall a. Monoid a => a
mempty,
txSkelOpts :: TxSkelOpts
txSkelOpts = TxSkelOpts
forall a. Default a => a
def,
txSkelMints :: TxSkelMints
txSkelMints = TxSkelMints
forall a. Monoid a => a
mempty,
txSkelValidityRange :: SlotRange
txSkelValidityRange = SlotRange
forall a. Interval a
Api.always,
txSkelSignatories :: [TxSkelSignatory]
txSkelSignatories = [TxSkelSignatory]
forall a. Monoid a => a
mempty,
txSkelInputs :: Map TxOutRef TxSkelRedeemer
txSkelInputs = Map TxOutRef TxSkelRedeemer
forall a. Monoid a => a
mempty,
txSkelReferenceInputs :: Set TxOutRef
txSkelReferenceInputs = Set TxOutRef
forall a. Monoid a => a
mempty,
txSkelOutputs :: [TxSkelOut]
txSkelOutputs = [TxSkelOut]
forall a. Monoid a => a
mempty,
txSkelProposals :: [TxSkelProposal]
txSkelProposals = [TxSkelProposal]
forall a. Monoid a => a
mempty,
txSkelWithdrawals :: TxSkelWithdrawals
txSkelWithdrawals = TxSkelWithdrawals
forall a. Monoid a => a
mempty,
txSkelCertificates :: [TxSkelCertificate]
txSkelCertificates = [TxSkelCertificate]
forall a. Monoid a => a
mempty
}
txSkelReferenceInputsInRedeemers :: TxSkel -> Set Api.TxOutRef
txSkelReferenceInputsInRedeemers :: TxSkel -> Set TxOutRef
txSkelReferenceInputsInRedeemers =
[TxOutRef] -> Set TxOutRef
forall a. Ord a => [a] -> Set a
Set.fromList ([TxOutRef] -> Set TxOutRef)
-> (TxSkel -> [TxOutRef]) -> TxSkel -> Set TxOutRef
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Optic' A_Traversal '[] TxSkel TxOutRef -> TxSkel -> [TxOutRef]
forall k (is :: IxList) s a.
Is k A_Fold =>
Optic' k is s a -> s -> [a]
toListOf (Traversal' TxSkel TxSkelRedeemer
txSkelRedeemersT Traversal' TxSkel TxSkelRedeemer
-> Optic
An_AffineTraversal
'[]
TxSkelRedeemer
TxSkelRedeemer
TxOutRef
TxOutRef
-> Optic' A_Traversal '[] TxSkel TxOutRef
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
An_AffineTraversal
'[]
TxSkelRedeemer
TxSkelRedeemer
TxOutRef
TxOutRef
txSkelRedeemerReferenceInputAT)
txSkelKnownTxOutRefs :: TxSkel -> Set Api.TxOutRef
txSkelKnownTxOutRefs :: TxSkel -> Set TxOutRef
txSkelKnownTxOutRefs skel :: TxSkel
skel@TxSkel {[TxSkelSignatory]
[TxSkelProposal]
[TxSkelCertificate]
[TxSkelOut]
Set TxOutRef
Set TxSkelLabel
Map TxOutRef TxSkelRedeemer
SlotRange
TxSkelOpts
TxSkelWithdrawals
TxSkelMints
txSkelLabels :: TxSkel -> Set TxSkelLabel
txSkelOpts :: TxSkel -> TxSkelOpts
txSkelMints :: TxSkel -> TxSkelMints
txSkelSignatories :: TxSkel -> [TxSkelSignatory]
txSkelValidityRange :: TxSkel -> SlotRange
txSkelInputs :: TxSkel -> Map TxOutRef TxSkelRedeemer
txSkelReferenceInputs :: TxSkel -> Set TxOutRef
txSkelOutputs :: TxSkel -> [TxSkelOut]
txSkelProposals :: TxSkel -> [TxSkelProposal]
txSkelWithdrawals :: TxSkel -> TxSkelWithdrawals
txSkelCertificates :: TxSkel -> [TxSkelCertificate]
txSkelLabels :: Set TxSkelLabel
txSkelOpts :: TxSkelOpts
txSkelMints :: TxSkelMints
txSkelSignatories :: [TxSkelSignatory]
txSkelValidityRange :: SlotRange
txSkelInputs :: Map TxOutRef TxSkelRedeemer
txSkelReferenceInputs :: Set TxOutRef
txSkelOutputs :: [TxSkelOut]
txSkelProposals :: [TxSkelProposal]
txSkelWithdrawals :: TxSkelWithdrawals
txSkelCertificates :: [TxSkelCertificate]
..} =
TxSkel -> Set TxOutRef
txSkelReferenceInputsInRedeemers TxSkel
skel
Set TxOutRef -> Set TxOutRef -> Set TxOutRef
forall a. Semigroup a => a -> a -> a
<> Map TxOutRef TxSkelRedeemer -> Set TxOutRef
forall k a. Map k a -> Set k
Map.keysSet Map TxOutRef TxSkelRedeemer
txSkelInputs
Set TxOutRef -> Set TxOutRef -> Set TxOutRef
forall a. Semigroup a => a -> a -> a
<> Set TxOutRef
txSkelReferenceInputs
txSkelWithdrawnValue :: TxSkel -> Api.Value
txSkelWithdrawnValue :: TxSkel -> Value
txSkelWithdrawnValue = TxSkelWithdrawals -> Value
forall a. ToValue a => a -> Value
Script.toValue (TxSkelWithdrawals -> Value)
-> (TxSkel -> TxSkelWithdrawals) -> TxSkel -> Value
forall b c a. (b -> c) -> (a -> b) -> a -> c
. TxSkel -> TxSkelWithdrawals
txSkelWithdrawals
txSkelPaidValue :: TxSkel -> Api.Value
txSkelPaidValue :: TxSkel -> Value
txSkelPaidValue =
Optic' A_Fold '[] TxSkel Value -> TxSkel -> Value
forall k a (is :: IxList) s.
(Is k A_Fold, Monoid a) =>
Optic' k is s a -> s -> a
foldOf (Optic' A_Fold '[] TxSkel Value -> TxSkel -> Value)
-> Optic' A_Fold '[] TxSkel Value -> TxSkel -> Value
forall a b. (a -> b) -> a -> b
$
Lens' TxSkel [TxSkelOut]
txSkelOutputsL
Lens' TxSkel [TxSkelOut]
-> Optic A_Fold '[] [TxSkelOut] [TxSkelOut] TxSkelOut TxSkelOut
-> Optic A_Fold '[] TxSkel TxSkel TxSkelOut TxSkelOut
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Fold '[] [TxSkelOut] [TxSkelOut] TxSkelOut TxSkelOut
forall (f :: * -> *) a. Foldable f => Fold (f a) a
folded
Optic A_Fold '[] TxSkel TxSkel TxSkelOut TxSkelOut
-> Optic A_Lens '[] TxSkelOut TxSkelOut Value Value
-> Optic' A_Fold '[] TxSkel Value
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Lens '[] TxSkelOut TxSkelOut Value Value
txSkelOutValueL