tx · BaNNWX45oz4a8H89xiPwqCuFzn5S8thgyqWBDYBRgZsZ

3N16CHLTH1NWdR2KfNnYHTAvLTgB8N4nrBF:  -0.01000000 Waves

2021.12.23 12:32 [1846727] smart account 3N16CHLTH1NWdR2KfNnYHTAvLTgB8N4nrBF > SELF 0.00000000 Waves

{ "type": 13, "id": "BaNNWX45oz4a8H89xiPwqCuFzn5S8thgyqWBDYBRgZsZ", "fee": 1000000, "feeAssetId": null, "timestamp": 1640251939695, "version": 2, "chainId": 84, "sender": "3N16CHLTH1NWdR2KfNnYHTAvLTgB8N4nrBF", "senderPublicKey": "D32HD6hY2WTa3uDXfnmFGvU4MdC5axnJxC1RXnfJk9xV", "proofs": [ "j8Xehn1LdyV4mwxhTfNuu6YkjqbT2U3y4Wuwi7awpXYH3RwzFRLwkyzfJmcHv2LYBn69PhyDcPeZfaEFZM8Z34Z" ], "script": "base64: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", "height": 1846727, "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'3N992tjd7EWM6dSHrdVjjjuJrLD4koNztZ9'
5+
6+let eggAssetId = base58'2cf6jyVG19oHU79R8iHfqFEesjstr3e7nSYEUhb2WagB'
7+
8+func tryGetInteger (key) = {
9+ let val = match getInteger(this, key) {
10+ case b: Int =>
11+ b
12+ case _ =>
13+ 0
14+ }
15+ val
16+ }
17+
18+
19+func tryGetBoolean (key) = match getBoolean(this, key) {
20+ case b: Boolean =>
21+ b
22+ case _ =>
23+ false
24+}
25+
26+
27+func getAssetGenotype (assetId) = if ((value(assetInfo(assetId)).issuer == Address(NFTIssuerAddress)))
28+ then "ART"
29+ else ""
30+
31+
32+@Callable(i)
33+func initAuction (startPrice,instantPrice,description,eggSell) = {
34+ let auctionId = toBase58String(i.transactionId)
35+ let pmt = value(i.payments[0])
36+ let assetId = value(pmt.assetId)
37+ let asset = getAssetGenotype(assetId)
38+ if ((asset == ""))
39+ then throw("You can only sell an NFT-duck created in incubator or breeder")
40+ 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))]
41+ }
42+
43+
44+
45+@Callable(i)
46+func placeBid (auctionId) = {
47+ let isEggSell = tryGetBoolean((("auction_" + auctionId) + "_eggSell"))
48+ let paymentAssetId = if ((isEggSell == true))
49+ then eggAssetId
50+ else unit
51+ let paymentAssetName = if ((isEggSell == true))
52+ then "EGG"
53+ else "WAVES"
54+ let pmt = value(i.payments[0])
55+ let amount = pmt.amount
56+ let bidId = toBase58String(i.transactionId)
57+ let assetId = getStringValue(this, (("auction_" + auctionId) + "_assetId"))
58+ if ((pmt.assetId != paymentAssetId))
59+ then throw((("Auction does only support " + paymentAssetName) + " payments."))
60+ else {
61+ let minPrice = tryGetInteger((("auction_" + auctionId) + "_startPrice"))
62+ if ((minPrice > amount))
63+ then throw(("The minimal initial price is set as " + toString(minPrice)))
64+ 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")]
65+ }
66+ }
67+
68+
69+@Verifier(tx)
70+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
71+

github/deemru/w8io/03bedc9 
17.37 ms