tx · 5wDhsH5EFSCHRXGDtKvrMZHpMctqxfy6UWztgoeq13TR

3P44yqcpfhPF2iC1nptm2ZJCTaN7VYhz9og:  -0.01000000 Waves

2021.06.03 16:03 [2618881] smart account 3P44yqcpfhPF2iC1nptm2ZJCTaN7VYhz9og > SELF 0.00000000 Waves

{ "type": 13, "id": "5wDhsH5EFSCHRXGDtKvrMZHpMctqxfy6UWztgoeq13TR", "fee": 1000000, "feeAssetId": null, "timestamp": 1622725404575, "version": 2, "chainId": 87, "sender": "3P44yqcpfhPF2iC1nptm2ZJCTaN7VYhz9og", "senderPublicKey": "9x9Usb3uqom5rSsgxshtmEtZ9zxAgK9QwFe2kmS2X3Z1", "proofs": [ "ijXyZQoQGT3rW9BTtJgTZSheqLedfaozHd6BPtp1oeFGVf9ECD9MGkJu9KR49onbyVDGKF3wTXDYWoqdWu8T63c" ], "script": "base64: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", "height": 2618881, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 6uDYCzsN4xQkunJdy9rMa3aiPWkBG2QBeetCHNwD4C26 Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 4 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let incubatorAddress = base58'3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv'
5+
6+let breederAddress = base58'3PDVuU45H7Eh5dmtNbnRNRStGwULA7NY6Hb'
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 tryGetString (key) = {
20+ let val = match getString(this, key) {
21+ case b: String =>
22+ b
23+ case _ =>
24+ ""
25+ }
26+ val
27+ }
28+
29+
30+func getAssetGenotype (assetId) = {
31+ let asset1 = match getString(Address(incubatorAddress), toBase58String(assetId)) {
32+ case b: String =>
33+ b
34+ case _ =>
35+ ""
36+ }
37+ if ((asset1 != ""))
38+ then asset1
39+ else {
40+ let asset2 = match getString(Address(breederAddress), toBase58String(assetId)) {
41+ case c: String =>
42+ c
43+ case _ =>
44+ ""
45+ }
46+ if ((asset2 != ""))
47+ then asset2
48+ else ""
49+ }
50+ }
51+
52+
53+@Callable(i)
54+func initAuction (startPrice,instantPrice,description) = {
55+ let auctionId = toBase58String(i.transactionId)
56+ let pmt = value(i.payments[0])
57+ let assetId = value(pmt.assetId)
58+ let asset = getAssetGenotype(assetId)
59+ if ((asset == ""))
60+ then throw("You can only sell an NFT-duck created in incubator")
61+ 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))]
62+ }
63+
64+
65+
66+@Callable(i)
67+func cancelAuction (auctionId) = {
68+ let auctionOwner = tryGetString((("auction_" + auctionId) + "_owner"))
69+ if ((toString(i.caller) != auctionOwner))
70+ then throw("Only allowed to auction owner")
71+ else [StringEntry((("auction_" + auctionId) + "_status"), "cancelled"), StringEntry((((("address_" + auctionOwner) + "_auction_") + auctionId) + "_lockedNFT"), ""), ScriptTransfer(i.caller, 1, fromBase58String(getStringValue(this, (("auction_" + auctionId) + "_assetId"))))]
72+ }
73+
74+
75+
76+@Callable(i)
77+func instantBuy (auctionId) = {
78+ let pmt = value(i.payments[0])
79+ let amount = pmt.amount
80+ let auctionStatus = tryGetString((("auction_" + auctionId) + "_status"))
81+ if ((pmt.assetId != unit))
82+ then throw("Auction does only support WAVES payments.")
83+ else if ((auctionStatus != "open"))
84+ then throw("Auction is closed. You cannot place a bid.")
85+ else {
86+ let instantPrice = tryGetInteger((("auction_" + auctionId) + "_instantPrice"))
87+ if ((instantPrice > amount))
88+ then throw(("For instant purchase you need to pay at least " + toString(instantPrice)))
89+ else {
90+ let auctionOwner = tryGetString((("auction_" + auctionId) + "_owner"))
91+[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"))))]
92+ }
93+ }
94+ }
95+
96+
97+
98+@Callable(i)
99+func placeBid (auctionId) = {
100+ let pmt = value(i.payments[0])
101+ let amount = pmt.amount
102+ let bidId = toBase58String(i.transactionId)
103+ let assetId = getStringValue(this, (("auction_" + auctionId) + "_assetId"))
104+ if ((pmt.assetId != unit))
105+ then throw("Auction does only support WAVES payments")
106+ 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")]
107+ }
108+
109+
110+
111+@Callable(i)
112+func cancelBid (auctionId,bidId) = {
113+ let assetId = getStringValue(this, (("auction_" + auctionId) + "_assetId"))
114+ let bidAuthor = tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_author"))
115+ let bidAmount = tryGetInteger((((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"))
116+ if ((toString(i.caller) != bidAuthor))
117+ then throw("Only allowed to the bid author")
118+ else [StringEntry((((("assetId_" + assetId) + "_bid_") + bidId) + "_data"), (((((("{\"auctionId\": \"" + auctionId) + "\", \"author\": \"") + toString(i.caller)) + "\", \"amount\": \"") + toString(bidAmount)) + "\", \"status\": \"cancelled\"}")), StringEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_status"), "cancelled"), ScriptTransfer(i.caller, bidAmount, unit)]
119+ }
120+
121+
122+
123+@Callable(i)
124+func acceptBid (auctionId,bidId) = {
125+ let auctionOwner = tryGetString((("auction_" + auctionId) + "_owner"))
126+ let bidAuthor = tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_author"))
127+ let bidAmount = tryGetInteger((((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"))
128+ let bidStatus = tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_status"))
129+ let assetId = tryGetString((("auction_" + auctionId) + "_assetId"))
130+ if ((toString(i.caller) != auctionOwner))
131+ then throw("Only allowed to auction owner")
132+ else if ((bidStatus != "open"))
133+ then throw("Bid was cancelled and cannot be accepted")
134+ else {
135+ let recordPrice = tryGetInteger((assetId + "_recordPrice"))
136+ let newRecordPrice = max([recordPrice, bidAmount])
137+[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))]
138+ }
139+ }
140+
141+
142+@Verifier(tx)
143+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
144+

github/deemru/w8io/3ef1775 
33.69 ms