Skip to content

Commit 20b99e5

Browse files
v0d1chSasha Bogicevic
authored and
Sasha Bogicevic
committed
Use proper inputs to build the commit datum
1 parent 42010c7 commit 20b99e5

File tree

2 files changed

+18
-14
lines changed

2 files changed

+18
-14
lines changed

hydra-node/src/Hydra/Chain/Direct/Tx.hs

+15-13
Original file line numberDiff line numberDiff line change
@@ -253,21 +253,20 @@ commitTx networkId scriptRegistry headId party commitTxDraft (initialInput, out,
253253
ledgerBlueprintTx =
254254
toLedgerTx draftTx
255255
& bodyTxL . inputsTxBodyL <>~ Set.singleton (toLedgerTxIn initialInput)
256-
& bodyTxL . inputsTxBodyL <>~ Set.fromList (toLedgerTxIn <$> committedTxIns)
256+
-- & bodyTxL . inputsTxBodyL <>~ Set.fromList (toLedgerTxIn <$> committedTxIns)
257257
& bodyTxL . referenceInputsTxBodyL <>~ Set.fromList [toLedgerTxIn initialScriptRef]
258258
& bodyTxL . outputsTxBodyL .~ StrictSeq.singleton (toLedgerTxOut commitOutput)
259259
& bodyTxL . reqSignerHashesTxBodyL <>~ Set.singleton (toLedgerKeyHash vkh)
260260
& bodyTxL . auxDataHashTxBodyL .~ SJust (hashAlonzoTxAuxData txAuxMetadata)
261261
& bodyTxL . mintTxBodyL .~ mempty
262262
& auxDataTxL .~ addMetadata txAuxMetadata
263-
existingWits = ledgerBlueprintTx ^. witsTxL
263+
existingWits = toLedgerTx draftTx ^. witsTxL
264264
currentInputs = ledgerBlueprintTx ^. bodyTxL . inputsTxBodyL
265-
commitInputs = Set.map toLedgerTxIn (UTxO.inputSet lookupUTxO)
266265
blueprintRedeemers = unRedeemers $ toLedgerTx draftTx ^. witsTxL . rdmrsTxWitsL
267266
wits =
268267
witsTxL
269268
.~ ( existingWits
270-
& rdmrsTxWitsL .~ rebuildSpendingRedeemers currentInputs commitInputs blueprintRedeemers
269+
& rdmrsTxWitsL .~ rebuildSpendingRedeemers currentInputs committedTxIns blueprintRedeemers
271270
)
272271
in
273272
fromLedgerTx $ ledgerBlueprintTx & wits
@@ -312,18 +311,19 @@ commitTx networkId scriptRegistry headId party commitTxDraft (initialInput, out,
312311
Just ix ->
313312
Map.lookup (AlonzoSpending (AsIndex $ fromIntegral ix)) oldTxRedeemers >>= Just . (key,)
314313

315-
initialScript =
316-
fromPlutusScript @PlutusScriptV2 Initial.validatorScript
314+
-- initialScript =
315+
-- fromPlutusScript @PlutusScriptV2 Initial.validatorScript
317316

318317
initialScriptRef =
319318
fst (initialReference scriptRegistry)
320319

321320
initialRedeemer =
322321
toScriptData . Initial.redeemer $
323-
Initial.ViaCommit (toPlutusTxOutRef <$> committedTxIns)
322+
Initial.ViaCommit (toPlutusTxOutRef . fromLedgerTxIn <$> Set.toList committedTxIns)
324323

325-
committedTxIns =
326-
fst <$> UTxO.pairs lookupUTxO
324+
committedTxIns = toLedgerTx draftTx ^. bodyTxL . inputsTxBodyL
325+
-- committedTxIns =
326+
-- fst <$> UTxO.pairs lookupUTxO
327327

328328
commitOutput =
329329
TxOut commitAddress commitValue commitDatum ReferenceScriptNone
@@ -334,16 +334,18 @@ commitTx networkId scriptRegistry headId party commitTxDraft (initialInput, out,
334334
commitAddress =
335335
mkScriptAddress @PlutusScriptV2 networkId commitScript
336336

337+
utxoToCommit =
338+
UTxO.fromPairs $ mapMaybe (\txin -> (txin,) <$> UTxO.resolve txin lookupUTxO) (txIns' draftTx)
339+
337340
commitValue =
338-
txOutValue out <> foldMap txOutValue lookupUTxO
341+
txOutValue out <> foldMap txOutValue utxoToCommit
339342

340343
commitDatum =
341-
mkTxOutDatumInline $ mkCommitDatum party lookupUTxO (headIdToCurrencySymbol headId)
344+
mkTxOutDatumInline $ mkCommitDatum party utxoToCommit (headIdToCurrencySymbol headId)
342345

343346
TxMetadata metadataMap = mkHydraHeadV1TxName "CommitTx"
344347

345-
txAuxMetadata = mkAlonzoTxAuxData @[] @LedgerEra (toShelleyMetadata metadataMap) [toLedgerScript initialScript]
346-
348+
txAuxMetadata = mkAlonzoTxAuxData @[] @LedgerEra (toShelleyMetadata metadataMap) [] -- toLedgerScript initialScript
347349
CommitTxDraft{lookupUTxO, draftTx} = commitTxDraft
348350

349351
mkCommitDatum :: Party -> UTxO -> CurrencySymbol -> Plutus.Datum

hydra-node/test/Hydra/Chain/Direct/TxSpec.hs

+3-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ import Cardano.Ledger.Api (
1717
bodyTxL,
1818
inputsTxBodyL,
1919
mkAlonzoTxAuxData,
20+
mkBasicTx,
21+
mkBasicTxBody,
2022
outputsTxBodyL,
2123
rdmrsTxWitsL,
2224
referenceInputsTxBodyL,
@@ -306,7 +308,7 @@ addRandomMetadata (l, metadata) tx =
306308
genBlueprintTx :: UTxO -> Gen Tx
307309
genBlueprintTx utxo = do
308310
(toSpend, toReference) <- splitUTxO
309-
tx <- arbitrary <&> referenceInputs toReference . spendInputs toSpend
311+
let tx = mkBasicTx mkBasicTxBody & referenceInputs toReference . spendInputs toSpend
310312
pure $ fromLedgerTx tx
311313
where
312314
spendInputs spentTxIns tx =

0 commit comments

Comments
 (0)