tx · 58a48CjhQ5BfoLLqhbPRJnAHMz9gna8dibVgmNoTJRR7

3P8gsxa1xt1xSjDP4HR728y7o9QQginK2eU:  -0.01400000 Waves

2021.05.06 22:04 [2578867] smart account 3P8gsxa1xt1xSjDP4HR728y7o9QQginK2eU > SELF 0.00000000 Waves

{ "type": 13, "id": "58a48CjhQ5BfoLLqhbPRJnAHMz9gna8dibVgmNoTJRR7", "fee": 1400000, "feeAssetId": null, "timestamp": 1620327946998, "version": 2, "chainId": 87, "sender": "3P8gsxa1xt1xSjDP4HR728y7o9QQginK2eU", "senderPublicKey": "FQcGKT4w9tnuigudoGoUWmGxV6JqMaac6kwNKWaA61uJ", "proofs": [ "9X1sKsqu39zEy46Xd3u8QoGPicAouBkGMQ3f22qMEHq3B7S38YJCcCcpam6ydtPG38ZDoEmvmBRsr2KqNLhFD1G" ], "script": "base64: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", "height": 2578867, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Hk8NDyej1S1J2dZhj1UxSz8VpEH8tRWguFaDQKxBcF6T Next: JEyvzdh67XPJon4NEoy3Z4C1GxxS36fa9BVXPCkmkak Diff:
OldNewDifferences
7474 then throw(("For instant purchase you need to pay at least " + toString(instantPrice)))
7575 else {
7676 let auctionOwner = tryGetString((("auction_" + auctionId) + "_owner"))
77-[StringEntry((("auction_" + auctionId) + "_status"), "finished"), ScriptTransfer(Address(toBytes(auctionOwner)), amount, unit), ScriptTransfer(i.caller, 1, getBinary(this, (("auction_" + auctionId) + "_assetId")))]
77+[StringEntry((("auction_" + auctionId) + "_status"), "finished"), ScriptTransfer(addressFromStringValue(auctionOwner), amount, unit), ScriptTransfer(i.caller, 1, getBinary(this, (("auction_" + auctionId) + "_assetId")))]
7878 }
7979 }
8080 }
117117 then throw("Only allowed to auction owner")
118118 else if ((bidStatus != "open"))
119119 then throw("Bid was cancelled and cannot be accepted")
120- else [StringEntry((("auction_" + auctionId) + "_status"), "finished"), ScriptTransfer(i.caller, bidAmount, unit), ScriptTransfer(Address(toBytes(bidAuthor)), 1, assetId)]
120+ else [StringEntry((("auction_" + auctionId) + "_status"), "finished"), ScriptTransfer(i.caller, bidAmount, unit), ScriptTransfer(addressFromStringValue(bidAuthor), 1, assetId)]
121121 }
122122
123123
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) = {
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_" + auctionId) + "_assetGen"), asset), StringEntry((("auction_" + auctionId) + "_assetId"), toBase58String(assetId)), IntegerEntry((("auction_" + auctionId) + "_startedAt"), lastBlock.timestamp), StringEntry((("auction_" + auctionId) + "_owner"), toString(i.caller)), IntegerEntry((("auction_" + auctionId) + "_startPrice"), startPrice), IntegerEntry((("auction_" + auctionId) + "_instantPrice"), instantPrice)]
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"), ScriptTransfer(i.caller, 1, getBinary(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 close. You can place a bid.")
7171 else {
7272 let instantPrice = tryGetInteger((("auction_" + auctionId) + "_instantPrice"))
7373 if ((amount > instantPrice))
7474 then throw(("For instant purchase you need to pay at least " + toString(instantPrice)))
7575 else {
7676 let auctionOwner = tryGetString((("auction_" + auctionId) + "_owner"))
77-[StringEntry((("auction_" + auctionId) + "_status"), "finished"), ScriptTransfer(Address(toBytes(auctionOwner)), amount, unit), ScriptTransfer(i.caller, 1, getBinary(this, (("auction_" + auctionId) + "_assetId")))]
77+[StringEntry((("auction_" + auctionId) + "_status"), "finished"), ScriptTransfer(addressFromStringValue(auctionOwner), amount, unit), ScriptTransfer(i.caller, 1, getBinary(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)
8989 if ((pmt.assetId != unit))
9090 then throw("Auction does only support WAVES payments")
9191 else [StringEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_author"), toString(i.caller)), IntegerEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"), amount), StringEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_status"), "open")]
9292 }
9393
9494
9595
9696 @Callable(i)
9797 func cancelBid (auctionId,bidId) = {
9898 let pmt = value(i.payments[0])
9999 let amount = pmt.amount
100100 let bidAuthor = tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_author"))
101101 let bidAmount = tryGetInteger((((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"))
102102 if ((toString(i.caller) != bidAuthor))
103103 then throw("Only allowed to the bid author")
104104 else [StringEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_status"), "cancelled"), ScriptTransfer(i.caller, bidAmount, unit)]
105105 }
106106
107107
108108
109109 @Callable(i)
110110 func acceptBid (auctionId,bidId) = {
111111 let auctionOwner = tryGetString((("auction_" + auctionId) + "_owner"))
112112 let bidAuthor = tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_author"))
113113 let bidAmount = tryGetInteger((((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"))
114114 let bidStatus = tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_status"))
115115 let assetId = toBytes(tryGetString((("auction_" + auctionId) + "_assetId")))
116116 if ((toString(i.caller) != auctionOwner))
117117 then throw("Only allowed to auction owner")
118118 else if ((bidStatus != "open"))
119119 then throw("Bid was cancelled and cannot be accepted")
120- else [StringEntry((("auction_" + auctionId) + "_status"), "finished"), ScriptTransfer(i.caller, bidAmount, unit), ScriptTransfer(Address(toBytes(bidAuthor)), 1, assetId)]
120+ else [StringEntry((("auction_" + auctionId) + "_status"), "finished"), ScriptTransfer(i.caller, bidAmount, unit), ScriptTransfer(addressFromStringValue(bidAuthor), 1, assetId)]
121121 }
122122
123123
124124 @Verifier(tx)
125125 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
126126

github/deemru/w8io/3ef1775 
49.06 ms