1
- module HydraAuctionOnchain.MintingPolicies.Auction
2
- ( allAuctionTokensBurned
3
- , auctionEscrowTokenName
1
+ module HydraAuctionOnchain.Types.Tokens
2
+ ( auctionEscrowTokenName
4
3
, auctionMetadataTokenName
4
+ , pallAuctionTokensBurned
5
+ , ptxOutContainsAuctionEscrowToken
6
+ , ptxOutContainsStandingBidToken
5
7
, standingBidTokenName
6
8
) where
7
9
10
+ import Plutarch.Api.V1.Value (pvalueOf )
8
11
import Plutarch.Api.V1.Value qualified as Value (psingleton )
9
12
import Plutarch.Api.V2
10
13
( AmountGuarantees (NonZero )
11
14
, KeyGuarantees (Sorted )
12
15
, PCurrencySymbol
13
16
, PTokenName
17
+ , PTxOut
14
18
, PValue
15
19
)
16
20
import Plutarch.Monadic qualified as P
@@ -27,10 +31,22 @@ auctionMetadataTokenName = pconstant "AUCTION_METADATA"
27
31
standingBidTokenName :: Term s PTokenName
28
32
standingBidTokenName = pconstant " STANDING_BID"
29
33
30
- allAuctionTokensBurned :: Term s (PCurrencySymbol :--> PValue 'Sorted 'NonZero)
31
- allAuctionTokensBurned = phoistAcyclic $
34
+ pallAuctionTokensBurned :: Term s (PCurrencySymbol :--> PValue 'Sorted 'NonZero)
35
+ pallAuctionTokensBurned = phoistAcyclic $
32
36
plam $ \ auctionCs -> P. do
33
37
mkValue <- plet $ plam $ \ tn -> Value. psingleton # auctionCs # tn # (- 1 )
34
38
(mkValue # auctionEscrowTokenName)
35
39
<> (mkValue # auctionMetadataTokenName)
36
40
<> (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
0 commit comments