Skip to content

Commit a4a8f73

Browse files
committed
feat: add makefile targets for script serialization
1 parent 3ea18f2 commit a4a8f73

File tree

4 files changed

+79
-6
lines changed

4 files changed

+79
-6
lines changed

Makefile

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.PHONY: build, repl, format, hoogle, auction_metadata_validator
1+
.PHONY: build, repl, format, hoogle, all_scripts, auction_metadata_validator, standing_bid_validator
22

33
hs-sources := $(shell fd --no-ignore-parent -ehs)
44
cabal-sources := $(shell fd --no-ignore-parent -ecabal)
@@ -15,5 +15,11 @@ format:
1515
hoogle:
1616
hoogle server --local --port=8070 > /dev/null &
1717

18+
all_scripts:
19+
cabal v2-run hydra-auction-onchain-exe -- --script all
20+
1821
auction_metadata_validator:
19-
cabal v2-run hydra-auction-onchain-exe
22+
cabal v2-run hydra-auction-onchain-exe -- --script metadata
23+
24+
standing_bid_validator:
25+
cabal v2-run hydra-auction-onchain-exe -- --script standing_bid

app/Main.hs

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,66 @@
11
module Main (main) where
22

3-
import HydraAuctionOnchain.Scripts (auctionMetadataValidatorUntyped, writeScript)
3+
import HydraAuctionOnchain.Scripts
4+
( auctionMetadataValidatorUntyped
5+
, standingBidValidatorUntyped
6+
, writeScript
7+
)
8+
import Options.Applicative
9+
( Parser
10+
, execParser
11+
, fullDesc
12+
, help
13+
, helper
14+
, info
15+
, long
16+
, maybeReader
17+
, metavar
18+
, option
19+
)
420

521
main :: IO ()
622
main =
23+
execParser (info (helper <*> scriptToCompile) fullDesc) >>= \case
24+
AllScripts -> do
25+
writeAuctionMetadataValidator
26+
writeStandingBidValidator
27+
AuctionMetadataValidator ->
28+
writeAuctionMetadataValidator
29+
StandingBidValidator ->
30+
writeStandingBidValidator
31+
32+
writeAuctionMetadataValidator :: IO ()
33+
writeAuctionMetadataValidator =
734
writeScript
835
"Auction metadata validator"
936
"compiled/auction_metadata_validator.plutus"
1037
auctionMetadataValidatorUntyped
38+
39+
writeStandingBidValidator :: IO ()
40+
writeStandingBidValidator =
41+
writeScript
42+
"Standing bid validator"
43+
"compiled/standing_bid_validator.plutus"
44+
standingBidValidatorUntyped
45+
46+
data ScriptToCompile
47+
= AllScripts
48+
| AuctionMetadataValidator
49+
| StandingBidValidator
50+
deriving stock (Show, Eq)
51+
52+
toScript :: String -> Maybe ScriptToCompile
53+
toScript = \case
54+
"all" -> Just AllScripts
55+
"metadata" -> Just AuctionMetadataValidator
56+
"standing_bid" -> Just StandingBidValidator
57+
_ -> Nothing
58+
59+
scriptToCompile :: Parser ScriptToCompile
60+
scriptToCompile =
61+
option
62+
(maybeReader toScript)
63+
( long "script"
64+
<> metavar "SCRIPT"
65+
<> help "Name of the Plutarch script to compile"
66+
)

compiled/auction_metadata_validator.plutus

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)