Merge pull request #377 from input-output-hk/SCP-4758
PLT-3880 Enable `mainnet`.
PLT-3880 Enable `mainnet`.
-> O.Parser ContractCommand
exportMarloweOptions network =
Export
<$> O.option parseNetworkId (O.long "testnet-magic" <> O.metavar "INTEGER" <> network <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value.")
<$> parseNetworkId network
<*> (O.optional . O.option parseStakeAddressReference) (O.long "stake-address" <> O.metavar "ADDRESS" <> O.help "Stake address, if any." )
<*> (O.optional . O.option parseCurrencySymbol) (O.long "roles-currency" <> O.metavar "CURRENCY_SYMBOL" <> O.help "The currency symbol for roles, if any." )
<*> protocolVersionOpt
-> O.Parser ContractCommand
exportAddressOptions network =
ExportAddress
<$> O.option parseNetworkId (O.long "testnet-magic" <> O.metavar "INTEGER" <> network <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value.")
<$> parseNetworkId network
<*> (O.optional . O.option parseStakeAddressReference) (O.long "stake-address" <> O.metavar "ADDRESS" <> O.help "Stake address, if any." )
-> O.Parser ContractCommand
exportValidatorOptions network =
ExportValidator
<$> O.option parseNetworkId (O.long "testnet-magic" <> O.metavar "INTEGER" <> network <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value.")
<$> parseNetworkId network
<*> (O.optional . O.option parseStakeAddressReference) (O.long "stake-address" <> O.metavar "ADDRESS" <> O.help "Stake address, if any." )
<*> protocolVersionOpt
<*> (O.optional . O.strOption) (O.long "out-file" <> O.metavar "OUTPUT_FILE" <> O.help "JSON output file for validator." )
-- | Parser for network ID.
parseNetworkId :: O.ReadM NetworkId
parseNetworkId = Testnet . NetworkMagic . toEnum <$> O.auto
parseNetworkId :: O.Mod O.OptionFields NetworkId -> O.Parser NetworkId
parseNetworkId network =
parseMainnet <|> parseTestnet
where
parseMainnet = O.flag' Mainnet (O.long "mainnet" <> O.help "Execute on mainnet.")
parseTestnet = O.option (Testnet . NetworkMagic . toEnum <$> O.auto) (O.long "testnet-magic" <> O.metavar "INTEGER" <> network <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value.")
-- | Parser for stake address reference.
-> O.Parser RoleCommand
exportAddressOptions network =
ExportAddress
<$> O.option parseNetworkId (O.long "testnet-magic" <> O.metavar "INTEGER" <> network <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value.")
<$> parseNetworkId network
<*> (O.optional . O.option parseStakeAddressReference) (O.long "stake-address" <> O.metavar "ADDRESS" <> O.help "Stake address, if any." )
-> O.Parser RoleCommand
exportValidatorOptions network =
ExportValidator
<$> O.option parseNetworkId (O.long "testnet-magic" <> O.metavar "INTEGER" <> network <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value.")
<$> parseNetworkId network
<*> (O.optional . O.option parseStakeAddressReference) (O.long "stake-address" <> O.metavar "ADDRESS" <> O.help "Stake address, if any." )
<*> protocolVersionOpt
<*> (O.optional . O.strOption) (O.long "out-file" <> O.metavar "OUTPUT_FILE" <> O.help "JSON output file for validator." )
, StakeAddressReference(..)
, TxIn
)
import Control.Monad (when)
import Control.Monad.Except (MonadError, MonadIO, liftIO, throwError)
import Control.Monad.Except (MonadError, MonadIO, liftIO)
import Data.Foldable (asum)
import Data.Maybe (fromMaybe)
import Language.Marlowe.CLI.Analyze (analyze)
marloweParams' = maybe defaultMarloweParams marloweParams $ rolesCurrency command
stake' = fromMaybe NoStakeAddress $ stake command
printTxId = liftIO . putStrLn . ("TxId " <>) . show
guardMainnet = when (network' == Mainnet) $ throwError "Mainnet usage is not supported."
padTxOut (address, value) = (address, Nothing, value)
outputs' = padTxOut <$> outputs command
case command of
maximumTime
outputFile
printStats
Run{..} -> guardMainnet
>> runTransaction
Run{..} -> runTransaction
connection
marloweIn
marloweOut
printStats
invalid
>>= printTxId
Withdraw{..} -> guardMainnet
>> withdrawFunds
Withdraw{..} -> withdrawFunds
connection
marloweOut
roleName
printStats
invalid
>>= printTxId
AutoRun{..} -> guardMainnet
>> autoRunTransaction
AutoRun{..} -> autoRunTransaction
connection
marloweIn'
marloweOut
printStats
invalid
>>= printTxId
AutoWithdraw{..} -> guardMainnet
>> autoWithdrawFunds
AutoWithdraw{..} -> autoWithdrawFunds
connection
marloweOut
roleName
-> O.Parser (RunCommand era)
initializeOptions network socket =
Initialize
<$> O.option parseNetworkId (O.long "testnet-magic" <> O.metavar "INTEGER" <> network <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value." )
<$> parseNetworkId network
<*> O.strOption (O.long "socket-path" <> O.metavar "SOCKET_FILE" <> socket <> O.help "Location of the cardano-node socket file. Defaults to the CARDANO_NODE_SOCKET_PATH environment variable's value.")
<*> (O.optional . O.option parseStakeAddressReference) (O.long "stake-address" <> O.metavar "ADDRESS" <> O.help "Stake address, if any." )
<*> (O.optional . O.option parseCurrencySymbol) (O.long "roles-currency" <> O.metavar "CURRENCY_SYMBOL" <> O.help "The currency symbol for roles, if any." )
-> O.Parser (RunCommand era)
runOptions network socket =
Run
<$> O.option parseNetworkId (O.long "testnet-magic" <> O.metavar "INTEGER" <> network <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value." )
<$> parseNetworkId network
<*> O.strOption (O.long "socket-path" <> O.metavar "SOCKET_FILE" <> socket <> O.help "Location of the cardano-node socket file. Defaults to the CARDANO_NODE_SOCKET_PATH environment variable's value.")
<*> O.optional parseMarloweIn
<*> O.strOption (O.long "marlowe-out-file"<> O.metavar "MARLOWE_FILE" <> O.help "JSON file with the Marlowe inputs, final state, and final contract." )
-> O.Parser (RunCommand era)
withdrawOptions network socket =
Withdraw
<$> O.option parseNetworkId (O.long "testnet-magic" <> O.metavar "INTEGER" <> network <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value." )
<$> parseNetworkId network
<*> O.strOption (O.long "socket-path" <> O.metavar "SOCKET_FILE" <> socket <> O.help "Location of the cardano-node socket file. Defaults to the CARDANO_NODE_SOCKET_PATH environment variable's value.")
<*> O.strOption (O.long "marlowe-file" <> O.metavar "MARLOWE_FILE" <> O.help "JSON file with the Marlowe inputs, final state, and final contract." )
<*> O.option parseTokenName (O.long "role-name" <> O.metavar "TOKEN_NAME" <> O.help "The role name for the withdrawal." )
-> O.Parser (RunCommand era)
autoRunOptions network socket =
AutoRun
<$> O.option parseNetworkId (O.long "testnet-magic" <> O.metavar "INTEGER" <> network <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value." )
<$> parseNetworkId network
<*> O.strOption (O.long "socket-path" <> O.metavar "SOCKET_FILE" <> socket <> O.help "Location of the cardano-node socket file. Defaults to the CARDANO_NODE_SOCKET_PATH environment variable's value.")
<*> O.optional parseMarloweIn
<*> O.strOption (O.long "marlowe-out-file"<> O.metavar "MARLOWE_FILE" <> O.help "JSON file with the Marlowe inputs, final state, and final contract." )
-> O.Parser (RunCommand era)
autoWithdrawOptions network socket =
AutoWithdraw
<$> O.option parseNetworkId (O.long "testnet-magic" <> O.metavar "INTEGER" <> network <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value." )
<$> parseNetworkId network
<*> O.strOption (O.long "socket-path" <> O.metavar "SOCKET_FILE" <> socket <> O.help "Location of the cardano-node socket file. Defaults to the CARDANO_NODE_SOCKET_PATH environment variable's value.")
<*> O.strOption (O.long "marlowe-file" <> O.metavar "MARLOWE_FILE" <> O.help "JSON file with the Marlowe inputs, final state, and final contract." )
<*> O.option parseTokenName (O.long "role-name" <> O.metavar "TOKEN_NAME" <> O.help "The role name for the withdrawal." )
-> O.Parser (RunCommand era)
analyzeOptions network socket =
Analyze
<$> O.option parseNetworkId (O.long "testnet-magic" <> O.metavar "INTEGER" <> network <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value." )
<$> parseNetworkId network
<*> O.strOption (O.long "socket-path" <> O.metavar "SOCKET_FILE" <> socket <> O.help "Location of the cardano-node socket file. Defaults to the CARDANO_NODE_SOCKET_PATH environment variable's value.")
<*> O.strOption (O.long "marlowe-file" <> O.metavar "MARLOWE_FILE" <> O.help "JSON file with the state and contract." )
<*> O.switch (O.long "preconditions" <> O.help "Whether to check preconditions for valid Marlowe state." )
-> O.Parser (TestCommand era)
scriptsOptions network socket =
ScriptTests
<$> O.option parseNetworkId (O.long "testnet-magic" <> O.metavar "INTEGER" <> network <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value." )
<$> parseNetworkId network
<*> O.strOption (O.long "socket-path" <> O.metavar "SOCKET_FILE" <> socket <> O.help "Location of the cardano-node socket file. Defaults to the CARDANO_NODE_SOCKET_PATH environment variable's value.")
<*> O.strOption (O.long "faucet-key" <> O.metavar "SIGNING_FILE" <> O.help "The file containing the signing key for the faucet." )
<*> O.option parseAddress (O.long "faucet-address" <> O.metavar "ADDRESS" <> O.help "The address of the faucet." )
, SlotNo
, TxIn
)
import Control.Monad (when)
import Control.Monad.Except (MonadError, MonadIO, liftIO, throwError)
import Control.Monad.Except (MonadError, MonadIO, liftIO)
import Data.Maybe (fromMaybe)
import Language.Marlowe.CLI.Command.Parse
( parseAddress
, localNodeSocketPath = socketPath command
}
printTxId = liftIO . putStrLn . ("TxId " <>) . show
guardMainnet = when (network' == Mainnet) $ throwError "Mainnet usage is not supported."
padTxOut (address, value) = (address, Nothing, value)
outputs' = padTxOut <$> outputs command
case command of
printStats
invalid
>>= printTxId
BuildCreate{..} -> guardMainnet
>> buildIncoming
BuildCreate{..} -> buildIncoming
connection
scriptAddress
signingKeyFiles
printStats
invalid
>>= printTxId
BuildAdvance{..} -> guardMainnet
>> buildContinuing
BuildAdvance{..} -> buildContinuing
connection
scriptAddress
validatorFile
printStats
invalid
>>= printTxId
BuildClose{..} -> guardMainnet
>> buildOutgoing
BuildClose{..} -> buildOutgoing
connection
validatorFile
redeemerFile
-> O.Parser (TransactionCommand era)
buildSimpleOptions network socket =
BuildTransact
<$> O.option parseNetworkId (O.long "testnet-magic" <> O.metavar "INTEGER" <> network <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value." )
<$> parseNetworkId network
<*> O.strOption (O.long "socket-path" <> O.metavar "SOCKET_FILE" <> socket <> O.help "Location of the cardano-node socket file. Defaults to the CARDANO_NODE_SOCKET_PATH environment variable's value.")
<*> requiredSignersOpt
<*> (O.some . O.option parseTxIn) (O.long "tx-in" <> O.metavar "TXID#TXIX" <> O.help "Transaction input in TxId#TxIx format." )
-> O.Parser (TransactionCommand era)
buildIncomingOptions network socket =
BuildCreate
<$> O.option parseNetworkId (O.long "testnet-magic" <> O.metavar "INTEGER" <> network <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value." )
<$> parseNetworkId network
<*> O.strOption (O.long "socket-path" <> O.metavar "SOCKET_FILE" <> socket <> O.help "Location of the cardano-node socket file. Defaults to the CARDANO_NODE_SOCKET_PATH environment variable's value.")
<*> O.option parseAddress (O.long "script-address" <> O.metavar "ADDRESS" <> O.help "Address of the Marlowe contract." )
<*> requiredSignersOpt
-> O.Parser (TransactionCommand era)
buildContinuingOptions network socket =
BuildAdvance
<$> O.option parseNetworkId (O.long "testnet-magic" <> O.metavar "INTEGER" <> network <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value." )
<$> parseNetworkId network
<*> O.strOption (O.long "socket-path" <> O.metavar "SOCKET_FILE" <> socket <> O.help "Location of the cardano-node socket file. Defaults to the CARDANO_NODE_SOCKET_PATH environment variable's value.")
<*> O.option parseAddress (O.long "script-address" <> O.metavar "ADDRESS" <> O.help "Address of the Marlowe contract." )
<*> O.strOption (O.long "tx-in-script-file" <> O.metavar "PLUTUS_FILE" <> O.help "Plutus file for Marlowe contract." )
-> O.Parser (TransactionCommand era)
buildOutgoingOptions network socket =
BuildClose
<$> O.option parseNetworkId (O.long "testnet-magic" <> O.metavar "INTEGER" <> network <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value." )
<$> parseNetworkId network
<*> O.strOption (O.long "socket-path" <> O.metavar "SOCKET_FILE" <> socket <> O.help "Location of the cardano-node socket file. Defaults to the CARDANO_NODE_SOCKET_PATH environment variable's value.")
<*> O.strOption (O.long "tx-in-script-file" <> O.metavar "PLUTUS_FILE" <> O.help "Plutus file for Marlowe contract." )
<*> O.strOption (O.long "tx-in-redeemer-file" <> O.metavar "REDEEMER_FILE" <> O.help "Redeemer JSON file spent from Marlowe contract." )
-> O.Parser (TransactionCommand era)
submitOptions network socket =
Submit
<$> O.option parseNetworkId (O.long "testnet-magic" <> O.metavar "INTEGER" <> network <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value." )
<$> parseNetworkId network
<*> O.strOption (O.long "socket-path" <> O.metavar "SOCKET_FILE" <> socket <> O.help "Location of the cardano-node socket file. Defaults to the CARDANO_NODE_SOCKET_PATH environment variable's value.")
<*> (TxBodyFile <$> O.strOption (O.long "tx-body-file" <> O.metavar "BODY_FILE" <> O.help "File containing the transaction body." ))
<*> requiredSignersOpt
publishOptions :: IsShelleyBasedEra era => O.Mod O.OptionFields NetworkId -> O.Mod O.OptionFields FilePath -> O.Parser (TransactionCommand era)
publishOptions network socket =
Publish
<$> O.option parseNetworkId (O.long "testnet-magic" <> network <> O.metavar "INTEGER" <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value." )
<$> parseNetworkId network
<*> O.strOption (O.long "socket-path" <> socket <> O.metavar "SOCKET_FILE" <> O.help "Location of the cardano-node socket file. Defaults to the CARDANO_NODE_SOCKET_PATH environment variable's value.")
<*> requiredSignerOpt
findPublishedOptions :: IsShelleyBasedEra era => O.Mod O.OptionFields NetworkId -> O.Mod O.OptionFields FilePath -> O.Parser (TransactionCommand era)
findPublishedOptions network socket =
FindPublished
<$> O.option parseNetworkId (O.long "testnet-magic" <> network <> O.metavar "INTEGER" <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value." )
<$> parseNetworkId network
<*> O.strOption (O.long "socket-path" <> socket <> O.metavar "SOCKET_FILE" <> O.help "Location of the cardano-node socket file. Defaults to the CARDANO_NODE_SOCKET_PATH environment variable's value.")
<*> O.optional publishingStrategyOpt
cleanOptions :: IsShelleyBasedEra era => O.Mod O.OptionFields NetworkId -> O.Mod O.OptionFields FilePath -> O.Parser (UtilCommand era)
cleanOptions network socket =
Clean
<$> O.option parseNetworkId (O.long "testnet-magic" <> network <> O.metavar "INTEGER" <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value." )
<$> parseNetworkId network
<*> O.strOption (O.long "socket-path" <> socket <> O.metavar "SOCKET_FILE" <> O.help "Location of the cardano-node socket file. Defaults to the CARDANO_NODE_SOCKET_PATH environment variable's value.")
<*> requiredSignersOpt
mintOptions :: IsShelleyBasedEra era => O.Mod O.OptionFields NetworkId -> O.Mod O.OptionFields FilePath -> O.Parser (UtilCommand era)
mintOptions network socket =
Mint
<$> O.option parseNetworkId (O.long "testnet-magic" <> O.metavar "INTEGER" <> network <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value." )
<$> parseNetworkId network
<*> O.strOption (O.long "socket-path" <> O.metavar "SOCKET_FILE" <> socket <> O.help "Location of the cardano-node socket file. Defaults to the CARDANO_NODE_SOCKET_PATH environment variable's value.")
<*> walletOpt (O.long "issuer" <> O.metavar "ADDRESS:SIGNING_FILE" <> O.help "Issuer wallet info")
<*> tokenProviderOpt
burnOptions :: IsShelleyBasedEra era => O.Mod O.OptionFields NetworkId -> O.Mod O.OptionFields FilePath -> O.Parser (UtilCommand era)
burnOptions network socket =
Burn
<$> O.option parseNetworkId (O.long "testnet-magic" <> O.metavar "INTEGER" <> network <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value." )
<$> parseNetworkId network
<*> O.strOption (O.long "socket-path" <> O.metavar "SOCKET_FILE" <> socket <> O.help "Location of the cardano-node socket file. Defaults to the CARDANO_NODE_SOCKET_PATH environment variable's value.")
<*> walletOpt (O.long "issuer" <> O.metavar "ADDRESS:SIGNING_FILE" <> O.help "Issuer wallet info")
fundAddressOptions :: IsShelleyBasedEra era => O.Mod O.OptionFields NetworkId -> O.Mod O.OptionFields FilePath -> O.Parser (UtilCommand era)
fundAddressOptions network socket =
Fund
<$> O.option parseNetworkId (O.long "testnet-magic" <> O.metavar "INTEGER" <> network <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value." )
<$> parseNetworkId network
<*> O.strOption (O.long "socket-path" <> O.metavar "SOCKET_FILE" <> socket <> O.help "Location of the cardano-node socket file. Defaults to the CARDANO_NODE_SOCKET_PATH environment variable's value.")
<*> (lovelaceOpt <|> sendAllOpt)
<*> txBodyFileOpt
selectOptions :: IsShelleyBasedEra era => O.Mod O.OptionFields NetworkId -> O.Mod O.OptionFields FilePath -> O.Parser (UtilCommand era)
selectOptions network socket =
Output
<$> O.option parseNetworkId (O.long "testnet-magic" <> O.metavar "INTEGER" <> network <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value." )
<$> parseNetworkId network
<*> O.strOption (O.long "socket-path" <> O.metavar "SOCKET_FILE" <> socket <> O.help "Location of the cardano-node socket file. Defaults to the CARDANO_NODE_SOCKET_PATH environment variable's value." )
<*> parseOutputQuery
<*> O.argument parseAddress ( O.metavar "ADDRESS" <> O.help "The address." )
slottingOptions :: O.Mod O.OptionFields NetworkId -> O.Mod O.OptionFields FilePath -> O.Parser (UtilCommand era)
slottingOptions network socket =
Slotting
<$> O.option parseNetworkId (O.long "testnet-magic" <> O.metavar "INTEGER" <> network <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value." )
<$> parseNetworkId network
<*> O.strOption (O.long "socket-path" <> O.metavar "SOCKET_FILE" <> socket <> O.help "Location of the cardano-node socket file. Defaults to the CARDANO_NODE_SOCKET_PATH environment variable's value.")
<*> (O.optional .O.strOption) (O.long "out-file" <> O.metavar "FILE" <> O.help "Output file for slot configuration." )
watchOptions :: O.Mod O.OptionFields NetworkId -> O.Mod O.OptionFields FilePath -> O.Parser (UtilCommand era)
watchOptions network socket =
Watch
<$> O.option parseNetworkId (O.long "testnet-magic" <> O.metavar "INTEGER" <> network <> O.help "Network magic. Defaults to the CARDANO_TESTNET_MAGIC environment variable's value." )
<$> parseNetworkId network
<*> O.strOption (O.long "socket-path" <> O.metavar "SOCKET_FILE" <> socket <> O.help "Location of the cardano-node socket file. Defaults to the CARDANO_NODE_SOCKET_PATH environment variable's value.")
<*> O.switch (O.long "all" <> O.help "Whether to also output non-Marlowe transactions." )
<*> O.switch (O.long "cbor" <> O.help "Whether to output CBOR instead of JSON." )
address' <-
liftCli
$ toCardanoAddressInEra
(if network == mainnet then Mainnet else Testnet (NetworkMagic 2))
(if network == mainnet then Mainnet else Testnet (NetworkMagic 1))
address
address'' <-
case address' of
{ marloweScript = "2ed2631dbb277c84334453c5c437b86325d371f0835a28b910a91a6e"
, payoutScript = "e165610232235bbbbeff5b998b233daae42979dec92a6722d9cda989"
, marloweScriptUTxOs = Map.fromList
[ ( preprodNetworkId
[ ( mainnetNetworkId
, ReferenceScriptUtxo
{ txOutRef = "672399f7d551d6e06fda70769f830e4e3783495c6250567c6ae97ecc788ad5a4#1"
, txOut = Chain.TransactionOutput
{ address = fromJust $ fromBech32 "addr1z9l4w7djneh0kss4drg2php6ynflsvmal7x3w5nrc95uvhz7e4q926apsvcd6kn33cpx95k8jsmrj7v0k62rczvz8urqrl2z0l"
, assets = Assets 54021540 mempty
, datum = Just $ Constr 0 []
, datumHash = Nothing
}
, script = either (error . show) id $ deserialiseFromCBOR (AsPlutusScript AsPlutusScriptV2) currentV1MarloweScriptCBOR
}
)
, ( preprodNetworkId
, ReferenceScriptUtxo
{ txOutRef = "9a8a6f387a3330b4141e1cb019380b9ac5c72151c0abc52aa4266245d3c555cd#1"
, txOut = Chain.TransactionOutput
)
]
, payoutScriptUTxOs = Map.fromList
[ ( preprodNetworkId
[ ( mainnetNetworkId
, ReferenceScriptUtxo
{ txOutRef = "672399f7d551d6e06fda70769f830e4e3783495c6250567c6ae97ecc788ad5a4#2"
, txOut = Chain.TransactionOutput
{ address = fromJust $ fromBech32 "addr1z9l4w7djneh0kss4drg2php6ynflsvmal7x3w5nrc95uvhz7e4q926apsvcd6kn33cpx95k8jsmrj7v0k62rczvz8urqrl2z0l"
, assets = Assets 13020510 mempty
, datum = Just $ Constr 0 []
, datumHash = Nothing
}
, script = either (error . show) id $ deserialiseFromCBOR (AsPlutusScript AsPlutusScriptV2) currentV1PayoutScriptCBOR
}
)
, ( preprodNetworkId
, ReferenceScriptUtxo
{ txOutRef = "9a8a6f387a3330b4141e1cb019380b9ac5c72151c0abc52aa4266245d3c555cd#2"
, txOut = Chain.TransactionOutput
(STM, atomically, modifyTVar, newEmptyTMVar, newTVar, putTMVar, readTMVar, readTVar, retry)
import Control.Error.Util (hoistMaybe, note, noteT)
import Control.Exception (Exception(..))
import Control.Monad (when)
import Control.Monad.IO.Class (MonadIO(liftIO))
import Control.Monad.Trans.Class (lift)
import Control.Monad.Trans.Except (ExceptT(..), except, runExceptT, withExceptT)
import Observe.Event.Explicit
(Event, EventBackend, addField, idInjectSelector, injectSelector, subEventBackend, withEvent)
import Ouroboros.Consensus.BlockchainTime (SystemStart)
import System.Exit (die)
data TransactionServerSelector f where
Exec :: TransactionServerSelector ExecField
addField ev $ ProtocolParameters protocolParameters
networkId <- liftIO $ queryChainSync GetNetworkId
addField ev $ NetworkId networkId
liftIO $ when (networkId == Mainnet) do
die "Mainnet support is currently disabled."
let
solveConstraints :: Constraints.SolveConstraints
solveConstraints =
Bumps [bech32](https://github.com/rust-bitcoin/rust-bech32) from 0.8.1 to 0.9.1. - [Changelog](https://github.com/rust-bitcoin/rust-bech32/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-bitcoin/rust-bech32/compare/v0.8.1...v0.9.1) --- updated-dependencies: - dependency-name: bech32 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]>
Bumps [log](https://github.com/rust-lang/log) from 0.4.17 to 0.4.18. - [Release notes](https://github.com/rust-lang/log/releases) - [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/log/compare/0.4.17...0.4.18) --- updated-dependencies: - dependency-name: log dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.28.1 to 1.28.2. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.28.1...tokio-1.28.2) --- updated-dependencies: - dependency-name: tokio dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
PLT-5901 Implemented checks for valid network addresses.
fix: tuple clause must preserve previous clause properties state
fix: rearrange clauses and fill in gaps now handles nested patterns in a uniform way fix: discards in records was being sorted incorrectly leading to type issues chore: remove some filter maps in cases where None is impossible anyway chore: some refactoring on a couple functions to clean up
fix: tuple clause must preserve previous clause properties state