Skip to content

Commit

Permalink
Use common datum extractor in Utxo indexer
Browse files Browse the repository at this point in the history
  • Loading branch information
eyeinsky committed May 30, 2023
1 parent 24a9e9e commit da3af57
Showing 1 changed file with 6 additions and 10 deletions.
16 changes: 6 additions & 10 deletions marconi-chain-index/src/Marconi/ChainIndex/Indexers/Utxo.hs
Expand Up @@ -79,6 +79,7 @@ import Marconi.ChainIndex.Utils (chainPointOrGenesis)

import Marconi.ChainIndex.Error (IndexerError (CantInsertEvent, CantQueryIndexer, CantRollback, CantStartIndexer, InvalidQueryInterval),
liftSQLError)
import Marconi.ChainIndex.Extract.Datum qualified as Datum
import Marconi.Core.Storable (Buffered (getStoredEvents, persistToStorage), HasPoint, Queryable (queryStorage),
Resumable (resumeFromStorage), Rewindable (rewindStorage), StorableEvent, StorableMonad,
StorablePoint, StorableQuery, StorableResult, emptyState)
Expand Down Expand Up @@ -983,7 +984,11 @@ getUtxoFromTxOut maybeTargetAddresses txIn' (C.TxOut addr val dtum refScript) tx
}
where
addrAny = toAddr addr
(datum', datumHash') = getScriptDataAndHash dtum
(datum', datumHash') = case Datum.txOutDatumOrHash dtum of
Nothing -> (Nothing, Nothing)
Just e -> case e of
Left hash -> (Nothing, Just hash)
Right (datumHash'', datum'') -> (Just datum'', Just datumHash'')
(inlineScript', inlineScriptHash') = getRefScriptAndHash refScript

-- | get the inlineScript and inlineScriptHash
Expand All @@ -1000,15 +1005,6 @@ getRefScriptAndHash refScript = case refScript of
C.ReferenceScript _ s@(C.ScriptInAnyLang (C.PlutusScriptLanguage C.PlutusScriptV2) script)->
(Just s, Just . C.hashScript $ script)

-- | Get the datum hash and datum or a transaction output.
getScriptDataAndHash
:: C.TxOutDatum C.CtxTx era
-> (Maybe C.ScriptData, Maybe (C.Hash C.ScriptData))
getScriptDataAndHash C.TxOutDatumNone = (Nothing, Nothing)
getScriptDataAndHash (C.TxOutDatumHash _ h) = (Nothing, Just h)
getScriptDataAndHash (C.TxOutDatumInTx _ d) = (Just $ C.getScriptData d, (Just . C.hashScriptDataBytes) d)
getScriptDataAndHash (C.TxOutDatumInline _ d) = (Just $ C.getScriptData d, (Just . C.hashScriptDataBytes) d)

getInputsFromTx :: C.Tx era -> Map C.TxIn C.TxId
getInputsFromTx (C.Tx txbody _) = getInputs txbody

Expand Down

0 comments on commit da3af57

Please sign in to comment.