Skip to content

Commit 6281a20

Browse files
authored
Merge pull request #1 from mlabs-haskell/dshuiski/auction-metadata-validator
Implement auction metadata validator
2 parents a441973 + ad83d53 commit 6281a20

20 files changed

+974
-6
lines changed

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
flake.lock linguist-generated=true
2+
compiled/* linguist-generated=true

Makefile

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.PHONY: build, repl, format
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)
@@ -7,7 +7,19 @@ build:
77
cabal v2-build all
88

99
repl:
10-
cabal v2-repl hydra-auction-onchain
10+
cabal v2-repl hydra-auction-onchain --ghc-options '-Wno-missing-import-lists'
1111

1212
format:
1313
fourmolu -m inplace ${hs-sources} && cabal-fmt -i ${cabal-sources} && nix run '.#nixFormat'
14+
15+
hoogle:
16+
hoogle server --local --port=8070 > /dev/null &
17+
18+
all_scripts:
19+
cabal v2-run hydra-auction-onchain-exe -- --script all
20+
21+
auction_metadata_validator:
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: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,66 @@
11
module Main (main) where
22

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+
)
20+
321
main :: IO ()
4-
main = return ()
22+
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 =
34+
writeScript
35+
"Auction metadata validator"
36+
"compiled/auction_metadata_validator.plutus"
37+
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: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)