@@ -96,48 +96,37 @@ mkAdjustPath :: SyncPreConfig -> (FilePath -> FilePath)
96
96
mkAdjustPath cfg fp = takeDirectory (pcNodeConfigFilePath cfg) </> fp
97
97
98
98
-- check both whitelist but also checking plutus Maybes first
99
- -- TODO: cmdv: unsure if this is correct because if plutusMaybeCheck fails then no multiasset whitelist is not checked
100
99
plutusMultiAssetWhitelistCheck :: SyncEnv -> [Generic. TxOut ] -> Bool
101
100
plutusMultiAssetWhitelistCheck syncEnv txOuts =
102
- plutusMaybeCheck txOuts && (plutusWhitelistCheck syncEnv txOuts || multiAssetWhitelistCheck syncEnv txOuts)
103
-
104
- plutusMaybeCheck :: [Generic. TxOut ] -> Bool
105
- plutusMaybeCheck =
106
- any (\ txOut -> isJust (Generic. txOutScript txOut) || isJust (Generic. maybePaymentCred $ Generic. txOutAddress txOut))
101
+ plutusWhitelistCheck syncEnv txOuts || multiAssetWhitelistCheck syncEnv txOuts
107
102
108
103
plutusWhitelistCheck :: SyncEnv -> [Generic. TxOut ] -> Bool
109
104
plutusWhitelistCheck syncEnv txOuts = do
110
105
-- first check the config option
111
106
case ioPlutusExtra iopts of
112
107
PlutusEnable -> True
113
- PlutusDisable -> False
108
+ PlutusDisable -> True
114
109
PlutusWhitelistScripts plutusWhitelist -> plutuswhitelistCheck plutusWhitelist
115
110
where
116
111
iopts = soptInsertOptions $ envOptions syncEnv
117
- plutuswhitelistCheck whitelist = do
118
- any
119
- ( isJust
120
- . ( \ txOut -> do
121
- case (Generic. txOutScript txOut, Generic. maybePaymentCred $ Generic. txOutAddress txOut) of
122
- (Just script, _) ->
123
- if Generic. txScriptHash script `elem` whitelist
124
- then Just txOut
125
- else Nothing
126
- (_, Just address) ->
127
- if address `elem` whitelist
128
- then Just txOut
129
- else Nothing
130
- (Nothing , Nothing ) -> Nothing
131
- )
132
- )
133
- txOuts
112
+ plutuswhitelistCheck :: NonEmpty ByteString -> Bool
113
+ plutuswhitelistCheck whitelist =
114
+ any (\ txOut -> isScriptHashWhitelisted whitelist txOut || isAddressWhitelisted whitelist txOut) txOuts
115
+ -- check if the script hash is in the whitelist
116
+ isScriptHashWhitelisted :: NonEmpty ByteString -> Generic. TxOut -> Bool
117
+ isScriptHashWhitelisted whitelist txOut =
118
+ maybe False ((`elem` whitelist) . Generic. txScriptHash) (Generic. txOutScript txOut)
119
+ -- check if the address is in the whitelist
120
+ isAddressWhitelisted :: NonEmpty ByteString -> Generic. TxOut -> Bool
121
+ isAddressWhitelisted whitelist txOut =
122
+ maybe False (`elem` whitelist) (Generic. maybePaymentCred $ Generic. txOutAddress txOut)
134
123
135
124
multiAssetWhitelistCheck :: SyncEnv -> [Generic. TxOut ] -> Bool
136
125
multiAssetWhitelistCheck syncEnv txOuts = do
137
126
let iopts = soptInsertOptions $ envOptions syncEnv
138
127
case ioMultiAssets iopts of
139
128
MultiAssetEnable -> True
140
- MultiAssetDisable -> False
129
+ MultiAssetDisable -> True
141
130
MultiAssetWhitelistPolicies multiAssetWhitelist ->
142
131
or multiAssetwhitelistCheck
143
132
where
0 commit comments