Skip to content

Commit b56363e

Browse files
committed
wip: slot <-> time convcersion
- testnet debugging enhancements
1 parent d4b2e3a commit b56363e

File tree

1 file changed

+39
-33
lines changed

1 file changed

+39
-33
lines changed

examples/ex-units/src/TestnetRun.hs

Lines changed: 39 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -10,35 +10,41 @@ import Data.Aeson qualified as JSON
1010
import Data.Text (Text)
1111
import Data.Text qualified as Text
1212
import Data.UUID.V4 qualified as UUID
13-
import Ledger (PubKeyHash)
14-
import TimeDebugContract qualified
15-
1613
import GHC.IO.Encoding
14+
import Ledger (PubKeyHash)
1715
import Plutus.PAB.Core.ContractInstance.STM (Activity (Active))
1816
import Servant.Client (BaseUrl (BaseUrl), Scheme (Http))
1917
import System.Directory (listDirectory)
20-
import System.Environment (getEnv, setEnv)
18+
import System.Environment (getArgs, getEnv, setEnv)
2119
import System.FilePath ((</>))
20+
import TimeDebugContract qualified
2221
import Wallet.Types (ContractInstanceId (ContractInstanceId))
2322
import Prelude
2423

2524
testnetRun :: IO ()
2625
testnetRun = do
2726
setLocaleEncoding utf8
28-
-- [sockPath, clusterDir, cliDir] <- getArgs
29-
let sockPath = "/home/mike/dev/mlabs/testnet-bpi-setup/socket/node.socket"
30-
cliDir = "/home/mike/dev/iog/binaries"
31-
bpiDir = "/home/mike/dev/mlabs/testnet-bpi-setup/data"
27+
[bpiDir, cliDir, sockPath, operation] <- getArgs -- /home/mike/dev/mlabs/net-setups/testnet-bpi-setup/data
3228
setEnv "CARDANO_NODE_SOCKET_PATH" sockPath
3329
getEnv "PATH" >>= \p -> setEnv "PATH" (p ++ ":" ++ cliDir)
3430

3531
cEnv <- mkContractEnv bpiDir
3632

3733
putStrLn "Running contract"
38-
-- res <- BPI.runContract cEnv TimeDebugContract.timeDebugLight
39-
-- res <- BPI.runContract cEnv TimeDebugContract.splitUtxo
40-
-- res <- BPI.runContract cEnv TimeDebugContract.lockAtScript
41-
res <- BPI.runContract cEnv TimeDebugContract.unlockWithTimeCheck
34+
res <- case operation of
35+
"light" -> do
36+
putStrLn "Running loght debug"
37+
BPI.runContract cEnv TimeDebugContract.timeDebugLight
38+
"split" -> do
39+
putStrLn "Splitting whatever first utxo"
40+
fmap show <$> BPI.runContract cEnv TimeDebugContract.splitUtxo
41+
"lock" -> do
42+
putStrLn "Locking"
43+
BPI.runContract cEnv TimeDebugContract.lockAtScript
44+
"unlock" -> do
45+
putStrLn "Spending"
46+
BPI.runContract cEnv TimeDebugContract.unlockWithTimeCheck
47+
other -> error $ "Unsupported operation: " ++ other
4248

4349
putStrLn $ case res of
4450
Right r -> "=== OK ===\n" ++ show r
@@ -57,32 +63,32 @@ mkContractEnv bpiDir = do
5763
pkhs <- getPkhs bpiDir
5864
return $
5965
ContractEnvironment
60-
{ cePABConfig = mkPabConf pparams (Text.pack paramsFile) bpiDir (head pkhs)
61-
, ceContractState = contractState
62-
, ceContractInstanceId = contractInstanceID
63-
, ceContractStats = contractStats
66+
{ cePABConfig = mkPabConf pparams (Text.pack paramsFile) bpiDir (head pkhs),
67+
ceContractState = contractState,
68+
ceContractInstanceId = contractInstanceID,
69+
ceContractStats = contractStats
6470
}
6571

6672
mkPabConf :: ProtocolParameters -> Text -> FilePath -> PubKeyHash -> PABConfig
6773
mkPabConf pparams pparamsFile bpiDir ownPkh =
6874
PABConfig
69-
{ pcCliLocation = Local
70-
, pcNetwork = Testnet (NetworkMagic 1097911063)
71-
, pcChainIndexUrl = BaseUrl Http "localhost" 9083 ""
72-
, pcPort = 9080
73-
, pcProtocolParams = pparams
74-
, pcTipPollingInterval = 1_000_000
75-
, pcOwnPubKeyHash = ownPkh
76-
, pcOwnStakePubKeyHash = Nothing
77-
, pcScriptFileDir = Text.pack $ bpiDir </> "scripts"
78-
, pcSigningKeyFileDir = Text.pack $ bpiDir </> "signing-keys"
79-
, pcTxFileDir = Text.pack $ bpiDir </> "txs"
80-
, pcDryRun = False
81-
, pcLogLevel = Error
82-
, pcProtocolParamsFile = pparamsFile
83-
, pcEnableTxEndpoint = True
84-
, pcCollectStats = True
85-
, pcMetadataDir = Text.pack $ bpiDir </> "metadata"
75+
{ pcCliLocation = Local,
76+
pcNetwork = Testnet (NetworkMagic 1097911063),
77+
pcChainIndexUrl = BaseUrl Http "localhost" 9083 "",
78+
pcPort = 9080,
79+
pcProtocolParams = pparams,
80+
pcTipPollingInterval = 1_000_000,
81+
pcOwnPubKeyHash = ownPkh,
82+
pcOwnStakePubKeyHash = Nothing,
83+
pcScriptFileDir = Text.pack $ bpiDir </> "scripts",
84+
pcSigningKeyFileDir = Text.pack $ bpiDir </> "signing-keys",
85+
pcTxFileDir = Text.pack $ bpiDir </> "txs",
86+
pcDryRun = False,
87+
pcLogLevel = Error,
88+
pcProtocolParamsFile = pparamsFile,
89+
pcEnableTxEndpoint = True,
90+
pcCollectStats = True,
91+
pcMetadataDir = Text.pack $ bpiDir </> "metadata"
8692
}
8793

8894
getPkhs :: FilePath -> IO [PubKeyHash]

0 commit comments

Comments
 (0)