{-# LANGUAGE DeriveFunctor #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module Cooked.Pretty.Skeleton (Contextualized (..)) where
import Cooked.Pretty.Class
import Cooked.Pretty.Options
import Cooked.Pretty.Plutus ()
import Cooked.Skeleton
import Cooked.Wallet
import Data.Default
import Data.Map (Map)
import Data.Map qualified as Map
import Data.Maybe (catMaybes)
import Data.Set qualified as Set
import Optics.Core
import Plutus.Script.Utils.Address qualified as Script
import Plutus.Script.Utils.Scripts qualified as Script
import Plutus.Script.Utils.Value qualified as Script
import PlutusLedgerApi.V1.Value qualified as Api
import PlutusLedgerApi.V3 qualified as Api
import Prettyprinter ((<+>))
import Prettyprinter qualified as PP
instance PrettyCooked Wallet where
prettyCookedOpt :: PrettyCookedOpts -> Wallet -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts = PrettyCookedOpts -> PubKeyHash -> DocCooked
forall a. ToHash a => PrettyCookedOpts -> a -> DocCooked
prettyHash PrettyCookedOpts
opts (PubKeyHash -> DocCooked)
-> (Wallet -> PubKeyHash) -> Wallet -> DocCooked
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Wallet -> PubKeyHash
forall a. ToPubKeyHash a => a -> PubKeyHash
Script.toPubKeyHash
data Contextualized a = Contextualized
{ forall a. Contextualized a -> Map TxOutRef (TxSkelOut, Bool)
_ctxOutputs :: Map Api.TxOutRef (TxSkelOut, Bool),
forall a. Contextualized a -> a
ctxContent :: a
}
deriving ((forall a b. (a -> b) -> Contextualized a -> Contextualized b)
-> (forall a b. a -> Contextualized b -> Contextualized a)
-> Functor Contextualized
forall a b. a -> Contextualized b -> Contextualized a
forall a b. (a -> b) -> Contextualized a -> Contextualized b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
$cfmap :: forall a b. (a -> b) -> Contextualized a -> Contextualized b
fmap :: forall a b. (a -> b) -> Contextualized a -> Contextualized b
$c<$ :: forall a b. a -> Contextualized b -> Contextualized a
<$ :: forall a b. a -> Contextualized b -> Contextualized a
Functor)
instance PrettyCookedList (Contextualized TxSkel) where
prettyCookedOptListMaybe :: PrettyCookedOpts -> Contextualized TxSkel -> [Maybe DocCooked]
prettyCookedOptListMaybe PrettyCookedOpts
opts Contextualized TxSkel
cTxSkel
| TxSkel Set TxSkelLabel
lbl TxSkelOpts
txopts TxSkelMints
mints [Wallet]
signers SlotRange
validityRange Map TxOutRef TxSkelRedeemer
ins Set TxOutRef
insReference [TxSkelOut]
outs [TxSkelProposal]
proposals TxSkelWithdrawals
withdrawals <- Contextualized TxSkel -> TxSkel
forall a. Contextualized a -> a
ctxContent Contextualized TxSkel
cTxSkel =
[ PrettyCookedOpts
-> DocCooked -> DocCooked -> Set TxSkelLabel -> Maybe DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> Maybe DocCooked
prettyItemizeNonEmpty PrettyCookedOpts
opts DocCooked
"Labels:" DocCooked
"-" Set TxSkelLabel
lbl,
PrettyCookedOpts
-> DocCooked -> DocCooked -> [Mint] -> Maybe DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> Maybe DocCooked
prettyItemizeNonEmpty PrettyCookedOpts
opts DocCooked
"Mints:" DocCooked
"-" (Optic' An_Iso NoIx TxSkelMints [Mint] -> TxSkelMints -> [Mint]
forall k (is :: IxList) s a.
Is k A_Getter =>
Optic' k is s a -> s -> a
view Optic' An_Iso NoIx TxSkelMints [Mint]
txSkelMintsListI TxSkelMints
mints),
DocCooked -> Maybe DocCooked
forall a. a -> Maybe a
Just (DocCooked -> Maybe DocCooked) -> DocCooked -> Maybe DocCooked
forall a b. (a -> b) -> a -> b
$ DocCooked
"Validity interval:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> SlotRange -> DocCooked
forall a ann. Pretty a => a -> Doc ann
forall ann. SlotRange -> Doc ann
PP.pretty SlotRange
validityRange,
PrettyCookedOpts
-> DocCooked
-> DocCooked
-> (TxSkelOpts, [Wallet])
-> Maybe DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> Maybe DocCooked
prettyItemizeNonEmpty PrettyCookedOpts
opts DocCooked
"Signers:" DocCooked
"-" (TxSkelOpts
txopts, [Wallet]
signers),
PrettyCookedOpts
-> DocCooked
-> DocCooked
-> [Contextualized Input]
-> Maybe DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> Maybe DocCooked
prettyItemizeNonEmpty PrettyCookedOpts
opts DocCooked
"Inputs:" DocCooked
"-" ((Input -> Contextualized TxSkel -> Contextualized Input
forall a b. a -> Contextualized b -> Contextualized a
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ Contextualized TxSkel
cTxSkel) (Input -> Contextualized Input)
-> ((TxOutRef, TxSkelRedeemer) -> Input)
-> (TxOutRef, TxSkelRedeemer)
-> Contextualized Input
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (TxOutRef -> TxSkelRedeemer -> Input)
-> (TxOutRef, TxSkelRedeemer) -> Input
forall a b c. (a -> b -> c) -> (a, b) -> c
uncurry TxOutRef -> TxSkelRedeemer -> Input
Input ((TxOutRef, TxSkelRedeemer) -> Contextualized Input)
-> [(TxOutRef, TxSkelRedeemer)] -> [Contextualized Input]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Map TxOutRef TxSkelRedeemer -> [(TxOutRef, TxSkelRedeemer)]
forall k a. Map k a -> [(k, a)]
Map.toList Map TxOutRef TxSkelRedeemer
ins),
PrettyCookedOpts
-> DocCooked -> DocCooked -> [DocCooked] -> Maybe DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> Maybe DocCooked
prettyItemizeNonEmpty PrettyCookedOpts
opts DocCooked
"Reference inputs:" DocCooked
"-" ([DocCooked] -> Maybe DocCooked) -> [DocCooked] -> Maybe DocCooked
forall a b. (a -> b) -> a -> b
$ PrettyCookedOpts -> Contextualized ReferenceInput -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts (Contextualized ReferenceInput -> DocCooked)
-> (TxOutRef -> Contextualized ReferenceInput)
-> TxOutRef
-> DocCooked
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ReferenceInput
-> Contextualized TxSkel -> Contextualized ReferenceInput
forall a b. a -> Contextualized b -> Contextualized a
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ Contextualized TxSkel
cTxSkel) (ReferenceInput -> Contextualized ReferenceInput)
-> (TxOutRef -> ReferenceInput)
-> TxOutRef
-> Contextualized ReferenceInput
forall b c a. (b -> c) -> (a -> b) -> a -> c
. TxOutRef -> ReferenceInput
ReferenceInput (TxOutRef -> DocCooked) -> [TxOutRef] -> [DocCooked]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Set TxOutRef -> [TxOutRef]
forall a. Set a -> [a]
Set.toList Set TxOutRef
insReference,
PrettyCookedOpts
-> DocCooked -> DocCooked -> [DocCooked] -> Maybe DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> Maybe DocCooked
prettyItemizeNonEmpty PrettyCookedOpts
opts DocCooked
"Outputs:" DocCooked
"-" (PrettyCookedOpts -> TxSkelOut -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts (TxSkelOut -> DocCooked) -> [TxSkelOut] -> [DocCooked]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [TxSkelOut]
outs),
PrettyCookedOpts
-> DocCooked -> DocCooked -> [DocCooked] -> Maybe DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> Maybe DocCooked
prettyItemizeNonEmpty PrettyCookedOpts
opts DocCooked
"Proposals:" DocCooked
"-" (PrettyCookedOpts -> DocCooked -> TxSkelProposal -> DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> a -> DocCooked
prettyItemizeNoTitle PrettyCookedOpts
opts DocCooked
"-" (TxSkelProposal -> DocCooked) -> [TxSkelProposal] -> [DocCooked]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [TxSkelProposal]
proposals),
PrettyCookedOpts
-> DocCooked -> DocCooked -> [Withdrawal] -> Maybe DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> Maybe DocCooked
prettyItemizeNonEmpty PrettyCookedOpts
opts DocCooked
"Withdrawals:" DocCooked
"-" ((Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
-> Withdrawal
mkWithdrawal ((Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
-> Withdrawal)
-> [(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
-> [Withdrawal]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> TxSkelWithdrawals
-> [(Either (Versioned Script) PubKeyHash,
(TxSkelRedeemer, Lovelace))]
forall k a. Map k a -> [(k, a)]
Map.toList TxSkelWithdrawals
withdrawals),
PrettyCookedOpts
-> DocCooked -> DocCooked -> TxSkelOpts -> Maybe DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> Maybe DocCooked
prettyItemizeNonEmpty PrettyCookedOpts
opts DocCooked
"Options:" DocCooked
"-" TxSkelOpts
txopts
]
data Withdrawal = Withdrawal (Either (Script.Versioned Script.Script) Api.PubKeyHash) TxSkelRedeemer Api.Lovelace
mkWithdrawal :: (Either (Script.Versioned Script.Script) Api.PubKeyHash, (TxSkelRedeemer, Api.Lovelace)) -> Withdrawal
mkWithdrawal :: (Either (Versioned Script) PubKeyHash, (TxSkelRedeemer, Lovelace))
-> Withdrawal
mkWithdrawal (Either (Versioned Script) PubKeyHash
owner, (TxSkelRedeemer
red, Lovelace
lv)) = Either (Versioned Script) PubKeyHash
-> TxSkelRedeemer -> Lovelace -> Withdrawal
Withdrawal Either (Versioned Script) PubKeyHash
owner TxSkelRedeemer
red Lovelace
lv
instance PrettyCooked Withdrawal where
prettyCookedOpt :: PrettyCookedOpts -> Withdrawal -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts (Withdrawal (Left Versioned Script
script) TxSkelRedeemer
red Lovelace
lv) =
PrettyCookedOpts
-> DocCooked -> DocCooked -> [DocCooked] -> DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> DocCooked
prettyItemize PrettyCookedOpts
opts (PrettyCookedOpts -> Versioned Script -> DocCooked
forall a. ToHash a => PrettyCookedOpts -> a -> DocCooked
prettyHash PrettyCookedOpts
opts Versioned Script
script) DocCooked
"-" ([DocCooked] -> DocCooked) -> [DocCooked] -> DocCooked
forall a b. (a -> b) -> a -> b
$ PrettyCookedOpts -> TxSkelRedeemer -> [DocCooked]
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> a -> [DocCooked]
prettyCookedOptList PrettyCookedOpts
opts TxSkelRedeemer
red [DocCooked] -> [DocCooked] -> [DocCooked]
forall a. [a] -> [a] -> [a]
++ [PrettyCookedOpts -> Value -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts (Lovelace -> Value
forall a. ToValue a => a -> Value
Script.toValue Lovelace
lv)]
prettyCookedOpt PrettyCookedOpts
opts (Withdrawal (Right PubKeyHash
pkh) TxSkelRedeemer
_ Lovelace
lv) =
PrettyCookedOpts
-> DocCooked -> DocCooked -> [DocCooked] -> DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> DocCooked
prettyItemize PrettyCookedOpts
opts (PrettyCookedOpts -> PubKeyHash -> DocCooked
forall a. ToHash a => PrettyCookedOpts -> a -> DocCooked
prettyHash PrettyCookedOpts
opts PubKeyHash
pkh) DocCooked
"-" [PrettyCookedOpts -> Value -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts (Lovelace -> Value
forall a. ToValue a => a -> Value
Script.toValue Lovelace
lv)]
instance PrettyCooked TxParameterChange where
prettyCookedOpt :: PrettyCookedOpts -> TxParameterChange -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts (FeePerByte Integer
n) = DocCooked
"Fee per byte:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
n
prettyCookedOpt PrettyCookedOpts
opts (FeeFixed Integer
n) = DocCooked
"Fee fixed:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
n
prettyCookedOpt PrettyCookedOpts
opts (MaxBlockBodySize Integer
n) = DocCooked
"Max block body size:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
n
prettyCookedOpt PrettyCookedOpts
opts (MaxTxSize Integer
n) = DocCooked
"Max transaction size:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
n
prettyCookedOpt PrettyCookedOpts
opts (MaxBlockHeaderSize Integer
n) = DocCooked
"Max block header size:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
n
prettyCookedOpt PrettyCookedOpts
opts (KeyDeposit Integer
n) = DocCooked
"Key deposit:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
n
prettyCookedOpt PrettyCookedOpts
opts (PoolDeposit Integer
n) = DocCooked
"Pool deposit:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
n
prettyCookedOpt PrettyCookedOpts
opts (PoolRetirementMaxEpoch Integer
n) = DocCooked
"Pool retirement max epoch:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
n
prettyCookedOpt PrettyCookedOpts
opts (PoolNumber Integer
n) = DocCooked
"Pool number:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
n
prettyCookedOpt PrettyCookedOpts
opts (PoolInfluence Rational
q) = DocCooked
"Pool influence:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Rational -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Rational
q
prettyCookedOpt PrettyCookedOpts
opts (MonetaryExpansion Rational
q) = DocCooked
"Monetary expansion:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Rational -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Rational
q
prettyCookedOpt PrettyCookedOpts
opts (TreasuryCut Rational
q) = DocCooked
"Treasury cut:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Rational -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Rational
q
prettyCookedOpt PrettyCookedOpts
opts (MinPoolCost Integer
n) = DocCooked
"Min pool cost:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
n
prettyCookedOpt PrettyCookedOpts
opts (CoinsPerUTxOByte Integer
n) = DocCooked
"Lovelace per utxo byte:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
n
prettyCookedOpt PrettyCookedOpts
_opts (CostModels [Integer]
_pv1 [Integer]
_pv2 [Integer]
_pv3) = DocCooked
"Cost models (unsupported)"
prettyCookedOpt PrettyCookedOpts
opts (Prices Rational
q Rational
r) =
PrettyCookedOpts
-> DocCooked -> DocCooked -> [DocCooked] -> DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> DocCooked
prettyItemize
PrettyCookedOpts
opts
DocCooked
"Prices:"
DocCooked
"-"
[ DocCooked
"Memory cost:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Rational -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Rational
q,
DocCooked
"Step cost:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Rational -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Rational
r
]
prettyCookedOpt PrettyCookedOpts
opts (MaxTxExUnits Integer
n Integer
m) =
PrettyCookedOpts
-> DocCooked -> DocCooked -> [DocCooked] -> DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> DocCooked
prettyItemize
PrettyCookedOpts
opts
DocCooked
"Max transaction execution units:"
DocCooked
"-"
[ DocCooked
"Max memory:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
n,
DocCooked
"Max steps:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
m
]
prettyCookedOpt PrettyCookedOpts
opts (MaxBlockExUnits Integer
n Integer
m) =
PrettyCookedOpts
-> DocCooked -> DocCooked -> [DocCooked] -> DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> DocCooked
prettyItemize
PrettyCookedOpts
opts
DocCooked
"Max block execution units:"
DocCooked
"-"
[ DocCooked
"Max memory:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
n,
DocCooked
"Max steps:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
m
]
prettyCookedOpt PrettyCookedOpts
opts (MaxValSize Integer
n) = DocCooked
"Max value size:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
n
prettyCookedOpt PrettyCookedOpts
opts (CollateralPercentage Integer
n) = DocCooked
"Collateral percentage:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
n
prettyCookedOpt PrettyCookedOpts
opts (MaxCollateralInputs Integer
n) = DocCooked
"Max number of collateral inputs:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
n
prettyCookedOpt PrettyCookedOpts
opts (PoolVotingThresholds Rational
a Rational
b Rational
c Rational
d Rational
e) =
PrettyCookedOpts
-> DocCooked -> DocCooked -> [DocCooked] -> DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> DocCooked
prettyItemize
PrettyCookedOpts
opts
DocCooked
"Pool voting thresholds:"
DocCooked
"-"
[ DocCooked
"Motion no confidence:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Rational -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Rational
a,
DocCooked
"Committee normal:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Rational -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Rational
b,
DocCooked
"Committee no confidence:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Rational -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Rational
c,
DocCooked
"Hard fork:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Rational -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Rational
d,
DocCooked
"Security group:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Rational -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Rational
e
]
prettyCookedOpt PrettyCookedOpts
opts (DRepVotingThresholds Rational
a Rational
b Rational
c Rational
d Rational
e Rational
f Rational
g Rational
h Rational
i Rational
j) =
PrettyCookedOpts
-> DocCooked -> DocCooked -> [DocCooked] -> DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> DocCooked
prettyItemize
PrettyCookedOpts
opts
DocCooked
"DRep voting thresholds:"
DocCooked
"-"
[ DocCooked
"Motion no confidence:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Rational -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Rational
a,
DocCooked
"Committee normal:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Rational -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Rational
b,
DocCooked
"Committee no confidence:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Rational -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Rational
c,
DocCooked
"Update constitution:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Rational -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Rational
d,
DocCooked
"Hard fork initialization:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Rational -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Rational
e,
DocCooked
"Network group:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Rational -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Rational
f,
DocCooked
"Economic group:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Rational -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Rational
g,
DocCooked
"Technical group:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Rational -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Rational
h,
DocCooked
"Governance group:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Rational -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Rational
i,
DocCooked
"Treasury withdrawal:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Rational -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Rational
j
]
prettyCookedOpt PrettyCookedOpts
opts (CommitteeMinSize Integer
n) = DocCooked
"Committee min size:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
n
prettyCookedOpt PrettyCookedOpts
opts (CommitteeMaxTermLength Integer
n) = DocCooked
"Committee max term length:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
n
prettyCookedOpt PrettyCookedOpts
opts (GovActionLifetime Integer
n) = DocCooked
"Governance action life time:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
n
prettyCookedOpt PrettyCookedOpts
opts (GovActionDeposit Integer
n) = DocCooked
"Governance action deposit:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
n
prettyCookedOpt PrettyCookedOpts
opts (DRepRegistrationDeposit Integer
n) = DocCooked
"DRep registration deposit:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
n
prettyCookedOpt PrettyCookedOpts
opts (DRepActivity Integer
n) = DocCooked
"DRep activity:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
n
prettyCookedOpt PrettyCookedOpts
opts (MinFeeRefScriptCostPerByte Rational
q) = DocCooked
"Min fee per byto of reference script:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Rational -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Rational
q
instance PrettyCookedList TxSkelRedeemer where
prettyCookedOptListMaybe :: PrettyCookedOpts -> TxSkelRedeemer -> [Maybe DocCooked]
prettyCookedOptListMaybe PrettyCookedOpts
opts (TxSkelRedeemer redeemer
red Maybe TxOutRef
mRefScript Bool
_) =
[ DocCooked -> Maybe DocCooked
forall a. a -> Maybe a
Just (DocCooked -> Maybe DocCooked) -> DocCooked -> Maybe DocCooked
forall a b. (a -> b) -> a -> b
$ DocCooked
"Redeemer" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> redeemer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts redeemer
red,
(DocCooked
"Reference script at:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+>) (DocCooked -> DocCooked)
-> (TxOutRef -> DocCooked) -> TxOutRef -> DocCooked
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PrettyCookedOpts -> TxOutRef -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts (TxOutRef -> DocCooked) -> Maybe TxOutRef -> Maybe DocCooked
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe TxOutRef
mRefScript
]
instance PrettyCookedList TxSkelProposal where
prettyCookedOptListMaybe :: PrettyCookedOpts -> TxSkelProposal -> [Maybe DocCooked]
prettyCookedOptListMaybe PrettyCookedOpts
opts TxSkelProposal {Bool
Maybe String
Maybe (Versioned Script, TxSkelRedeemer)
Address
TxGovAction
txSkelProposalAddress :: Address
txSkelProposalAction :: TxGovAction
txSkelProposalWitness :: Maybe (Versioned Script, TxSkelRedeemer)
txSkelProposalAnchor :: Maybe String
txSkelProposalAutoConstitution :: Bool
txSkelProposalAddress :: TxSkelProposal -> Address
txSkelProposalAction :: TxSkelProposal -> TxGovAction
txSkelProposalWitness :: TxSkelProposal -> Maybe (Versioned Script, TxSkelRedeemer)
txSkelProposalAnchor :: TxSkelProposal -> Maybe String
txSkelProposalAutoConstitution :: TxSkelProposal -> Bool
..} =
[ DocCooked -> Maybe DocCooked
forall a. a -> Maybe a
Just (DocCooked -> Maybe DocCooked) -> DocCooked -> Maybe DocCooked
forall a b. (a -> b) -> a -> b
$ DocCooked
"Governance action:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> TxGovAction -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts TxGovAction
txSkelProposalAction,
DocCooked -> Maybe DocCooked
forall a. a -> Maybe a
Just (DocCooked -> Maybe DocCooked) -> DocCooked -> Maybe DocCooked
forall a b. (a -> b) -> a -> b
$ DocCooked
"Return address:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> Address -> DocCooked
forall a. PrettyCooked a => a -> DocCooked
prettyCooked Address
txSkelProposalAddress,
(\(Versioned Script
script, TxSkelRedeemer
redeemer) -> PrettyCookedOpts
-> DocCooked -> DocCooked -> [DocCooked] -> DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> DocCooked
prettyItemize PrettyCookedOpts
opts DocCooked
"Witness:" DocCooked
"-" (PrettyCookedOpts -> Versioned Script -> DocCooked
forall a. ToHash a => PrettyCookedOpts -> a -> DocCooked
prettyHash PrettyCookedOpts
opts Versioned Script
script DocCooked -> [DocCooked] -> [DocCooked]
forall a. a -> [a] -> [a]
: PrettyCookedOpts -> TxSkelRedeemer -> [DocCooked]
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> a -> [DocCooked]
prettyCookedOptList PrettyCookedOpts
opts TxSkelRedeemer
redeemer)) ((Versioned Script, TxSkelRedeemer) -> DocCooked)
-> Maybe (Versioned Script, TxSkelRedeemer) -> Maybe DocCooked
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe (Versioned Script, TxSkelRedeemer)
txSkelProposalWitness,
(DocCooked
"Anchor:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+>) (DocCooked -> DocCooked)
-> (String -> DocCooked) -> String -> DocCooked
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> DocCooked
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
PP.pretty (String -> DocCooked) -> Maybe String -> Maybe DocCooked
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe String
txSkelProposalAnchor
]
instance PrettyCooked TxGovAction where
prettyCookedOpt :: PrettyCookedOpts -> TxGovAction -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts (TxGovActionParameterChange [TxParameterChange]
params) = PrettyCookedOpts
-> DocCooked -> DocCooked -> [TxParameterChange] -> DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> DocCooked
prettyItemize PrettyCookedOpts
opts DocCooked
"Parameter changes:" DocCooked
"-" [TxParameterChange]
params
prettyCookedOpt PrettyCookedOpts
opts (TxGovActionHardForkInitiation (Api.ProtocolVersion Integer
major Integer
minor)) =
DocCooked
"Protocol version:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> DocCooked
"(" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
major DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> DocCooked
"," DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
minor DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> DocCooked
")"
prettyCookedOpt PrettyCookedOpts
opts (TxGovActionTreasuryWithdrawals Map Credential Lovelace
withdrawals) =
PrettyCookedOpts
-> DocCooked -> DocCooked -> [DocCooked] -> DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> DocCooked
prettyItemize PrettyCookedOpts
opts DocCooked
"Withdrawals:" DocCooked
"-" ([DocCooked] -> DocCooked) -> [DocCooked] -> DocCooked
forall a b. (a -> b) -> a -> b
$
(\(Credential
cred, Lovelace
lv) -> PrettyCookedOpts -> Credential -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Credential
cred DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> DocCooked
"|" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> Value -> DocCooked
forall a. PrettyCooked a => a -> DocCooked
prettyCooked (Lovelace -> Value
forall a. ToValue a => a -> Value
Script.toValue Lovelace
lv)) ((Credential, Lovelace) -> DocCooked)
-> [(Credential, Lovelace)] -> [DocCooked]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Map Credential Lovelace -> [(Credential, Lovelace)]
forall k a. Map k a -> [(k, a)]
Map.toList Map Credential Lovelace
withdrawals
prettyCookedOpt PrettyCookedOpts
_ TxGovAction
TxGovActionNoConfidence = DocCooked
"No confidence"
prettyCookedOpt PrettyCookedOpts
opts (TxGovActionUpdateCommittee [ColdCommitteeCredential]
toRemoveCreds Map ColdCommitteeCredential Integer
toAddCreds Rational
quorum) =
PrettyCookedOpts
-> DocCooked -> DocCooked -> [DocCooked] -> DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> DocCooked
prettyItemize
PrettyCookedOpts
opts
DocCooked
"Updates in committee:"
DocCooked
"-"
[ PrettyCookedOpts
-> DocCooked -> DocCooked -> [DocCooked] -> DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> DocCooked
prettyItemize PrettyCookedOpts
opts DocCooked
"Credentials to remove:" DocCooked
"-" ([DocCooked] -> DocCooked) -> [DocCooked] -> DocCooked
forall a b. (a -> b) -> a -> b
$
(\(Api.ColdCommitteeCredential Credential
cred) -> PrettyCookedOpts -> Credential -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Credential
cred) (ColdCommitteeCredential -> DocCooked)
-> [ColdCommitteeCredential] -> [DocCooked]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [ColdCommitteeCredential]
toRemoveCreds,
PrettyCookedOpts
-> DocCooked -> DocCooked -> [DocCooked] -> DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> DocCooked
prettyItemize PrettyCookedOpts
opts DocCooked
"Credentials to add:" DocCooked
"-" ([DocCooked] -> DocCooked) -> [DocCooked] -> DocCooked
forall a b. (a -> b) -> a -> b
$
(\(Api.ColdCommitteeCredential Credential
cred, Integer
i) -> PrettyCookedOpts -> Credential -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Credential
cred DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> DocCooked
"->" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
i) ((ColdCommitteeCredential, Integer) -> DocCooked)
-> [(ColdCommitteeCredential, Integer)] -> [DocCooked]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Map ColdCommitteeCredential Integer
-> [(ColdCommitteeCredential, Integer)]
forall k a. Map k a -> [(k, a)]
Map.toList Map ColdCommitteeCredential Integer
toAddCreds,
DocCooked
"Quorum:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Rational -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts (Rational -> Rational
Api.toGHC Rational
quorum)
]
prettyCookedOpt PrettyCookedOpts
opts (TxGovActionNewConstitution (Api.Constitution Maybe ScriptHash
mScriptHash)) = case Maybe ScriptHash
mScriptHash of
Maybe ScriptHash
Nothing -> DocCooked
"Empty new constitution"
Just ScriptHash
sHash -> DocCooked
"New constitution:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> ScriptHash -> DocCooked
forall a. ToHash a => PrettyCookedOpts -> a -> DocCooked
prettyHash PrettyCookedOpts
opts ScriptHash
sHash
instance PrettyCookedList (TxSkelOpts, [Wallet]) where
prettyCookedOptList :: PrettyCookedOpts -> (TxSkelOpts, [Wallet]) -> [DocCooked]
prettyCookedOptList PrettyCookedOpts
opts (TxSkelOpts {txSkelOptBalancingPolicy :: TxSkelOpts -> BalancingPolicy
txSkelOptBalancingPolicy = BalancingPolicy
DoNotBalance}, [Wallet]
signers) = PrettyCookedOpts -> [Wallet] -> [DocCooked]
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> a -> [DocCooked]
prettyCookedOptList PrettyCookedOpts
opts [Wallet]
signers
prettyCookedOptList PrettyCookedOpts
opts (TxSkelOpts {txSkelOptBalancingPolicy :: TxSkelOpts -> BalancingPolicy
txSkelOptBalancingPolicy = BalancingPolicy
BalanceWithFirstSigner}, Wallet
firstSigner : [Wallet]
signers) =
PrettyCookedOpts -> Wallet -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Wallet
firstSigner DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> DocCooked
"[balancing]" DocCooked -> [DocCooked] -> [DocCooked]
forall a. a -> [a] -> [a]
: PrettyCookedOpts -> [Wallet] -> [DocCooked]
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> a -> [DocCooked]
prettyCookedOptList PrettyCookedOpts
opts [Wallet]
signers
prettyCookedOptList PrettyCookedOpts
opts (TxSkelOpts {txSkelOptBalancingPolicy :: TxSkelOpts -> BalancingPolicy
txSkelOptBalancingPolicy = BalanceWith Wallet
balancingWallet}, [Wallet]
signers) =
(\Wallet
s -> if Wallet
s Wallet -> Wallet -> Bool
forall a. Eq a => a -> a -> Bool
== Wallet
balancingWallet then PrettyCookedOpts -> Wallet -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Wallet
s DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> DocCooked
"[balancing]" else PrettyCookedOpts -> Wallet -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Wallet
s) (Wallet -> DocCooked) -> [Wallet] -> [DocCooked]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [Wallet]
signers
prettyCookedOptList PrettyCookedOpts
_ (TxSkelOpts
_, []) = []
instance PrettyCooked Mint where
prettyCookedOpt :: PrettyCookedOpts -> Mint -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts (Mint a
pol TxSkelRedeemer
red [(TokenName, Integer)]
tks) =
PrettyCookedOpts
-> DocCooked -> DocCooked -> [DocCooked] -> DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> DocCooked
prettyItemize PrettyCookedOpts
opts (PrettyCookedOpts -> Versioned MintingPolicy -> DocCooked
forall a. ToHash a => PrettyCookedOpts -> a -> DocCooked
prettyHash PrettyCookedOpts
opts (forall s a. ToVersioned s a => a -> Versioned s
Script.toVersioned @Script.MintingPolicy a
pol)) DocCooked
"-" ([DocCooked] -> DocCooked) -> [DocCooked] -> DocCooked
forall a b. (a -> b) -> a -> b
$
PrettyCookedOpts -> TxSkelRedeemer -> [DocCooked]
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> a -> [DocCooked]
prettyCookedOptList PrettyCookedOpts
opts TxSkelRedeemer
red [DocCooked] -> [DocCooked] -> [DocCooked]
forall a. [a] -> [a] -> [a]
++ ((\(TokenName
tk, Integer
n) -> TokenName -> DocCooked
forall a ann. Show a => a -> Doc ann
PP.viaShow TokenName
tk DocCooked -> DocCooked -> DocCooked
forall a. Semigroup a => a -> a -> a
<> DocCooked
":" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> Integer -> DocCooked
forall a ann. Show a => a -> Doc ann
PP.viaShow Integer
n) ((TokenName, Integer) -> DocCooked)
-> [(TokenName, Integer)] -> [DocCooked]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [(TokenName, Integer)]
tks)
instance PrettyCookedList TxSkelOut where
prettyCookedOptList :: PrettyCookedOpts -> TxSkelOut -> [DocCooked]
prettyCookedOptList PrettyCookedOpts
opts TxSkelOut
output =
[ PrettyCookedOpts -> Address -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts (Optic' A_Getter NoIx TxSkelOut Address -> TxSkelOut -> Address
forall k (is :: IxList) s a.
Is k A_Getter =>
Optic' k is s a -> s -> a
view Optic' A_Getter NoIx TxSkelOut Address
txSkelOutAddressG TxSkelOut
output),
PrettyCookedOpts -> Value -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts (Optic' A_Lens NoIx TxSkelOut Value -> TxSkelOut -> Value
forall k (is :: IxList) s a.
Is k A_Getter =>
Optic' k is s a -> s -> a
view Optic' A_Lens NoIx TxSkelOut Value
txSkelOutValueL TxSkelOut
output)
]
[DocCooked] -> [DocCooked] -> [DocCooked]
forall a. [a] -> [a] -> [a]
++ [Maybe DocCooked] -> [DocCooked]
forall a. [Maybe a] -> [a]
catMaybes
[ PrettyCookedOpts -> TxSkelOutDatum -> Maybe DocCooked
forall a.
PrettyCookedMaybe a =>
PrettyCookedOpts -> a -> Maybe DocCooked
prettyCookedOptMaybe PrettyCookedOpts
opts (TxSkelOut
output TxSkelOut
-> Optic' A_Lens NoIx TxSkelOut TxSkelOutDatum -> TxSkelOutDatum
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx TxSkelOut TxSkelOutDatum
txSkelOutDatumL),
(DocCooked
"Reference script hash:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+>) (DocCooked -> DocCooked)
-> (ScriptHash -> DocCooked) -> ScriptHash -> DocCooked
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PrettyCookedOpts -> ScriptHash -> DocCooked
forall a. ToHash a => PrettyCookedOpts -> a -> DocCooked
prettyHash PrettyCookedOpts
opts (ScriptHash -> DocCooked) -> Maybe ScriptHash -> Maybe DocCooked
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Optic' An_AffineFold NoIx TxSkelOut ScriptHash
-> TxSkelOut -> Maybe ScriptHash
forall k (is :: IxList) s a.
Is k An_AffineFold =>
Optic' k is s a -> s -> Maybe a
preview (Lens' TxSkelOut TxSkelOutReferenceScript
txSkelOutReferenceScriptL Lens' TxSkelOut TxSkelOutReferenceScript
-> Optic
An_AffineFold
NoIx
TxSkelOutReferenceScript
TxSkelOutReferenceScript
ScriptHash
ScriptHash
-> Optic' An_AffineFold NoIx TxSkelOut ScriptHash
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_AffineFold
NoIx
TxSkelOutReferenceScript
TxSkelOutReferenceScript
ScriptHash
ScriptHash
txSkelOutReferenceScriptHashAF) TxSkelOut
output
]
instance PrettyCooked TxSkelOut where
prettyCookedOpt :: PrettyCookedOpts -> TxSkelOut -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts TxSkelOut
output =
let txSkelOutList :: [DocCooked]
txSkelOutList = PrettyCookedOpts -> TxSkelOut -> [DocCooked]
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> a -> [DocCooked]
prettyCookedOptList PrettyCookedOpts
opts TxSkelOut
output
in PrettyCookedOpts
-> DocCooked -> DocCooked -> [DocCooked] -> DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> DocCooked
prettyItemize PrettyCookedOpts
opts (DocCooked
"Pays to" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> [DocCooked] -> DocCooked
forall a. HasCallStack => [a] -> a
head [DocCooked]
txSkelOutList) DocCooked
"-" ([DocCooked] -> [DocCooked]
forall a. HasCallStack => [a] -> [a]
tail [DocCooked]
txSkelOutList)
instance PrettyCookedMaybe TxSkelOutDatum where
prettyCookedOptMaybe :: PrettyCookedOpts -> TxSkelOutDatum -> Maybe DocCooked
prettyCookedOptMaybe PrettyCookedOpts
_ TxSkelOutDatum
NoTxSkelOutDatum = Maybe DocCooked
forall a. Maybe a
Nothing
prettyCookedOptMaybe PrettyCookedOpts
opts (SomeTxSkelOutDatum dat
dat DatumKind
Inline) =
DocCooked -> Maybe DocCooked
forall a. a -> Maybe a
Just (DocCooked -> Maybe DocCooked) -> DocCooked -> Maybe DocCooked
forall a b. (a -> b) -> a -> b
$
DocCooked
"Datum (inline)"
DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> DocCooked
"("
DocCooked -> DocCooked -> DocCooked
forall a. Semigroup a => a -> a -> a
<> PrettyCookedOpts -> BuiltinData -> DocCooked
forall a. ToHash a => PrettyCookedOpts -> a -> DocCooked
prettyHash PrettyCookedOpts
opts (dat -> BuiltinData
forall a. ToData a => a -> BuiltinData
Api.toBuiltinData dat
dat)
DocCooked -> DocCooked -> DocCooked
forall a. Semigroup a => a -> a -> a
<> DocCooked
"):"
DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann
PP.align (PrettyCookedOpts -> dat -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts dat
dat)
prettyCookedOptMaybe PrettyCookedOpts
opts (SomeTxSkelOutDatum dat
dat (Hashed DatumResolved
NotResolved)) =
DocCooked -> Maybe DocCooked
forall a. a -> Maybe a
Just (DocCooked -> Maybe DocCooked) -> DocCooked -> Maybe DocCooked
forall a b. (a -> b) -> a -> b
$
DocCooked
"Datum (hashed, hidden)"
DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> DocCooked
"("
DocCooked -> DocCooked -> DocCooked
forall a. Semigroup a => a -> a -> a
<> PrettyCookedOpts -> BuiltinData -> DocCooked
forall a. ToHash a => PrettyCookedOpts -> a -> DocCooked
prettyHash PrettyCookedOpts
opts (dat -> BuiltinData
forall a. ToData a => a -> BuiltinData
Api.toBuiltinData dat
dat)
DocCooked -> DocCooked -> DocCooked
forall a. Semigroup a => a -> a -> a
<> DocCooked
"):"
DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann
PP.align (PrettyCookedOpts -> dat -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts dat
dat)
prettyCookedOptMaybe PrettyCookedOpts
opts (SomeTxSkelOutDatum dat
dat (Hashed DatumResolved
Resolved)) =
DocCooked -> Maybe DocCooked
forall a. a -> Maybe a
Just (DocCooked -> Maybe DocCooked) -> DocCooked -> Maybe DocCooked
forall a b. (a -> b) -> a -> b
$
DocCooked
"Datum (hashed, visible)"
DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> DocCooked
"("
DocCooked -> DocCooked -> DocCooked
forall a. Semigroup a => a -> a -> a
<> PrettyCookedOpts -> BuiltinData -> DocCooked
forall a. ToHash a => PrettyCookedOpts -> a -> DocCooked
prettyHash PrettyCookedOpts
opts (dat -> BuiltinData
forall a. ToData a => a -> BuiltinData
Api.toBuiltinData dat
dat)
DocCooked -> DocCooked -> DocCooked
forall a. Semigroup a => a -> a -> a
<> DocCooked
"):"
DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann
PP.align (PrettyCookedOpts -> dat -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts dat
dat)
instance PrettyCookedList TxSkelOpts where
prettyCookedOptListMaybe :: PrettyCookedOpts -> TxSkelOpts -> [Maybe DocCooked]
prettyCookedOptListMaybe
PrettyCookedOpts
opts
( TxSkelOpts
Bool
txSkelOptAutoSlotIncrease
Tx ConwayEra -> Tx ConwayEra
_
BalancingPolicy
txSkelOptBalancingPolicy
FeePolicy
txSkelOptFeePolicy
BalanceOutputPolicy
txSkelOptBalanceOutputPolicy
BalancingUtxos
txSkelOptBalancingUtxos
Params -> Params
_
CollateralUtxos
txSkelOptCollateralUtxos
AnchorResolution
txSkelOptAnchorResolution
) =
[ Bool -> (Bool -> DocCooked) -> Bool -> Maybe DocCooked
forall a. Eq a => a -> (a -> DocCooked) -> a -> Maybe DocCooked
prettyIfNot Bool
True Bool -> DocCooked
prettyAutoSlotIncrease Bool
txSkelOptAutoSlotIncrease,
BalanceOutputPolicy
-> (BalanceOutputPolicy -> DocCooked)
-> BalanceOutputPolicy
-> Maybe DocCooked
forall a. Eq a => a -> (a -> DocCooked) -> a -> Maybe DocCooked
prettyIfNot BalanceOutputPolicy
forall a. Default a => a
def BalanceOutputPolicy -> DocCooked
prettyBalanceOutputPolicy BalanceOutputPolicy
txSkelOptBalanceOutputPolicy,
FeePolicy
-> (FeePolicy -> DocCooked) -> FeePolicy -> Maybe DocCooked
forall a. Eq a => a -> (a -> DocCooked) -> a -> Maybe DocCooked
prettyIfNot FeePolicy
forall a. Default a => a
def FeePolicy -> DocCooked
prettyBalanceFeePolicy FeePolicy
txSkelOptFeePolicy,
BalancingPolicy
-> (BalancingPolicy -> DocCooked)
-> BalancingPolicy
-> Maybe DocCooked
forall a. Eq a => a -> (a -> DocCooked) -> a -> Maybe DocCooked
prettyIfNot BalancingPolicy
forall a. Default a => a
def BalancingPolicy -> DocCooked
prettyBalancingPolicy BalancingPolicy
txSkelOptBalancingPolicy,
BalancingUtxos
-> (BalancingUtxos -> DocCooked)
-> BalancingUtxos
-> Maybe DocCooked
forall a. Eq a => a -> (a -> DocCooked) -> a -> Maybe DocCooked
prettyIfNot BalancingUtxos
forall a. Default a => a
def BalancingUtxos -> DocCooked
prettyBalancingUtxos BalancingUtxos
txSkelOptBalancingUtxos,
CollateralUtxos
-> (CollateralUtxos -> DocCooked)
-> CollateralUtxos
-> Maybe DocCooked
forall a. Eq a => a -> (a -> DocCooked) -> a -> Maybe DocCooked
prettyIfNot CollateralUtxos
forall a. Default a => a
def CollateralUtxos -> DocCooked
prettyCollateralUtxos CollateralUtxos
txSkelOptCollateralUtxos,
AnchorResolution
-> (AnchorResolution -> DocCooked)
-> AnchorResolution
-> Maybe DocCooked
forall a. Eq a => a -> (a -> DocCooked) -> a -> Maybe DocCooked
prettyIfNot AnchorResolution
forall a. Default a => a
def AnchorResolution -> DocCooked
prettyAnchorResolution AnchorResolution
txSkelOptAnchorResolution
]
where
prettyIfNot :: (Eq a) => a -> (a -> DocCooked) -> a -> Maybe DocCooked
prettyIfNot :: forall a. Eq a => a -> (a -> DocCooked) -> a -> Maybe DocCooked
prettyIfNot a
defaultValue a -> DocCooked
f a
x
| a
x a -> a -> Bool
forall a. Eq a => a -> a -> Bool
== a
defaultValue Bool -> Bool -> Bool
&& Bool -> Bool
not (PrettyCookedOpts -> Bool
pcOptPrintDefaultTxSkelOpts PrettyCookedOpts
opts) = Maybe DocCooked
forall a. Maybe a
Nothing
| Bool
otherwise = DocCooked -> Maybe DocCooked
forall a. a -> Maybe a
Just (DocCooked -> Maybe DocCooked) -> DocCooked -> Maybe DocCooked
forall a b. (a -> b) -> a -> b
$ a -> DocCooked
f a
x
prettyAutoSlotIncrease :: Bool -> DocCooked
prettyAutoSlotIncrease :: Bool -> DocCooked
prettyAutoSlotIncrease Bool
True = DocCooked
"Automatic slot increase"
prettyAutoSlotIncrease Bool
False = DocCooked
"No automatic slot increase"
prettyBalanceOutputPolicy :: BalanceOutputPolicy -> DocCooked
prettyBalanceOutputPolicy :: BalanceOutputPolicy -> DocCooked
prettyBalanceOutputPolicy BalanceOutputPolicy
AdjustExistingOutput = DocCooked
"Balance policy: Adjust existing outputs"
prettyBalanceOutputPolicy BalanceOutputPolicy
DontAdjustExistingOutput = DocCooked
"Balance policy: Don't adjust existing outputs"
prettyBalancingPolicy :: BalancingPolicy -> DocCooked
prettyBalancingPolicy :: BalancingPolicy -> DocCooked
prettyBalancingPolicy BalancingPolicy
BalanceWithFirstSigner = DocCooked
"Balance with first signer"
prettyBalancingPolicy (BalanceWith Wallet
w) = DocCooked
"Balance with" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Wallet -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Wallet
w
prettyBalancingPolicy BalancingPolicy
DoNotBalance = DocCooked
"Do not balance"
prettyCollateralUtxos :: CollateralUtxos -> DocCooked
prettyCollateralUtxos :: CollateralUtxos -> DocCooked
prettyCollateralUtxos CollateralUtxos
CollateralUtxosFromBalancingWallet =
PrettyCookedOpts
-> DocCooked -> DocCooked -> [DocCooked] -> DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> DocCooked
prettyItemize
PrettyCookedOpts
opts
DocCooked
"Collateral policy:"
DocCooked
"-"
[ DocCooked
"Use value-only utxos from balancing wallet" :: DocCooked,
DocCooked
"Send return collaterals to balancing wallet"
]
prettyCollateralUtxos (CollateralUtxosFromWallet Wallet
w)
| DocCooked
prettyWallet <- PrettyCookedOpts -> Wallet -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Wallet
w =
PrettyCookedOpts
-> DocCooked -> DocCooked -> [DocCooked] -> DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> DocCooked
prettyItemize
PrettyCookedOpts
opts
DocCooked
"Collateral policy:"
DocCooked
"-"
[ DocCooked
"Use value-only utxos from" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> DocCooked
prettyWallet,
DocCooked
"Send return collaterals to" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> DocCooked
prettyWallet
]
prettyCollateralUtxos (CollateralUtxosFromSet Set TxOutRef
txOutRefs Wallet
w) =
PrettyCookedOpts
-> DocCooked -> DocCooked -> [DocCooked] -> DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> DocCooked
prettyItemize
PrettyCookedOpts
opts
DocCooked
"Collateral policy:"
DocCooked
"-"
[ PrettyCookedOpts
-> DocCooked -> DocCooked -> Set TxOutRef -> DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> DocCooked
prettyItemize PrettyCookedOpts
opts DocCooked
"Choose among the following TxOutRefs:" DocCooked
"-" Set TxOutRef
txOutRefs,
DocCooked
"Send return collaterals to" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Wallet -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Wallet
w
]
prettyBalancingUtxos :: BalancingUtxos -> DocCooked
prettyBalancingUtxos :: BalancingUtxos -> DocCooked
prettyBalancingUtxos BalancingUtxos
BalancingUtxosFromBalancingWallet = DocCooked
"Balance with 'only value' utxos from the balancing wallet"
prettyBalancingUtxos (BalancingUtxosFromSet Set TxOutRef
utxos) = PrettyCookedOpts
-> DocCooked -> DocCooked -> Set TxOutRef -> DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> DocCooked
prettyItemize PrettyCookedOpts
opts DocCooked
"Balance with the following utxos:" DocCooked
"-" Set TxOutRef
utxos
prettyBalanceFeePolicy :: FeePolicy -> DocCooked
prettyBalanceFeePolicy :: FeePolicy -> DocCooked
prettyBalanceFeePolicy FeePolicy
AutoFeeComputation = DocCooked
"Use automatically computed fee"
prettyBalanceFeePolicy (ManualFee Integer
fee) = DocCooked
"Use the following fee:" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> Integer -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts Integer
fee
prettyAnchorResolution :: AnchorResolution -> DocCooked
prettyAnchorResolution :: AnchorResolution -> DocCooked
prettyAnchorResolution AnchorResolution
AnchorResolutionHttp = DocCooked
"Resolve anchor url with an (unsafe) http connection"
prettyAnchorResolution (AnchorResolutionLocal Map String ByteString
urlMap) =
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> DocCooked
prettyItemize @[DocCooked] PrettyCookedOpts
opts DocCooked
"Resolve anchor url with the following table keys" DocCooked
"-" (String -> DocCooked
forall a ann. Show a => a -> Doc ann
PP.viaShow (String -> DocCooked) -> [String] -> [DocCooked]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Map String ByteString -> [String]
forall k a. Map k a -> [k]
Map.keys Map String ByteString
urlMap)
instance PrettyCookedList (Contextualized Api.TxOutRef) where
prettyCookedOptList :: PrettyCookedOpts -> Contextualized TxOutRef -> [DocCooked]
prettyCookedOptList PrettyCookedOpts
opts (Contextualized Map TxOutRef (TxSkelOut, Bool)
managedTxOuts TxOutRef
txOutRef) =
[DocCooked]
-> ((TxSkelOut, Bool) -> [DocCooked])
-> Maybe (TxSkelOut, Bool)
-> [DocCooked]
forall b a. b -> (a -> b) -> Maybe a -> b
maybe [] (PrettyCookedOpts -> TxSkelOut -> [DocCooked]
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> a -> [DocCooked]
prettyCookedOptList PrettyCookedOpts
opts (TxSkelOut -> [DocCooked])
-> ((TxSkelOut, Bool) -> TxSkelOut)
-> (TxSkelOut, Bool)
-> [DocCooked]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (TxSkelOut, Bool) -> TxSkelOut
forall a b. (a, b) -> a
fst) (TxOutRef
-> Map TxOutRef (TxSkelOut, Bool) -> Maybe (TxSkelOut, Bool)
forall k a. Ord k => k -> Map k a -> Maybe a
Map.lookup TxOutRef
txOutRef Map TxOutRef (TxSkelOut, Bool)
managedTxOuts)
data Input = Input
{ Input -> TxOutRef
inputORef :: Api.TxOutRef,
Input -> TxSkelRedeemer
inputRed :: TxSkelRedeemer
}
instance PrettyCooked (Contextualized Input) where
prettyCookedOpt :: PrettyCookedOpts -> Contextualized Input -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts cIn :: Contextualized Input
cIn@(Contextualized Map TxOutRef (TxSkelOut, Bool)
_ Input
input) =
case PrettyCookedOpts -> Contextualized TxOutRef -> [DocCooked]
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> a -> [DocCooked]
prettyCookedOptList PrettyCookedOpts
opts (Input -> TxOutRef
inputORef (Input -> TxOutRef)
-> Contextualized Input -> Contextualized TxOutRef
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Contextualized Input
cIn) of
(DocCooked
addressDoc : [DocCooked]
otherDocs) ->
PrettyCookedOpts
-> DocCooked -> DocCooked -> [DocCooked] -> DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> DocCooked
prettyItemize
PrettyCookedOpts
opts
( DocCooked
"Spends"
DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> TxOutRef -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts (Input -> TxOutRef
inputORef Input
input)
DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> DocCooked
"from"
DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> DocCooked
addressDoc
)
DocCooked
"-"
(PrettyCookedOpts -> TxSkelRedeemer -> [DocCooked]
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> a -> [DocCooked]
prettyCookedOptList PrettyCookedOpts
opts (Input -> TxSkelRedeemer
inputRed Input
input) [DocCooked] -> [DocCooked] -> [DocCooked]
forall a. Semigroup a => a -> a -> a
<> [DocCooked]
otherDocs)
[DocCooked]
_ -> DocCooked
"Spends" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> TxOutRef -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts (Input -> TxOutRef
inputORef Input
input) DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> DocCooked
"(non resolved)"
newtype ReferenceInput = ReferenceInput {ReferenceInput -> TxOutRef
unReferenceInput :: Api.TxOutRef}
instance PrettyCooked (Contextualized ReferenceInput) where
prettyCookedOpt :: PrettyCookedOpts -> Contextualized ReferenceInput -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts cRefIn :: Contextualized ReferenceInput
cRefIn@(Contextualized Map TxOutRef (TxSkelOut, Bool)
_ (ReferenceInput TxOutRef
txOutRef)) =
case PrettyCookedOpts -> Contextualized TxOutRef -> [DocCooked]
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> a -> [DocCooked]
prettyCookedOptList PrettyCookedOpts
opts (ReferenceInput -> TxOutRef
unReferenceInput (ReferenceInput -> TxOutRef)
-> Contextualized ReferenceInput -> Contextualized TxOutRef
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Contextualized ReferenceInput
cRefIn) of
(DocCooked
addressDoc : [DocCooked]
otherDocs) ->
PrettyCookedOpts
-> DocCooked -> DocCooked -> [DocCooked] -> DocCooked
forall a.
PrettyCookedList a =>
PrettyCookedOpts -> DocCooked -> DocCooked -> a -> DocCooked
prettyItemize
PrettyCookedOpts
opts
( DocCooked
"References output"
DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> TxOutRef -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts TxOutRef
txOutRef
DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> DocCooked
"from"
DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> DocCooked
addressDoc
)
DocCooked
"-"
[DocCooked]
otherDocs
[DocCooked]
_ -> DocCooked
"References" DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PrettyCookedOpts -> TxOutRef -> DocCooked
forall a. PrettyCooked a => PrettyCookedOpts -> a -> DocCooked
prettyCookedOpt PrettyCookedOpts
opts TxOutRef
txOutRef DocCooked -> DocCooked -> DocCooked
forall ann. Doc ann -> Doc ann -> Doc ann
<+> DocCooked
"(non resolved)"