{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE GADTs #-}
module Cardano.CLI.EraBased.Script.Withdrawal.Type
( CliWithdrawalScriptRequirements (..)
, PlutusRefScriptCliArgs (..)
, PlutusScriptCliArgs (..)
, WithdrawalScriptWitness (..)
, createSimpleOrPlutusScriptFromCliArgs
, createPlutusReferenceScriptFromCliArgs
)
where
import Cardano.Api
import Cardano.CLI.Type.Common (ScriptDataOrFile)
newtype WithdrawalScriptWitness era
= WithdrawalScriptWitness {forall era.
WithdrawalScriptWitness era -> ScriptWitness WitCtxStake era
wswScriptWitness :: ScriptWitness WitCtxStake era}
deriving Int -> WithdrawalScriptWitness era -> ShowS
[WithdrawalScriptWitness era] -> ShowS
WithdrawalScriptWitness era -> String
(Int -> WithdrawalScriptWitness era -> ShowS)
-> (WithdrawalScriptWitness era -> String)
-> ([WithdrawalScriptWitness era] -> ShowS)
-> Show (WithdrawalScriptWitness era)
forall era. Int -> WithdrawalScriptWitness era -> ShowS
forall era. [WithdrawalScriptWitness era] -> ShowS
forall era. WithdrawalScriptWitness era -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall era. Int -> WithdrawalScriptWitness era -> ShowS
showsPrec :: Int -> WithdrawalScriptWitness era -> ShowS
$cshow :: forall era. WithdrawalScriptWitness era -> String
show :: WithdrawalScriptWitness era -> String
$cshowList :: forall era. [WithdrawalScriptWitness era] -> ShowS
showList :: [WithdrawalScriptWitness era] -> ShowS
Show
data CliWithdrawalScriptRequirements
= OnDiskPlutusScript PlutusScriptCliArgs
| OnDiskSimpleScript (File ScriptInAnyLang In)
| OnDiskPlutusRefScript PlutusRefScriptCliArgs
deriving Int -> CliWithdrawalScriptRequirements -> ShowS
[CliWithdrawalScriptRequirements] -> ShowS
CliWithdrawalScriptRequirements -> String
(Int -> CliWithdrawalScriptRequirements -> ShowS)
-> (CliWithdrawalScriptRequirements -> String)
-> ([CliWithdrawalScriptRequirements] -> ShowS)
-> Show CliWithdrawalScriptRequirements
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CliWithdrawalScriptRequirements -> ShowS
showsPrec :: Int -> CliWithdrawalScriptRequirements -> ShowS
$cshow :: CliWithdrawalScriptRequirements -> String
show :: CliWithdrawalScriptRequirements -> String
$cshowList :: [CliWithdrawalScriptRequirements] -> ShowS
showList :: [CliWithdrawalScriptRequirements] -> ShowS
Show
data PlutusScriptCliArgs
= OnDiskPlutusScriptCliArgs
(File ScriptInAnyLang In)
ScriptDataOrFile
ExecutionUnits
deriving Int -> PlutusScriptCliArgs -> ShowS
[PlutusScriptCliArgs] -> ShowS
PlutusScriptCliArgs -> String
(Int -> PlutusScriptCliArgs -> ShowS)
-> (PlutusScriptCliArgs -> String)
-> ([PlutusScriptCliArgs] -> ShowS)
-> Show PlutusScriptCliArgs
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PlutusScriptCliArgs -> ShowS
showsPrec :: Int -> PlutusScriptCliArgs -> ShowS
$cshow :: PlutusScriptCliArgs -> String
show :: PlutusScriptCliArgs -> String
$cshowList :: [PlutusScriptCliArgs] -> ShowS
showList :: [PlutusScriptCliArgs] -> ShowS
Show
createSimpleOrPlutusScriptFromCliArgs
:: File ScriptInAnyLang In
-> Maybe (ScriptDataOrFile, ExecutionUnits)
-> CliWithdrawalScriptRequirements
createSimpleOrPlutusScriptFromCliArgs :: File ScriptInAnyLang 'In
-> Maybe (ScriptDataOrFile, ExecutionUnits)
-> CliWithdrawalScriptRequirements
createSimpleOrPlutusScriptFromCliArgs File ScriptInAnyLang 'In
scriptFp (Just (ScriptDataOrFile
redeemer, ExecutionUnits
execUnits)) =
PlutusScriptCliArgs -> CliWithdrawalScriptRequirements
OnDiskPlutusScript (PlutusScriptCliArgs -> CliWithdrawalScriptRequirements)
-> PlutusScriptCliArgs -> CliWithdrawalScriptRequirements
forall a b. (a -> b) -> a -> b
$ File ScriptInAnyLang 'In
-> ScriptDataOrFile -> ExecutionUnits -> PlutusScriptCliArgs
OnDiskPlutusScriptCliArgs File ScriptInAnyLang 'In
scriptFp ScriptDataOrFile
redeemer ExecutionUnits
execUnits
createSimpleOrPlutusScriptFromCliArgs File ScriptInAnyLang 'In
scriptFp Maybe (ScriptDataOrFile, ExecutionUnits)
Nothing =
File ScriptInAnyLang 'In -> CliWithdrawalScriptRequirements
OnDiskSimpleScript File ScriptInAnyLang 'In
scriptFp
data PlutusRefScriptCliArgs
= PlutusRefScriptCliArgs
TxIn
AnyPlutusScriptVersion
ScriptDataOrFile
ExecutionUnits
deriving Int -> PlutusRefScriptCliArgs -> ShowS
[PlutusRefScriptCliArgs] -> ShowS
PlutusRefScriptCliArgs -> String
(Int -> PlutusRefScriptCliArgs -> ShowS)
-> (PlutusRefScriptCliArgs -> String)
-> ([PlutusRefScriptCliArgs] -> ShowS)
-> Show PlutusRefScriptCliArgs
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PlutusRefScriptCliArgs -> ShowS
showsPrec :: Int -> PlutusRefScriptCliArgs -> ShowS
$cshow :: PlutusRefScriptCliArgs -> String
show :: PlutusRefScriptCliArgs -> String
$cshowList :: [PlutusRefScriptCliArgs] -> ShowS
showList :: [PlutusRefScriptCliArgs] -> ShowS
Show
createPlutusReferenceScriptFromCliArgs
:: TxIn
-> AnyPlutusScriptVersion
-> ScriptDataOrFile
-> ExecutionUnits
-> CliWithdrawalScriptRequirements
createPlutusReferenceScriptFromCliArgs :: TxIn
-> AnyPlutusScriptVersion
-> ScriptDataOrFile
-> ExecutionUnits
-> CliWithdrawalScriptRequirements
createPlutusReferenceScriptFromCliArgs TxIn
txIn AnyPlutusScriptVersion
version ScriptDataOrFile
redeemer ExecutionUnits
execUnits =
PlutusRefScriptCliArgs -> CliWithdrawalScriptRequirements
OnDiskPlutusRefScript (PlutusRefScriptCliArgs -> CliWithdrawalScriptRequirements)
-> PlutusRefScriptCliArgs -> CliWithdrawalScriptRequirements
forall a b. (a -> b) -> a -> b
$ TxIn
-> AnyPlutusScriptVersion
-> ScriptDataOrFile
-> ExecutionUnits
-> PlutusRefScriptCliArgs
PlutusRefScriptCliArgs TxIn
txIn AnyPlutusScriptVersion
version ScriptDataOrFile
redeemer ExecutionUnits
execUnits