Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create separate directories for v1 and v2 plutus scripts #486

Merged
merged 5 commits into from
Jun 13, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions plutus-example/app/create-script-context.hs
Original file line number Diff line number Diff line change
Expand Up @@ -53,18 +53,21 @@ parseScriptContextCmd = parseGenerateDummy <|> parseGenerateTxBody

data ScriptContextCmd
= GenerateDummyScriptContextRedeemer
--LedgerPlutusVersion TODO: Babbage era. We should
-- parameterize on LedgerPlutusVersion.
FilePath
| GenerateScriptContextRedeemerTxBody
-- LedgerPlutusVersion
FilePath
AnyConsensusModeParams
NetworkId
FilePath

runScriptContextCmd :: ScriptContextCmd -> IO ()
runScriptContextCmd (GenerateDummyScriptContextRedeemer outFp) =
LB.writeFile outFp sampleTestScriptContextDataJSON
LB.writeFile outFp sampleTestV1ScriptContextDataJSON
runScriptContextCmd (GenerateScriptContextRedeemerTxBody txbodyfile cModeParams nid outFp) = do
eTxBodyRedeemer <- runExceptT $ txToRedeemer txbodyfile cModeParams nid
eTxBodyRedeemer <- runExceptT $ createAnyCustomRedeemerBsFromTxFp txbodyfile cModeParams nid
case eTxBodyRedeemer of
Left err -> error $ "Error creating redeemer from: " <> txbodyfile <>
" Error: " <> show err
Expand Down
50 changes: 29 additions & 21 deletions plutus-example/app/plutus-example.hs
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,36 @@ import Cardano.Api
import System.Directory
import System.FilePath.Posix ((</>))

import PlutusExample.AlwaysFails (alwaysFailsScript)
import PlutusExample.AlwaysSucceeds (alwaysSucceedsScript)
import PlutusExample.CustomDatumRedeemerGuess
import PlutusExample.DatumRedeemerGuess (guessScript, guessScriptStake)
import PlutusExample.Loop (loopScript)
import PlutusExample.MintingScript (apiExamplePlutusMintingScript)
import PlutusExample.ScriptContextChecker
import PlutusExample.Sum (sumScript)
import PlutusExample.PlutusVersion1.AlwaysFails (alwaysFailsScript)
import PlutusExample.PlutusVersion1.AlwaysSucceeds (alwaysSucceedsScript)
import PlutusExample.PlutusVersion1.CustomDatumRedeemerGuess
import PlutusExample.PlutusVersion1.DatumRedeemerGuess (guessScript, guessScriptStake)
import PlutusExample.PlutusVersion1.Loop (loopScript)
import PlutusExample.PlutusVersion1.MintingScript (apiExamplePlutusMintingScript)
import PlutusExample.PlutusVersion1.RedeemerContextScripts
import PlutusExample.PlutusVersion1.Sum (sumScript)

import PlutusExample.PlutusVersion2.RequireRedeemer (requireRedeemerScript)

main :: IO ()
main = do
let dir = "generated-plutus-scripts"
createDirectory dir

_ <- writeFileTextEnvelope (dir </> "always-fails.plutus") Nothing alwaysFailsScript
_ <- writeFileTextEnvelope (dir </> "always-succeeds-spending.plutus") Nothing alwaysSucceedsScript
_ <- writeFileTextEnvelope (dir </> "guess-42-datum-42-txin.plutus") Nothing guessScript
_ <- writeFileTextEnvelope (dir </> "guess-42-stake.plutus") Nothing guessScriptStake
_ <- writeFileTextEnvelope (dir </> "custom-guess-42-datum-42.plutus") Nothing customGuessScript
_ <- writeFileTextEnvelope (dir </> "anyone-can-mint.plutus") Nothing apiExamplePlutusMintingScript
_ <- writeFileTextEnvelope (dir </> "sum.plutus") Nothing sumScript
_ <- writeFileTextEnvelope (dir </> "loop.plutus") Nothing loopScript
_ <- writeFileTextEnvelope (dir </> "context-equivalance-test.plutus") Nothing scriptContextCheckScript
_ <- writeFileTextEnvelope (dir </> "minting-context-equivalance-test.plutus") Nothing customApiExamplePlutusMintingScript
let v1dir = "generated-plutus-scripts/v1"
v2dir = "generated-plutus-scripts/v2"
createDirectoryIfMissing True v1dir
createDirectoryIfMissing True v2dir

_ <- writeFileTextEnvelope (v1dir </> "always-fails.plutus") Nothing alwaysFailsScript
_ <- writeFileTextEnvelope (v1dir </> "always-succeeds-spending.plutus") Nothing alwaysSucceedsScript
_ <- writeFileTextEnvelope (v1dir </> "guess-42-datum-42-txin.plutus") Nothing guessScript
_ <- writeFileTextEnvelope (v1dir </> "guess-42-stake.plutus") Nothing guessScriptStake
_ <- writeFileTextEnvelope (v1dir </> "custom-guess-42-datum-42.plutus") Nothing customGuessScript
_ <- writeFileTextEnvelope (v1dir </> "anyone-can-mint.plutus") Nothing apiExamplePlutusMintingScript
_ <- writeFileTextEnvelope (v1dir </> "sum.plutus") Nothing sumScript
_ <- writeFileTextEnvelope (v1dir </> "loop.plutus") Nothing loopScript
_ <- writeFileTextEnvelope (v1dir </> "context-equivalance-test.plutus") Nothing scriptContextTextPayingScript
_ <- writeFileTextEnvelope (v1dir </> "minting-context-equivalance-test.plutus") Nothing scriptContextTestMintingScript


_ <- writeFileTextEnvelope (v2dir </> "required-redeemer.plutus") Nothing requireRedeemerScript

return ()
21 changes: 13 additions & 8 deletions plutus-example/plutus-example.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -58,14 +58,19 @@ library

hs-source-dirs: src

exposed-modules: PlutusExample.AlwaysFails
PlutusExample.AlwaysSucceeds
PlutusExample.CustomDatumRedeemerGuess
PlutusExample.DatumRedeemerGuess
PlutusExample.MintingScript
exposed-modules: PlutusExample.PlutusVersion1.AlwaysFails
PlutusExample.PlutusVersion1.AlwaysSucceeds
PlutusExample.PlutusVersion1.CustomDatumRedeemerGuess
PlutusExample.PlutusVersion1.DatumRedeemerGuess
PlutusExample.PlutusVersion1.Loop
PlutusExample.PlutusVersion1.MintingScript
PlutusExample.PlutusVersion1.RedeemerContextScripts
PlutusExample.PlutusVersion1.Sum

PlutusExample.PlutusVersion2.RequireRedeemer

PlutusExample.ScriptContextChecker
PlutusExample.Sum
PlutusExample.Loop


build-depends: aeson
, bytestring
Expand Down Expand Up @@ -134,6 +139,7 @@ test-suite plutus-example-test
, hedgehog
, hedgehog-extras
, plutus-example
, plutus-ledger
, plutus-ledger-api >= 1.0.0
, tasty
, tasty-hedgehog
Expand All @@ -159,4 +165,3 @@ test-suite plutus-example-test
, cardano-cli:cardano-cli
, cardano-submit-api:cardano-submit-api
, plutus-example:create-script-context

Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE TemplateHaskell #-}

module PlutusExample.AlwaysFails
module PlutusExample.PlutusVersion1.AlwaysFails
( alwaysFailsScript
, alwaysFailsScriptShortBs
) where
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE TemplateHaskell #-}

module PlutusExample.AlwaysSucceeds
module PlutusExample.PlutusVersion1.AlwaysSucceeds
( alwaysSucceedsScript
, alwaysSucceedsScriptShortBs
) where
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}

module PlutusExample.CustomDatumRedeemerGuess
module PlutusExample.PlutusVersion1.CustomDatumRedeemerGuess
( MyCustomDatum(..)
, MyCustomRedeemer(..)
, customGuessScript
Expand Down Expand Up @@ -50,4 +50,3 @@ customDatumRedeemerGuessScriptAsShortBs = SBS.toShort . LBS.toStrict $ serialise

customGuessScript :: PlutusScript PlutusScriptV1
customGuessScript = PlutusScriptSerialised customDatumRedeemerGuessScriptAsShortBs

Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}

module PlutusExample.DatumRedeemerGuess
module PlutusExample.PlutusVersion1.DatumRedeemerGuess
( guessScript
, guessScriptStake
, datumRedeemerGuessScriptShortBs
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}

module PlutusExample.Loop
module PlutusExample.PlutusVersion1.Loop
( loopScript
, loopScriptShortBs
) where
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{-# LANGUAGE TypeFamilies #-}


module PlutusExample.MintingScript
module PlutusExample.PlutusVersion1.MintingScript
( apiExamplePlutusMintingScript
, mintingScriptShortBs
) where
Expand All @@ -24,7 +24,6 @@ import Plutus.V1.Ledger.Scripts (Script, Validator (Validator), mkMintingPolicyS
import PlutusTx qualified
import PlutusTx.Prelude hiding (Semigroup (..), unless, (.))


{- HLINT ignore "Avoid lambda" -}

{-# INLINABLE mkPolicy #-}
Expand Down Expand Up @@ -52,4 +51,3 @@ apiExamplePlutusMintingScript = PlutusScriptSerialised . SBS.toShort $ LB.toStri

mintingScriptShortBs :: SBS.ShortByteString
mintingScriptShortBs = SBS.toShort . LB.toStrict $ scriptAsCbor

Loading