Skip to content

Commit

Permalink
polish some code
Browse files Browse the repository at this point in the history
  • Loading branch information
ak3n committed May 20, 2022
1 parent 5b6c58c commit aff9af8
Show file tree
Hide file tree
Showing 8 changed files with 23 additions and 27 deletions.
4 changes: 2 additions & 2 deletions plutus-contract/src/Plutus/Contract/Test.hs
Original file line number Diff line number Diff line change
Expand Up @@ -585,10 +585,10 @@ walletFundsChangeImpl exact w dlt' = TracePredicate $
[ "Expected funds of" <+> pretty w <+> "to change by"
, " " <+> viaShow dlt] ++
(if exact then [] else [" (excluding" <+> viaShow (Ada.getLovelace (Ada.fromValue fees)) <+> "lovelace in fees)" ]) ++
(if initialValue == finalValue
if initialValue == finalValue
then ["but they did not change"]
else ["but they changed by", " " <+> viaShow (finalValue P.- initialValue),
"a discrepancy of", " " <+> viaShow (finalValue P.- initialValue P.- dlt)])
"a discrepancy of", " " <+> viaShow (finalValue P.- initialValue P.- dlt)]
pure result

walletPaidFees :: Wallet -> Value -> TracePredicate
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1639,10 +1639,10 @@ checkBalances s envOuter = Map.foldrWithKey (\ w sval p -> walletFundsChange w s
tell @(Doc Void) $ vsep $
[ "Expected funds of" <+> pretty w <+> "to change by"
, " " <+> viaShow dlt] ++
(if initialValue == finalValue
if initialValue == finalValue
then ["but they did not change"]
else ["but they changed by", " " <+> viaShow (finalValue P.- initialValue),
"a discrepancy of", " " <+> viaShow (finalValue P.- initialValue P.- dlt)])
"a discrepancy of", " " <+> viaShow (finalValue P.- initialValue P.- dlt)]
pure result
_ -> error "I am the pope"

Expand Down
8 changes: 4 additions & 4 deletions plutus-contract/src/Plutus/Contract/Trace.hs
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@ import Plutus.Contract.Trace.RequestHandler (RequestHandler, RequestHandlerLogMs
import Plutus.Contract.Trace.RequestHandler qualified as RequestHandler

import Ledger.Ada qualified as Ada
import Ledger.Params (Params)
import Ledger.Value (Value)

import Plutus.ChainIndex (ChainIndexQueryEffect)
Expand Down Expand Up @@ -206,13 +205,14 @@ handleYieldedUnbalancedTx =
handleAdjustUnbalancedTx ::
( Member (LogObserve (LogMessage Text)) effs
, Member (LogMsg RequestHandlerLogMsg) effs
, Member NodeClientEffect effs
)
=> Params -> RequestHandler effs PABReq PABResp
handleAdjustUnbalancedTx params =
=> RequestHandler effs PABReq PABResp
handleAdjustUnbalancedTx =
generalise
(preview E._AdjustUnbalancedTxReq)
E.AdjustUnbalancedTxResp
(RequestHandler.handleAdjustUnbalancedTx params)
RequestHandler.handleAdjustUnbalancedTx

defaultDist :: InitialDistribution
defaultDist = defaultDistFor EM.knownWallets
Expand Down
9 changes: 5 additions & 4 deletions plutus-contract/src/Plutus/Contract/Trace/RequestHandler.hs
Original file line number Diff line number Diff line change
Expand Up @@ -262,11 +262,12 @@ handleAdjustUnbalancedTx ::
forall effs.
( Member (LogObserve (LogMessage Text)) effs
, Member (LogMsg RequestHandlerLogMsg) effs
, Member NodeClientEffect effs
)
=> Params
-> RequestHandler effs UnbalancedTx (Either ToCardanoError UnbalancedTx)
handleAdjustUnbalancedTx params =
RequestHandler $ \utx ->
=> RequestHandler effs UnbalancedTx (Either ToCardanoError UnbalancedTx)
handleAdjustUnbalancedTx =
RequestHandler $ \utx -> do
params <- Wallet.Effects.getClientParams
surroundDebug @Text "handleAdjustUnbalancedTx" $ do
logDebug $ AdjustingUnbalancedTx $ getCardanoTxOutputsMissingCosts params (EmulatorTx $ unBalancedTxTx utx)
pure $ adjustUnbalancedTx params utx
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ import Control.Monad.Freer.Extras.Modify (raiseEnd)
import Control.Monad.Freer.Reader (Reader, ask, runReader)
import Control.Monad.Freer.State (State, evalState, get, gets, modify, put)
import Data.Aeson qualified as JSON
import Data.Default (def)
import Data.Foldable (traverse_)
import Data.List.NonEmpty (NonEmpty ((:|)))
import Data.Map (Map)
Expand Down Expand Up @@ -260,8 +259,7 @@ handleBlockchainQueries =
<> RequestHandler.handleCurrentTimeQueries
<> RequestHandler.handleTimeToSlotConversions
<> RequestHandler.handleYieldedUnbalancedTx
<> (RequestHandler.handleAdjustUnbalancedTx def)

<> RequestHandler.handleAdjustUnbalancedTx

decodeEvent ::
forall effs.
Expand Down
2 changes: 1 addition & 1 deletion plutus-contract/src/Wallet/Emulator/Folds.hs
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ walletTxBalanceEvents = preMapMaybe (preview (eteEvent . walletEvent' . _2 . _Tx

-- | Min lovelace of 'txOut's from adjusted unbalanced transactions
walletAdjustedTxEvents :: EmulatorEventFold [(Wallet, [Value])]
walletAdjustedTxEvents = filter (\x -> not $ null $ snd x) <$> preMapMaybe (preview (eteEvent . walletEvent' . to (\x -> (x ^. _1, x ^. _2 . _RequestHandlerLog . _AdjustingUnbalancedTx)))) L.list
walletAdjustedTxEvents = preMapMaybe (preview (eteEvent . walletEvent' . to (\x -> (x ^. _1, x ^. _2 . _RequestHandlerLog . _AdjustingUnbalancedTx)))) L.list

mkTxLogs :: EmulatorEventFold [MkTxLog]
mkTxLogs =
Expand Down
17 changes: 7 additions & 10 deletions plutus-pab/src/Plutus/PAB/Core/ContractInstance.hs
Original file line number Diff line number Diff line change
Expand Up @@ -49,17 +49,15 @@ import Data.Maybe (fromMaybe)
import Data.Proxy (Proxy (Proxy))
import Data.Text qualified as Text

import Ledger.Params (Params)

import Plutus.Contract.Effects (ActiveEndpoint (aeDescription),
PABReq (AwaitUtxoProducedReq, AwaitUtxoSpentReq, ExposeEndpointReq),
PABResp (AwaitSlotResp, AwaitTimeResp, AwaitTxOutStatusChangeResp, AwaitTxStatusChangeResp, AwaitUtxoProducedResp, AwaitUtxoSpentResp, ExposeEndpointResp))
import Plutus.Contract.Effects qualified as Contract.Effects
import Plutus.Contract.Resumable (Request (Request, itID, rqID, rqRequest), Response (Response))
import Plutus.Contract.State (ContractResponse (ContractResponse, err, hooks, newState), State (State, observableState))
import Plutus.Contract.Trace qualified as RequestHandler
import Plutus.Contract.Trace.RequestHandler (RequestHandler (RequestHandler), RequestHandlerLogMsg, extract,
maybeToHandler, tryHandler', wrapHandler)
import Plutus.Contract.Trace.RequestHandler (RequestHandler (..), RequestHandlerLogMsg, extract, maybeToHandler,
tryHandler', wrapHandler)
import Plutus.PAB.Core.ContractInstance.RequestHandlers (ContractInstanceMsg (ActivatedContractInstance, HandlingRequests, InitialisingContract))
import Plutus.PAB.Core.ContractInstance.RequestHandlers qualified as RequestHandlers

Expand All @@ -68,7 +66,7 @@ import Wallet.Emulator.LogMessages (TxBalanceMsg)
import Wallet.Emulator.Wallet qualified as Wallet

import Plutus.ChainIndex (ChainIndexQueryEffect, RollbackState (Unknown))
import Plutus.PAB.Core.ContractInstance.STM (Activity (Done, Stopped), BlockchainEnv (beParams),
import Plutus.PAB.Core.ContractInstance.STM (Activity (Done, Stopped), BlockchainEnv,
InstanceState (InstanceState, issStop), InstancesState,
callEndpointOnInstance, emptyInstanceState)
import Plutus.PAB.Core.ContractInstance.STM qualified as InstanceState
Expand Down Expand Up @@ -258,8 +256,8 @@ stmRequestHandler ::
, Member (Reader BlockchainEnv) effs
, Member (Reader InstanceState) effs
)
=> Params -> RequestHandler effs (Request PABReq) (STM (Response PABResp))
stmRequestHandler params =
=> RequestHandler effs (Request PABReq) (STM (Response PABResp))
stmRequestHandler =
fmap sequence (wrapHandler (fmap pure nonBlockingRequests) <> blockingRequests) where

-- requests that can be handled by 'WalletEffect', 'ChainIndexQueryEffect', etc.
Expand All @@ -272,7 +270,7 @@ stmRequestHandler params =
<> RequestHandler.handleCurrentSlotQueries @effs
<> RequestHandler.handleCurrentTimeQueries @effs
<> RequestHandler.handleYieldedUnbalancedTx @effs
<> (RequestHandler.handleAdjustUnbalancedTx @effs params)
<> RequestHandler.handleAdjustUnbalancedTx @effs

-- requests that wait for changes to happen
blockingRequests =
Expand Down Expand Up @@ -413,5 +411,4 @@ respondToRequestsSTM ::
respondToRequestsSTM instanceId currentState = do
let rqs = Contract.requests @t currentState
logDebug @(ContractInstanceMsg t) $ HandlingRequests instanceId rqs
params <- beParams <$> ask @BlockchainEnv
tryHandler' (stmRequestHandler params) rqs
tryHandler' stmRequestHandler rqs
2 changes: 1 addition & 1 deletion plutus-pab/src/Plutus/PAB/Simulator.hs
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ mkSimulatorHandlers params handleContractEffect =
{ initialiseEnvironment =
(,,)
<$> liftIO (STM.atomically Instances.emptyInstancesState )
<*> liftIO (STM.atomically $ Instances.emptyBlockchainEnv Nothing def)
<*> liftIO (STM.atomically $ Instances.emptyBlockchainEnv Nothing params)
<*> liftIO (initialState @t)
, handleContractStoreEffect =
interpret handleContractStore
Expand Down

0 comments on commit aff9af8

Please sign in to comment.