remove redundant unlock check from stake policy

This commit is contained in:
Hongrui Fang 2022-10-20 20:27:31 +08:00
parent 044fba702b
commit 6742e52030
No known key found for this signature in database
GPG key ID: F10AB2CCE24113DD
2 changed files with 10 additions and 21 deletions

View file

@ -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

View file

@ -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