tx · 5RuqrfPkavqdHsd36DsddFY9Dd3LL1E1BghwFwJXZ8NH

3P8gsxa1xt1xSjDP4HR728y7o9QQginK2eU:  -0.05000000 Waves

2021.05.07 05:24 [2579301] smart account 3P8gsxa1xt1xSjDP4HR728y7o9QQginK2eU > SELF 0.00000000 Waves

{ "type": 13, "id": "5RuqrfPkavqdHsd36DsddFY9Dd3LL1E1BghwFwJXZ8NH", "fee": 5000000, "feeAssetId": null, "timestamp": 1620354278185, "version": 2, "chainId": 87, "sender": "3P8gsxa1xt1xSjDP4HR728y7o9QQginK2eU", "senderPublicKey": "FQcGKT4w9tnuigudoGoUWmGxV6JqMaac6kwNKWaA61uJ", "proofs": [ "PSGuCyAYVEYr3uh9Mq17xcrmmrH9M6p9QRUxm82WiEGhGoWj1j8kcu9ydZYFoNGb9aQQqMMPa71yaozWv3kbCTX" ], "script": "base64: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", "height": 2579301, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: yKJxLTdWucVy1n79wSfxB3gdJMpKEq7TzU2fyUttDT3 Next: CY7vK7863Z3joK3XHrZzRwznLDVtDrirwU1C71mgVj2m Diff:
OldNewDifferences
8686 let pmt = value(i.payments[0])
8787 let amount = pmt.amount
8888 let bidId = toBase58String(i.transactionId)
89+ let assetId = getStringValue(this, (("auction_" + auctionId) + "_assetId"))
8990 if ((pmt.assetId != unit))
9091 then throw("Auction does only support WAVES payments")
91- else [StringEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_author"), toString(i.caller)), IntegerEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"), amount), StringEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_status"), "open")]
92+ else [StringEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_author"), toString(i.caller)), StringEntry((((("assetId_" + assetId) + "_bid_") + bidId) + "_data"), (((((("{\"auctionId\": \"" + auctionId) + "\", \"author\": \"") + toString(i.caller)) + "\", \"amount\": \"") + toString(amount)) + "\", \"status\": \"open\"}")), IntegerEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"), amount), StringEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_status"), "open")]
9293 }
9394
9495
9798 func cancelBid (auctionId,bidId) = {
9899 let pmt = value(i.payments[0])
99100 let amount = pmt.amount
101+ let assetId = getStringValue(this, (("auction_" + auctionId) + "_assetId"))
100102 let bidAuthor = tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_author"))
101103 let bidAmount = tryGetInteger((((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"))
102104 if ((toString(i.caller) != bidAuthor))
103105 then throw("Only allowed to the bid author")
104- else [StringEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_status"), "cancelled"), ScriptTransfer(i.caller, bidAmount, unit)]
106+ else [StringEntry((((("assetId_" + assetId) + "_bid_") + bidId) + "_data"), (((((("{\"auctionId\": \"" + auctionId) + "\", \"author\": \"") + toString(i.caller)) + "\", \"amount\": \"") + toString(amount)) + "\", \"status\": \"cancelled\"}")), StringEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_status"), "cancelled"), ScriptTransfer(i.caller, bidAmount, unit)]
105107 }
106108
107109
120122 else {
121123 let recordPrice = tryGetInteger((assetId + "_recordPrice"))
122124 let newRecordPrice = max([recordPrice, bidAmount])
123-[StringEntry((("auction_" + auctionId) + "_status"), "finished"), IntegerEntry((("auction_" + auctionId) + "_finalPrice"), bidAmount), IntegerEntry((assetId + "_recordPrice"), newRecordPrice), StringEntry((((("address_" + auctionOwner) + "_auction_") + auctionId) + "_lockedNFT"), ""), ScriptTransfer(i.caller, bidAmount, unit), ScriptTransfer(addressFromStringValue(bidAuthor), 1, fromBase58String(assetId))]
125+[StringEntry((("auction_" + auctionId) + "_status"), "finished"), StringEntry((((("assetId_" + assetId) + "_bid_") + bidId) + "_data"), (((((("{\"auctionId\": \"" + auctionId) + "\", \"author\": \"") + toString(i.caller)) + "\", \"amount\": \"") + toString(bidAmount)) + "\", \"status\": \"finished\"}")), IntegerEntry((("auction_" + auctionId) + "_finalPrice"), bidAmount), IntegerEntry((assetId + "_recordPrice"), newRecordPrice), StringEntry((((("address_" + auctionOwner) + "_auction_") + auctionId) + "_lockedNFT"), ""), ScriptTransfer(i.caller, bidAmount, unit), ScriptTransfer(addressFromStringValue(bidAuthor), 1, fromBase58String(assetId))]
124126 }
125127 }
126128
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let incubatorAddress = base58'3PACKMArmh4BAEawStYmpcU62aiNTBJKvNh'
55
66 func tryGetInteger (key) = {
77 let val = match getInteger(this, key) {
88 case b: Int =>
99 b
1010 case _ =>
1111 0
1212 }
1313 val
1414 }
1515
1616
1717 func tryGetString (key) = {
1818 let val = match getString(this, key) {
1919 case b: String =>
2020 b
2121 case _ =>
2222 ""
2323 }
2424 val
2525 }
2626
2727
2828 func getAssetGenotype (assetId) = {
2929 let asset = match getString(Address(incubatorAddress), toBase58String(assetId)) {
3030 case b: String =>
3131 b
3232 case _ =>
3333 ""
3434 }
3535 asset
3636 }
3737
3838
3939 @Callable(i)
4040 func initAuction (startPrice,instantPrice,description) = {
4141 let auctionId = toBase58String(i.transactionId)
4242 let pmt = value(i.payments[0])
4343 let assetId = value(pmt.assetId)
4444 let asset = getAssetGenotype(assetId)
4545 if ((asset == ""))
4646 then throw("You can only sell an NFT-duck created in incubator")
4747 else [StringEntry((("auction_" + auctionId) + "_status"), "open"), 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.caller)), StringEntry((("auction_" + auctionId) + "_description"), description), IntegerEntry((("auction_" + auctionId) + "_startPrice"), startPrice), IntegerEntry((("auction_" + auctionId) + "_instantPrice"), instantPrice), StringEntry((((("address_" + toString(i.caller)) + "_auction_") + auctionId) + "_lockedNFT"), toBase58String(assetId))]
4848 }
4949
5050
5151
5252 @Callable(i)
5353 func cancelAuction (auctionId) = {
5454 let auctionOwner = tryGetString((("auction_" + auctionId) + "_owner"))
5555 if ((toString(i.caller) != auctionOwner))
5656 then throw("Only allowed to auction owner")
5757 else [StringEntry((("auction_" + auctionId) + "_status"), "cancelled"), StringEntry((((("address_" + auctionOwner) + "_auction_") + auctionId) + "_lockedNFT"), ""), ScriptTransfer(i.caller, 1, fromBase58String(getStringValue(this, (("auction_" + auctionId) + "_assetId"))))]
5858 }
5959
6060
6161
6262 @Callable(i)
6363 func instantBuy (auctionId) = {
6464 let pmt = value(i.payments[0])
6565 let amount = pmt.amount
6666 let auctionStatus = tryGetString((("auction_" + auctionId) + "_status"))
6767 if ((pmt.assetId != unit))
6868 then throw("Auction does only support WAVES payments.")
6969 else if ((auctionStatus != "open"))
7070 then throw("Auction is closed. You cannot place a bid.")
7171 else {
7272 let instantPrice = tryGetInteger((("auction_" + auctionId) + "_instantPrice"))
7373 if ((instantPrice > amount))
7474 then throw(("For instant purchase you need to pay at least " + toString(instantPrice)))
7575 else {
7676 let auctionOwner = tryGetString((("auction_" + auctionId) + "_owner"))
7777 [StringEntry((("auction_" + auctionId) + "_status"), "finished"), IntegerEntry((("auction_" + auctionId) + "_finalPrice"), amount), ScriptTransfer(addressFromStringValue(auctionOwner), amount, unit), ScriptTransfer(i.caller, 1, fromBase58String(getStringValue(this, (("auction_" + auctionId) + "_assetId"))))]
7878 }
7979 }
8080 }
8181
8282
8383
8484 @Callable(i)
8585 func placeBid (auctionId) = {
8686 let pmt = value(i.payments[0])
8787 let amount = pmt.amount
8888 let bidId = toBase58String(i.transactionId)
89+ let assetId = getStringValue(this, (("auction_" + auctionId) + "_assetId"))
8990 if ((pmt.assetId != unit))
9091 then throw("Auction does only support WAVES payments")
91- else [StringEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_author"), toString(i.caller)), IntegerEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"), amount), StringEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_status"), "open")]
92+ else [StringEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_author"), toString(i.caller)), StringEntry((((("assetId_" + assetId) + "_bid_") + bidId) + "_data"), (((((("{\"auctionId\": \"" + auctionId) + "\", \"author\": \"") + toString(i.caller)) + "\", \"amount\": \"") + toString(amount)) + "\", \"status\": \"open\"}")), IntegerEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"), amount), StringEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_status"), "open")]
9293 }
9394
9495
9596
9697 @Callable(i)
9798 func cancelBid (auctionId,bidId) = {
9899 let pmt = value(i.payments[0])
99100 let amount = pmt.amount
101+ let assetId = getStringValue(this, (("auction_" + auctionId) + "_assetId"))
100102 let bidAuthor = tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_author"))
101103 let bidAmount = tryGetInteger((((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"))
102104 if ((toString(i.caller) != bidAuthor))
103105 then throw("Only allowed to the bid author")
104- else [StringEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_status"), "cancelled"), ScriptTransfer(i.caller, bidAmount, unit)]
106+ else [StringEntry((((("assetId_" + assetId) + "_bid_") + bidId) + "_data"), (((((("{\"auctionId\": \"" + auctionId) + "\", \"author\": \"") + toString(i.caller)) + "\", \"amount\": \"") + toString(amount)) + "\", \"status\": \"cancelled\"}")), StringEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_status"), "cancelled"), ScriptTransfer(i.caller, bidAmount, unit)]
105107 }
106108
107109
108110
109111 @Callable(i)
110112 func acceptBid (auctionId,bidId) = {
111113 let auctionOwner = tryGetString((("auction_" + auctionId) + "_owner"))
112114 let bidAuthor = tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_author"))
113115 let bidAmount = tryGetInteger((((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"))
114116 let bidStatus = tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_status"))
115117 let assetId = tryGetString((("auction_" + auctionId) + "_assetId"))
116118 if ((toString(i.caller) != auctionOwner))
117119 then throw("Only allowed to auction owner")
118120 else if ((bidStatus != "open"))
119121 then throw("Bid was cancelled and cannot be accepted")
120122 else {
121123 let recordPrice = tryGetInteger((assetId + "_recordPrice"))
122124 let newRecordPrice = max([recordPrice, bidAmount])
123-[StringEntry((("auction_" + auctionId) + "_status"), "finished"), IntegerEntry((("auction_" + auctionId) + "_finalPrice"), bidAmount), IntegerEntry((assetId + "_recordPrice"), newRecordPrice), StringEntry((((("address_" + auctionOwner) + "_auction_") + auctionId) + "_lockedNFT"), ""), ScriptTransfer(i.caller, bidAmount, unit), ScriptTransfer(addressFromStringValue(bidAuthor), 1, fromBase58String(assetId))]
125+[StringEntry((("auction_" + auctionId) + "_status"), "finished"), StringEntry((((("assetId_" + assetId) + "_bid_") + bidId) + "_data"), (((((("{\"auctionId\": \"" + auctionId) + "\", \"author\": \"") + toString(i.caller)) + "\", \"amount\": \"") + toString(bidAmount)) + "\", \"status\": \"finished\"}")), IntegerEntry((("auction_" + auctionId) + "_finalPrice"), bidAmount), IntegerEntry((assetId + "_recordPrice"), newRecordPrice), StringEntry((((("address_" + auctionOwner) + "_auction_") + auctionId) + "_lockedNFT"), ""), ScriptTransfer(i.caller, bidAmount, unit), ScriptTransfer(addressFromStringValue(bidAuthor), 1, fromBase58String(assetId))]
124126 }
125127 }
126128
127129
128130 @Verifier(tx)
129131 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
130132

github/deemru/w8io/3ef1775 
61.12 ms