tx · F6UDdSc2s4YE5swmKjvihEDBzeYGcW63AvZG8qpb6zse

3PEBtiSVLrqyYxGd76vXKu8FFWWsD1c5uYG:  -0.01400000 Waves

2021.11.17 16:23 [2860087] smart account 3PEBtiSVLrqyYxGd76vXKu8FFWWsD1c5uYG > SELF 0.00000000 Waves

{ "type": 13, "id": "F6UDdSc2s4YE5swmKjvihEDBzeYGcW63AvZG8qpb6zse", "fee": 1400000, "feeAssetId": null, "timestamp": 1637155425365, "version": 2, "chainId": 87, "sender": "3PEBtiSVLrqyYxGd76vXKu8FFWWsD1c5uYG", "senderPublicKey": "GPiVunnvoUZtBzkfVrpRsMBEf3mWdgRrex2zvzCtM6WQ", "proofs": [ "PxpAdWreocLEwsVnUxvMchVpaDiyiD1ir6S8fpENmo98BsnARQdKZJj3E5YH5pcAEv9YpQpMLtExdV4p9WB9sgh" ], "script": "base64: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", "height": 2860087, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5c12s3kxKjnyMGqGpvLVhNvDMfpXzwkhU2nbrxCa2Yad Next: J9hacNRtGzathpAfCzSpat6yZ2r1FQqoNyFU7hk5iXas Diff:
OldNewDifferences
77
88 let c = base58'3P6AobNbcQ3ZjcRY37mJPKN8PP9Giz8kgeY'
99
10-let d = 5
10+let d = base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS'
1111
12-func e (f) = {
13- let g = {
14- let h = getInteger(this, f)
15- if ($isInstanceOf(h, "Int"))
12+let e = "GLOBAL_COUNTER"
13+
14+let f = 5
15+
16+func g (h) = {
17+ let i = {
18+ let j = getInteger(this, h)
19+ if ($isInstanceOf(j, "Int"))
1620 then {
17- let i = h
18- i
21+ let k = j
22+ k
1923 }
2024 else 0
2125 }
22- g
26+ i
2327 }
2428
2529
26-func j (f) = {
27- let g = {
28- let h = getString(this, f)
29- if ($isInstanceOf(h, "String"))
30+func l (h) = {
31+ let i = {
32+ let j = getString(this, h)
33+ if ($isInstanceOf(j, "String"))
3034 then {
31- let i = h
32- i
35+ let k = j
36+ k
3337 }
3438 else ""
3539 }
36- g
40+ i
3741 }
3842
3943
40-func k (l) = {
41- let m = {
42- let h = getString(Address(a), toBase58String(l))
43- if ($isInstanceOf(h, "String"))
44+func m (h) = {
45+ let j = getBoolean(this, h)
46+ if ($isInstanceOf(j, "Boolean"))
47+ then {
48+ let k = j
49+ k
50+ }
51+ else false
52+ }
53+
54+
55+func n () = g(e)
56+
57+
58+func o (p) = {
59+ let q = {
60+ let j = getString(Address(a), toBase58String(p))
61+ if ($isInstanceOf(j, "String"))
4462 then {
45- let i = h
46- i
63+ let k = j
64+ k
4765 }
4866 else ""
4967 }
50- if ((m != ""))
51- then m
68+ if ((q != ""))
69+ then q
5270 else {
53- let n = {
54- let h = getString(Address(b), toBase58String(l))
55- if ($isInstanceOf(h, "String"))
71+ let r = {
72+ let j = getString(Address(b), toBase58String(p))
73+ if ($isInstanceOf(j, "String"))
5674 then {
57- let o = h
58- o
75+ let s = j
76+ s
5977 }
6078 else ""
6179 }
62- if ((n != ""))
63- then n
80+ if ((r != ""))
81+ then r
6482 else ""
6583 }
6684 }
6785
6886
69-func p (q,r) = {
70- let l = getStringValue(this, (("auction_" + q) + "_assetId"))
71- let s = j((((("auction_" + q) + "_bid_") + r) + "_author"))
72- let t = e((((("auction_" + q) + "_bid_") + r) + "_amount"))
73-[StringEntry((((("assetId_" + l) + "_bid_") + r) + "_data"), (((((("{\"auctionId\": \"" + q) + "\", \"author\": \"") + s) + "\", \"amount\": \"") + toString(t)) + "\", \"status\": \"cancelled\"}")), StringEntry((((("auction_" + q) + "_bid_") + r) + "_status"), "cancelled"), DeleteEntry(((((("address_" + s) + "_auction_") + q) + "_bid_") + r)), ScriptTransfer(Address(fromBase58String(s)), t, unit)]
87+func t (u,v) = {
88+ let w = m((("auction_" + u) + "_eggSell"))
89+ let x = if ((w == true))
90+ then d
91+ else unit
92+ let p = getStringValue(this, (("auction_" + u) + "_assetId"))
93+ let y = l((((("auction_" + u) + "_bid_") + v) + "_author"))
94+ let z = g((((("auction_" + u) + "_bid_") + v) + "_amount"))
95+[StringEntry((((("assetId_" + p) + "_bid_") + v) + "_data"), (((((("{\"auctionId\": \"" + u) + "\", \"author\": \"") + y) + "\", \"amount\": \"") + toString(z)) + "\", \"status\": \"cancelled\"}")), StringEntry((((("auction_" + u) + "_bid_") + v) + "_status"), "cancelled"), DeleteEntry(((((("address_" + y) + "_auction_") + u) + "_bid_") + v)), ScriptTransfer(Address(fromBase58String(y)), z, x)]
7496 }
7597
7698
77-@Callable(u)
78-func initAuction (v,w,x) = {
79- let q = toBase58String(u.transactionId)
80- let y = value(u.payments[0])
81- let l = value(y.assetId)
82- let z = k(l)
83- if ((z == ""))
99+@Callable(A)
100+func initAuction (B,C,D,E) = {
101+ let F = n()
102+ let u = (toBase58String(A.transactionId) + toString(F))
103+ let G = value(A.payments[0])
104+ let p = value(G.assetId)
105+ let H = o(p)
106+ if ((H == ""))
84107 then throw("You can only sell an NFT-duck created in incubator or breeder")
85- else [StringEntry((("auction_" + q) + "_status"), "open"), StringEntry((("auction_" + toBase58String(l)) + "_last"), q), StringEntry((("auction_" + q) + "_assetGen"), z), StringEntry((("auction_" + q) + "_assetId"), toBase58String(l)), IntegerEntry((("auction_" + q) + "_startedAt"), lastBlock.timestamp), StringEntry((("auction_" + q) + "_owner"), toString(u.originCaller)), StringEntry((("auction_" + q) + "_description"), x), IntegerEntry((("auction_" + q) + "_startPrice"), v), IntegerEntry((("auction_" + q) + "_instantPrice"), w), StringEntry((((("address_" + toString(u.originCaller)) + "_auction_") + q) + "_lockedNFT"), toBase58String(l))]
108+ else [StringEntry((("auction_" + u) + "_status"), "open"), BooleanEntry((("auction_" + u) + "_eggSell"), E), IntegerEntry(e, (F + 1)), StringEntry((("auction_" + toBase58String(p)) + "_last"), u), StringEntry((("auction_" + u) + "_assetGen"), H), StringEntry((("auction_" + u) + "_assetId"), toBase58String(p)), IntegerEntry((("auction_" + u) + "_startedAt"), lastBlock.timestamp), StringEntry((("auction_" + u) + "_owner"), toString(A.originCaller)), StringEntry((("auction_" + u) + "_description"), D), IntegerEntry((("auction_" + u) + "_startPrice"), B), IntegerEntry((("auction_" + u) + "_instantPrice"), C), StringEntry((((("address_" + toString(A.originCaller)) + "_auction_") + u) + "_lockedNFT"), toBase58String(p))]
86109 }
87110
88111
89112
90-@Callable(u)
91-func cancelAuction (q) = {
92- let A = j((("auction_" + q) + "_owner"))
93- if ((toString(u.originCaller) != A))
113+@Callable(A)
114+func cancelAuction (u) = {
115+ let I = l((("auction_" + u) + "_owner"))
116+ if ((toString(A.originCaller) != I))
94117 then throw("Only allowed to auction owner")
95- else if ((j((("auction_" + q) + "_status")) != "open"))
118+ else if ((l((("auction_" + u) + "_status")) != "open"))
96119 then throw("auction is close")
97- else [StringEntry((("auction_" + q) + "_status"), "cancelled"), DeleteEntry((((("address_" + A) + "_auction_") + q) + "_lockedNFT")), ScriptTransfer(u.originCaller, 1, fromBase58String(getStringValue(this, (("auction_" + q) + "_assetId"))))]
120+ else [StringEntry((("auction_" + u) + "_status"), "cancelled"), DeleteEntry((((("address_" + I) + "_auction_") + u) + "_lockedNFT")), ScriptTransfer(A.originCaller, 1, fromBase58String(getStringValue(this, (("auction_" + u) + "_assetId"))))]
98121 }
99122
100123
101124
102-@Callable(u)
103-func instantBuy (q) = {
104- let y = value(u.payments[0])
105- let B = y.amount
106- let l = j((("auction_" + q) + "_assetId"))
107- let r = toBase58String(u.transactionId)
108- let C = j((("auction_" + q) + "_status"))
109- if ((y.assetId != unit))
110- then throw("Auction does only support WAVES payments.")
111- else if ((C != "open"))
125+@Callable(A)
126+func instantBuy (u) = {
127+ let w = m((("auction_" + u) + "_eggSell"))
128+ let x = if ((w == true))
129+ then d
130+ else unit
131+ let J = if ((w == true))
132+ then "EGG"
133+ else "WAVES"
134+ let G = value(A.payments[0])
135+ let K = G.amount
136+ let p = l((("auction_" + u) + "_assetId"))
137+ let v = toBase58String(A.transactionId)
138+ let L = l((("auction_" + u) + "_status"))
139+ if ((G.assetId != x))
140+ then throw((("Auction does only support " + J) + " payments."))
141+ else if ((L != "open"))
112142 then throw("Auction is closed. You cannot place a bid.")
113143 else {
114- let w = e((("auction_" + q) + "_instantPrice"))
115- if ((w > B))
116- then throw(("For instant purchase you need to pay at least " + toString(w)))
144+ let C = g((("auction_" + u) + "_instantPrice"))
145+ if ((C > K))
146+ then throw(("For instant purchase you need to pay at least " + toString(C)))
117147 else {
118- let A = j((("auction_" + q) + "_owner"))
119- let D = e((l + "_recordPrice"))
120- let E = max([D, B])
121-[StringEntry((("auction_" + q) + "_status"), "finished"), IntegerEntry((("auction_" + q) + "_finalPrice"), B), IntegerEntry((l + "_recordPrice"), E), StringEntry((((("assetId_" + l) + "_bid_") + r) + "_data"), (((((("{\"auctionId\": \"" + q) + "\", \"author\": \"") + toString(u.originCaller)) + "\", \"amount\": \"") + toString(B)) + "\", \"status\": \"finished\"}")), DeleteEntry((((("address_" + A) + "_auction_") + q) + "_lockedNFT")), ScriptTransfer(u.originCaller, 1, fromBase58String(getStringValue(this, (("auction_" + q) + "_assetId")))), ScriptTransfer(addressFromStringValue(A), fraction(B, (100 - d), 100), unit), ScriptTransfer(Address(c), fraction(B, d, 100), unit)]
148+ let I = l((("auction_" + u) + "_owner"))
149+ let M = g((p + "_recordPrice"))
150+ let N = max([M, K])
151+[StringEntry((("auction_" + u) + "_status"), "finished"), IntegerEntry((("auction_" + u) + "_finalPrice"), K), IntegerEntry((p + "_recordPrice"), N), StringEntry((((("assetId_" + p) + "_bid_") + v) + "_data"), (((((("{\"auctionId\": \"" + u) + "\", \"author\": \"") + toString(A.originCaller)) + "\", \"amount\": \"") + toString(K)) + "\", \"status\": \"finished\"}")), DeleteEntry((((("address_" + I) + "_auction_") + u) + "_lockedNFT")), ScriptTransfer(A.originCaller, 1, fromBase58String(getStringValue(this, (("auction_" + u) + "_assetId")))), ScriptTransfer(addressFromStringValue(I), fraction(K, (100 - f), 100), x), ScriptTransfer(Address(c), fraction(K, f, 100), x)]
122152 }
123153 }
124154 }
125155
126156
127157
128-@Callable(u)
129-func placeBid (q) = {
130- let y = value(u.payments[0])
131- let B = y.amount
132- let r = toBase58String(u.transactionId)
133- let l = getStringValue(this, (("auction_" + q) + "_assetId"))
134- if ((y.assetId != unit))
135- then throw("Auction does only support WAVES payments")
158+@Callable(A)
159+func placeBid (u) = {
160+ let w = m((("auction_" + u) + "_eggSell"))
161+ let x = if ((w == true))
162+ then d
163+ else unit
164+ let J = if ((w == true))
165+ then "EGG"
166+ else "WAVES"
167+ let G = value(A.payments[0])
168+ let K = G.amount
169+ let v = toBase58String(A.transactionId)
170+ let p = getStringValue(this, (("auction_" + u) + "_assetId"))
171+ if ((G.assetId != x))
172+ then throw((("Auction does only support " + J) + " payments."))
136173 else {
137- let F = e((("auction_" + q) + "_startPrice"))
138- if ((F > B))
139- then throw(("The minimal initial price is set as " + toString(F)))
140- else [StringEntry((((("auction_" + q) + "_bid_") + r) + "_author"), toString(u.originCaller)), StringEntry((((("assetId_" + l) + "_bid_") + r) + "_data"), (((((("{\"auctionId\": \"" + q) + "\", \"author\": \"") + toString(u.originCaller)) + "\", \"amount\": \"") + toString(B)) + "\", \"status\": \"open\"}")), IntegerEntry((((("auction_" + q) + "_bid_") + r) + "_amount"), B), StringEntry(((((("address_" + toString(u.originCaller)) + "_auction_") + q) + "_bid_") + r), l), StringEntry((((("auction_" + q) + "_bid_") + r) + "_status"), "open")]
174+ let O = g((("auction_" + u) + "_startPrice"))
175+ if ((O > K))
176+ then throw(("The minimal initial price is set as " + toString(O)))
177+ else [StringEntry((((("auction_" + u) + "_bid_") + v) + "_author"), toString(A.originCaller)), StringEntry((((("assetId_" + p) + "_bid_") + v) + "_data"), (((((("{\"auctionId\": \"" + u) + "\", \"author\": \"") + toString(A.originCaller)) + "\", \"amount\": \"") + toString(K)) + "\", \"status\": \"open\"}")), IntegerEntry((((("auction_" + u) + "_bid_") + v) + "_amount"), K), StringEntry(((((("address_" + toString(A.originCaller)) + "_auction_") + u) + "_bid_") + v), p), StringEntry((((("auction_" + u) + "_bid_") + v) + "_status"), "open")]
141178 }
142179 }
143180
144181
145182
146-@Callable(u)
147-func cancelBid (q,r) = {
148- let l = getStringValue(this, (("auction_" + q) + "_assetId"))
149- let s = j((((("auction_" + q) + "_bid_") + r) + "_author"))
150- let t = e((((("auction_" + q) + "_bid_") + r) + "_amount"))
151- if ((toString(u.originCaller) != s))
183+@Callable(A)
184+func cancelBid (u,v) = {
185+ let p = getStringValue(this, (("auction_" + u) + "_assetId"))
186+ let y = l((((("auction_" + u) + "_bid_") + v) + "_author"))
187+ let z = g((((("auction_" + u) + "_bid_") + v) + "_amount"))
188+ if ((toString(A.originCaller) != y))
152189 then throw("Only allowed to the bid author")
153- else if ((j((((("auction_" + q) + "_bid_") + r) + "_status")) != "open"))
190+ else if ((l((((("auction_" + u) + "_bid_") + v) + "_status")) != "open"))
154191 then throw("bid is not open")
155- else p(q, r)
192+ else t(u, v)
156193 }
157194
158195
159196
160-@Callable(u)
161-func cancelOutdatedBid (q,r) = throw("to be released")
197+@Callable(A)
198+func cancelOutdatedBid (u,v) = throw("to be released")
162199
163200
164201
165-@Callable(u)
166-func acceptBid (q,r) = {
167- let A = j((("auction_" + q) + "_owner"))
168- let s = j((((("auction_" + q) + "_bid_") + r) + "_author"))
169- let t = e((((("auction_" + q) + "_bid_") + r) + "_amount"))
170- let G = j((((("auction_" + q) + "_bid_") + r) + "_status"))
171- let l = j((("auction_" + q) + "_assetId"))
172- if ((toString(u.originCaller) != A))
202+@Callable(A)
203+func acceptBid (u,v) = {
204+ let w = m((("auction_" + u) + "_eggSell"))
205+ let x = if ((w == true))
206+ then d
207+ else unit
208+ let I = l((("auction_" + u) + "_owner"))
209+ let y = l((((("auction_" + u) + "_bid_") + v) + "_author"))
210+ let z = g((((("auction_" + u) + "_bid_") + v) + "_amount"))
211+ let P = l((((("auction_" + u) + "_bid_") + v) + "_status"))
212+ let p = l((("auction_" + u) + "_assetId"))
213+ if ((toString(A.originCaller) != I))
173214 then throw("Only allowed to auction owner")
174- else if ((G != "open"))
215+ else if ((P != "open"))
175216 then throw("Bid was cancelled and cannot be accepted")
176- else if ((j((("auction_" + q) + "_status")) != "open"))
217+ else if ((l((("auction_" + u) + "_status")) != "open"))
177218 then throw("Auction was closed")
178219 else {
179- let D = e((l + "_recordPrice"))
180- let E = max([D, t])
181-[StringEntry((((("auction_" + q) + "_bid_") + r) + "_status"), "finished"), StringEntry((("auction_" + q) + "_status"), "finished"), StringEntry((((("assetId_" + l) + "_bid_") + r) + "_data"), (((((("{\"auctionId\": \"" + q) + "\", \"author\": \"") + toString(u.originCaller)) + "\", \"amount\": \"") + toString(t)) + "\", \"status\": \"finished\"}")), IntegerEntry((("auction_" + q) + "_finalPrice"), t), IntegerEntry((l + "_recordPrice"), E), DeleteEntry(((((("address_" + s) + "_auction_") + q) + "_bid_") + r)), DeleteEntry((((("address_" + A) + "_auction_") + q) + "_lockedNFT")), ScriptTransfer(u.originCaller, fraction(t, (100 - d), 100), unit), ScriptTransfer(Address(c), fraction(t, d, 100), unit), ScriptTransfer(addressFromStringValue(s), 1, fromBase58String(l))]
220+ let M = g((p + "_recordPrice"))
221+ let N = max([M, z])
222+[StringEntry((((("auction_" + u) + "_bid_") + v) + "_status"), "finished"), StringEntry((("auction_" + u) + "_status"), "finished"), StringEntry((((("assetId_" + p) + "_bid_") + v) + "_data"), (((((("{\"auctionId\": \"" + u) + "\", \"author\": \"") + toString(A.originCaller)) + "\", \"amount\": \"") + toString(z)) + "\", \"status\": \"finished\"}")), IntegerEntry((("auction_" + u) + "_finalPrice"), z), IntegerEntry((p + "_recordPrice"), N), DeleteEntry(((((("address_" + y) + "_auction_") + u) + "_bid_") + v)), DeleteEntry((((("address_" + I) + "_auction_") + u) + "_lockedNFT")), ScriptTransfer(A.caller, fraction(z, (100 - f), 100), x), ScriptTransfer(Address(c), fraction(z, f, 100), x), ScriptTransfer(addressFromStringValue(y), 1, fromBase58String(p))]
182223 }
183224 }
184225
185226
186-@Verifier(H)
187-func I () = sigVerify(H.bodyBytes, H.proofs[0], H.senderPublicKey)
227+@Verifier(Q)
228+func R () = sigVerify(Q.bodyBytes, Q.proofs[0], Q.senderPublicKey)
188229
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = base58'3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv'
55
66 let b = base58'3PDVuU45H7Eh5dmtNbnRNRStGwULA7NY6Hb'
77
88 let c = base58'3P6AobNbcQ3ZjcRY37mJPKN8PP9Giz8kgeY'
99
10-let d = 5
10+let d = base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS'
1111
12-func e (f) = {
13- let g = {
14- let h = getInteger(this, f)
15- if ($isInstanceOf(h, "Int"))
12+let e = "GLOBAL_COUNTER"
13+
14+let f = 5
15+
16+func g (h) = {
17+ let i = {
18+ let j = getInteger(this, h)
19+ if ($isInstanceOf(j, "Int"))
1620 then {
17- let i = h
18- i
21+ let k = j
22+ k
1923 }
2024 else 0
2125 }
22- g
26+ i
2327 }
2428
2529
26-func j (f) = {
27- let g = {
28- let h = getString(this, f)
29- if ($isInstanceOf(h, "String"))
30+func l (h) = {
31+ let i = {
32+ let j = getString(this, h)
33+ if ($isInstanceOf(j, "String"))
3034 then {
31- let i = h
32- i
35+ let k = j
36+ k
3337 }
3438 else ""
3539 }
36- g
40+ i
3741 }
3842
3943
40-func k (l) = {
41- let m = {
42- let h = getString(Address(a), toBase58String(l))
43- if ($isInstanceOf(h, "String"))
44+func m (h) = {
45+ let j = getBoolean(this, h)
46+ if ($isInstanceOf(j, "Boolean"))
47+ then {
48+ let k = j
49+ k
50+ }
51+ else false
52+ }
53+
54+
55+func n () = g(e)
56+
57+
58+func o (p) = {
59+ let q = {
60+ let j = getString(Address(a), toBase58String(p))
61+ if ($isInstanceOf(j, "String"))
4462 then {
45- let i = h
46- i
63+ let k = j
64+ k
4765 }
4866 else ""
4967 }
50- if ((m != ""))
51- then m
68+ if ((q != ""))
69+ then q
5270 else {
53- let n = {
54- let h = getString(Address(b), toBase58String(l))
55- if ($isInstanceOf(h, "String"))
71+ let r = {
72+ let j = getString(Address(b), toBase58String(p))
73+ if ($isInstanceOf(j, "String"))
5674 then {
57- let o = h
58- o
75+ let s = j
76+ s
5977 }
6078 else ""
6179 }
62- if ((n != ""))
63- then n
80+ if ((r != ""))
81+ then r
6482 else ""
6583 }
6684 }
6785
6886
69-func p (q,r) = {
70- let l = getStringValue(this, (("auction_" + q) + "_assetId"))
71- let s = j((((("auction_" + q) + "_bid_") + r) + "_author"))
72- let t = e((((("auction_" + q) + "_bid_") + r) + "_amount"))
73-[StringEntry((((("assetId_" + l) + "_bid_") + r) + "_data"), (((((("{\"auctionId\": \"" + q) + "\", \"author\": \"") + s) + "\", \"amount\": \"") + toString(t)) + "\", \"status\": \"cancelled\"}")), StringEntry((((("auction_" + q) + "_bid_") + r) + "_status"), "cancelled"), DeleteEntry(((((("address_" + s) + "_auction_") + q) + "_bid_") + r)), ScriptTransfer(Address(fromBase58String(s)), t, unit)]
87+func t (u,v) = {
88+ let w = m((("auction_" + u) + "_eggSell"))
89+ let x = if ((w == true))
90+ then d
91+ else unit
92+ let p = getStringValue(this, (("auction_" + u) + "_assetId"))
93+ let y = l((((("auction_" + u) + "_bid_") + v) + "_author"))
94+ let z = g((((("auction_" + u) + "_bid_") + v) + "_amount"))
95+[StringEntry((((("assetId_" + p) + "_bid_") + v) + "_data"), (((((("{\"auctionId\": \"" + u) + "\", \"author\": \"") + y) + "\", \"amount\": \"") + toString(z)) + "\", \"status\": \"cancelled\"}")), StringEntry((((("auction_" + u) + "_bid_") + v) + "_status"), "cancelled"), DeleteEntry(((((("address_" + y) + "_auction_") + u) + "_bid_") + v)), ScriptTransfer(Address(fromBase58String(y)), z, x)]
7496 }
7597
7698
77-@Callable(u)
78-func initAuction (v,w,x) = {
79- let q = toBase58String(u.transactionId)
80- let y = value(u.payments[0])
81- let l = value(y.assetId)
82- let z = k(l)
83- if ((z == ""))
99+@Callable(A)
100+func initAuction (B,C,D,E) = {
101+ let F = n()
102+ let u = (toBase58String(A.transactionId) + toString(F))
103+ let G = value(A.payments[0])
104+ let p = value(G.assetId)
105+ let H = o(p)
106+ if ((H == ""))
84107 then throw("You can only sell an NFT-duck created in incubator or breeder")
85- else [StringEntry((("auction_" + q) + "_status"), "open"), StringEntry((("auction_" + toBase58String(l)) + "_last"), q), StringEntry((("auction_" + q) + "_assetGen"), z), StringEntry((("auction_" + q) + "_assetId"), toBase58String(l)), IntegerEntry((("auction_" + q) + "_startedAt"), lastBlock.timestamp), StringEntry((("auction_" + q) + "_owner"), toString(u.originCaller)), StringEntry((("auction_" + q) + "_description"), x), IntegerEntry((("auction_" + q) + "_startPrice"), v), IntegerEntry((("auction_" + q) + "_instantPrice"), w), StringEntry((((("address_" + toString(u.originCaller)) + "_auction_") + q) + "_lockedNFT"), toBase58String(l))]
108+ else [StringEntry((("auction_" + u) + "_status"), "open"), BooleanEntry((("auction_" + u) + "_eggSell"), E), IntegerEntry(e, (F + 1)), StringEntry((("auction_" + toBase58String(p)) + "_last"), u), StringEntry((("auction_" + u) + "_assetGen"), H), StringEntry((("auction_" + u) + "_assetId"), toBase58String(p)), IntegerEntry((("auction_" + u) + "_startedAt"), lastBlock.timestamp), StringEntry((("auction_" + u) + "_owner"), toString(A.originCaller)), StringEntry((("auction_" + u) + "_description"), D), IntegerEntry((("auction_" + u) + "_startPrice"), B), IntegerEntry((("auction_" + u) + "_instantPrice"), C), StringEntry((((("address_" + toString(A.originCaller)) + "_auction_") + u) + "_lockedNFT"), toBase58String(p))]
86109 }
87110
88111
89112
90-@Callable(u)
91-func cancelAuction (q) = {
92- let A = j((("auction_" + q) + "_owner"))
93- if ((toString(u.originCaller) != A))
113+@Callable(A)
114+func cancelAuction (u) = {
115+ let I = l((("auction_" + u) + "_owner"))
116+ if ((toString(A.originCaller) != I))
94117 then throw("Only allowed to auction owner")
95- else if ((j((("auction_" + q) + "_status")) != "open"))
118+ else if ((l((("auction_" + u) + "_status")) != "open"))
96119 then throw("auction is close")
97- else [StringEntry((("auction_" + q) + "_status"), "cancelled"), DeleteEntry((((("address_" + A) + "_auction_") + q) + "_lockedNFT")), ScriptTransfer(u.originCaller, 1, fromBase58String(getStringValue(this, (("auction_" + q) + "_assetId"))))]
120+ else [StringEntry((("auction_" + u) + "_status"), "cancelled"), DeleteEntry((((("address_" + I) + "_auction_") + u) + "_lockedNFT")), ScriptTransfer(A.originCaller, 1, fromBase58String(getStringValue(this, (("auction_" + u) + "_assetId"))))]
98121 }
99122
100123
101124
102-@Callable(u)
103-func instantBuy (q) = {
104- let y = value(u.payments[0])
105- let B = y.amount
106- let l = j((("auction_" + q) + "_assetId"))
107- let r = toBase58String(u.transactionId)
108- let C = j((("auction_" + q) + "_status"))
109- if ((y.assetId != unit))
110- then throw("Auction does only support WAVES payments.")
111- else if ((C != "open"))
125+@Callable(A)
126+func instantBuy (u) = {
127+ let w = m((("auction_" + u) + "_eggSell"))
128+ let x = if ((w == true))
129+ then d
130+ else unit
131+ let J = if ((w == true))
132+ then "EGG"
133+ else "WAVES"
134+ let G = value(A.payments[0])
135+ let K = G.amount
136+ let p = l((("auction_" + u) + "_assetId"))
137+ let v = toBase58String(A.transactionId)
138+ let L = l((("auction_" + u) + "_status"))
139+ if ((G.assetId != x))
140+ then throw((("Auction does only support " + J) + " payments."))
141+ else if ((L != "open"))
112142 then throw("Auction is closed. You cannot place a bid.")
113143 else {
114- let w = e((("auction_" + q) + "_instantPrice"))
115- if ((w > B))
116- then throw(("For instant purchase you need to pay at least " + toString(w)))
144+ let C = g((("auction_" + u) + "_instantPrice"))
145+ if ((C > K))
146+ then throw(("For instant purchase you need to pay at least " + toString(C)))
117147 else {
118- let A = j((("auction_" + q) + "_owner"))
119- let D = e((l + "_recordPrice"))
120- let E = max([D, B])
121-[StringEntry((("auction_" + q) + "_status"), "finished"), IntegerEntry((("auction_" + q) + "_finalPrice"), B), IntegerEntry((l + "_recordPrice"), E), StringEntry((((("assetId_" + l) + "_bid_") + r) + "_data"), (((((("{\"auctionId\": \"" + q) + "\", \"author\": \"") + toString(u.originCaller)) + "\", \"amount\": \"") + toString(B)) + "\", \"status\": \"finished\"}")), DeleteEntry((((("address_" + A) + "_auction_") + q) + "_lockedNFT")), ScriptTransfer(u.originCaller, 1, fromBase58String(getStringValue(this, (("auction_" + q) + "_assetId")))), ScriptTransfer(addressFromStringValue(A), fraction(B, (100 - d), 100), unit), ScriptTransfer(Address(c), fraction(B, d, 100), unit)]
148+ let I = l((("auction_" + u) + "_owner"))
149+ let M = g((p + "_recordPrice"))
150+ let N = max([M, K])
151+[StringEntry((("auction_" + u) + "_status"), "finished"), IntegerEntry((("auction_" + u) + "_finalPrice"), K), IntegerEntry((p + "_recordPrice"), N), StringEntry((((("assetId_" + p) + "_bid_") + v) + "_data"), (((((("{\"auctionId\": \"" + u) + "\", \"author\": \"") + toString(A.originCaller)) + "\", \"amount\": \"") + toString(K)) + "\", \"status\": \"finished\"}")), DeleteEntry((((("address_" + I) + "_auction_") + u) + "_lockedNFT")), ScriptTransfer(A.originCaller, 1, fromBase58String(getStringValue(this, (("auction_" + u) + "_assetId")))), ScriptTransfer(addressFromStringValue(I), fraction(K, (100 - f), 100), x), ScriptTransfer(Address(c), fraction(K, f, 100), x)]
122152 }
123153 }
124154 }
125155
126156
127157
128-@Callable(u)
129-func placeBid (q) = {
130- let y = value(u.payments[0])
131- let B = y.amount
132- let r = toBase58String(u.transactionId)
133- let l = getStringValue(this, (("auction_" + q) + "_assetId"))
134- if ((y.assetId != unit))
135- then throw("Auction does only support WAVES payments")
158+@Callable(A)
159+func placeBid (u) = {
160+ let w = m((("auction_" + u) + "_eggSell"))
161+ let x = if ((w == true))
162+ then d
163+ else unit
164+ let J = if ((w == true))
165+ then "EGG"
166+ else "WAVES"
167+ let G = value(A.payments[0])
168+ let K = G.amount
169+ let v = toBase58String(A.transactionId)
170+ let p = getStringValue(this, (("auction_" + u) + "_assetId"))
171+ if ((G.assetId != x))
172+ then throw((("Auction does only support " + J) + " payments."))
136173 else {
137- let F = e((("auction_" + q) + "_startPrice"))
138- if ((F > B))
139- then throw(("The minimal initial price is set as " + toString(F)))
140- else [StringEntry((((("auction_" + q) + "_bid_") + r) + "_author"), toString(u.originCaller)), StringEntry((((("assetId_" + l) + "_bid_") + r) + "_data"), (((((("{\"auctionId\": \"" + q) + "\", \"author\": \"") + toString(u.originCaller)) + "\", \"amount\": \"") + toString(B)) + "\", \"status\": \"open\"}")), IntegerEntry((((("auction_" + q) + "_bid_") + r) + "_amount"), B), StringEntry(((((("address_" + toString(u.originCaller)) + "_auction_") + q) + "_bid_") + r), l), StringEntry((((("auction_" + q) + "_bid_") + r) + "_status"), "open")]
174+ let O = g((("auction_" + u) + "_startPrice"))
175+ if ((O > K))
176+ then throw(("The minimal initial price is set as " + toString(O)))
177+ else [StringEntry((((("auction_" + u) + "_bid_") + v) + "_author"), toString(A.originCaller)), StringEntry((((("assetId_" + p) + "_bid_") + v) + "_data"), (((((("{\"auctionId\": \"" + u) + "\", \"author\": \"") + toString(A.originCaller)) + "\", \"amount\": \"") + toString(K)) + "\", \"status\": \"open\"}")), IntegerEntry((((("auction_" + u) + "_bid_") + v) + "_amount"), K), StringEntry(((((("address_" + toString(A.originCaller)) + "_auction_") + u) + "_bid_") + v), p), StringEntry((((("auction_" + u) + "_bid_") + v) + "_status"), "open")]
141178 }
142179 }
143180
144181
145182
146-@Callable(u)
147-func cancelBid (q,r) = {
148- let l = getStringValue(this, (("auction_" + q) + "_assetId"))
149- let s = j((((("auction_" + q) + "_bid_") + r) + "_author"))
150- let t = e((((("auction_" + q) + "_bid_") + r) + "_amount"))
151- if ((toString(u.originCaller) != s))
183+@Callable(A)
184+func cancelBid (u,v) = {
185+ let p = getStringValue(this, (("auction_" + u) + "_assetId"))
186+ let y = l((((("auction_" + u) + "_bid_") + v) + "_author"))
187+ let z = g((((("auction_" + u) + "_bid_") + v) + "_amount"))
188+ if ((toString(A.originCaller) != y))
152189 then throw("Only allowed to the bid author")
153- else if ((j((((("auction_" + q) + "_bid_") + r) + "_status")) != "open"))
190+ else if ((l((((("auction_" + u) + "_bid_") + v) + "_status")) != "open"))
154191 then throw("bid is not open")
155- else p(q, r)
192+ else t(u, v)
156193 }
157194
158195
159196
160-@Callable(u)
161-func cancelOutdatedBid (q,r) = throw("to be released")
197+@Callable(A)
198+func cancelOutdatedBid (u,v) = throw("to be released")
162199
163200
164201
165-@Callable(u)
166-func acceptBid (q,r) = {
167- let A = j((("auction_" + q) + "_owner"))
168- let s = j((((("auction_" + q) + "_bid_") + r) + "_author"))
169- let t = e((((("auction_" + q) + "_bid_") + r) + "_amount"))
170- let G = j((((("auction_" + q) + "_bid_") + r) + "_status"))
171- let l = j((("auction_" + q) + "_assetId"))
172- if ((toString(u.originCaller) != A))
202+@Callable(A)
203+func acceptBid (u,v) = {
204+ let w = m((("auction_" + u) + "_eggSell"))
205+ let x = if ((w == true))
206+ then d
207+ else unit
208+ let I = l((("auction_" + u) + "_owner"))
209+ let y = l((((("auction_" + u) + "_bid_") + v) + "_author"))
210+ let z = g((((("auction_" + u) + "_bid_") + v) + "_amount"))
211+ let P = l((((("auction_" + u) + "_bid_") + v) + "_status"))
212+ let p = l((("auction_" + u) + "_assetId"))
213+ if ((toString(A.originCaller) != I))
173214 then throw("Only allowed to auction owner")
174- else if ((G != "open"))
215+ else if ((P != "open"))
175216 then throw("Bid was cancelled and cannot be accepted")
176- else if ((j((("auction_" + q) + "_status")) != "open"))
217+ else if ((l((("auction_" + u) + "_status")) != "open"))
177218 then throw("Auction was closed")
178219 else {
179- let D = e((l + "_recordPrice"))
180- let E = max([D, t])
181-[StringEntry((((("auction_" + q) + "_bid_") + r) + "_status"), "finished"), StringEntry((("auction_" + q) + "_status"), "finished"), StringEntry((((("assetId_" + l) + "_bid_") + r) + "_data"), (((((("{\"auctionId\": \"" + q) + "\", \"author\": \"") + toString(u.originCaller)) + "\", \"amount\": \"") + toString(t)) + "\", \"status\": \"finished\"}")), IntegerEntry((("auction_" + q) + "_finalPrice"), t), IntegerEntry((l + "_recordPrice"), E), DeleteEntry(((((("address_" + s) + "_auction_") + q) + "_bid_") + r)), DeleteEntry((((("address_" + A) + "_auction_") + q) + "_lockedNFT")), ScriptTransfer(u.originCaller, fraction(t, (100 - d), 100), unit), ScriptTransfer(Address(c), fraction(t, d, 100), unit), ScriptTransfer(addressFromStringValue(s), 1, fromBase58String(l))]
220+ let M = g((p + "_recordPrice"))
221+ let N = max([M, z])
222+[StringEntry((((("auction_" + u) + "_bid_") + v) + "_status"), "finished"), StringEntry((("auction_" + u) + "_status"), "finished"), StringEntry((((("assetId_" + p) + "_bid_") + v) + "_data"), (((((("{\"auctionId\": \"" + u) + "\", \"author\": \"") + toString(A.originCaller)) + "\", \"amount\": \"") + toString(z)) + "\", \"status\": \"finished\"}")), IntegerEntry((("auction_" + u) + "_finalPrice"), z), IntegerEntry((p + "_recordPrice"), N), DeleteEntry(((((("address_" + y) + "_auction_") + u) + "_bid_") + v)), DeleteEntry((((("address_" + I) + "_auction_") + u) + "_lockedNFT")), ScriptTransfer(A.caller, fraction(z, (100 - f), 100), x), ScriptTransfer(Address(c), fraction(z, f, 100), x), ScriptTransfer(addressFromStringValue(y), 1, fromBase58String(p))]
182223 }
183224 }
184225
185226
186-@Verifier(H)
187-func I () = sigVerify(H.bodyBytes, H.proofs[0], H.senderPublicKey)
227+@Verifier(Q)
228+func R () = sigVerify(Q.bodyBytes, Q.proofs[0], Q.senderPublicKey)
188229

github/deemru/w8io/873ac7e 
107.38 ms