small changes

This commit is contained in:
Lars Brünjes 2021-05-19 23:37:06 +02:00
parent a7bcb819b1
commit 652764d17b
No known key found for this signature in database
GPG key ID: B488B9045DC1A087
2 changed files with 11 additions and 5 deletions

View file

@ -101,17 +101,20 @@ mkGameValidator game bsZero' bsOne' dat red ctx =
traceIfFalse "not signed by first player" (txSignedBy info (gFirst game)) && traceIfFalse "not signed by first player" (txSignedBy info (gFirst game)) &&
traceIfFalse "commit mismatch" (checkNonce bs nonce c) && traceIfFalse "commit mismatch" (checkNonce bs nonce c) &&
traceIfFalse "missed deadline" (to (gRevealDeadline game) `contains` txInfoValidRange info) && traceIfFalse "missed deadline" (to (gRevealDeadline game) `contains` txInfoValidRange info) &&
traceIfFalse "wrong stake" (lovelaces (txOutValue ownInput) == (2 * gStake game)) traceIfFalse "wrong stake" (lovelaces (txOutValue ownInput) == (2 * gStake game)) &&
traceIfFalse "NFT must go to first player" nftToFirst
(GameDatum _ Nothing, ClaimFirst) -> (GameDatum _ Nothing, ClaimFirst) ->
traceIfFalse "not signed by first player" (txSignedBy info (gFirst game)) && traceIfFalse "not signed by first player" (txSignedBy info (gFirst game)) &&
traceIfFalse "too early" (from (1 + gPlayDeadline game) `contains` txInfoValidRange info) && traceIfFalse "too early" (from (1 + gPlayDeadline game) `contains` txInfoValidRange info) &&
traceIfFalse "first player's stake missing" (lovelaces (txOutValue ownInput) == gStake game) traceIfFalse "first player's stake missing" (lovelaces (txOutValue ownInput) == gStake game) &&
traceIfFalse "NFT must go to first player" nftToFirst
(GameDatum _ (Just _), ClaimSecond) -> (GameDatum _ (Just _), ClaimSecond) ->
traceIfFalse "not signed by second player" (txSignedBy info (gSecond game)) && traceIfFalse "not signed by second player" (txSignedBy info (gSecond game)) &&
traceIfFalse "to early" (from (1 + gRevealDeadline game) `contains` txInfoValidRange info) && traceIfFalse "too early" (from (1 + gRevealDeadline game) `contains` txInfoValidRange info) &&
traceIfFalse "wrong stake" (lovelaces (txOutValue ownInput) == (2 * gStake game)) traceIfFalse "wrong stake" (lovelaces (txOutValue ownInput) == (2 * gStake game)) &&
traceIfFalse "NFT must go to first player" nftToFirst
_ -> False _ -> False
where where
@ -141,6 +144,9 @@ mkGameValidator game bsZero' bsOne' dat red ctx =
Zero -> bsZero' Zero -> bsZero'
One -> bsOne' One -> bsOne'
nftToFirst :: Bool
nftToFirst = assetClassValueOf (valuePaidTo info $ gFirst game) (gToken game) == 1
data Gaming data Gaming
instance Scripts.ScriptType Gaming where instance Scripts.ScriptType Gaming where
type instance DatumType Gaming = GameDatum type instance DatumType Gaming = GameDatum

View file

@ -199,7 +199,7 @@ firstGame fp = do
v = lovelaceValueOf (fpStake fp) v = lovelaceValueOf (fpStake fp)
c = fpChoice fp c = fpChoice fp
bs = sha2_256 $ fpNonce fp `concatenate` if c == Zero then bsZero else bsOne bs = sha2_256 $ fpNonce fp `concatenate` if c == Zero then bsZero else bsOne
void $ mapError @w @s @SMContractError (pack . show) $ runInitialise client (GameDatum bs Nothing) v void $ mapError' $ runInitialise client (GameDatum bs Nothing) v
logInfo @String $ "made first move: " ++ show (fpChoice fp) logInfo @String $ "made first move: " ++ show (fpChoice fp)
void $ awaitSlot $ 1 + fpPlayDeadline fp void $ awaitSlot $ 1 + fpPlayDeadline fp