Skip to content

Commit

Permalink
Use PlutusScriptV3 everywhere
Browse files Browse the repository at this point in the history
  • Loading branch information
ch1bo committed Aug 13, 2024
1 parent ec7fd00 commit db634b4
Show file tree
Hide file tree
Showing 13 changed files with 57 additions and 57 deletions.
4 changes: 2 additions & 2 deletions hydra-cardano-api/src/Hydra/Cardano/Api/ReferenceScript.hs
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ import PlutusLedgerApi.V3 qualified as Plutus

-- | Construct a 'ReferenceScript' from any given Plutus script.
--
-- NOTE: The script is treated as a 'PlutusScriptV2'
-- NOTE: The script is treated as a 'PlutusScriptV3'
mkScriptRef :: Plutus.SerialisedScript -> ReferenceScript Era
mkScriptRef =
ReferenceScript babbageBasedEra
. toScriptInAnyLang
. PlutusScript PlutusScriptV2
. PlutusScript PlutusScriptV3
. fromPlutusScript
2 changes: 1 addition & 1 deletion hydra-cardano-api/src/Hydra/Cardano/Api/ScriptHash.hs
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@ hashScriptInAnyLang (ScriptInAnyLang _ script) =

instance Arbitrary ScriptHash where
arbitrary = do
hashScript . PlutusScript PlutusScriptV2 <$> arbitrary
hashScript . PlutusScript PlutusScriptV3 <$> arbitrary
20 changes: 10 additions & 10 deletions hydra-node/src/Hydra/Chain/Direct/State.hs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import Hydra.Cardano.Api (
NetworkId (Mainnet, Testnet),
NetworkMagic (NetworkMagic),
PaymentKey,
PlutusScriptV2,
PlutusScriptV3,
PolicyId,
Quantity (..),
SerialiseAsRawBytes (serialiseToRawBytes),
Expand Down Expand Up @@ -424,11 +424,11 @@ abort ctx seedTxIn spendableUTxO committedUTxO = do
commits =
UTxO.toMap $ UTxO.filter (isScriptTxOut commitScript) utxoOfThisHead'

commitScript = fromPlutusScript @PlutusScriptV2 Commit.validatorScript
commitScript = fromPlutusScript @PlutusScriptV3 Commit.validatorScript

headScript = fromPlutusScript @PlutusScriptV2 Head.validatorScript
headScript = fromPlutusScript @PlutusScriptV3 Head.validatorScript

initialScript = fromPlutusScript @PlutusScriptV2 Initial.validatorScript
initialScript = fromPlutusScript @PlutusScriptV3 Initial.validatorScript

headTokenScript = mkHeadTokenScript seedTxIn

Expand Down Expand Up @@ -460,9 +460,9 @@ collect ctx headId headParameters utxoToCollect spendableUTxO = do
pure $
collectComTx networkId scriptRegistry ownVerificationKey headId headParameters headUTxO commits utxoToCollect
where
headScript = fromPlutusScript @PlutusScriptV2 Head.validatorScript
headScript = fromPlutusScript @PlutusScriptV3 Head.validatorScript

commitScript = fromPlutusScript @PlutusScriptV2 Commit.validatorScript
commitScript = fromPlutusScript @PlutusScriptV3 Commit.validatorScript

ChainContext{networkId, ownVerificationKey, scriptRegistry} = ctx

Expand Down Expand Up @@ -498,7 +498,7 @@ decrement ctx spendableUTxO headId headParameters decrementingSnapshot = do
_ ->
Right $ decrementTx scriptRegistry ownVerificationKey headId headParameters headUTxO sn sigs
where
headScript = fromPlutusScript @PlutusScriptV2 Head.validatorScript
headScript = fromPlutusScript @PlutusScriptV3 Head.validatorScript

Snapshot{utxoToDecommit} = sn

Expand Down Expand Up @@ -548,7 +548,7 @@ close ctx spendableUTxO headId HeadParameters{parties, contestationPeriod} openV
}
pure $ closeTx scriptRegistry ownVerificationKey headId openVersion confirmedSnapshot startSlotNo pointInTime openThreadOutput
where
headScript = fromPlutusScript @PlutusScriptV2 Head.validatorScript
headScript = fromPlutusScript @PlutusScriptV3 Head.validatorScript

ChainContext{ownVerificationKey, scriptRegistry} = ctx

Expand Down Expand Up @@ -608,7 +608,7 @@ contest ctx spendableUTxO headId contestationPeriod openVersion contestingSnapsh

ChainContext{ownVerificationKey, scriptRegistry} = ctx

headScript = fromPlutusScript @PlutusScriptV2 Head.validatorScript
headScript = fromPlutusScript @PlutusScriptV3 Head.validatorScript

-- | Construct a fanout transaction based on the 'ClosedState' and off-chain
-- agreed 'UTxO' set to fan out.
Expand Down Expand Up @@ -638,7 +638,7 @@ fanout ctx spendableUTxO seedTxIn utxo utxoToDecommit deadlineSlotNo = do

ChainContext{scriptRegistry} = ctx

headScript = fromPlutusScript @PlutusScriptV2 Head.validatorScript
headScript = fromPlutusScript @PlutusScriptV3 Head.validatorScript

checkHeadDatum headUTxO@(_, headOutput) = do
headDatum <-
Expand Down
54 changes: 27 additions & 27 deletions hydra-node/src/Hydra/Chain/Direct/Tx.hs
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ initTx networkId seedTxIn participants parameters =
mkHeadOutput :: NetworkId -> PolicyId -> TxOutDatum ctx -> TxOut ctx
mkHeadOutput networkId tokenPolicyId datum =
TxOut
(mkScriptAddress @PlutusScriptV2 networkId headScript)
(mkScriptAddress @PlutusScriptV3 networkId headScript)
(valueFromList [(AssetId tokenPolicyId hydraHeadV1AssetName, 1)])
datum
ReferenceScriptNone
Expand Down Expand Up @@ -229,7 +229,7 @@ mkInitialOutput networkId seedTxIn participant =
initialValue =
valueFromList [(AssetId tokenPolicyId (onChainIdToAssetName participant), 1)]
initialAddress =
mkScriptAddress @PlutusScriptV2 networkId initialScript
mkScriptAddress @PlutusScriptV3 networkId initialScript
initialScript =
fromPlutusScript Initial.validatorScript
initialDatum =
Expand Down Expand Up @@ -323,7 +323,7 @@ commitTx networkId scriptRegistry headId party commitBlueprintTx (initialInput,
fromPlutusScript Commit.validatorScript

commitAddress =
mkScriptAddress @PlutusScriptV2 networkId commitScript
mkScriptAddress @PlutusScriptV3 networkId commitScript

utxoToCommit =
UTxO.fromPairs $ mapMaybe (\txin -> (txin,) <$> UTxO.resolve txin lookupUTxO) committedTxIns
Expand Down Expand Up @@ -379,12 +379,12 @@ collectComTx networkId scriptRegistry vk headId headParameters (headInput, initi
BuildTxWith $
ScriptWitness scriptWitnessInCtx $
mkScriptReference headScriptRef headScript InlineScriptDatum headRedeemer
headScript = fromPlutusScript @PlutusScriptV2 Head.validatorScript
headScript = fromPlutusScript @PlutusScriptV3 Head.validatorScript
headScriptRef = fst (headReference scriptRegistry)
headRedeemer = toScriptData Head.CollectCom
headOutput =
TxOut
(mkScriptAddress @PlutusScriptV2 networkId headScript)
(mkScriptAddress @PlutusScriptV3 networkId headScript)
(txOutValue initialHeadOutput <> commitValue)
headDatumAfter
ReferenceScriptNone
Expand All @@ -411,7 +411,7 @@ collectComTx networkId scriptRegistry vk headId headParameters (headInput, initi
commitValue =
mconcat $ txOutValue <$> Map.elems commits
commitScript =
fromPlutusScript @PlutusScriptV2 Commit.validatorScript
fromPlutusScript @PlutusScriptV3 Commit.validatorScript
commitRedeemer =
toScriptData $ Commit.redeemer Commit.ViaCollectCom

Expand Down Expand Up @@ -464,7 +464,7 @@ decrementTx scriptRegistry vk headId headParameters (headInput, headOutput) snap

decommitOutputs = maybe [] toList utxoToDecommit

headScript = fromPlutusScript @PlutusScriptV2 Head.validatorScript
headScript = fromPlutusScript @PlutusScriptV3 Head.validatorScript

headScriptRef = fst (headReference scriptRegistry)

Expand Down Expand Up @@ -537,7 +537,7 @@ closeTx scriptRegistry vk headId openVersion confirmedSnapshot startSlotNo (endS
fst (headReference scriptRegistry)

headScript =
fromPlutusScript @PlutusScriptV2 Head.validatorScript
fromPlutusScript @PlutusScriptV3 Head.validatorScript

headRedeemer = toScriptData $ Head.Close closeRedeemer

Expand Down Expand Up @@ -638,7 +638,7 @@ contestTx scriptRegistry vk headId contestationPeriod openVersion Snapshot{numbe
fst (headReference scriptRegistry)

headScript =
fromPlutusScript @PlutusScriptV2 Head.validatorScript
fromPlutusScript @PlutusScriptV3 Head.validatorScript

headRedeemer = toScriptData $ Head.Contest contestRedeemer

Expand Down Expand Up @@ -726,7 +726,7 @@ fanoutTx scriptRegistry utxo utxoToDecommit (headInput, headOutput) deadlineSlot
headScriptRef =
fst (headReference scriptRegistry)
headScript =
fromPlutusScript @PlutusScriptV2 Head.validatorScript
fromPlutusScript @PlutusScriptV3 Head.validatorScript
headRedeemer =
toScriptData $
Head.Fanout
Expand Down Expand Up @@ -790,7 +790,7 @@ abortTx committedUTxO scriptRegistry vk (headInput, initialHeadOutput) headToken
headScriptRef =
fst (headReference scriptRegistry)
headScript =
fromPlutusScript @PlutusScriptV2 Head.validatorScript
fromPlutusScript @PlutusScriptV3 Head.validatorScript
headRedeemer =
toScriptData Head.Abort

Expand All @@ -814,7 +814,7 @@ abortTx committedUTxO scriptRegistry vk (headInput, initialHeadOutput) headToken
initialScriptRef =
fst (initialReference scriptRegistry)
initialScript =
fromPlutusScript @PlutusScriptV2 Initial.validatorScript
fromPlutusScript @PlutusScriptV3 Initial.validatorScript
initialRedeemer =
toScriptData $ Initial.redeemer Initial.ViaAbort

Expand All @@ -826,7 +826,7 @@ abortTx committedUTxO scriptRegistry vk (headInput, initialHeadOutput) headToken
commitScriptRef =
fst (commitReference scriptRegistry)
commitScript =
fromPlutusScript @PlutusScriptV2 Commit.validatorScript
fromPlutusScript @PlutusScriptV3 Commit.validatorScript
commitRedeemer =
toScriptData (Commit.redeemer Commit.ViaAbort)

Expand Down Expand Up @@ -938,7 +938,7 @@ observeInitTx tx = do
guard $ isScriptTxOut headScript out
(ix,out,) <$> (fromScriptData =<< txOutScriptData out)

headScript = fromPlutusScript @PlutusScriptV2 Head.validatorScript
headScript = fromPlutusScript @PlutusScriptV3 Head.validatorScript

indexedOutputs = zip [0 ..] (txOuts' tx)

Expand All @@ -951,7 +951,7 @@ observeInitTx tx = do

isInitial = isScriptTxOut initialScript

initialScript = fromPlutusScript @PlutusScriptV2 Initial.validatorScript
initialScript = fromPlutusScript @PlutusScriptV3 Initial.validatorScript

mintedTokenNames pid =
[ assetName
Expand Down Expand Up @@ -1030,11 +1030,11 @@ observeCommitTx networkId utxo tx = do
isSpendingFromInitial =
any (\o -> txOutAddress o == initialAddress) (resolveInputsUTxO utxo tx)

initialAddress = mkScriptAddress @PlutusScriptV2 networkId initialScript
initialAddress = mkScriptAddress @PlutusScriptV3 networkId initialScript

initialScript = fromPlutusScript Initial.validatorScript

commitAddress = mkScriptAddress @PlutusScriptV2 networkId commitScript
commitAddress = mkScriptAddress @PlutusScriptV3 networkId commitScript

commitScript = fromPlutusScript Commit.validatorScript

Expand All @@ -1057,14 +1057,14 @@ observeCollectComTx ::
Maybe CollectComObservation
observeCollectComTx utxo tx = do
let inputUTxO = resolveInputsUTxO utxo tx
(headInput, headOutput) <- findTxOutByScript @PlutusScriptV2 inputUTxO headScript
(headInput, headOutput) <- findTxOutByScript @PlutusScriptV3 inputUTxO headScript
redeemer <- findRedeemerSpending tx headInput
oldHeadDatum <- txOutScriptData $ toTxContext headOutput
datum <- fromScriptData oldHeadDatum
headId <- findStateToken headOutput
case (datum, redeemer) of
(Head.Initial{parties, contestationPeriod}, Head.CollectCom) -> do
(newHeadInput, newHeadOutput) <- findTxOutByScript @PlutusScriptV2 (utxoFromTx tx) headScript
(newHeadInput, newHeadOutput) <- findTxOutByScript @PlutusScriptV3 (utxoFromTx tx) headScript
newHeadDatum <- txOutScriptData $ toTxContext newHeadOutput
utxoHash <- UTxOHash <$> decodeUtxoHash newHeadDatum
pure
Expand Down Expand Up @@ -1102,14 +1102,14 @@ observeDecrementTx ::
Maybe DecrementObservation
observeDecrementTx utxo tx = do
let inputUTxO = resolveInputsUTxO utxo tx
(headInput, headOutput) <- findTxOutByScript @PlutusScriptV2 inputUTxO headScript
(headInput, headOutput) <- findTxOutByScript @PlutusScriptV3 inputUTxO headScript
redeemer <- findRedeemerSpending tx headInput
oldHeadDatum <- txOutScriptData $ toTxContext headOutput
datum <- fromScriptData oldHeadDatum
headId <- findStateToken headOutput
case (datum, redeemer) of
(Head.Open{}, Head.Decrement Head.DecrementRedeemer{numberOfDecommitOutputs}) -> do
(_, newHeadOutput) <- findTxOutByScript @PlutusScriptV2 (utxoFromTx tx) headScript
(_, newHeadOutput) <- findTxOutByScript @PlutusScriptV3 (utxoFromTx tx) headScript
newHeadDatum <- txOutScriptData $ toTxContext newHeadOutput
case fromScriptData newHeadDatum of
Just (Head.Open Head.OpenDatum{version}) ->
Expand Down Expand Up @@ -1146,14 +1146,14 @@ observeCloseTx ::
Maybe CloseObservation
observeCloseTx utxo tx = do
let inputUTxO = resolveInputsUTxO utxo tx
(headInput, headOutput) <- findTxOutByScript @PlutusScriptV2 inputUTxO headScript
(headInput, headOutput) <- findTxOutByScript @PlutusScriptV3 inputUTxO headScript
redeemer <- findRedeemerSpending tx headInput
oldHeadDatum <- txOutScriptData $ toTxContext headOutput
datum <- fromScriptData oldHeadDatum
headId <- findStateToken headOutput
case (datum, redeemer) of
(Head.Open Head.OpenDatum{parties}, Head.Close{}) -> do
(newHeadInput, newHeadOutput) <- findTxOutByScript @PlutusScriptV2 (utxoFromTx tx) headScript
(newHeadInput, newHeadOutput) <- findTxOutByScript @PlutusScriptV3 (utxoFromTx tx) headScript
newHeadDatum <- txOutScriptData $ toTxContext newHeadOutput
(closeContestationDeadline, onChainSnapshotNumber) <- case fromScriptData newHeadDatum of
Just (Head.Closed Head.ClosedDatum{contestationDeadline, snapshotNumber}) ->
Expand Down Expand Up @@ -1196,14 +1196,14 @@ observeContestTx ::
Maybe ContestObservation
observeContestTx utxo tx = do
let inputUTxO = resolveInputsUTxO utxo tx
(headInput, headOutput) <- findTxOutByScript @PlutusScriptV2 inputUTxO headScript
(headInput, headOutput) <- findTxOutByScript @PlutusScriptV3 inputUTxO headScript
redeemer <- findRedeemerSpending tx headInput
oldHeadDatum <- txOutScriptData $ toTxContext headOutput
datum <- fromScriptData oldHeadDatum
headId <- findStateToken headOutput
case (datum, redeemer) of
(Head.Closed Head.ClosedDatum{}, Head.Contest{}) -> do
(newHeadInput, newHeadOutput) <- findTxOutByScript @PlutusScriptV2 (utxoFromTx tx) headScript
(newHeadInput, newHeadOutput) <- findTxOutByScript @PlutusScriptV3 (utxoFromTx tx) headScript
newHeadDatum <- txOutScriptData $ toTxContext newHeadOutput
let (onChainSnapshotNumber, contestationDeadline, contesters) = decodeDatum newHeadDatum
pure
Expand Down Expand Up @@ -1238,7 +1238,7 @@ observeFanoutTx ::
Maybe FanoutObservation
observeFanoutTx utxo tx = do
let inputUTxO = resolveInputsUTxO utxo tx
(headInput, headOutput) <- findTxOutByScript @PlutusScriptV2 inputUTxO headScript
(headInput, headOutput) <- findTxOutByScript @PlutusScriptV3 inputUTxO headScript
headId <- findStateToken headOutput
findRedeemerSpending tx headInput
>>= \case
Expand All @@ -1261,7 +1261,7 @@ observeAbortTx ::
Maybe AbortObservation
observeAbortTx utxo tx = do
let inputUTxO = resolveInputsUTxO utxo tx
(headInput, headOutput) <- findTxOutByScript @PlutusScriptV2 inputUTxO headScript
(headInput, headOutput) <- findTxOutByScript @PlutusScriptV3 inputUTxO headScript
headId <- findStateToken headOutput
findRedeemerSpending tx headInput >>= \case
Head.Abort -> pure $ AbortObservation headId
Expand Down
4 changes: 2 additions & 2 deletions hydra-node/test/Hydra/Chain/Direct/Contract/Abort.hs
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ propHasInitial (_, utxo) =
& counterexample ("UTxO: " <> decodeUtf8 (encodePretty utxo))
& counterexample ("Looking for Initial Script: " <> show addr)
where
addr = mkScriptAddress @PlutusScriptV2 testNetworkId (fromPlutusScript Initial.validatorScript)
addr = mkScriptAddress @PlutusScriptV3 testNetworkId (fromPlutusScript Initial.validatorScript)
paysToInitialScript txOut =
txOutAddress txOut == addr

Expand All @@ -121,7 +121,7 @@ propHasCommit (_, utxo) =
& counterexample ("UTxO: " <> decodeUtf8 (encodePretty utxo))
& counterexample ("Looking for Commit Script: " <> show addr)
where
addr = mkScriptAddress @PlutusScriptV2 testNetworkId (fromPlutusScript Commit.validatorScript)
addr = mkScriptAddress @PlutusScriptV3 testNetworkId (fromPlutusScript Commit.validatorScript)
paysToCommitScript txOut =
txOutAddress txOut == addr

Expand Down
2 changes: 1 addition & 1 deletion hydra-node/test/Hydra/Chain/Direct/Contract/CollectCom.hs
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ healthyCommitOutput participant party committed =
commitScript =
fromPlutusScript Commit.validatorScript
commitAddress =
mkScriptAddress @PlutusScriptV2 testNetworkId commitScript
mkScriptAddress @PlutusScriptV3 testNetworkId commitScript
commitValue =
foldMap txOutValue committed
<> valueFromList
Expand Down
2 changes: 1 addition & 1 deletion hydra-node/test/Hydra/Chain/Direct/Contract/Mutation.hs
Original file line number Diff line number Diff line change
Expand Up @@ -531,7 +531,7 @@ instance Arbitrary Head.State where
isHeadOutput :: TxOut CtxUTxO -> Bool
isHeadOutput TxOut{txOutAddress = addr} = addr == headAddress
where
headAddress = mkScriptAddress @PlutusScriptV2 Fixture.testNetworkId headScript
headAddress = mkScriptAddress @PlutusScriptV3 Fixture.testNetworkId headScript
headScript = fromPlutusScript Head.validatorScript

-- | Adds given 'Datum' and corresponding hash to the transaction's scripts.
Expand Down
6 changes: 3 additions & 3 deletions hydra-node/test/Hydra/Chain/Direct/StateSpec.hs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import Data.Set qualified as Set
import Hydra.Cardano.Api (
CtxUTxO,
NetworkId (Mainnet),
PlutusScriptV2,
PlutusScriptV3,
Tx,
TxIn,
TxOut,
Expand Down Expand Up @@ -381,7 +381,7 @@ genCommitTxMutation utxo tx =

(initialTxIn, initialTxOut) =
fromMaybe (error "not found initial script") $
UTxO.find (isScriptTxOut @PlutusScriptV2 initialScript) resolvedInputs
UTxO.find (isScriptTxOut @PlutusScriptV3 initialScript) resolvedInputs

resolvedInputs =
UTxO.fromPairs $
Expand All @@ -393,7 +393,7 @@ genCommitTxMutation utxo tx =

initialScript = fromPlutusScript Initial.validatorScript

fakeScriptAddress = mkScriptAddress @PlutusScriptV2 testNetworkId fakeScript
fakeScriptAddress = mkScriptAddress @PlutusScriptV3 testNetworkId fakeScript

fakeScript = fromPlutusScript $ Plutus.alwaysSucceedingNAryFunction 3

Expand Down
Loading

0 comments on commit db634b4

Please sign in to comment.