@@ -14,30 +14,31 @@ import Data.Text qualified as Text
1414import Data.UUID.V4 qualified as UUID
1515import Ledger (PubKeyHash )
1616import LockSpend (lockThenSpend )
17+
1718-- import LockSpendSingle (lockThenSpendSingle)
1819import Plutus.PAB.Core.ContractInstance.STM (Activity (Active ))
1920import Servant.Client (BaseUrl (BaseUrl ), Scheme (Http ))
2021import System.Directory (listDirectory )
21- import System.Environment (getArgs , setEnv , getEnv )
22+ import System.Environment (getArgs , getEnv , setEnv )
2223import System.FilePath ((</>) )
2324import Wallet.Types (ContractInstanceId (ContractInstanceId ))
2425import Prelude
2526
27+ {- | For running fast live tests using Plutip's local cluster,
28+ needed only for debugging period
29+ -}
2630main :: IO ()
2731main = do
28- -- TODO: export PATH=$PATH:/home/mike/dev/mlabs/local-cluster/node-bins
29- let clusterDir = " /home/mike/dev/mlabs/local-cluster/data"
30- [sockPath] <- getArgs
32+ [sockPath, clusterDir, cliDir] <- getArgs
3133 setEnv " CARDANO_NODE_SOCKET_PATH" sockPath
32- getEnv " PATH" >>= \ p -> setEnv " PATH" (p ++ " :/home/mike/dev/mlabs/local-cluster/node-bins " )
34+ getEnv " PATH" >>= \ p -> setEnv " PATH" (p ++ " :" ++ cliDir )
3335 let nodeInfo = BPI. NodeInfo Mainnet sockPath
3436
3537 cEnv <- mkContractEnv nodeInfo clusterDir
36- res <- BPI. runContract cEnv lockThenSpend
37- -- res <- BPI.runContract cEnv lockThenSpendSingle
38+ res <- BPI. runContract cEnv lockThenSpend
3839 putStrLn $ case res of
39- Right _ -> " === OK ==="
40- Left e -> " === FAILED ===\n " ++ show e
40+ Right _ -> " === OK ==="
41+ Left e -> " === FAILED ===\n " ++ show e
4142
4243mkContractEnv :: Monoid w => BPI. NodeInfo -> FilePath -> IO (ContractEnvironment w )
4344mkContractEnv nodeInfo clusterDir = do
@@ -47,36 +48,36 @@ mkContractEnv nodeInfo clusterDir = do
4748 pkhs <- getPkhs clusterDir
4849 return $
4950 ContractEnvironment
50- { cePABConfig = mkPabConf pparams (Text. pack paramsFile) clusterDir (head pkhs),
51- ceContractState = contractState,
52- ceContractInstanceId = contractInstanceID
51+ { cePABConfig = mkPabConf pparams (Text. pack paramsFile) clusterDir (head pkhs)
52+ , ceContractState = contractState
53+ , ceContractInstanceId = contractInstanceID
5354 }
5455
5556getPparams :: BPI. NodeInfo -> FilePath -> IO (ProtocolParameters , FilePath )
5657getPparams nodeInfo clusterDir = do
57- pparams :: ProtocolParameters <- getOrFailM $ BPI. protocolParams nodeInfo
58+ pparams :: ProtocolParameters <- getOrFailM $ BPI. queryProtocolParams nodeInfo
5859 let ppath = clusterDir </> " pparams.json"
5960 JSON. encodeFile ppath pparams
6061 return (pparams, ppath)
6162
6263mkPabConf :: ProtocolParameters -> Text -> FilePath -> PubKeyHash -> PABConfig
6364mkPabConf pparams pparamsFile clusterDir ownPkh =
6465 PABConfig
65- { pcCliLocation = Local ,
66- pcNetwork = Mainnet ,
67- pcChainIndexUrl = BaseUrl Http " localhost" 9083 " " ,
68- pcPort = 9080 ,
69- pcProtocolParams = pparams,
70- pcTipPollingInterval = 1_000_000 ,
71- pcSlotConfig = def,
72- pcOwnPubKeyHash = ownPkh,
73- pcScriptFileDir = Text. pack $ clusterDir </> " bot-plutus-interface/scripts" ,
74- pcSigningKeyFileDir = Text. pack $ clusterDir </> " bot-plutus-interface/signing-keys" ,
75- pcTxFileDir = Text. pack $ clusterDir </> " bot-plutus-interface/txs" ,
76- pcDryRun = False ,
77- pcLogLevel = Error ,
78- pcProtocolParamsFile = pparamsFile,
79- pcEnableTxEndpoint = True
66+ { pcCliLocation = Local
67+ , pcNetwork = Mainnet
68+ , pcChainIndexUrl = BaseUrl Http " localhost" 9083 " "
69+ , pcPort = 9080
70+ , pcProtocolParams = pparams
71+ , pcTipPollingInterval = 1_000_000
72+ , pcSlotConfig = def
73+ , pcOwnPubKeyHash = ownPkh
74+ , pcScriptFileDir = Text. pack $ clusterDir </> " bot-plutus-interface/scripts"
75+ , pcSigningKeyFileDir = Text. pack $ clusterDir </> " bot-plutus-interface/signing-keys"
76+ , pcTxFileDir = Text. pack $ clusterDir </> " bot-plutus-interface/txs"
77+ , pcDryRun = False
78+ , pcLogLevel = Error
79+ , pcProtocolParamsFile = pparamsFile
80+ , pcEnableTxEndpoint = True
8081 }
8182
8283getPkhs :: FilePath -> IO [PubKeyHash ]
0 commit comments