module Cooked.Skeleton
( module X,
TxSkel (..),
txSkelLabelL,
txSkelOptsL,
txSkelMintsL,
txSkelValidityRangeL,
txSkelProposalsL,
txSkelSignersL,
txSkelInsL,
txSkelInsReferenceL,
txSkelOutsL,
txSkelWithdrawalsL,
txSkelTemplate,
txSkelKnownTxOutRefs,
txSkelWithdrawnValue,
txSkelWithdrawingScripts,
txSkelValueInOutputs,
txSkelInsReferenceInRedeemers,
txSkelProposingScripts,
txSkelMintingScripts,
)
where
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.Payable as X
import Cooked.Skeleton.Proposal as X
import Cooked.Skeleton.Redeemer as X
import Cooked.Skeleton.ReferenceScript as X
import Cooked.Skeleton.Withdrawal as X
import Cooked.Wallet
import Data.Default
import Data.Map (Map)
import Data.Map qualified as Map
import Data.Maybe
import Data.Set (Set)
import Data.Set qualified as Set
import Ledger.Slot qualified as Ledger
import Optics.Core
import Optics.TH
import Plutus.Script.Utils.Scripts qualified as Script
import PlutusLedgerApi.V3 qualified as Api
data TxSkel where
TxSkel ::
{
TxSkel -> Set TxSkelLabel
txSkelLabel :: Set TxSkelLabel,
TxSkel -> TxSkelOpts
txSkelOpts :: TxSkelOpts,
TxSkel -> TxSkelMints
txSkelMints :: TxSkelMints,
TxSkel -> [Wallet]
txSkelSigners :: [Wallet],
TxSkel -> SlotRange
txSkelValidityRange :: Ledger.SlotRange,
TxSkel -> Map TxOutRef TxSkelRedeemer
txSkelIns :: Map Api.TxOutRef TxSkelRedeemer,
TxSkel -> Set TxOutRef
txSkelInsReference :: Set Api.TxOutRef,
TxSkel -> [TxSkelOut]
txSkelOuts :: [TxSkelOut],
TxSkel -> [TxSkelProposal]
txSkelProposals :: [TxSkelProposal],
TxSkel -> TxSkelWithdrawals
txSkelWithdrawals :: TxSkelWithdrawals
} ->
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 [("txSkelLabel", "txSkelLabelL")] ''TxSkel
makeLensesFor [("txSkelOpts", "txSkelOptsL")] ''TxSkel
makeLensesFor [("txSkelMints", "txSkelMintsL")] ''TxSkel
makeLensesFor [("txSkelValidityRange", "txSkelValidityRangeL")] ''TxSkel
makeLensesFor [("txSkelSigners", "txSkelSignersL")] ''TxSkel
makeLensesFor [("txSkelIns", "txSkelInsL")] ''TxSkel
makeLensesFor [("txSkelInsReference", "txSkelInsReferenceL")] ''TxSkel
makeLensesFor [("txSkelOuts", "txSkelOutsL")] ''TxSkel
makeLensesFor [("txSkelProposals", "txSkelProposalsL")] ''TxSkel
makeLensesFor [("txSkelWithdrawals", "txSkelWithdrawalsL")] ''TxSkel
txSkelTemplate :: TxSkel
txSkelTemplate :: TxSkel
txSkelTemplate =
TxSkel
{ txSkelLabel :: Set TxSkelLabel
txSkelLabel = Set TxSkelLabel
forall a. Set a
Set.empty,
txSkelOpts :: TxSkelOpts
txSkelOpts = TxSkelOpts
forall a. Default a => a
def,
txSkelMints :: TxSkelMints
txSkelMints = TxSkelMints
forall k a. Map k a
Map.empty,
txSkelValidityRange :: SlotRange
txSkelValidityRange = SlotRange
forall a. Interval a
Api.always,
txSkelSigners :: [Wallet]
txSkelSigners = [],
txSkelIns :: Map TxOutRef TxSkelRedeemer
txSkelIns = Map TxOutRef TxSkelRedeemer
forall k a. Map k a
Map.empty,
txSkelInsReference :: Set TxOutRef
txSkelInsReference = Set TxOutRef
forall a. Set a
Set.empty,
txSkelOuts :: [TxSkelOut]
txSkelOuts = [],
txSkelProposals :: [TxSkelProposal]
txSkelProposals = [],
txSkelWithdrawals :: TxSkelWithdrawals
txSkelWithdrawals = TxSkelWithdrawals
forall k a. Map k a
Map.empty
}
txSkelValueInOutputs :: TxSkel -> Api.Value
txSkelValueInOutputs :: TxSkel -> Value
txSkelValueInOutputs = 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 (Lens' TxSkel [TxSkelOut]
txSkelOutsL 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)
txSkelInsReferenceInRedeemers :: TxSkel -> Set Api.TxOutRef
txSkelInsReferenceInRedeemers :: TxSkel -> Set TxOutRef
txSkelInsReferenceInRedeemers TxSkel {[Wallet]
[TxSkelProposal]
[TxSkelOut]
Set TxOutRef
Set TxSkelLabel
TxSkelWithdrawals
Map TxOutRef TxSkelRedeemer
TxSkelMints
SlotRange
TxSkelOpts
txSkelLabel :: TxSkel -> Set TxSkelLabel
txSkelOpts :: TxSkel -> TxSkelOpts
txSkelMints :: TxSkel -> TxSkelMints
txSkelSigners :: TxSkel -> [Wallet]
txSkelValidityRange :: TxSkel -> SlotRange
txSkelIns :: TxSkel -> Map TxOutRef TxSkelRedeemer
txSkelInsReference :: TxSkel -> Set TxOutRef
txSkelOuts :: TxSkel -> [TxSkelOut]
txSkelProposals :: TxSkel -> [TxSkelProposal]
txSkelWithdrawals :: TxSkel -> TxSkelWithdrawals
txSkelLabel :: Set TxSkelLabel
txSkelOpts :: TxSkelOpts
txSkelMints :: TxSkelMints
txSkelSigners :: [Wallet]
txSkelValidityRange :: SlotRange
txSkelIns :: Map TxOutRef TxSkelRedeemer
txSkelInsReference :: Set TxOutRef
txSkelOuts :: [TxSkelOut]
txSkelProposals :: [TxSkelProposal]
txSkelWithdrawals :: TxSkelWithdrawals
..} =
[TxOutRef] -> Set TxOutRef
forall a. Ord a => [a] -> Set a
Set.fromList ([TxOutRef] -> Set TxOutRef) -> [TxOutRef] -> Set TxOutRef
forall a b. (a -> b) -> a -> b
$
(TxSkelRedeemer -> Maybe TxOutRef)
-> [TxSkelRedeemer] -> [TxOutRef]
forall a b. (a -> Maybe b) -> [a] -> [b]
mapMaybe TxSkelRedeemer -> Maybe TxOutRef
txSkelRedeemerReferenceInput ([TxSkelRedeemer] -> [TxOutRef]) -> [TxSkelRedeemer] -> [TxOutRef]
forall a b. (a -> b) -> a -> b
$
Map TxOutRef TxSkelRedeemer -> [TxSkelRedeemer]
forall k a. Map k a -> [a]
Map.elems Map TxOutRef TxSkelRedeemer
txSkelIns
[TxSkelRedeemer] -> [TxSkelRedeemer] -> [TxSkelRedeemer]
forall a. Semigroup a => a -> a -> a
<> ((Versioned Script, TxSkelRedeemer) -> TxSkelRedeemer
forall a b. (a, b) -> b
snd ((Versioned Script, TxSkelRedeemer) -> TxSkelRedeemer)
-> [(Versioned Script, TxSkelRedeemer)] -> [TxSkelRedeemer]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (TxSkelProposal -> Maybe (Versioned Script, TxSkelRedeemer))
-> [TxSkelProposal] -> [(Versioned Script, TxSkelRedeemer)]
forall a b. (a -> Maybe b) -> [a] -> [b]
mapMaybe TxSkelProposal -> Maybe (Versioned Script, TxSkelRedeemer)
txSkelProposalWitness [TxSkelProposal]
txSkelProposals)
[TxSkelRedeemer] -> [TxSkelRedeemer] -> [TxSkelRedeemer]
forall a. Semigroup a => a -> a -> a
<> ((TxSkelRedeemer, NEMap TokenName (NonZero Integer))
-> TxSkelRedeemer
forall a b. (a, b) -> a
fst ((TxSkelRedeemer, NEMap TokenName (NonZero Integer))
-> TxSkelRedeemer)
-> [(TxSkelRedeemer, NEMap TokenName (NonZero Integer))]
-> [TxSkelRedeemer]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> TxSkelMints
-> [(TxSkelRedeemer, NEMap TokenName (NonZero Integer))]
forall k a. Map k a -> [a]
Map.elems TxSkelMints
txSkelMints)
[TxSkelRedeemer] -> [TxSkelRedeemer] -> [TxSkelRedeemer]
forall a. Semigroup a => a -> a -> a
<> ((TxSkelRedeemer, Lovelace) -> TxSkelRedeemer
forall a b. (a, b) -> a
fst ((TxSkelRedeemer, Lovelace) -> TxSkelRedeemer)
-> [(TxSkelRedeemer, Lovelace)] -> [TxSkelRedeemer]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> TxSkelWithdrawals -> [(TxSkelRedeemer, Lovelace)]
forall k a. Map k a -> [a]
Map.elems TxSkelWithdrawals
txSkelWithdrawals)
txSkelKnownTxOutRefs :: TxSkel -> Set Api.TxOutRef
txSkelKnownTxOutRefs :: TxSkel -> Set TxOutRef
txSkelKnownTxOutRefs skel :: TxSkel
skel@TxSkel {[Wallet]
[TxSkelProposal]
[TxSkelOut]
Set TxOutRef
Set TxSkelLabel
TxSkelWithdrawals
Map TxOutRef TxSkelRedeemer
TxSkelMints
SlotRange
TxSkelOpts
txSkelLabel :: TxSkel -> Set TxSkelLabel
txSkelOpts :: TxSkel -> TxSkelOpts
txSkelMints :: TxSkel -> TxSkelMints
txSkelSigners :: TxSkel -> [Wallet]
txSkelValidityRange :: TxSkel -> SlotRange
txSkelIns :: TxSkel -> Map TxOutRef TxSkelRedeemer
txSkelInsReference :: TxSkel -> Set TxOutRef
txSkelOuts :: TxSkel -> [TxSkelOut]
txSkelProposals :: TxSkel -> [TxSkelProposal]
txSkelWithdrawals :: TxSkel -> TxSkelWithdrawals
txSkelLabel :: Set TxSkelLabel
txSkelOpts :: TxSkelOpts
txSkelMints :: TxSkelMints
txSkelSigners :: [Wallet]
txSkelValidityRange :: SlotRange
txSkelIns :: Map TxOutRef TxSkelRedeemer
txSkelInsReference :: Set TxOutRef
txSkelOuts :: [TxSkelOut]
txSkelProposals :: [TxSkelProposal]
txSkelWithdrawals :: TxSkelWithdrawals
..} =
TxSkel -> Set TxOutRef
txSkelInsReferenceInRedeemers 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
txSkelIns
Set TxOutRef -> Set TxOutRef -> Set TxOutRef
forall a. Semigroup a => a -> a -> a
<> Set TxOutRef
txSkelInsReference
txSkelWithdrawnValue :: TxSkel -> Api.Value
txSkelWithdrawnValue :: TxSkel -> Value
txSkelWithdrawnValue = Optic' A_Prism '[] Value Lovelace -> Lovelace -> Value
forall k (is :: IxList) t b.
Is k A_Review =>
Optic' k is t b -> b -> t
review Optic' A_Prism '[] Value Lovelace
valueLovelaceP (Lovelace -> Value) -> (TxSkel -> Lovelace) -> TxSkel -> Value
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Optic' A_Fold '[] TxSkel Lovelace -> TxSkel -> Lovelace
forall k a (is :: IxList) s.
(Is k A_Fold, Monoid a) =>
Optic' k is s a -> s -> a
foldOf (Lens' TxSkel TxSkelWithdrawals
txSkelWithdrawalsL Lens' TxSkel TxSkelWithdrawals
-> Optic
A_Getter
'[]
TxSkelWithdrawals
TxSkelWithdrawals
[(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
[(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
-> Optic
A_Getter
'[]
TxSkel
TxSkel
[(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
[(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
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
% (TxSkelWithdrawals
-> [(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))])
-> Optic
A_Getter
'[]
TxSkelWithdrawals
TxSkelWithdrawals
[(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
[(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
forall s a. (s -> a) -> Getter s a
to TxSkelWithdrawals
-> [(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
forall k a. Map k a -> [(k, a)]
Map.toList Optic
A_Getter
'[]
TxSkel
TxSkel
[(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
[(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
-> Optic
A_Traversal
'[]
[(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
[(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
(Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
(Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
-> Optic
A_Fold
'[]
TxSkel
TxSkel
(Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
(Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
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
'[]
[(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
[(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
(Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
(Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
forall (t :: * -> *) a b.
Traversable t =>
Traversal (t a) (t b) a b
traversed Optic
A_Fold
'[]
TxSkel
TxSkel
(Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
(Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
-> Optic
A_Lens
'[]
(Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
(Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
(TxSkelRedeemer, Lovelace)
(TxSkelRedeemer, Lovelace)
-> Optic
A_Fold
'[]
TxSkel
TxSkel
(TxSkelRedeemer, Lovelace)
(TxSkelRedeemer, Lovelace)
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
'[]
(Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
(Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
(TxSkelRedeemer, Lovelace)
(TxSkelRedeemer, Lovelace)
forall s t a b. Field2 s t a b => Lens s t a b
_2 Optic
A_Fold
'[]
TxSkel
TxSkel
(TxSkelRedeemer, Lovelace)
(TxSkelRedeemer, Lovelace)
-> Optic
A_Lens
'[]
(TxSkelRedeemer, Lovelace)
(TxSkelRedeemer, Lovelace)
Lovelace
Lovelace
-> Optic' A_Fold '[] TxSkel Lovelace
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
'[]
(TxSkelRedeemer, Lovelace)
(TxSkelRedeemer, Lovelace)
Lovelace
Lovelace
forall s t a b. Field2 s t a b => Lens s t a b
_2)
txSkelWithdrawingScripts :: TxSkel -> [Script.Versioned Script.Script]
txSkelWithdrawingScripts :: TxSkel -> [Versioned Script]
txSkelWithdrawingScripts = Optic' A_Fold '[] TxSkel (Versioned Script)
-> TxSkel -> [Versioned Script]
forall k (is :: IxList) s a.
Is k A_Fold =>
Optic' k is s a -> s -> [a]
toListOf (Lens' TxSkel TxSkelWithdrawals
txSkelWithdrawalsL Lens' TxSkel TxSkelWithdrawals
-> Optic
A_Getter
'[]
TxSkelWithdrawals
TxSkelWithdrawals
[(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
[(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
-> Optic
A_Getter
'[]
TxSkel
TxSkel
[(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
[(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
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
% (TxSkelWithdrawals
-> [(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))])
-> Optic
A_Getter
'[]
TxSkelWithdrawals
TxSkelWithdrawals
[(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
[(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
forall s a. (s -> a) -> Getter s a
to TxSkelWithdrawals
-> [(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
forall k a. Map k a -> [(k, a)]
Map.toList Optic
A_Getter
'[]
TxSkel
TxSkel
[(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
[(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
-> Optic
A_Traversal
'[]
[(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
[(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
(Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
(Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
-> Optic
A_Fold
'[]
TxSkel
TxSkel
(Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
(Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
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
'[]
[(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
[(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
(Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
(Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
forall (t :: * -> *) a b.
Traversable t =>
Traversal (t a) (t b) a b
traversed Optic
A_Fold
'[]
TxSkel
TxSkel
(Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
(Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
-> Optic
A_Lens
'[]
(Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
(Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
(Either (Versioned Script) PubKeyHash)
(Either (Versioned Script) PubKeyHash)
-> Optic
A_Fold
'[]
TxSkel
TxSkel
(Either (Versioned Script) PubKeyHash)
(Either (Versioned Script) 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
'[]
(Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
(Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
(Either (Versioned Script) PubKeyHash)
(Either (Versioned Script) PubKeyHash)
forall s t a b. Field1 s t a b => Lens s t a b
_1 Optic
A_Fold
'[]
TxSkel
TxSkel
(Either (Versioned Script) PubKeyHash)
(Either (Versioned Script) PubKeyHash)
-> Optic
A_Prism
'[]
(Either (Versioned Script) PubKeyHash)
(Either (Versioned Script) PubKeyHash)
(Versioned Script)
(Versioned Script)
-> Optic' A_Fold '[] TxSkel (Versioned Script)
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
'[]
(Either (Versioned Script) PubKeyHash)
(Either (Versioned Script) PubKeyHash)
(Versioned Script)
(Versioned Script)
forall a b c. Prism (Either a b) (Either c b) a c
_Left)
txSkelProposingScripts :: TxSkel -> [Script.Versioned Script.Script]
txSkelProposingScripts :: TxSkel -> [Versioned Script]
txSkelProposingScripts = Optic' A_Traversal '[] TxSkel (Versioned Script)
-> TxSkel -> [Versioned Script]
forall k (is :: IxList) s a.
Is k A_Fold =>
Optic' k is s a -> s -> [a]
toListOf (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
A_Lens
'[]
TxSkelProposal
TxSkelProposal
(Maybe (Versioned Script, TxSkelRedeemer))
(Maybe (Versioned Script, TxSkelRedeemer))
-> Optic
A_Traversal
'[]
TxSkel
TxSkel
(Maybe (Versioned Script, TxSkelRedeemer))
(Maybe (Versioned Script, 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
'[]
TxSkelProposal
TxSkelProposal
(Maybe (Versioned Script, TxSkelRedeemer))
(Maybe (Versioned Script, TxSkelRedeemer))
txSkelProposalWitnessL Optic
A_Traversal
'[]
TxSkel
TxSkel
(Maybe (Versioned Script, TxSkelRedeemer))
(Maybe (Versioned Script, TxSkelRedeemer))
-> Optic
A_Prism
'[]
(Maybe (Versioned Script, TxSkelRedeemer))
(Maybe (Versioned Script, TxSkelRedeemer))
(Versioned Script, TxSkelRedeemer)
(Versioned Script, TxSkelRedeemer)
-> Optic
A_Traversal
'[]
TxSkel
TxSkel
(Versioned Script, TxSkelRedeemer)
(Versioned Script, 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_Prism
'[]
(Maybe (Versioned Script, TxSkelRedeemer))
(Maybe (Versioned Script, TxSkelRedeemer))
(Versioned Script, TxSkelRedeemer)
(Versioned Script, TxSkelRedeemer)
forall a b. Prism (Maybe a) (Maybe b) a b
_Just Optic
A_Traversal
'[]
TxSkel
TxSkel
(Versioned Script, TxSkelRedeemer)
(Versioned Script, TxSkelRedeemer)
-> Optic
A_Lens
'[]
(Versioned Script, TxSkelRedeemer)
(Versioned Script, TxSkelRedeemer)
(Versioned Script)
(Versioned Script)
-> Optic' A_Traversal '[] TxSkel (Versioned Script)
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
'[]
(Versioned Script, TxSkelRedeemer)
(Versioned Script, TxSkelRedeemer)
(Versioned Script)
(Versioned Script)
forall s t a b. Field1 s t a b => Lens s t a b
_1)
txSkelMintingScripts :: TxSkel -> [Script.Versioned Script.Script]
txSkelMintingScripts :: TxSkel -> [Versioned Script]
txSkelMintingScripts = Optic' A_Traversal '[] TxSkel (Versioned Script)
-> TxSkel -> [Versioned Script]
forall k (is :: IxList) s a.
Is k A_Fold =>
Optic' k is s a -> s -> [a]
toListOf (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 (Versioned Script) (Versioned Script)
-> Optic' A_Traversal '[] TxSkel (Versioned Script)
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 (Versioned Script) (Versioned Script)
mintVersionedScriptL)