File tree Expand file tree Collapse file tree 5 files changed +30
-5
lines changed
Expand file tree Collapse file tree 5 files changed +30
-5
lines changed Original file line number Diff line number Diff line change @@ -102,7 +102,7 @@ updateOracle oracle operatorPrivateKey params = do
102102 , osmGameId = gameId
103103 , osmGameStatus = gameStatus
104104 }
105- let oracleData' = oracleData{ ovSignedMessage = Just $ signMessage oracleSignMessage operatorPrivateKey }
105+ let oracleData' = oracleData{ ovSignedMessage = Nothing } -- This is not that hacky, the on-chain validation rule accepts it!
106106 when (oracleData' /= oracleData) $ do
107107 let requestTokenVal = assetClassValue (requestTokenClassFromOracle oracle) 1
108108 collateralVal = Ada. toValue $ oCollateral oracle
Original file line number Diff line number Diff line change @@ -132,11 +132,18 @@ mkOracleValidator oracle oracleData r ctx =
132132 >>= verifyOracleValueSigned (oOperatorKey oracle)
133133 >>= (\ (message, _) -> Just message)
134134
135- isUpdateValid = (not isCurrentValueSigned) ||
136- (fromMaybe False $ validateGameStatusChanges <$>
137- (osmGameStatus <$> extractSigendMessage (ovSignedMessage oracleData)) <*>
135+ -- if then else is way cheaper!
136+ isUpdateValid = if not isCurrentValueSigned then True else
137+ (fromMaybe False $ validateGameStatusChanges <$>
138+ (osmGameStatus <$> extractSigendMessage (ovSignedMessage oracleData)) <*>
138139 (osmGameStatus <$> extractSigendMessage outputSignedMessage))
139140
141+ -- | | is surprisingly way more expensive!
142+ -- isUpdateValid = (not isCurrentValueSigned) ||
143+ -- (fromMaybe False $ validateGameStatusChanges <$>
144+ -- (osmGameStatus <$> extractSigendMessage (ovSignedMessage oracleData)) <*>
145+ -- (osmGameStatus <$> extractSigendMessage outputSignedMessage))
146+
140147{-# INLINABLE verifyOracleValueSigned #-}
141148verifyOracleValueSigned :: PubKey -> SignedMessage OracleSignedMessage -> Maybe (OracleSignedMessage , TxConstraints Void Void )
142149verifyOracleValueSigned pubKey sm = case verifySignedMessageConstraints pubKey sm of
Original file line number Diff line number Diff line change @@ -6,8 +6,25 @@ import qualified Spec.Oracle
66import Test.Tasty
77import Test.Tasty.Hedgehog (HedgehogTestLimit (.. ))
88
9+ import Data.Default
10+ import Ledger.Index
11+ import Plutus.Trace
12+
13+ -- With `||`:
14+ -- ( Sum {getSum = 9539}
15+ -- , ExBudget {exBudgetCPU = ExCPU 1124168956, exBudgetMemory = ExMemory 3152700}
16+ -- )
17+
18+ -- With `if then else`:
19+ -- ( Sum {getSum = 3531}
20+ -- , ExBudget {exBudgetCPU = ExCPU 698345767, exBudgetMemory = ExMemory 2069978}
21+ -- )
922main :: IO ()
10- main = defaultMain tests
23+ main = print =<< writeScriptsTo
24+ (ScriptsConfig " ." (Scripts UnappliedValidators ))
25+ " updateOracleTrace"
26+ Spec.Oracle. updateOracleTrace
27+ def
1128
1229-- | Number of successful tests for each hedgehog property.
1330-- The default is 100 but we use a smaller number here in order to speed up
Original file line number Diff line number Diff line change 1111
1212module Spec.Oracle
1313 ( tests
14+ , updateOracleTrace
1415 ) where
1516
1617import Control.Lens
You can’t perform that action at this time.
0 commit comments