Skip to content

Commit b4d97a7

Browse files
authored
Merge pull request #7 from mlabs-haskell/dshuiski/auction-mp
Implement auction minting policy
2 parents 75507c1 + 8dcfe01 commit b4d97a7

File tree

20 files changed

+388
-27
lines changed

20 files changed

+388
-27
lines changed

app/Main.hs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ module Main (main) where
33
import HydraAuctionOnchain.Scripts
44
( auctionEscrowValidatorUntyped
55
, auctionMetadataValidatorUntyped
6+
, auctionMintingPolicyUntyped
67
, standingBidValidatorUntyped
78
, writeScript
89
)
@@ -23,16 +24,26 @@ main :: IO ()
2324
main =
2425
execParser (info (helper <*> scriptToCompile) fullDesc) >>= \case
2526
AllScripts -> do
27+
writeAuctionMintingPolicy
2628
writeAuctionEscrowValidator
2729
writeStandingBidValidator
2830
writeAuctionMetadataValidator
31+
AuctionMintingPolicy ->
32+
writeAuctionMintingPolicy
2933
AuctionEscrowValidator ->
3034
writeAuctionEscrowValidator
3135
StandingBidValidator ->
3236
writeStandingBidValidator
3337
AuctionMetadataValidator ->
3438
writeAuctionMetadataValidator
3539

40+
writeAuctionMintingPolicy :: IO ()
41+
writeAuctionMintingPolicy =
42+
writeScript
43+
"Auction minting policy"
44+
"compiled/auction_minting_policy.plutus"
45+
auctionMintingPolicyUntyped
46+
3647
writeAuctionEscrowValidator :: IO ()
3748
writeAuctionEscrowValidator =
3849
writeScript
@@ -56,6 +67,7 @@ writeAuctionMetadataValidator =
5667

5768
data ScriptToCompile
5869
= AllScripts
70+
| AuctionMintingPolicy
5971
| AuctionEscrowValidator
6072
| StandingBidValidator
6173
| AuctionMetadataValidator
@@ -64,6 +76,7 @@ data ScriptToCompile
6476
toScript :: String -> Maybe ScriptToCompile
6577
toScript = \case
6678
"all" -> Just AllScripts
79+
"auction_mp" -> Just AuctionMintingPolicy
6780
"auction_escrow" -> Just AuctionEscrowValidator
6881
"standing_bid" -> Just StandingBidValidator
6982
"metadata" -> Just AuctionMetadataValidator

compiled/auction_escrow_validator.plutus

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

compiled/auction_metadata_validator.plutus

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

compiled/auction_minting_policy.plutus

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

compiled/standing_bid_validator.plutus

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

hydra-auction-onchain.cabal

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,12 +102,17 @@ common common-lang
102102
library
103103
import: common-lang
104104
exposed-modules:
105-
HydraAuctionOnchain.Errors.AuctionEscrow
106-
HydraAuctionOnchain.Errors.StandingBid
105+
HydraAuctionOnchain.Errors.MintingPolicies.Auction
106+
HydraAuctionOnchain.Errors.Types.AuctionTerms
107+
HydraAuctionOnchain.Errors.Validators.AuctionEscrow
108+
HydraAuctionOnchain.Errors.Validators.StandingBid
107109
HydraAuctionOnchain.Helpers
108110
HydraAuctionOnchain.Lib.Address
109111
HydraAuctionOnchain.Lib.Cose
112+
HydraAuctionOnchain.Lib.ScriptContext
110113
HydraAuctionOnchain.Lib.Serialization
114+
HydraAuctionOnchain.Lib.Value
115+
HydraAuctionOnchain.MintingPolicies.Auction
111116
HydraAuctionOnchain.Scripts
112117
HydraAuctionOnchain.Types.AuctionEscrowState
113118
HydraAuctionOnchain.Types.AuctionInfo
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
module HydraAuctionOnchain.Errors.MintingPolicies.Auction
2+
( PAuctionMpError (..)
3+
) where
4+
5+
import Data.Universe (Universe (universe), universeGeneric)
6+
import HydraAuctionOnchain.Types.Error (ErrorCodePrefix (errorCodePrefix))
7+
8+
data PAuctionMpError (s :: S)
9+
= -- Common errors
10+
AuctionMp'Error'MissingOwnCurrencySymbol
11+
| -- MintAuction errors
12+
AuctionMp'MintAuction'Error'AuctionTokenBundleNotMinted
13+
| AuctionMp'MintAuction'Error'MissingUtxoNonceInput
14+
| AuctionMp'MintAuction'Error'MissingAuctionMetadataOutput
15+
| AuctionMp'MintAuction'Error'AuctionMetadataOutputMissingToken
16+
| AuctionMp'MintAuction'Error'FailedToDecodeAuctionInfo
17+
| AuctionMp'MintAuction'Error'AuctionInfoCurrencySymbolMismatch
18+
| -- BurnAuction errors
19+
AuctionMp'BurnAuction'Error'AuctionTokenBundleNotBurned
20+
deriving stock (Generic, Eq)
21+
deriving anyclass (PlutusType)
22+
23+
instance DerivePlutusType PAuctionMpError where
24+
type DPTStrat _ = PlutusTypeScott
25+
26+
instance Universe (PAuctionMpError s) where
27+
universe = universeGeneric
28+
29+
instance ErrorCodePrefix (PAuctionMpError s) where
30+
errorCodePrefix = "AUMP"
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
module HydraAuctionOnchain.Errors.Types.AuctionTerms
2+
( PAuctionTermsError (..)
3+
) where
4+
5+
import Data.Universe (Universe (universe), universeGeneric)
6+
import HydraAuctionOnchain.Types.Error (ErrorCodePrefix (errorCodePrefix))
7+
8+
data PAuctionTermsError (s :: S)
9+
= AuctionTerms'Error'AuctionLotNonZeroAda
10+
| AuctionTerms'Error'NonPositiveAuctionLotValue
11+
| AuctionTerms'Error'SellerAddressLacksPubKeyCredential
12+
| AuctionTerms'Error'SellerVkPkhMismatch
13+
| AuctionTerms'Error'BiddingStartNotBeforeBiddingEnd
14+
| AuctionTerms'Error'BiddingEndNotBeforePurchaseDeadline
15+
| AuctionTerms'Error'PurchaseDeadlineNotBeforeCleanup
16+
| AuctionTerms'Error'NonPositiveMinBidIncrement
17+
| AuctionTerms'Error'InvalidStartingBid
18+
| AuctionTerms'Error'InvalidAuctionFeePerDelegate
19+
| AuctionTerms'Error'NoDelegates
20+
deriving stock (Generic, Eq)
21+
deriving anyclass (PlutusType)
22+
23+
instance DerivePlutusType PAuctionTermsError where
24+
type DPTStrat _ = PlutusTypeScott
25+
26+
instance Universe (PAuctionTermsError s) where
27+
universe = universeGeneric
28+
29+
instance ErrorCodePrefix (PAuctionTermsError s) where
30+
errorCodePrefix = "AUTE"

src/HydraAuctionOnchain/Errors/AuctionEscrow.hs renamed to src/HydraAuctionOnchain/Errors/Validators/AuctionEscrow.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
module HydraAuctionOnchain.Errors.AuctionEscrow
1+
module HydraAuctionOnchain.Errors.Validators.AuctionEscrow
22
( PAuctionEscrowError (..)
33
) where
44

src/HydraAuctionOnchain/Errors/StandingBid.hs renamed to src/HydraAuctionOnchain/Errors/Validators/StandingBid.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
module HydraAuctionOnchain.Errors.StandingBid
1+
module HydraAuctionOnchain.Errors.Validators.StandingBid
22
( PStandingBidError (..)
33
) where
44

0 commit comments

Comments
 (0)