disallow calling UnlockStake without any stake inputs

This commit is contained in:
Hongrui Fang 2022-11-10 18:47:07 +08:00
parent ae72d0ae6d
commit 431092fb1c

View file

@ -325,16 +325,21 @@ proposalValidator =
presolveStakeInputDatum presolveStakeInputDatum
# (ptoScottEncodingT # sstClass) # (ptoScottEncodingT # sstClass)
# txInfoF.datums # txInfoF.datums
spendStakes' :: Term _ ((PStakeInputsContext :--> PUnit) :--> PUnit) <- spendStakes' :: Term _ ((PStakeInputsContext :--> PUnit) :--> PUnit) <-
pletC $ pletC $
plam $ plam $ \val -> unTermCont $ do
let stakeInputs = stakeInputs <-
pmapMaybe @PList pletC $
# resolveStakeInputDatum pmapMaybe @PList
# pfromData txInfoF.inputs # resolveStakeInputDatum
# pfromData txInfoF.inputs
ctx = pcon $ PStakeInputsContext stakeInputs pguardC "Stake inputs not null" $
in (# ctx) pnot #$ pnull # stakeInputs
let ctx = pcon $ PStakeInputsContext stakeInputs
pure $ val # ctx
let spendStakes :: let spendStakes ::
( PStakeInputsContext _ -> ( PStakeInputsContext _ ->