tx · E1hrjQYodTW4tt16rpVPS4XRsM7g2bvwsSmbXTHtf1YS

3MpZUVUydnP6sJRLkmfFVzbPyZxCJaMF26C:  -0.01300000 Waves

2022.07.23 22:54 [2152868] smart account 3MpZUVUydnP6sJRLkmfFVzbPyZxCJaMF26C > SELF 0.00000000 Waves

{ "type": 13, "id": "E1hrjQYodTW4tt16rpVPS4XRsM7g2bvwsSmbXTHtf1YS", "fee": 1300000, "feeAssetId": null, "timestamp": 1658606083634, "version": 2, "chainId": 84, "sender": "3MpZUVUydnP6sJRLkmfFVzbPyZxCJaMF26C", "senderPublicKey": "eQkxCgvo8ueRXjE3r7m1LmZQYPNEJR1TsDVEezZWMCf", "proofs": [ "3e77KDx4zwptYLcnSGXpFURMhGLnt4kKNJhhwGdwmakkAYVy4wo9srSMopZ21wRnKKw1XWj1nHxvoEyTsSiU2Hcb" ], "script": "base64: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", "height": 2152868, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let NFTIssuerAddress = base58'3NAojjoUnKBrRXG9mCbkSDaUEcVaMXkVMoS'
5+
6+let eggAssetId = base58'G1r2bKT6wwoScJ9k213SGoaQVjwZs16TLRhuYowNy77f'
7+
8+let collectorAddress = base58'3Mvze35RhgMCjGrqEnhQLjgtVUJVh8c2svx'
9+
10+let feePercent = 5
11+
12+let artefactsFeePercent = 20
13+
14+func tryGetInteger (key) = {
15+ let val = match getInteger(this, key) {
16+ case b: Int =>
17+ b
18+ case _ =>
19+ 0
20+ }
21+ val
22+ }
23+
24+
25+func tryGetString (key) = {
26+ let val = match getString(this, key) {
27+ case b: String =>
28+ b
29+ case _ =>
30+ ""
31+ }
32+ val
33+ }
34+
35+
36+func tryGetBoolean (key) = match getBoolean(this, key) {
37+ case b: Boolean =>
38+ b
39+ case _ =>
40+ false
41+}
42+
43+
44+func getBidCancelResults (auctionId,bidId) = {
45+ let isEggSell = tryGetBoolean((("auction_" + auctionId) + "_eggSell"))
46+ let paymentAssetId = if ((isEggSell == true))
47+ then eggAssetId
48+ else unit
49+ let assetId = getStringValue(this, (("auction_" + auctionId) + "_assetId"))
50+ let bidAuthor = tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_author"))
51+ let bidAmount = tryGetInteger((((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"))
52+[StringEntry((((("assetId_" + assetId) + "_bid_") + bidId) + "_data"), (((((("{\"auctionId\": \"" + auctionId) + "\", \"author\": \"") + bidAuthor) + "\", \"amount\": \"") + toString(bidAmount)) + "\", \"status\": \"cancelled\"}")), StringEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_status"), "cancelled"), DeleteEntry(((((("address_" + bidAuthor) + "_auction_") + auctionId) + "_bid_") + bidId)), ScriptTransfer(Address(fromBase58String(bidAuthor)), bidAmount, paymentAssetId)]
53+ }
54+
55+
56+func getAssetGenotype (assetId) = if ((value(assetInfo(assetId)).issuer == Address(NFTIssuerAddress)))
57+ then "ART"
58+ else ""
59+
60+
61+@Callable(i)
62+func initAuction (startPrice,instantPrice,description,eggSell) = {
63+ let auctionId = toBase58String(i.transactionId)
64+ let pmt = value(i.payments[0])
65+ let assetId = value(pmt.assetId)
66+ let asset = getAssetGenotype(assetId)
67+ if ((asset == ""))
68+ then throw("You can only sell an NFT-panda created in incubator or breeder")
69+ else [StringEntry((("auction_" + auctionId) + "_status"), "open"), BooleanEntry((("auction_" + auctionId) + "_eggSell"), (eggSell == "true")), StringEntry((("auction_" + toBase58String(assetId)) + "_last"), auctionId), StringEntry((("auction_" + auctionId) + "_assetGen"), asset), StringEntry((("auction_" + auctionId) + "_assetId"), toBase58String(assetId)), IntegerEntry((("auction_" + auctionId) + "_startedAt"), lastBlock.timestamp), StringEntry((("auction_" + auctionId) + "_owner"), toString(i.originCaller)), StringEntry((("auction_" + auctionId) + "_description"), description), IntegerEntry((("auction_" + auctionId) + "_startPrice"), startPrice), BooleanEntry((("auction_" + auctionId) + "_isArtefact"), (value(assetInfo(assetId)).issuer == Address(NFTIssuerAddress))), IntegerEntry((("auction_" + auctionId) + "_instantPrice"), instantPrice), StringEntry((((("address_" + toString(i.originCaller)) + "_auction_") + auctionId) + "_lockedNFT"), toBase58String(assetId))]
70+ }
71+
72+
73+
74+@Callable(i)
75+func placeBid (auctionId) = {
76+ let isEggSell = tryGetBoolean((("auction_" + auctionId) + "_eggSell"))
77+ let paymentAssetId = if ((isEggSell == true))
78+ then eggAssetId
79+ else unit
80+ let paymentAssetName = if ((isEggSell == true))
81+ then "EGG"
82+ else "WAVES"
83+ let pmt = value(i.payments[0])
84+ let amount = pmt.amount
85+ let bidId = toBase58String(i.transactionId)
86+ let assetId = getStringValue(this, (("auction_" + auctionId) + "_assetId"))
87+ if ((pmt.assetId != paymentAssetId))
88+ then throw((("Auction does only support " + paymentAssetName) + " payments."))
89+ else if ((tryGetString((("auction_" + auctionId) + "_status")) != "open"))
90+ then throw("Auction was closed")
91+ else {
92+ let minPrice = tryGetInteger((("auction_" + auctionId) + "_startPrice"))
93+ if ((minPrice > amount))
94+ then throw(("The minimal initial price is set as " + toString(minPrice)))
95+ else [StringEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_author"), toString(i.originCaller)), StringEntry((((("assetId_" + assetId) + "_bid_") + bidId) + "_data"), (((((("{\"auctionId\": \"" + auctionId) + "\", \"author\": \"") + toString(i.originCaller)) + "\", \"amount\": \"") + toString(amount)) + "\", \"status\": \"open\"}")), IntegerEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"), amount), StringEntry(((((("address_" + toString(i.originCaller)) + "_auction_") + auctionId) + "_bid_") + bidId), assetId), StringEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_status"), "open")]
96+ }
97+ }
98+
99+
100+
101+@Callable(i)
102+func acceptBid (auctionId,bidId) = {
103+ let isEggSell = tryGetBoolean((("auction_" + auctionId) + "_eggSell"))
104+ let paymentAssetId = if ((isEggSell == true))
105+ then eggAssetId
106+ else unit
107+ let auctionOwner = tryGetString((("auction_" + auctionId) + "_owner"))
108+ let bidAuthor = tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_author"))
109+ let bidAmount = tryGetInteger((((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"))
110+ let bidStatus = tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_status"))
111+ let assetId = tryGetString((("auction_" + auctionId) + "_assetId"))
112+ let finalFee = if ((tryGetBoolean((("auction_" + auctionId) + "_isArtefact")) == true))
113+ then artefactsFeePercent
114+ else feePercent
115+ if ((toString(i.originCaller) != auctionOwner))
116+ then throw("Only allowed to auction owner")
117+ else if ((bidStatus != "open"))
118+ then throw("Bid was cancelled and cannot be accepted")
119+ else if ((tryGetString((("auction_" + auctionId) + "_status")) != "open"))
120+ then throw("Auction was closed")
121+ else {
122+ let recordPrice = tryGetInteger((assetId + "_recordPrice"))
123+ let newRecordPrice = max([recordPrice, bidAmount])
124+[StringEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_status"), "finished"), StringEntry((("auction_" + auctionId) + "_status"), "finished"), StringEntry((((("assetId_" + assetId) + "_bid_") + bidId) + "_data"), (((((("{\"auctionId\": \"" + auctionId) + "\", \"author\": \"") + toString(i.originCaller)) + "\", \"amount\": \"") + toString(bidAmount)) + "\", \"status\": \"finished\"}")), IntegerEntry((("auction_" + auctionId) + "_finalPrice"), bidAmount), IntegerEntry((assetId + "_recordPrice"), newRecordPrice), DeleteEntry(((((("address_" + bidAuthor) + "_auction_") + auctionId) + "_bid_") + bidId)), DeleteEntry((((("address_" + auctionOwner) + "_auction_") + auctionId) + "_lockedNFT")), ScriptTransfer(i.caller, fraction(bidAmount, (100 - finalFee), 100), paymentAssetId), ScriptTransfer(Address(collectorAddress), fraction(bidAmount, finalFee, 100), paymentAssetId), ScriptTransfer(addressFromStringValue(bidAuthor), 1, fromBase58String(assetId))]
125+ }
126+ }
127+
128+
129+
130+@Callable(i)
131+func cancelBid (auctionId,bidId) = {
132+ let assetId = getStringValue(this, (("auction_" + auctionId) + "_assetId"))
133+ let bidAuthor = tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_author"))
134+ let bidAmount = tryGetInteger((((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"))
135+ if ((toString(i.originCaller) != bidAuthor))
136+ then throw("Only allowed to the bid author")
137+ else if ((tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_status")) != "open"))
138+ then throw("bid is not open")
139+ else getBidCancelResults(auctionId, bidId)
140+ }
141+
142+
143+
144+@Callable(i)
145+func cancelAuction (auctionId) = {
146+ let auctionOwner = tryGetString((("auction_" + auctionId) + "_owner"))
147+ if ((toString(i.originCaller) != auctionOwner))
148+ then throw("Only allowed to auction owner")
149+ else if ((tryGetString((("auction_" + auctionId) + "_status")) != "open"))
150+ then throw("auction is close")
151+ else [StringEntry((("auction_" + auctionId) + "_status"), "cancelled"), DeleteEntry((((("address_" + auctionOwner) + "_auction_") + auctionId) + "_lockedNFT")), ScriptTransfer(i.originCaller, 1, fromBase58String(getStringValue(this, (("auction_" + auctionId) + "_assetId"))))]
152+ }
153+
154+
155+
156+@Callable(i)
157+func instantBuy (auctionId) = {
158+ let isEggSell = tryGetBoolean((("auction_" + auctionId) + "_eggSell"))
159+ let paymentAssetId = if ((isEggSell == true))
160+ then eggAssetId
161+ else unit
162+ let paymentAssetName = if ((isEggSell == true))
163+ then "EGG"
164+ else "WAVES"
165+ let pmt = value(i.payments[0])
166+ let amount = pmt.amount
167+ let assetId = tryGetString((("auction_" + auctionId) + "_assetId"))
168+ let bidId = toBase58String(i.transactionId)
169+ let auctionStatus = tryGetString((("auction_" + auctionId) + "_status"))
170+ let finalFee = if ((tryGetBoolean((("auction_" + auctionId) + "_isArtefact")) == true))
171+ then artefactsFeePercent
172+ else feePercent
173+ if ((pmt.assetId != paymentAssetId))
174+ then throw((("Auction does only support " + paymentAssetName) + " payments."))
175+ else if ((auctionStatus != "open"))
176+ then throw("Auction is closed. You cannot place a bid.")
177+ else {
178+ let instantPrice = tryGetInteger((("auction_" + auctionId) + "_instantPrice"))
179+ if ((instantPrice > amount))
180+ then throw(("For instant purchase you need to pay at least " + toString(instantPrice)))
181+ else {
182+ let auctionOwner = tryGetString((("auction_" + auctionId) + "_owner"))
183+ let recordPrice = tryGetInteger((assetId + "_recordPrice"))
184+ let newRecordPrice = max([recordPrice, amount])
185+[StringEntry((("auction_" + auctionId) + "_status"), "finished"), IntegerEntry((("auction_" + auctionId) + "_finalPrice"), amount), IntegerEntry((assetId + "_recordPrice"), newRecordPrice), StringEntry((((("assetId_" + assetId) + "_bid_") + bidId) + "_data"), (((((("{\"auctionId\": \"" + auctionId) + "\", \"author\": \"") + toString(i.originCaller)) + "\", \"amount\": \"") + toString(amount)) + "\", \"status\": \"finished\"}")), DeleteEntry((((("address_" + auctionOwner) + "_auction_") + auctionId) + "_lockedNFT")), ScriptTransfer(i.originCaller, 1, fromBase58String(getStringValue(this, (("auction_" + auctionId) + "_assetId")))), ScriptTransfer(addressFromStringValue(auctionOwner), fraction(amount, (100 - finalFee), 100), paymentAssetId), ScriptTransfer(Address(collectorAddress), fraction(amount, finalFee, 100), paymentAssetId)]
186+ }
187+ }
188+ }
189+
190+
191+@Verifier(tx)
192+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
193+

github/deemru/w8io/169f3d6 
47.02 ms