From 6742e52030f9973eae27368e317f6dfc11193c47 Mon Sep 17 00:00:00 2001 From: Hongrui Fang Date: Thu, 20 Oct 2022 20:27:31 +0800 Subject: [PATCH] remove redundant unlock check from stake policy --- agora-specs/Spec/Stake.hs | 2 +- agora/Agora/Stake/Scripts.hs | 29 +++++++++-------------------- 2 files changed, 10 insertions(+), 21 deletions(-) diff --git a/agora-specs/Spec/Stake.hs b/agora-specs/Spec/Stake.hs index 9445a73..ae26e88 100644 --- a/agora-specs/Spec/Stake.hs +++ b/agora-specs/Spec/Stake.hs @@ -123,7 +123,7 @@ specs = , Destroy.mkTestTree "Destroy locked stakes" Destroy.lockedStakes - (Destroy.Validity (Just False) False) + (Destroy.Validity (Just True) False) , Destroy.mkTestTree "not authorized by owner" Destroy.notAuthorized diff --git a/agora/Agora/Stake/Scripts.hs b/agora/Agora/Stake/Scripts.hs index af37bce..6b1410c 100644 --- a/agora/Agora/Stake/Scripts.hs +++ b/agora/Agora/Stake/Scripts.hs @@ -43,7 +43,6 @@ import Agora.Stake ( PStakeRedeemerHandlerContext ), StakeRedeemerImpl (..), - pstakeLocked, ) import Agora.Stake.Redeemers ( pclearDelegate, @@ -151,26 +150,16 @@ stakePolicy = pto $ pfoldMap @_ @_ @(PSum PInteger) # plam - ( \((pfield @"resolved" #) -> txOut) -> unTermCont $ do - txOutF <- pletFieldsC @'["value", "datum"] txOut - + ( \((pfield @"resolved" #) -> txOut) -> let isStakeUTxO = - psymbolValueOf # ownSymbol # txOutF.value #== 1 - - pmatchC isStakeUTxO - >>= \case - PTrue -> do - let datum = - pfromData $ - pfromOutputDatum @(PAsData PStakeDatum) - # txOutF.datum - # txInfoF.datums - - pguardC "Stake is unlocked" $ - pnot # (pstakeLocked # datum) - - pure $ pcon $ PSum 1 - PFalse -> pure mempty + psymbolValueOf + # ownSymbol + # (pfield @"value" # txOut) + #== 1 + in pif + isStakeUTxO + (pcon $ PSum 1) + mempty ) # pfromData txInfoF.inputs