Skip to content

Commit 95b5e4d

Browse files
Fix discussions
1 parent f57adab commit 95b5e4d

File tree

3 files changed

+13
-9
lines changed

3 files changed

+13
-9
lines changed

MetaLamp/lending-pool/src/Plutus/Contracts/LendingPool/OffChain/State.hs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import Ledger.Constraints.TxConstraints as Constraints
2626
import qualified Ledger.Scripts as Scripts
2727
import qualified Ledger.Typed.Scripts as Scripts
2828
import Playground.Contract
29+
import Plutus.Abstract.IncentivizedAmount (accrue)
2930
import Plutus.Abstract.OutputValue (OutputValue (..),
3031
_ovValue)
3132
import qualified Plutus.Abstract.State as State
@@ -40,7 +41,10 @@ import Plutus.Contracts.LendingPool.OnChain.Core (Aave (..),
4041
AaveScript,
4142
Reserve (..),
4243
UserConfig (..),
43-
UserConfigId, getAaveState, reserveStateToken, userStateToken)
44+
UserConfigId,
45+
getAaveState,
46+
reserveStateToken,
47+
userStateToken)
4448
import qualified Plutus.Contracts.LendingPool.OnChain.Core as Core
4549
import qualified Plutus.Contracts.Service.FungibleToken as FungibleToken
4650
import Plutus.V1.Ledger.Ada (adaValueOf,
@@ -54,7 +58,6 @@ import PlutusTx.Prelude hiding (Functor (..),
5458
import Prelude (Semigroup (..),
5559
fmap)
5660
import qualified Prelude
57-
import Plutus.Abstract.IncentivizedAmount (accrue)
5861

5962
findOutputsBy :: Aave -> AssetClass -> (AaveDatum -> Maybe a) -> Contract w s Text [OutputValue a]
6063
findOutputsBy aave = State.findOutputsBy (Core.aaveAddress aave)

MetaLamp/lending-pool/src/Plutus/Contracts/LendingPool/OnChain/Core/Logic.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ toBoolPrefixed prefix = toBool . Bifunctor.first (Builtins.appendString prefix)
9595

9696
assertValidCurrentSlot :: ScriptContext -> Slot -> Either Builtins.String ()
9797
assertValidCurrentSlot ctx slot = fromBool "Invalid current slot value" $
98-
Interval.member slot (posixTimeRangeToSlotRange . txInfoValidRange . scriptContextTxInfo $ ctx)
98+
Interval.LowerBound (Interval.Finite slot) True == Interval.ivFrom (posixTimeRangeToSlotRange . txInfoValidRange . scriptContextTxInfo $ ctx)
9999

100100
findUserConfigs :: ScriptContext -> AaveState -> Either Builtins.String (AssocMap.Map UserConfigId UserConfig)
101101
findUserConfigs ctx state@AaveState{..} = do

MetaLamp/lending-pool/src/Plutus/Contracts/LendingPool/OnChain/Core/Validator.hs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -94,12 +94,13 @@ aaveInstance aave = Scripts.mkTypedValidator @AaveScript
9494
-- Main validator
9595
-- Each state field must have one or more associated actions(Redeemer types),
9696
-- produced on state update, which are then validated here
97+
-- TODO: combine state(datums) in order to ensure that there is only one redeemer for all inputs
9798
makeAaveValidator :: Aave
9899
-> AaveDatum
99100
-> AaveRedeemer
100101
-> ScriptContext
101102
-> Bool
102-
makeAaveValidator aave datum StartRedeemer ctx = trace "StartRedeemer" $ validateStart aave datum ctx
103+
makeAaveValidator aave datum StartRedeemer ctx = trace "StartRedeemer" $ validateStart aave datum ctx
103104
makeAaveValidator aave datum (DepositRedeemer userConfigId) ctx = trace "DepositRedeemer" $ validateDeposit aave datum ctx userConfigId
104105
makeAaveValidator aave datum (WithdrawRedeemer userConfigId) ctx = trace "WithdrawRedeemer" $ validateWithdraw aave datum ctx userConfigId
105106
makeAaveValidator aave datum (BorrowRedeemer userConfigId oracles slot) ctx = trace "BorrowRedeemer" $ validateBorrow aave datum ctx userConfigId oracles slot
@@ -132,7 +133,7 @@ validateDeposit aave (UserConfigsDatum state@AaveState{..} userConfigs) ctx user
132133
unless
133134
(maybe ((iaAmount . ucCollateralizedInvestment) newState == (fromInteger 0)) ((ucCollateralizedInvestment newState ==) . ucCollateralizedInvestment) oldState &&
134135
(iaAmount . ucDebt $ newState) == (fromInteger 0) && maybe True ((== (fromInteger 0)) . iaAmount . ucDebt) oldState)
135-
(throwError "")
136+
(throwError "Change is not valid")
136137

137138
validateDeposit aave (ReservesDatum state reserves) ctx userConfigId =
138139
traceIfFalse "validateDeposit: Reserves Datum change is not valid" $ checkPositiveReservesTransformation state reserves ctx userConfigId
@@ -178,7 +179,7 @@ validateBorrow aave (UserConfigsDatum state@AaveState{..} userConfigs) ctx userC
178179
unless
179180
(debtAmount == disbursementAmount && debtAmount > fromInteger 0 && disbursementAmount > fromInteger 0 &&
180181
(iaAmount . ucCollateralizedInvestment $ newState) == (fromInteger 0) && maybe True ((== (fromInteger 0)) . iaAmount . ucCollateralizedInvestment) oldState)
181-
(throwError "")
182+
(throwError "Change is not valid")
182183

183184
validateBorrow aave (ReservesDatum stateToken reserves) ctx userConfigId oracles _ =
184185
traceIfFalse "validateBorrow: Reserves Datum change is not valid" $ checkNegativeReservesTransformation stateToken reserves ctx userConfigId && areOraclesTrusted oracles reserves
@@ -208,7 +209,7 @@ validateRepay aave (UserConfigsDatum state@AaveState{..} userConfigs) ctx userCo
208209
unless
209210
(debtChange == reimbursementAmount && debtChange > fromInteger 0 && reimbursementAmount > fromInteger 0 && newDebt >= (fromInteger 0) &&
210211
ucCollateralizedInvestment newState == ucCollateralizedInvestment accState)
211-
(throwError "")
212+
(throwError "Change is not valid")
212213

213214
validateRepay aave (ReservesDatum stateToken reserves) ctx userConfigId _ =
214215
traceIfFalse "validateRepay: Reserves Datum change is not valid" $ checkPositiveReservesTransformation stateToken reserves ctx userConfigId
@@ -234,7 +235,7 @@ validateProvideCollateral aave (UserConfigsDatum state@AaveState{..} userConfigs
234235
unless
235236
(user == actor && investmentAmount == disbursementAmount && investmentAmount > fromInteger 0 && disbursementAmount > fromInteger 0 &&
236237
(iaAmount . ucDebt $ newState) == (fromInteger 0) && maybe True ((== (fromInteger 0)) . iaAmount . ucDebt) oldState)
237-
(throwError "")
238+
(throwError "Change is not valid")
238239

239240
validateProvideCollateral _ _ _ _ = trace "Lending Pool Datum management is not allowed" False
240241

@@ -263,7 +264,7 @@ validateRevokeCollateral aave (UserConfigsDatum state@AaveState{..} userConfigs)
263264
unless
264265
(investmentShrinkedBy == disbursementAmount && investmentShrinkedBy > fromInteger 0 &&
265266
disbursementAmount > fromInteger 0 && ucDebt newState == IncentivizedAmount slot (rCurrentStableBorrowRate reserve) (iaAmount . ucDebt $ accState))
266-
(throwError "")
267+
(throwError "Change is not valid")
267268

268269
validateRevokeCollateral aave (UserCollateralFundsDatum owner aTokenAsset) ctx (reserveId, actor) revokedAsset oracles _ =
269270
traceIfFalse "validateRevokeCollateral: UserCollateralFundsDatum change is not valid" $

0 commit comments

Comments
 (0)