Skip to content

Commit 7853733

Browse files
committed
Vote metadata hash original content
Fixes #1752
1 parent 3b20b03 commit 7853733

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

cardano-db-sync/src/Cardano/DbSync/OffChain/Http.hs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ httpGetOffChainPoolData manager request purl expectedMetaHash = do
5656
case unPoolMetaHash <$> expectedMetaHash of
5757
Just expectedMetaHashBs
5858
| metadataHash /= expectedMetaHashBs ->
59-
left $ OCFErrHashMismatch url (renderByteArray expectedMetaHashBs) (renderByteArray metadataHash)
59+
left $ OCFErrHashMismatch (Just url) (renderByteArray expectedMetaHashBs) (renderByteArray metadataHash)
6060
_ -> pure ()
6161
decodedMetadata <-
6262
case Aeson.eitherDecode' respLBS of
@@ -105,8 +105,10 @@ parseAndValidateVoteData :: ByteString -> LBS.ByteString -> Maybe VoteMetaHash -
105105
parseAndValidateVoteData bs lbs metaHash anchorType murl = do
106106
let metadataHash = Crypto.digest (Proxy :: Proxy Crypto.Blake2b_256) bs
107107
(hsh, mWarning) <- case unVoteMetaHash <$> metaHash of
108-
Nothing -> pure (metadataHash, Nothing)
109-
Just expectedMetaHash -> pure (expectedMetaHash, Just "Failed to validate metadata hash") -- TODO: Conway
108+
Just expectedMetaHashBs
109+
| metadataHash /= expectedMetaHashBs ->
110+
left $ OCFErrHashMismatch murl (renderByteArray expectedMetaHashBs) (renderByteArray metadataHash)
111+
_ -> pure (metadataHash, Nothing)
110112
decodedValue <-
111113
case Aeson.eitherDecode' @Aeson.Value lbs of
112114
Left err -> left $ OCFErrJsonDecodeFail murl (Text.pack err)

cardano-db-sync/src/Cardano/DbSync/Types.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ showUrl =
220220
-- OffChain Fetch error for the HTTP client fetching the pool offchain metadata.
221221
-------------------------------------------------------------------------------------
222222
data OffChainFetchError
223-
= OCFErrHashMismatch !OffChainUrlType !Text !Text
223+
= OCFErrHashMismatch !(Maybe OffChainUrlType) !Text !Text
224224
| OCFErrDataTooLong !OffChainUrlType
225225
| OCFErrUrlParseFail !OffChainUrlType !Text
226226
| OCFErrJsonDecodeFail (Maybe OffChainUrlType) !Text

0 commit comments

Comments
 (0)