Skip to content

Commit ff75a85

Browse files
committed
refactor: move auction tokens related functions to separate module
1 parent 9798705 commit ff75a85

File tree

6 files changed

+34
-32
lines changed

6 files changed

+34
-32
lines changed

hydra-auction-onchain.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,6 @@ library
105105
HydraAuctionOnchain.Errors.AuctionEscrow
106106
HydraAuctionOnchain.Errors.StandingBid
107107
HydraAuctionOnchain.Helpers
108-
HydraAuctionOnchain.MintingPolicies.Auction
109108
HydraAuctionOnchain.Scripts
110109
HydraAuctionOnchain.Types.AuctionEscrowState
111110
HydraAuctionOnchain.Types.AuctionInfo
@@ -114,6 +113,7 @@ library
114113
HydraAuctionOnchain.Types.BidTerms
115114
HydraAuctionOnchain.Types.Error
116115
HydraAuctionOnchain.Types.StandingBidState
116+
HydraAuctionOnchain.Types.Tokens
117117
HydraAuctionOnchain.Validators.AuctionEscrow
118118
HydraAuctionOnchain.Validators.AuctionMetadata
119119
HydraAuctionOnchain.Validators.StandingBid

src/HydraAuctionOnchain/Helpers.hs

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,11 @@ module HydraAuctionOnchain.Helpers
1313
, pintervalFiniteClosedOpen
1414
, ponlyOneInputFromAddress
1515
, pserialise
16-
, ptxOutContainsAuctionEscrowToken
17-
, ptxOutContainsStandingBidToken
1816
, putxoAddress
1917
, pvaluePaidTo
2018
, pvaluePaidToScript
2119
) where
2220

23-
import HydraAuctionOnchain.MintingPolicies.Auction
24-
( auctionEscrowTokenName
25-
, standingBidTokenName
26-
)
2721
import Plutarch.Api.V1.Address (PCredential (PPubKeyCredential, PScriptCredential))
2822
import Plutarch.Api.V1.Value (pvalueOf)
2923
import Plutarch.Api.V2
@@ -181,18 +175,6 @@ ponlyOneInputFromAddress = phoistAcyclic $
181175
pserialise :: PIsData a => Term s (a :--> PByteString)
182176
pserialise = phoistAcyclic $ plam $ \x -> pserialiseData #$ pforgetData $ pdata x
183177

184-
ptxOutContainsAuctionEscrowToken :: Term s (PCurrencySymbol :--> PTxOut :--> PBool)
185-
ptxOutContainsAuctionEscrowToken = phoistAcyclic $
186-
plam $ \auctionCs txOut ->
187-
(pvalueOf # (pfield @"value" # txOut) # auctionCs # auctionEscrowTokenName)
188-
#== 1
189-
190-
ptxOutContainsStandingBidToken :: Term s (PCurrencySymbol :--> PTxOut :--> PBool)
191-
ptxOutContainsStandingBidToken = phoistAcyclic $
192-
plam $ \auctionCs txOut ->
193-
(pvalueOf # (pfield @"value" # txOut) # auctionCs # standingBidTokenName)
194-
#== 1
195-
196178
putxoAddress :: Term s (PTxInInfo :--> PAddress)
197179
putxoAddress = phoistAcyclic $
198180
plam $ \utxo ->

src/HydraAuctionOnchain/MintingPolicies/Auction.hs renamed to src/HydraAuctionOnchain/Types/Tokens.hs

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
1-
module HydraAuctionOnchain.MintingPolicies.Auction
2-
( allAuctionTokensBurned
3-
, auctionEscrowTokenName
1+
module HydraAuctionOnchain.Types.Tokens
2+
( auctionEscrowTokenName
43
, auctionMetadataTokenName
4+
, pallAuctionTokensBurned
5+
, ptxOutContainsAuctionEscrowToken
6+
, ptxOutContainsStandingBidToken
57
, standingBidTokenName
68
) where
79

10+
import Plutarch.Api.V1.Value (pvalueOf)
811
import Plutarch.Api.V1.Value qualified as Value (psingleton)
912
import Plutarch.Api.V2
1013
( AmountGuarantees (NonZero)
1114
, KeyGuarantees (Sorted)
1215
, PCurrencySymbol
1316
, PTokenName
17+
, PTxOut
1418
, PValue
1519
)
1620
import Plutarch.Monadic qualified as P
@@ -27,10 +31,22 @@ auctionMetadataTokenName = pconstant "AUCTION_METADATA"
2731
standingBidTokenName :: Term s PTokenName
2832
standingBidTokenName = pconstant "STANDING_BID"
2933

30-
allAuctionTokensBurned :: Term s (PCurrencySymbol :--> PValue 'Sorted 'NonZero)
31-
allAuctionTokensBurned = phoistAcyclic $
34+
pallAuctionTokensBurned :: Term s (PCurrencySymbol :--> PValue 'Sorted 'NonZero)
35+
pallAuctionTokensBurned = phoistAcyclic $
3236
plam $ \auctionCs -> P.do
3337
mkValue <- plet $ plam $ \tn -> Value.psingleton # auctionCs # tn # (-1)
3438
(mkValue # auctionEscrowTokenName)
3539
<> (mkValue # auctionMetadataTokenName)
3640
<> (mkValue # standingBidTokenName)
41+
42+
ptxOutContainsAuctionEscrowToken :: Term s (PCurrencySymbol :--> PTxOut :--> PBool)
43+
ptxOutContainsAuctionEscrowToken = phoistAcyclic $
44+
plam $ \auctionCs txOut ->
45+
(pvalueOf # (pfield @"value" # txOut) # auctionCs # auctionEscrowTokenName)
46+
#== 1
47+
48+
ptxOutContainsStandingBidToken :: Term s (PCurrencySymbol :--> PTxOut :--> PBool)
49+
ptxOutContainsStandingBidToken = phoistAcyclic $
50+
plam $ \auctionCs txOut ->
51+
(pvalueOf # (pfield @"value" # txOut) # auctionCs # standingBidTokenName)
52+
#== 1

src/HydraAuctionOnchain/Validators/AuctionEscrow.hs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,10 @@ import HydraAuctionOnchain.Helpers
1919
, pfindUniqueOutputWithScriptHash
2020
, pgetOwnInput
2121
, ponlyOneInputFromAddress
22-
, ptxOutContainsAuctionEscrowToken
23-
, ptxOutContainsStandingBidToken
2422
, putxoAddress
2523
, pvaluePaidTo
2624
, pvaluePaidToScript
2725
)
28-
import HydraAuctionOnchain.MintingPolicies.Auction (allAuctionTokensBurned)
2926
import HydraAuctionOnchain.Types.AuctionEscrowState
3027
( PAuctionEscrowState (AuctionConcluded)
3128
, pvalidateAuctionEscrowTransitionToAuctionConcluded
@@ -42,6 +39,11 @@ import HydraAuctionOnchain.Types.AuctionTerms
4239
import HydraAuctionOnchain.Types.BidTerms (psellerPayout, pvalidateBidTerms)
4340
import HydraAuctionOnchain.Types.Error (errCode, passert, passertMaybe, passertMaybeData)
4441
import HydraAuctionOnchain.Types.StandingBidState (PStandingBidState (PStandingBidState))
42+
import HydraAuctionOnchain.Types.Tokens
43+
( pallAuctionTokensBurned
44+
, ptxOutContainsAuctionEscrowToken
45+
, ptxOutContainsStandingBidToken
46+
)
4547
import Plutarch.Api.V1.Value (plovelaceValueOf, pnormalize)
4648
import Plutarch.Api.V2
4749
( PAddress
@@ -493,7 +495,7 @@ pcheckCleanupAuction = phoistAcyclic $
493495
-- tokens of the auction should all be burned. No other tokens
494496
-- should be minted or burned.
495497
passert $(errCode AuctionEscrow'CleanupAuction'Error'AuctionTokensNotBurnedExactly) $
496-
pnormalize # txInfoFields.mint #== allAuctionTokensBurned # auctionCs
498+
pnormalize # txInfoFields.mint #== pallAuctionTokensBurned # auctionCs
497499

498500
-- (AUES40) This redeemer can only be used during the cleanup period.
499501
passert $(errCode AuctionEscrow'CleanupAuction'Error'IncorrectValidityInterval) $

src/HydraAuctionOnchain/Validators/AuctionMetadata.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ module HydraAuctionOnchain.Validators.AuctionMetadata
22
( auctionMetadataValidator
33
) where
44

5-
import HydraAuctionOnchain.MintingPolicies.Auction
5+
import HydraAuctionOnchain.Types.AuctionInfo (PAuctionInfo)
6+
import HydraAuctionOnchain.Types.Tokens
67
( auctionEscrowTokenName
78
, auctionMetadataTokenName
89
, standingBidTokenName
910
)
10-
import HydraAuctionOnchain.Types.AuctionInfo (PAuctionInfo)
1111
import Plutarch.Api.V1.Value (pvalueOf)
1212
import Plutarch.Api.V2 (PScriptContext)
1313
import Plutarch.Extra.Bool (passert)

src/HydraAuctionOnchain/Validators/StandingBid.hs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,15 @@ import HydraAuctionOnchain.Helpers
1212
, pfindUniqueOutputWithAddress
1313
, pgetOwnInput
1414
, ponlyOneInputFromAddress
15-
, ptxOutContainsStandingBidToken
1615
, putxoAddress
1716
)
18-
import HydraAuctionOnchain.MintingPolicies.Auction (auctionEscrowTokenName)
1917
import HydraAuctionOnchain.Types.AuctionTerms (PAuctionTerms, pbiddingPeriod)
2018
import HydraAuctionOnchain.Types.Error (errCode, passert, passertMaybe)
2119
import HydraAuctionOnchain.Types.StandingBidState (PStandingBidState, pvalidateNewBid)
20+
import HydraAuctionOnchain.Types.Tokens
21+
( auctionEscrowTokenName
22+
, ptxOutContainsStandingBidToken
23+
)
2224
import HydraAuctionOnchain.Validators.AuctionEscrow (pisConcluding)
2325
import Plutarch.Api.V2
2426
( PCurrencySymbol

0 commit comments

Comments
 (0)