Skip to content

Commit d184cdb

Browse files
committed
wip: slot <-> time convcersion
- minor refactoring and docs
1 parent b56363e commit d184cdb

File tree

7 files changed

+156
-120
lines changed

7 files changed

+156
-120
lines changed

examples/ex-units/src/PlutipRun.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@ mkPabConf pparams pparamsFile clusterDir ownPkh =
7474
, pcPort = 9080
7575
, pcProtocolParams = pparams
7676
, pcTipPollingInterval = 1_000_000
77-
-- , pcSlotConfig = def {scSlotZeroTime = POSIXTime $ 1652956123 * 1000}
78-
, pcOwnPubKeyHash = ownPkh
77+
, -- , pcSlotConfig = def {scSlotZeroTime = POSIXTime $ 1652956123 * 1000}
78+
pcOwnPubKeyHash = ownPkh
7979
, pcOwnStakePubKeyHash = Nothing
8080
, pcScriptFileDir = Text.pack $ clusterDir </> "bot-plutus-interface/scripts"
8181
, pcSigningKeyFileDir = Text.pack $ clusterDir </> "bot-plutus-interface/signing-keys"

examples/ex-units/src/TestnetRun.hs

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -63,32 +63,32 @@ mkContractEnv bpiDir = do
6363
pkhs <- getPkhs bpiDir
6464
return $
6565
ContractEnvironment
66-
{ cePABConfig = mkPabConf pparams (Text.pack paramsFile) bpiDir (head pkhs),
67-
ceContractState = contractState,
68-
ceContractInstanceId = contractInstanceID,
69-
ceContractStats = contractStats
66+
{ cePABConfig = mkPabConf pparams (Text.pack paramsFile) bpiDir (head pkhs)
67+
, ceContractState = contractState
68+
, ceContractInstanceId = contractInstanceID
69+
, ceContractStats = contractStats
7070
}
7171

7272
mkPabConf :: ProtocolParameters -> Text -> FilePath -> PubKeyHash -> PABConfig
7373
mkPabConf pparams pparamsFile bpiDir ownPkh =
7474
PABConfig
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"
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"
9292
}
9393

9494
getPkhs :: FilePath -> IO [PubKeyHash]

examples/ex-units/src/TimeDebugContract.hs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import Ledger
2828
strictUpperBound,
2929
unitDatum,
3030
validatorHash,
31+
getCardanoTxId
3132
)
3233
import Ledger.Constraints qualified as Constraints
3334
import Ledger.Typed.Scripts.Validators qualified as Validators
@@ -174,12 +175,12 @@ unlockWithTimeCheck = do
174175
Constraints.unspentOutputs (Map.fromList utxos)
175176
]
176177
!tx <- submitTxConstraintsWith @TestTime lkps txc
177-
wait 10
178+
-- Contract.awaitTxConfirmed (getCardanoTxId tx)
178179
utxosAfterSpent <- Map.toList <$> Contract.utxosAt validatorAddr
179180
pure (Hask.show utxosAfterSpent)
180181
rest -> Contract.throwError $ "Unlocking error: Unwanted set of utxos: " Hask.<> Text.pack (Hask.show rest)
181182
where
182-
wait = void . Contract.waitNSlots
183+
-- wait = void . Contract.waitNSlots
183184

184185
lockAtScript :: Contract () EmptySchema Text Hask.String
185186
lockAtScript = do
@@ -189,5 +190,5 @@ lockAtScript = do
189190
unitDatum
190191
(Value.adaValueOf 10)
191192
!tx <- submitTx constr
192-
-- awaitTxConfirmed $ getCardanoTxId tx
193+
-- Contract.awaitTxConfirmed $ getCardanoTxId tx
193194
pure "Lock done"

src/BotPlutusInterface/Balance.hs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ import Plutus.V1.Ledger.Api (
5959
)
6060

6161
import BotPlutusInterface.BodyBuilder qualified as BodyBuilder
62-
import Prelude
6362
import Data.Bifunctor (bimap)
63+
import Prelude
6464

6565
{- | Collect necessary tx inputs and collaterals, add minimum lovelace values and balance non ada
6666
assets
@@ -95,7 +95,7 @@ balanceTxIO pabConf ownPkh unbalancedTx =
9595
lift $ printLog @w Debug $ show utxoIndex
9696

9797
-- We need this folder on the CLI machine, which may not be the local machine
98-
lift $ createDirectoryIfMissingCLI @w False (Text.unpack "pcTxFileDir" )
98+
lift $ createDirectoryIfMissingCLI @w False (Text.unpack "pcTxFileDir")
9999

100100
-- Adds required collaterals, only needs to happen once
101101
-- Also adds signatures for fee calculation
@@ -365,14 +365,13 @@ addValidRange ::
365365
Eff effs (Either Text Tx)
366366
addValidRange timeRange tx =
367367
if validateRange timeRange
368-
then bimap (Text.pack . show) (setRange tx) <$>
369-
convertTimeRangeToSlotRange @w timeRange
368+
then
369+
bimap (Text.pack . show) (setRange tx)
370+
<$> convertTimeRangeToSlotRange @w timeRange
370371
else pure $ Left "Invalid validity interval."
371-
372372
where
373373
setRange tx' range = tx' {txValidRange = range}
374374

375-
376375
validateRange :: forall (a :: Type). Ord a => Interval a -> Bool
377376
validateRange (Interval (LowerBound PosInf _) _) = False
378377
validateRange (Interval _ (UpperBound NegInf _)) = False

src/BotPlutusInterface/Effects.hs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,11 +158,11 @@ handlePABEffect contractEnv =
158158
ExBudget.estimateBudget contractEnv.cePABConfig txPath
159159
SaveBudget txId exBudget -> saveBudgetImpl contractEnv txId exBudget
160160
SlotToPOSIXTime slot ->
161-
TimeSlot.slotToPOSIXTimeImpl contractEnv.cePABConfig slot
161+
TimeSlot.slotToPOSIXTimeIO contractEnv.cePABConfig slot
162162
POSIXTimeToSlot pTime ->
163-
TimeSlot.posixTimeToSlotImpl contractEnv.cePABConfig pTime
163+
TimeSlot.posixTimeToSlotIO contractEnv.cePABConfig pTime
164164
POSIXTimeRangeToSlotRange pTimeRange ->
165-
TimeSlot.posixTimeRangeToContainedSlotRangeImpl contractEnv.cePABConfig pTimeRange
165+
TimeSlot.posixTimeRangeToContainedSlotRangeIO contractEnv.cePABConfig pTimeRange
166166
)
167167

168168
printLog' :: LogLevel -> LogLevel -> String -> IO ()

0 commit comments

Comments
 (0)