@@ -96,10 +96,9 @@ 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)
101
+ plutusMaybeCheck txOuts || (plutusWhitelistCheck syncEnv txOuts || multiAssetWhitelistCheck syncEnv txOuts)
103
102
104
103
plutusMaybeCheck :: [Generic. TxOut ] -> Bool
105
104
plutusMaybeCheck =
@@ -110,34 +109,28 @@ plutusWhitelistCheck syncEnv txOuts = do
110
109
-- first check the config option
111
110
case ioPlutusExtra iopts of
112
111
PlutusEnable -> True
113
- PlutusDisable -> False
112
+ PlutusDisable -> True
114
113
PlutusWhitelistScripts plutusWhitelist -> plutuswhitelistCheck plutusWhitelist
115
114
where
116
115
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
116
+ plutuswhitelistCheck :: NonEmpty ByteString -> Bool
117
+ plutuswhitelistCheck whitelist =
118
+ any (\ txOut -> isScriptHashWhitelisted whitelist txOut || isAddressWhitelisted whitelist txOut) txOuts
119
+ -- check if the script hash is in the whitelist
120
+ isScriptHashWhitelisted :: NonEmpty ByteString -> Generic. TxOut -> Bool
121
+ isScriptHashWhitelisted whitelist txOut =
122
+ maybe False ((`elem` whitelist) . Generic. txScriptHash) (Generic. txOutScript txOut)
123
+ -- check if the address is in the whitelist
124
+ isAddressWhitelisted :: NonEmpty ByteString -> Generic. TxOut -> Bool
125
+ isAddressWhitelisted whitelist txOut=
126
+ maybe False (`elem` whitelist) (Generic. maybePaymentCred $ Generic. txOutAddress txOut)
134
127
135
128
multiAssetWhitelistCheck :: SyncEnv -> [Generic. TxOut ] -> Bool
136
129
multiAssetWhitelistCheck syncEnv txOuts = do
137
130
let iopts = soptInsertOptions $ envOptions syncEnv
138
131
case ioMultiAssets iopts of
139
132
MultiAssetEnable -> True
140
- MultiAssetDisable -> False
133
+ MultiAssetDisable -> True
141
134
MultiAssetWhitelistPolicies multiAssetWhitelist ->
142
135
or multiAssetwhitelistCheck
143
136
where
0 commit comments