tx · J9hacNRtGzathpAfCzSpat6yZ2r1FQqoNyFU7hk5iXas

3PEBtiSVLrqyYxGd76vXKu8FFWWsD1c5uYG:  -0.01400000 Waves

2021.11.17 16:32 [2860095] smart account 3PEBtiSVLrqyYxGd76vXKu8FFWWsD1c5uYG > SELF 0.00000000 Waves

{ "type": 13, "id": "J9hacNRtGzathpAfCzSpat6yZ2r1FQqoNyFU7hk5iXas", "fee": 1400000, "feeAssetId": null, "timestamp": 1637155946857, "version": 2, "chainId": 87, "sender": "3PEBtiSVLrqyYxGd76vXKu8FFWWsD1c5uYG", "senderPublicKey": "GPiVunnvoUZtBzkfVrpRsMBEf3mWdgRrex2zvzCtM6WQ", "proofs": [ "3pRZe1iedn4EYRbT8rTLrDGtJdqhC3Wd1YMqz8NUk6pgafKSGXh9PbkXjkpPYFJYwqTTTKYVTgP6Rj6Fr49eeHDt" ], "script": "base64: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", "height": 2860095, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: F6UDdSc2s4YE5swmKjvihEDBzeYGcW63AvZG8qpb6zse Next: 5aTg7P4jHz2PvoqxsfZdKpmAM8ojmuDPLwQ8Qzu3K1vi Diff:
OldNewDifferences
9090 let asset = getAssetGenotype(assetId)
9191 if ((asset == ""))
9292 then throw("You can only sell an NFT-duck created in incubator or breeder")
93- else [StringEntry((("auction_" + auctionId) + "_status"), "open"), BooleanEntry((("auction_" + auctionId) + "_eggSell"), eggSell), IntegerEntry(kGlobalCounter, (globalCounter + 1)), 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), IntegerEntry((("auction_" + auctionId) + "_instantPrice"), instantPrice), StringEntry((((("address_" + toString(i.originCaller)) + "_auction_") + auctionId) + "_lockedNFT"), toBase58String(assetId))]
93+ else [StringEntry((("auction_" + auctionId) + "_status"), "open"), BooleanEntry((("auction_" + auctionId) + "_eggSell"), (eggSell == "true")), IntegerEntry(kGlobalCounter, (globalCounter + 1)), 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), IntegerEntry((("auction_" + auctionId) + "_instantPrice"), instantPrice), StringEntry((((("address_" + toString(i.originCaller)) + "_auction_") + auctionId) + "_lockedNFT"), toBase58String(assetId))]
9494 }
9595
9696
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let incubatorAddress = base58'3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv'
55
66 let breederAddress = base58'3PDVuU45H7Eh5dmtNbnRNRStGwULA7NY6Hb'
77
88 let feeAggregator = base58'3P6AobNbcQ3ZjcRY37mJPKN8PP9Giz8kgeY'
99
1010 let eggAssetId = base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS'
1111
1212 let kGlobalCounter = "GLOBAL_COUNTER"
1313
1414 let feePercent = 5
1515
1616 func tryGetInteger (key) = {
1717 let val = match getInteger(this, key) {
1818 case b: Int =>
1919 b
2020 case _ =>
2121 0
2222 }
2323 val
2424 }
2525
2626
2727 func tryGetString (key) = {
2828 let val = match getString(this, key) {
2929 case b: String =>
3030 b
3131 case _ =>
3232 ""
3333 }
3434 val
3535 }
3636
3737
3838 func tryGetBoolean (key) = match getBoolean(this, key) {
3939 case b: Boolean =>
4040 b
4141 case _ =>
4242 false
4343 }
4444
4545
4646 func getGlobalCounter () = tryGetInteger(kGlobalCounter)
4747
4848
4949 func getAssetGenotype (assetId) = {
5050 let asset1 = match getString(Address(incubatorAddress), toBase58String(assetId)) {
5151 case b: String =>
5252 b
5353 case _ =>
5454 ""
5555 }
5656 if ((asset1 != ""))
5757 then asset1
5858 else {
5959 let asset2 = match getString(Address(breederAddress), toBase58String(assetId)) {
6060 case c: String =>
6161 c
6262 case _ =>
6363 ""
6464 }
6565 if ((asset2 != ""))
6666 then asset2
6767 else ""
6868 }
6969 }
7070
7171
7272 func getBidCancelResults (auctionId,bidId) = {
7373 let isEggSell = tryGetBoolean((("auction_" + auctionId) + "_eggSell"))
7474 let paymentAssetId = if ((isEggSell == true))
7575 then eggAssetId
7676 else unit
7777 let assetId = getStringValue(this, (("auction_" + auctionId) + "_assetId"))
7878 let bidAuthor = tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_author"))
7979 let bidAmount = tryGetInteger((((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"))
8080 [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)]
8181 }
8282
8383
8484 @Callable(i)
8585 func initAuction (startPrice,instantPrice,description,eggSell) = {
8686 let globalCounter = getGlobalCounter()
8787 let auctionId = (toBase58String(i.transactionId) + toString(globalCounter))
8888 let pmt = value(i.payments[0])
8989 let assetId = value(pmt.assetId)
9090 let asset = getAssetGenotype(assetId)
9191 if ((asset == ""))
9292 then throw("You can only sell an NFT-duck created in incubator or breeder")
93- else [StringEntry((("auction_" + auctionId) + "_status"), "open"), BooleanEntry((("auction_" + auctionId) + "_eggSell"), eggSell), IntegerEntry(kGlobalCounter, (globalCounter + 1)), 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), IntegerEntry((("auction_" + auctionId) + "_instantPrice"), instantPrice), StringEntry((((("address_" + toString(i.originCaller)) + "_auction_") + auctionId) + "_lockedNFT"), toBase58String(assetId))]
93+ else [StringEntry((("auction_" + auctionId) + "_status"), "open"), BooleanEntry((("auction_" + auctionId) + "_eggSell"), (eggSell == "true")), IntegerEntry(kGlobalCounter, (globalCounter + 1)), 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), IntegerEntry((("auction_" + auctionId) + "_instantPrice"), instantPrice), StringEntry((((("address_" + toString(i.originCaller)) + "_auction_") + auctionId) + "_lockedNFT"), toBase58String(assetId))]
9494 }
9595
9696
9797
9898 @Callable(i)
9999 func cancelAuction (auctionId) = {
100100 let auctionOwner = tryGetString((("auction_" + auctionId) + "_owner"))
101101 if ((toString(i.originCaller) != auctionOwner))
102102 then throw("Only allowed to auction owner")
103103 else if ((tryGetString((("auction_" + auctionId) + "_status")) != "open"))
104104 then throw("auction is close")
105105 else [StringEntry((("auction_" + auctionId) + "_status"), "cancelled"), DeleteEntry((((("address_" + auctionOwner) + "_auction_") + auctionId) + "_lockedNFT")), ScriptTransfer(i.originCaller, 1, fromBase58String(getStringValue(this, (("auction_" + auctionId) + "_assetId"))))]
106106 }
107107
108108
109109
110110 @Callable(i)
111111 func instantBuy (auctionId) = {
112112 let isEggSell = tryGetBoolean((("auction_" + auctionId) + "_eggSell"))
113113 let paymentAssetId = if ((isEggSell == true))
114114 then eggAssetId
115115 else unit
116116 let paymentAssetName = if ((isEggSell == true))
117117 then "EGG"
118118 else "WAVES"
119119 let pmt = value(i.payments[0])
120120 let amount = pmt.amount
121121 let assetId = tryGetString((("auction_" + auctionId) + "_assetId"))
122122 let bidId = toBase58String(i.transactionId)
123123 let auctionStatus = tryGetString((("auction_" + auctionId) + "_status"))
124124 if ((pmt.assetId != paymentAssetId))
125125 then throw((("Auction does only support " + paymentAssetName) + " payments."))
126126 else if ((auctionStatus != "open"))
127127 then throw("Auction is closed. You cannot place a bid.")
128128 else {
129129 let instantPrice = tryGetInteger((("auction_" + auctionId) + "_instantPrice"))
130130 if ((instantPrice > amount))
131131 then throw(("For instant purchase you need to pay at least " + toString(instantPrice)))
132132 else {
133133 let auctionOwner = tryGetString((("auction_" + auctionId) + "_owner"))
134134 let recordPrice = tryGetInteger((assetId + "_recordPrice"))
135135 let newRecordPrice = max([recordPrice, amount])
136136 [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 - feePercent), 100), paymentAssetId), ScriptTransfer(Address(feeAggregator), fraction(amount, feePercent, 100), paymentAssetId)]
137137 }
138138 }
139139 }
140140
141141
142142
143143 @Callable(i)
144144 func placeBid (auctionId) = {
145145 let isEggSell = tryGetBoolean((("auction_" + auctionId) + "_eggSell"))
146146 let paymentAssetId = if ((isEggSell == true))
147147 then eggAssetId
148148 else unit
149149 let paymentAssetName = if ((isEggSell == true))
150150 then "EGG"
151151 else "WAVES"
152152 let pmt = value(i.payments[0])
153153 let amount = pmt.amount
154154 let bidId = toBase58String(i.transactionId)
155155 let assetId = getStringValue(this, (("auction_" + auctionId) + "_assetId"))
156156 if ((pmt.assetId != paymentAssetId))
157157 then throw((("Auction does only support " + paymentAssetName) + " payments."))
158158 else {
159159 let minPrice = tryGetInteger((("auction_" + auctionId) + "_startPrice"))
160160 if ((minPrice > amount))
161161 then throw(("The minimal initial price is set as " + toString(minPrice)))
162162 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")]
163163 }
164164 }
165165
166166
167167
168168 @Callable(i)
169169 func cancelBid (auctionId,bidId) = {
170170 let assetId = getStringValue(this, (("auction_" + auctionId) + "_assetId"))
171171 let bidAuthor = tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_author"))
172172 let bidAmount = tryGetInteger((((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"))
173173 if ((toString(i.originCaller) != bidAuthor))
174174 then throw("Only allowed to the bid author")
175175 else if ((tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_status")) != "open"))
176176 then throw("bid is not open")
177177 else getBidCancelResults(auctionId, bidId)
178178 }
179179
180180
181181
182182 @Callable(i)
183183 func cancelOutdatedBid (auctionId,bidId) = throw("to be released")
184184
185185
186186
187187 @Callable(i)
188188 func acceptBid (auctionId,bidId) = {
189189 let isEggSell = tryGetBoolean((("auction_" + auctionId) + "_eggSell"))
190190 let paymentAssetId = if ((isEggSell == true))
191191 then eggAssetId
192192 else unit
193193 let auctionOwner = tryGetString((("auction_" + auctionId) + "_owner"))
194194 let bidAuthor = tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_author"))
195195 let bidAmount = tryGetInteger((((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"))
196196 let bidStatus = tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_status"))
197197 let assetId = tryGetString((("auction_" + auctionId) + "_assetId"))
198198 if ((toString(i.originCaller) != auctionOwner))
199199 then throw("Only allowed to auction owner")
200200 else if ((bidStatus != "open"))
201201 then throw("Bid was cancelled and cannot be accepted")
202202 else if ((tryGetString((("auction_" + auctionId) + "_status")) != "open"))
203203 then throw("Auction was closed")
204204 else {
205205 let recordPrice = tryGetInteger((assetId + "_recordPrice"))
206206 let newRecordPrice = max([recordPrice, bidAmount])
207207 [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 - feePercent), 100), paymentAssetId), ScriptTransfer(Address(feeAggregator), fraction(bidAmount, feePercent, 100), paymentAssetId), ScriptTransfer(addressFromStringValue(bidAuthor), 1, fromBase58String(assetId))]
208208 }
209209 }
210210
211211
212212 @Verifier(tx)
213213 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
214214

github/deemru/w8io/0e76f2f 
59.41 ms