tx · FGGJVovhwgdugEs6jKkkGNcC9ZCLYYan6rcrqxzmKP4P

3P6TwNU39Ykkbeqhn5TE4a2736xsA1vXemM:  -0.01400000 Waves

2022.05.05 16:27 [3103927] smart account 3P6TwNU39Ykkbeqhn5TE4a2736xsA1vXemM > SELF 0.00000000 Waves

{ "type": 13, "id": "FGGJVovhwgdugEs6jKkkGNcC9ZCLYYan6rcrqxzmKP4P", "fee": 1400000, "feeAssetId": null, "timestamp": 1651757278912, "version": 2, "chainId": 87, "sender": "3P6TwNU39Ykkbeqhn5TE4a2736xsA1vXemM", "senderPublicKey": "2u37SmDDZX3Ry9sDnA1umgjYSVQ51faPMAXtooDpx6yw", "proofs": [ "dKQGmKuTVd1U1tw84zPLwmDCKXGZaeLwCU2PxXoujyqgYyJv3y6LqJ4FPB8iE1SdiUfGfPe9XgTAN4AdBHEsefJ" ], "script": "base64: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BmNhbGxlcgkBAAAAB0FkZHJlc3MAAAABBQAAABBzd29wUHJvbW9BZGRyZXNzCQAAAgAAAAECAAAAEVBlcm5pc3Npb24gZGVuaWVkBAAAABB0b3RhbER1Y2tzQW1vdW50CQEAAAANdHJ5R2V0SW50ZWdlcgAAAAECAAAADGR1Y2tzX2Ftb3VudAQAAAAKZWdnc05lZWRlZAkBAAAAFWNvdW50RWdnc05lZWRlZEFtb3VudAAAAAEFAAAAEHRvdGFsRHVja3NBbW91bnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAFGdldEhhdGNoaW5nU3RhdHVzS2V5AAAAAgUAAAAHYWRkcmVzcwgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAUAAAAPSGF0Y2hpbmdTdGFydGVkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAaZ2V0SGF0Y2hpbmdGaW5pc2hIZWlnaHRLZXkAAAACBQAAAAdhZGRyZXNzCAUAAAABaQAAAA10cmFuc2FjdGlvbklkCQAAZAAAAAIFAAAABmhlaWdodAUAAAAQZGVsYXlGb3JIYXRjaGluZwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAMZHVja3NfYW1vdW50CQAAZAAAAAIFAAAAEHRvdGFsRHVja3NBbW91bnQAAAAAAAAAAAEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAEGR1Y2tzX2xhc3RfcHJpY2UJAABpAAAAAgUAAAAKZWdnc05lZWRlZAAAAAAAAA9CQAkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAACWhhdGNoaW5nXwkAAlgAAAABCAUAAAABaQAAAA10cmFuc2FjdGlvbklkAgAAAAZfcHJvbW8GBQAAAANuaWwAAAABaQEAAAASZmluaXNoRHVja0hhdGNoaW5nAAAAAQAAAAd0eElkU3RyBAAAAAR0eElkCQACWQAAAAEFAAAAB3R4SWRTdHIEAAAAEWhhdGNoaW5nU3RhdHVzS2V5CQEAAAAUZ2V0SGF0Y2hpbmdTdGF0dXNLZXkAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAEdHhJZAQA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", "height": 3103927, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8D243UbyJgCrqEAd1c3c2rhuDjCa8sEfwR4e2VzRw8R4 Next: D3M2p6Jq35vGVMgtyzYCxgjDiWipP7Ud4YBcnD4x82yB Diff:
OldNewDifferences
6161
6262 let y = v("discountCoefficient")
6363
64-let z = v("saleCoefficient")
65-
66-func A (B,q,C,D) = {
67- let E = value(blockInfoByHeight((C - 1)))
68- let F = sha256((q + value(E.vrf)))
69- (toInt(F, (D * 8)) % B)
64+func z (A,q,B,C) = {
65+ let D = value(blockInfoByHeight((B - 1)))
66+ let E = sha256((q + value(D.vrf)))
67+ (toInt(E, (C * 8)) % A)
7068 }
7169
7270
73-func G (H) = v(t(H))
71+func F (G) = v(t(G))
7472
7573
76-func I (q,C) = {
77- let J = A(500, q, C, 0)
78- if (if ((5 > J))
79- then (G("DUCK-WWZETKIN-JU") == 0)
74+func H (q,B) = {
75+ let I = z(500, q, B, 0)
76+ if (if ((5 > I))
77+ then (F("DUCK-WWZETKIN-JU") == 0)
8078 else false)
8179 then $Tuple2("DUCK-WWZETKIN-JU", "1E1I1K1N1T1U2W1Z-J")
82- else if (if ((10 > J))
83- then (G("DUCK-WWWWMARG-JU") == 0)
80+ else if (if ((10 > I))
81+ then (F("DUCK-WWWWMARG-JU") == 0)
8482 else false)
8583 then $Tuple2("DUCK-WWWWMARG-JU", "1A1G1M1R4W-J")
86- else if (if ((15 > J))
87- then (G("DUCK-WWWDAISY-JU") == 0)
84+ else if (if ((15 > I))
85+ then (F("DUCK-WWWDAISY-JU") == 0)
8886 else false)
8987 then $Tuple2("DUCK-WWWDAISY-JU", "1A1D1I1S3W1Y-J")
9088 else {
91- let K = A(4, q, C, 0)
92- let L = A(4, q, C, 1)
93- let M = if ((L == 0))
89+ let J = z(4, q, B, 0)
90+ let K = z(4, q, B, 1)
91+ let L = if ((K == 0))
9492 then "Y"
95- else if ((L == 1))
93+ else if ((K == 1))
9694 then "G"
97- else if ((L == 2))
95+ else if ((K == 2))
9896 then "B"
9997 else "R"
100- if ((K == 0))
101- then $Tuple2(("DUCK-FFFFFFFF-G" + M), "8F-G")
102- else if ((K == 1))
103- then $Tuple2(("DUCK-HHHHHHHH-G" + M), "8H-G")
104- else if ((K == 2))
105- then $Tuple2(("DUCK-GGGGGGGG-G" + M), "8G-G")
106- else $Tuple2(("DUCK-IIIIIIII-G" + M), "8I-G")
98+ if ((J == 0))
99+ then $Tuple2(("DUCK-GGGGGGGG-G" + L), "8F-G")
100+ else if ((J == 1))
101+ then $Tuple2(("DUCK-HHHHHHHH-G" + L), "8G-G")
102+ else if ((J == 2))
103+ then $Tuple2(("DUCK-IIIIIIII-G" + L), "8H-G")
104+ else $Tuple2(("DUCK-KKKKKKKK-G" + L), "8K-G")
107105 }
108106 }
109107
110108
111-func N (O) = {
112- let P = O
113- let Q = y
114- let R = z
115- let S = c
116- let T = pow((100 + ((P * Q) / (10 * S))), 2, 5, 1, 2, DOWN)
117- if ((z == 0))
118- then (T * 1000000)
119- else (((T * 1000000) / 100) * (100 - z))
109+func M (N) = {
110+ let O = N
111+ let P = y
112+ let Q = c
113+ let R = pow((100 + ((O * P) / (10 * Q))), 2, 5, 1, 2, DOWN)
114+ (R * 1000000)
120115 }
121116
122117
123-@Callable(U)
124-func setDiscount (x) = if ((U.caller != this))
118+@Callable(S)
119+func setDiscount (x) = if ((S.caller != this))
125120 then throw("admin_only")
126121 else [IntegerEntry("discountCoefficient", x)]
127122
128123
129124
130-@Callable(U)
131-func setSale (x) = if ((U.caller != this))
132- then throw("admin_only")
133- else [IntegerEntry("saleCoefficient", x)]
134-
135-
136-
137-@Callable(U)
138-func startDuckHatching (V) = if ((k() > 0))
125+@Callable(S)
126+func startDuckHatching (T) = if ((k() > 0))
139127 then throw("EGG operations are temporarily locked")
140128 else {
141- let O = v("ducks_amount")
142- let W = N(O)
143- let X = value(U.payments[0])
144- let Y = [StringEntry(o(toString(U.originCaller), U.transactionId), f), IntegerEntry(r(toString(U.originCaller), U.transactionId), (height + b)), IntegerEntry("ducks_amount", (O + 1)), IntegerEntry("ducks_last_price", (W / 1000000))]
145- if ((U.caller == Address(i)))
146- then (Y ++ [BooleanEntry((("hatching_" + toBase58String(U.transactionId)) + "_babyDuck"), true)])
147- else if ((X.assetId != a))
129+ let N = v("ducks_amount")
130+ let U = M(N)
131+ let V = value(S.payments[0])
132+ let W = [StringEntry(o(toString(S.originCaller), S.transactionId), f), IntegerEntry(r(toString(S.originCaller), S.transactionId), (height + b)), IntegerEntry("ducks_amount", (N + 1)), IntegerEntry("ducks_last_price", (U / 1000000))]
133+ if ((S.caller == Address(i)))
134+ then (W ++ [BooleanEntry((("hatching_" + toBase58String(S.transactionId)) + "_babyDuck"), true)])
135+ else if ((V.assetId != a))
148136 then throw(("You can attach only EGG tokens with the following asset id: " + toBase58String(a)))
149- else if ((W > X.amount))
150- then throw(("To hatch a duck you currently need the following amount of EGGlets: " + toString(W)))
137+ else if ((U > V.amount))
138+ then throw(("To hatch a duck you currently need the following amount of EGGlets: " + toString(U)))
151139 else {
152- let Z = fraction(W, e, 100)
153- let aa = invoke(Address(d), "refPayment", [V], [AttachedPayment(a, Z)])
154- if ((aa == aa))
155- then (Y ++ [ScriptTransfer(U.caller, (X.amount - W), a)])
140+ let X = fraction(U, e, 100)
141+ let Y = invoke(Address(d), "refPayment", [T], [AttachedPayment(a, X)])
142+ if ((Y == Y))
143+ then (W ++ [ScriptTransfer(S.caller, (V.amount - U), a)])
156144 else throw("Strict value is not equal to itself.")
157145 }
158146 }
159147
160148
161149
162-@Callable(U)
150+@Callable(S)
163151 func startDuckHatchingForAddress (p) = if ((k() > 0))
164152 then throw("EGG operations are temporarily locked")
165- else if ((U.caller != Address(j)))
153+ else if ((S.caller != Address(j)))
166154 then throw("Pernission denied")
167155 else {
168- let O = v("ducks_amount")
169- let W = N(O)
170-[StringEntry(o(p, U.transactionId), f), IntegerEntry(r(p, U.transactionId), (height + b)), IntegerEntry("ducks_amount", (O + 1)), IntegerEntry("ducks_last_price", (W / 1000000)), BooleanEntry((("hatching_" + toBase58String(U.transactionId)) + "_promo"), true)]
156+ let N = v("ducks_amount")
157+ let U = M(N)
158+[StringEntry(o(p, S.transactionId), f), IntegerEntry(r(p, S.transactionId), (height + b)), IntegerEntry("ducks_amount", (N + 1)), IntegerEntry("ducks_last_price", (U / 1000000)), BooleanEntry((("hatching_" + toBase58String(S.transactionId)) + "_promo"), true)]
171159 }
172160
173161
174162
175-@Callable(U)
176-func finishDuckHatching (ab) = {
177- let q = fromBase58String(ab)
178- let ac = o(toString(U.caller), q)
179- let ad = r(toString(U.caller), q)
180- let ae = s(toString(U.caller), q)
181- let af = {
182- let m = getBoolean((("hatching_" + ab) + "_babyDuck"))
163+@Callable(S)
164+func finishDuckHatching (Z) = {
165+ let q = fromBase58String(Z)
166+ let aa = o(toString(S.caller), q)
167+ let ab = r(toString(S.caller), q)
168+ let ac = s(toString(S.caller), q)
169+ let ad = {
170+ let m = getBoolean((("hatching_" + Z) + "_babyDuck"))
183171 if ($isInstanceOf(m, "Boolean"))
184172 then {
185- let S = m
186- S
173+ let Q = m
174+ Q
187175 }
188176 else false
189177 }
190- let ag = getStringValue(this, ac)
191- let C = getIntegerValue(this, ad)
192- if ((ag == g))
178+ let ae = getStringValue(this, aa)
179+ let B = getIntegerValue(this, ab)
180+ if ((ae == g))
193181 then {
194- let ah = getStringValue(this, s(toString(U.caller), q))
195- throw(("The duck was hatched and claimed already, here is the folowing: " + ah))
182+ let af = getStringValue(this, s(toString(S.caller), q))
183+ throw(("The duck was hatched and claimed already, here is the folowing: " + af))
196184 }
197- else if ((C > height))
198- then throw((((("Hatching is not finished yet " + toString((C - height))) + " blocks remaining, it will take around ") + toString((C - height))) + " minutes"))
185+ else if ((B > height))
186+ then throw((((("Hatching is not finished yet " + toString((B - height))) + " blocks remaining, it will take around ") + toString((B - height))) + " minutes"))
199187 else {
200- let ai = I(q, C)
201- let aj = ai._1
202- let ak = ai._2
203- let al = (("{\"genotype\": \"" + aj) + "\", \"crossbreeding\": true}")
204- let am = Issue(aj, al, 1, 0, false, unit, C)
205- let an = calculateAssetId(am)
206- let ao = (v(t(aj)) + 1)
207-[StringEntry(ac, g), StringEntry(ae, toBase58String(an)), StringEntry(toBase58String(an), ae), BooleanEntry((("duck_" + toBase58String(an)) + "_grown"), af), IntegerEntry(t(aj), ao), IntegerEntry((("stats_" + ak) + "_quantity"), (v((("stats_" + ak) + "_quantity")) + 1)), am, ScriptTransfer(U.caller, 1, an)]
188+ let ag = H(q, B)
189+ let ah = ag._1
190+ let ai = ag._2
191+ let aj = (("{\"genotype\": \"" + ah) + "\", \"crossbreeding\": true}")
192+ let ak = Issue(ah, aj, 1, 0, false, unit, B)
193+ let al = calculateAssetId(ak)
194+ let am = (v(t(ah)) + 1)
195+[StringEntry(aa, g), StringEntry(ac, toBase58String(al)), StringEntry(toBase58String(al), ac), BooleanEntry((("duck_" + toBase58String(al)) + "_grown"), ad), IntegerEntry(t(ah), am), IntegerEntry((("stats_" + ai) + "_quantity"), (v((("stats_" + ai) + "_quantity")) + 1)), ak, ScriptTransfer(S.caller, 1, al)]
208196 }
209197 }
210198
211199
212200
213-@Callable(U)
214-func issueFreeDuck (p,ab) = if ((U.caller != Address(h)))
201+@Callable(S)
202+func issueFreeDuck (p,Z) = if ((S.caller != Address(h)))
215203 then throw("rebirth only")
216204 else {
217- let q = fromBase58String(ab)
218- let ac = o(p, q)
219- let ad = r(p, q)
220- let O = v("ducks_amount")
221- let W = N(O)
222- let ap = I(q, (value(transactionHeightById(q)) + 1))
223- let aj = ap._1
224- let ak = ap._2
225- let al = (("{\"genotype\": \"" + aj) + "\", \"crossbreeding\": true}")
226- let am = Issue(aj, al, 1, 0, false, unit, height)
227- let an = calculateAssetId(am)
228- let ao = (v(t(aj)) + 1)
229- let ae = s(p, q)
230- $Tuple2([IntegerEntry(r(p, q), height), IntegerEntry("ducks_amount", (O + 1)), IntegerEntry("ducks_last_price", (W / 1000000)), StringEntry(ac, g), StringEntry(ae, toBase58String(an)), StringEntry(toBase58String(an), ae), IntegerEntry(t(aj), ao), IntegerEntry((("stats_" + ak) + "_quantity"), (v((("stats_" + ak) + "_quantity")) + 1)), am, ScriptTransfer(value(addressFromString(p)), 1, an)], toBase58String(an))
205+ let q = fromBase58String(Z)
206+ let aa = o(p, q)
207+ let ab = r(p, q)
208+ let N = v("ducks_amount")
209+ let U = M(N)
210+ let an = H(q, (value(transactionHeightById(q)) + 1))
211+ let ah = an._1
212+ let ai = an._2
213+ let aj = (("{\"genotype\": \"" + ah) + "\", \"crossbreeding\": true}")
214+ let ak = Issue(ah, aj, 1, 0, false, unit, height)
215+ let al = calculateAssetId(ak)
216+ let am = (v(t(ah)) + 1)
217+ let ac = s(p, q)
218+ $Tuple2([IntegerEntry(r(p, q), height), IntegerEntry("ducks_amount", (N + 1)), IntegerEntry("ducks_last_price", (U / 1000000)), StringEntry(aa, g), StringEntry(ac, toBase58String(al)), StringEntry(toBase58String(al), ac), IntegerEntry(t(ah), am), IntegerEntry((("stats_" + ai) + "_quantity"), (v((("stats_" + ai) + "_quantity")) + 1)), ak, ScriptTransfer(value(addressFromString(p)), 1, al)], toBase58String(al))
231219 }
232220
233221
234222
235-@Callable(U)
236-func issueJackpot (p,ab,H) = if (if ((U.caller != Address(h)))
237- then (U.caller != this)
223+@Callable(S)
224+func issueJackpot (p,Z,G) = if (if ((S.caller != Address(h)))
225+ then (S.caller != this)
238226 else false)
239227 then throw("admin or rebirth only")
240228 else {
241- let q = fromBase58String(ab)
242- let ac = o(p, q)
243- let ad = r(p, q)
244- let O = v("ducks_amount")
245- let W = N(O)
246- let aq = $Tuple2((("DUCK-" + H) + "-JU"), "8W-J")
247- let aj = aq._1
248- let ak = aq._2
249- let al = (("{\"genotype\": \"" + aj) + "\", \"crossbreeding\": true}")
250- let am = Issue(aj, al, 1, 0, false, unit, height)
251- let an = calculateAssetId(am)
252- let ae = s(p, q)
253- $Tuple2([IntegerEntry(r(p, q), height), IntegerEntry("ducks_amount", (O + 1)), IntegerEntry("ducks_last_price", (W / 1000000)), StringEntry(ac, g), StringEntry(ae, toBase58String(an)), StringEntry(toBase58String(an), ae), IntegerEntry(t(aj), (v(t(aj)) + 1)), IntegerEntry((("stats_" + ak) + "_quantity"), (v((("stats_" + ak) + "_quantity")) + 1)), am, ScriptTransfer(value(addressFromString(p)), 1, an)], toBase58String(an))
229+ let q = fromBase58String(Z)
230+ let aa = o(p, q)
231+ let ab = r(p, q)
232+ let N = v("ducks_amount")
233+ let U = M(N)
234+ let ao = $Tuple2((("DUCK-" + G) + "-JU"), "8W-J")
235+ let ah = ao._1
236+ let ai = ao._2
237+ let aj = (("{\"genotype\": \"" + ah) + "\", \"crossbreeding\": true}")
238+ let ak = Issue(ah, aj, 1, 0, false, unit, height)
239+ let al = calculateAssetId(ak)
240+ let ac = s(p, q)
241+ $Tuple2([IntegerEntry(r(p, q), height), IntegerEntry("ducks_amount", (N + 1)), IntegerEntry("ducks_last_price", (U / 1000000)), StringEntry(aa, g), StringEntry(ac, toBase58String(al)), StringEntry(toBase58String(al), ac), IntegerEntry(t(ah), (v(t(ah)) + 1)), IntegerEntry((("stats_" + ai) + "_quantity"), (v((("stats_" + ai) + "_quantity")) + 1)), ak, ScriptTransfer(value(addressFromString(p)), 1, al)], toBase58String(al))
254242 }
255243
256244
257245
258-@Callable(U)
259-func reduceRarity (an,ar) = {
260- let am = fromBase58String(an)
261- if (if ((U.caller != Address(h)))
262- then (U.caller != this)
246+@Callable(S)
247+func reduceRarity (al,ap) = {
248+ let ak = fromBase58String(al)
249+ if (if ((S.caller != Address(h)))
250+ then (S.caller != this)
263251 else false)
264252 then throw("admin or rebirth only")
265253 else {
266- let aj = value(assetInfo(am)).name
267- let as = takeRight(take(aj, 6), 1)
268- let ak = (("8" + as) + "-G")
269-[IntegerEntry(t(aj), (v(t(aj)) - 1)), IntegerEntry((("stats_" + ak) + "_quantity"), (v((("stats_" + ak) + "_quantity")) - 1))]
254+ let ah = value(assetInfo(ak)).name
255+ let aq = takeRight(take(ah, 6), 1)
256+ let ai = (("8" + aq) + "-G")
257+[IntegerEntry(t(ah), (v(t(ah)) - 1)), IntegerEntry((("stats_" + ai) + "_quantity"), (v((("stats_" + ai) + "_quantity")) - 1))]
270258 }
271259 }
272260
273261
274-@Verifier(at)
275-func au () = sigVerify(at.bodyBytes, at.proofs[0], at.senderPublicKey)
262+@Verifier(ar)
263+func as () = sigVerify(ar.bodyBytes, ar.proofs[0], ar.senderPublicKey)
276264
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = base58'3v7zGkeHS6KrsvmTRzEzvCxm5cdzkCtM7z5cM6efcjCB'
55
66 let b = 2
77
88 let c = 9
99
1010 let d = base58'3PGZyyPg7Mx91yaNT8k3MWxSQzuzusMUyzX'
1111
1212 let e = 5
1313
1414 let f = "HATCHING_STARTED"
1515
1616 let g = "HATCHING_FINISHED"
1717
1818 let h = base58'3PKL9tfUmNciXvbSA3zpXr6PnDNnhn936ba'
1919
2020 let i = base58'3PKwLVb8jYk58oYbfXxs2dUjD3YEKeqGWrX'
2121
2222 let j = base58'3PCUJBpMXtqYKxMiDtKcTeEQcKukfMeoctR'
2323
2424 func k () = {
2525 let l = Address(base58'3PEPftf2kWZDmAaWBjs6BUJa9957kiA2PkU')
2626 let m = getInteger(l, "egglock")
2727 if ($isInstanceOf(m, "Int"))
2828 then {
2929 let n = m
3030 n
3131 }
3232 else 0
3333 }
3434
3535
3636 func o (p,q) = (((p + "_") + toBase58String(q)) + "_status")
3737
3838
3939 func r (p,q) = (((p + "_") + toBase58String(q)) + "_fh")
4040
4141
4242 func s (p,q) = (((p + "_") + toBase58String(q)) + "_di")
4343
4444
4545 func t (u) = (("stats_" + u) + "_amount")
4646
4747
4848 func v (w) = {
4949 let x = {
5050 let m = getInteger(this, w)
5151 if ($isInstanceOf(m, "Int"))
5252 then {
5353 let n = m
5454 n
5555 }
5656 else 0
5757 }
5858 x
5959 }
6060
6161
6262 let y = v("discountCoefficient")
6363
64-let z = v("saleCoefficient")
65-
66-func A (B,q,C,D) = {
67- let E = value(blockInfoByHeight((C - 1)))
68- let F = sha256((q + value(E.vrf)))
69- (toInt(F, (D * 8)) % B)
64+func z (A,q,B,C) = {
65+ let D = value(blockInfoByHeight((B - 1)))
66+ let E = sha256((q + value(D.vrf)))
67+ (toInt(E, (C * 8)) % A)
7068 }
7169
7270
73-func G (H) = v(t(H))
71+func F (G) = v(t(G))
7472
7573
76-func I (q,C) = {
77- let J = A(500, q, C, 0)
78- if (if ((5 > J))
79- then (G("DUCK-WWZETKIN-JU") == 0)
74+func H (q,B) = {
75+ let I = z(500, q, B, 0)
76+ if (if ((5 > I))
77+ then (F("DUCK-WWZETKIN-JU") == 0)
8078 else false)
8179 then $Tuple2("DUCK-WWZETKIN-JU", "1E1I1K1N1T1U2W1Z-J")
82- else if (if ((10 > J))
83- then (G("DUCK-WWWWMARG-JU") == 0)
80+ else if (if ((10 > I))
81+ then (F("DUCK-WWWWMARG-JU") == 0)
8482 else false)
8583 then $Tuple2("DUCK-WWWWMARG-JU", "1A1G1M1R4W-J")
86- else if (if ((15 > J))
87- then (G("DUCK-WWWDAISY-JU") == 0)
84+ else if (if ((15 > I))
85+ then (F("DUCK-WWWDAISY-JU") == 0)
8886 else false)
8987 then $Tuple2("DUCK-WWWDAISY-JU", "1A1D1I1S3W1Y-J")
9088 else {
91- let K = A(4, q, C, 0)
92- let L = A(4, q, C, 1)
93- let M = if ((L == 0))
89+ let J = z(4, q, B, 0)
90+ let K = z(4, q, B, 1)
91+ let L = if ((K == 0))
9492 then "Y"
95- else if ((L == 1))
93+ else if ((K == 1))
9694 then "G"
97- else if ((L == 2))
95+ else if ((K == 2))
9896 then "B"
9997 else "R"
100- if ((K == 0))
101- then $Tuple2(("DUCK-FFFFFFFF-G" + M), "8F-G")
102- else if ((K == 1))
103- then $Tuple2(("DUCK-HHHHHHHH-G" + M), "8H-G")
104- else if ((K == 2))
105- then $Tuple2(("DUCK-GGGGGGGG-G" + M), "8G-G")
106- else $Tuple2(("DUCK-IIIIIIII-G" + M), "8I-G")
98+ if ((J == 0))
99+ then $Tuple2(("DUCK-GGGGGGGG-G" + L), "8F-G")
100+ else if ((J == 1))
101+ then $Tuple2(("DUCK-HHHHHHHH-G" + L), "8G-G")
102+ else if ((J == 2))
103+ then $Tuple2(("DUCK-IIIIIIII-G" + L), "8H-G")
104+ else $Tuple2(("DUCK-KKKKKKKK-G" + L), "8K-G")
107105 }
108106 }
109107
110108
111-func N (O) = {
112- let P = O
113- let Q = y
114- let R = z
115- let S = c
116- let T = pow((100 + ((P * Q) / (10 * S))), 2, 5, 1, 2, DOWN)
117- if ((z == 0))
118- then (T * 1000000)
119- else (((T * 1000000) / 100) * (100 - z))
109+func M (N) = {
110+ let O = N
111+ let P = y
112+ let Q = c
113+ let R = pow((100 + ((O * P) / (10 * Q))), 2, 5, 1, 2, DOWN)
114+ (R * 1000000)
120115 }
121116
122117
123-@Callable(U)
124-func setDiscount (x) = if ((U.caller != this))
118+@Callable(S)
119+func setDiscount (x) = if ((S.caller != this))
125120 then throw("admin_only")
126121 else [IntegerEntry("discountCoefficient", x)]
127122
128123
129124
130-@Callable(U)
131-func setSale (x) = if ((U.caller != this))
132- then throw("admin_only")
133- else [IntegerEntry("saleCoefficient", x)]
134-
135-
136-
137-@Callable(U)
138-func startDuckHatching (V) = if ((k() > 0))
125+@Callable(S)
126+func startDuckHatching (T) = if ((k() > 0))
139127 then throw("EGG operations are temporarily locked")
140128 else {
141- let O = v("ducks_amount")
142- let W = N(O)
143- let X = value(U.payments[0])
144- let Y = [StringEntry(o(toString(U.originCaller), U.transactionId), f), IntegerEntry(r(toString(U.originCaller), U.transactionId), (height + b)), IntegerEntry("ducks_amount", (O + 1)), IntegerEntry("ducks_last_price", (W / 1000000))]
145- if ((U.caller == Address(i)))
146- then (Y ++ [BooleanEntry((("hatching_" + toBase58String(U.transactionId)) + "_babyDuck"), true)])
147- else if ((X.assetId != a))
129+ let N = v("ducks_amount")
130+ let U = M(N)
131+ let V = value(S.payments[0])
132+ let W = [StringEntry(o(toString(S.originCaller), S.transactionId), f), IntegerEntry(r(toString(S.originCaller), S.transactionId), (height + b)), IntegerEntry("ducks_amount", (N + 1)), IntegerEntry("ducks_last_price", (U / 1000000))]
133+ if ((S.caller == Address(i)))
134+ then (W ++ [BooleanEntry((("hatching_" + toBase58String(S.transactionId)) + "_babyDuck"), true)])
135+ else if ((V.assetId != a))
148136 then throw(("You can attach only EGG tokens with the following asset id: " + toBase58String(a)))
149- else if ((W > X.amount))
150- then throw(("To hatch a duck you currently need the following amount of EGGlets: " + toString(W)))
137+ else if ((U > V.amount))
138+ then throw(("To hatch a duck you currently need the following amount of EGGlets: " + toString(U)))
151139 else {
152- let Z = fraction(W, e, 100)
153- let aa = invoke(Address(d), "refPayment", [V], [AttachedPayment(a, Z)])
154- if ((aa == aa))
155- then (Y ++ [ScriptTransfer(U.caller, (X.amount - W), a)])
140+ let X = fraction(U, e, 100)
141+ let Y = invoke(Address(d), "refPayment", [T], [AttachedPayment(a, X)])
142+ if ((Y == Y))
143+ then (W ++ [ScriptTransfer(S.caller, (V.amount - U), a)])
156144 else throw("Strict value is not equal to itself.")
157145 }
158146 }
159147
160148
161149
162-@Callable(U)
150+@Callable(S)
163151 func startDuckHatchingForAddress (p) = if ((k() > 0))
164152 then throw("EGG operations are temporarily locked")
165- else if ((U.caller != Address(j)))
153+ else if ((S.caller != Address(j)))
166154 then throw("Pernission denied")
167155 else {
168- let O = v("ducks_amount")
169- let W = N(O)
170-[StringEntry(o(p, U.transactionId), f), IntegerEntry(r(p, U.transactionId), (height + b)), IntegerEntry("ducks_amount", (O + 1)), IntegerEntry("ducks_last_price", (W / 1000000)), BooleanEntry((("hatching_" + toBase58String(U.transactionId)) + "_promo"), true)]
156+ let N = v("ducks_amount")
157+ let U = M(N)
158+[StringEntry(o(p, S.transactionId), f), IntegerEntry(r(p, S.transactionId), (height + b)), IntegerEntry("ducks_amount", (N + 1)), IntegerEntry("ducks_last_price", (U / 1000000)), BooleanEntry((("hatching_" + toBase58String(S.transactionId)) + "_promo"), true)]
171159 }
172160
173161
174162
175-@Callable(U)
176-func finishDuckHatching (ab) = {
177- let q = fromBase58String(ab)
178- let ac = o(toString(U.caller), q)
179- let ad = r(toString(U.caller), q)
180- let ae = s(toString(U.caller), q)
181- let af = {
182- let m = getBoolean((("hatching_" + ab) + "_babyDuck"))
163+@Callable(S)
164+func finishDuckHatching (Z) = {
165+ let q = fromBase58String(Z)
166+ let aa = o(toString(S.caller), q)
167+ let ab = r(toString(S.caller), q)
168+ let ac = s(toString(S.caller), q)
169+ let ad = {
170+ let m = getBoolean((("hatching_" + Z) + "_babyDuck"))
183171 if ($isInstanceOf(m, "Boolean"))
184172 then {
185- let S = m
186- S
173+ let Q = m
174+ Q
187175 }
188176 else false
189177 }
190- let ag = getStringValue(this, ac)
191- let C = getIntegerValue(this, ad)
192- if ((ag == g))
178+ let ae = getStringValue(this, aa)
179+ let B = getIntegerValue(this, ab)
180+ if ((ae == g))
193181 then {
194- let ah = getStringValue(this, s(toString(U.caller), q))
195- throw(("The duck was hatched and claimed already, here is the folowing: " + ah))
182+ let af = getStringValue(this, s(toString(S.caller), q))
183+ throw(("The duck was hatched and claimed already, here is the folowing: " + af))
196184 }
197- else if ((C > height))
198- then throw((((("Hatching is not finished yet " + toString((C - height))) + " blocks remaining, it will take around ") + toString((C - height))) + " minutes"))
185+ else if ((B > height))
186+ then throw((((("Hatching is not finished yet " + toString((B - height))) + " blocks remaining, it will take around ") + toString((B - height))) + " minutes"))
199187 else {
200- let ai = I(q, C)
201- let aj = ai._1
202- let ak = ai._2
203- let al = (("{\"genotype\": \"" + aj) + "\", \"crossbreeding\": true}")
204- let am = Issue(aj, al, 1, 0, false, unit, C)
205- let an = calculateAssetId(am)
206- let ao = (v(t(aj)) + 1)
207-[StringEntry(ac, g), StringEntry(ae, toBase58String(an)), StringEntry(toBase58String(an), ae), BooleanEntry((("duck_" + toBase58String(an)) + "_grown"), af), IntegerEntry(t(aj), ao), IntegerEntry((("stats_" + ak) + "_quantity"), (v((("stats_" + ak) + "_quantity")) + 1)), am, ScriptTransfer(U.caller, 1, an)]
188+ let ag = H(q, B)
189+ let ah = ag._1
190+ let ai = ag._2
191+ let aj = (("{\"genotype\": \"" + ah) + "\", \"crossbreeding\": true}")
192+ let ak = Issue(ah, aj, 1, 0, false, unit, B)
193+ let al = calculateAssetId(ak)
194+ let am = (v(t(ah)) + 1)
195+[StringEntry(aa, g), StringEntry(ac, toBase58String(al)), StringEntry(toBase58String(al), ac), BooleanEntry((("duck_" + toBase58String(al)) + "_grown"), ad), IntegerEntry(t(ah), am), IntegerEntry((("stats_" + ai) + "_quantity"), (v((("stats_" + ai) + "_quantity")) + 1)), ak, ScriptTransfer(S.caller, 1, al)]
208196 }
209197 }
210198
211199
212200
213-@Callable(U)
214-func issueFreeDuck (p,ab) = if ((U.caller != Address(h)))
201+@Callable(S)
202+func issueFreeDuck (p,Z) = if ((S.caller != Address(h)))
215203 then throw("rebirth only")
216204 else {
217- let q = fromBase58String(ab)
218- let ac = o(p, q)
219- let ad = r(p, q)
220- let O = v("ducks_amount")
221- let W = N(O)
222- let ap = I(q, (value(transactionHeightById(q)) + 1))
223- let aj = ap._1
224- let ak = ap._2
225- let al = (("{\"genotype\": \"" + aj) + "\", \"crossbreeding\": true}")
226- let am = Issue(aj, al, 1, 0, false, unit, height)
227- let an = calculateAssetId(am)
228- let ao = (v(t(aj)) + 1)
229- let ae = s(p, q)
230- $Tuple2([IntegerEntry(r(p, q), height), IntegerEntry("ducks_amount", (O + 1)), IntegerEntry("ducks_last_price", (W / 1000000)), StringEntry(ac, g), StringEntry(ae, toBase58String(an)), StringEntry(toBase58String(an), ae), IntegerEntry(t(aj), ao), IntegerEntry((("stats_" + ak) + "_quantity"), (v((("stats_" + ak) + "_quantity")) + 1)), am, ScriptTransfer(value(addressFromString(p)), 1, an)], toBase58String(an))
205+ let q = fromBase58String(Z)
206+ let aa = o(p, q)
207+ let ab = r(p, q)
208+ let N = v("ducks_amount")
209+ let U = M(N)
210+ let an = H(q, (value(transactionHeightById(q)) + 1))
211+ let ah = an._1
212+ let ai = an._2
213+ let aj = (("{\"genotype\": \"" + ah) + "\", \"crossbreeding\": true}")
214+ let ak = Issue(ah, aj, 1, 0, false, unit, height)
215+ let al = calculateAssetId(ak)
216+ let am = (v(t(ah)) + 1)
217+ let ac = s(p, q)
218+ $Tuple2([IntegerEntry(r(p, q), height), IntegerEntry("ducks_amount", (N + 1)), IntegerEntry("ducks_last_price", (U / 1000000)), StringEntry(aa, g), StringEntry(ac, toBase58String(al)), StringEntry(toBase58String(al), ac), IntegerEntry(t(ah), am), IntegerEntry((("stats_" + ai) + "_quantity"), (v((("stats_" + ai) + "_quantity")) + 1)), ak, ScriptTransfer(value(addressFromString(p)), 1, al)], toBase58String(al))
231219 }
232220
233221
234222
235-@Callable(U)
236-func issueJackpot (p,ab,H) = if (if ((U.caller != Address(h)))
237- then (U.caller != this)
223+@Callable(S)
224+func issueJackpot (p,Z,G) = if (if ((S.caller != Address(h)))
225+ then (S.caller != this)
238226 else false)
239227 then throw("admin or rebirth only")
240228 else {
241- let q = fromBase58String(ab)
242- let ac = o(p, q)
243- let ad = r(p, q)
244- let O = v("ducks_amount")
245- let W = N(O)
246- let aq = $Tuple2((("DUCK-" + H) + "-JU"), "8W-J")
247- let aj = aq._1
248- let ak = aq._2
249- let al = (("{\"genotype\": \"" + aj) + "\", \"crossbreeding\": true}")
250- let am = Issue(aj, al, 1, 0, false, unit, height)
251- let an = calculateAssetId(am)
252- let ae = s(p, q)
253- $Tuple2([IntegerEntry(r(p, q), height), IntegerEntry("ducks_amount", (O + 1)), IntegerEntry("ducks_last_price", (W / 1000000)), StringEntry(ac, g), StringEntry(ae, toBase58String(an)), StringEntry(toBase58String(an), ae), IntegerEntry(t(aj), (v(t(aj)) + 1)), IntegerEntry((("stats_" + ak) + "_quantity"), (v((("stats_" + ak) + "_quantity")) + 1)), am, ScriptTransfer(value(addressFromString(p)), 1, an)], toBase58String(an))
229+ let q = fromBase58String(Z)
230+ let aa = o(p, q)
231+ let ab = r(p, q)
232+ let N = v("ducks_amount")
233+ let U = M(N)
234+ let ao = $Tuple2((("DUCK-" + G) + "-JU"), "8W-J")
235+ let ah = ao._1
236+ let ai = ao._2
237+ let aj = (("{\"genotype\": \"" + ah) + "\", \"crossbreeding\": true}")
238+ let ak = Issue(ah, aj, 1, 0, false, unit, height)
239+ let al = calculateAssetId(ak)
240+ let ac = s(p, q)
241+ $Tuple2([IntegerEntry(r(p, q), height), IntegerEntry("ducks_amount", (N + 1)), IntegerEntry("ducks_last_price", (U / 1000000)), StringEntry(aa, g), StringEntry(ac, toBase58String(al)), StringEntry(toBase58String(al), ac), IntegerEntry(t(ah), (v(t(ah)) + 1)), IntegerEntry((("stats_" + ai) + "_quantity"), (v((("stats_" + ai) + "_quantity")) + 1)), ak, ScriptTransfer(value(addressFromString(p)), 1, al)], toBase58String(al))
254242 }
255243
256244
257245
258-@Callable(U)
259-func reduceRarity (an,ar) = {
260- let am = fromBase58String(an)
261- if (if ((U.caller != Address(h)))
262- then (U.caller != this)
246+@Callable(S)
247+func reduceRarity (al,ap) = {
248+ let ak = fromBase58String(al)
249+ if (if ((S.caller != Address(h)))
250+ then (S.caller != this)
263251 else false)
264252 then throw("admin or rebirth only")
265253 else {
266- let aj = value(assetInfo(am)).name
267- let as = takeRight(take(aj, 6), 1)
268- let ak = (("8" + as) + "-G")
269-[IntegerEntry(t(aj), (v(t(aj)) - 1)), IntegerEntry((("stats_" + ak) + "_quantity"), (v((("stats_" + ak) + "_quantity")) - 1))]
254+ let ah = value(assetInfo(ak)).name
255+ let aq = takeRight(take(ah, 6), 1)
256+ let ai = (("8" + aq) + "-G")
257+[IntegerEntry(t(ah), (v(t(ah)) - 1)), IntegerEntry((("stats_" + ai) + "_quantity"), (v((("stats_" + ai) + "_quantity")) - 1))]
270258 }
271259 }
272260
273261
274-@Verifier(at)
275-func au () = sigVerify(at.bodyBytes, at.proofs[0], at.senderPublicKey)
262+@Verifier(ar)
263+func as () = sigVerify(ar.bodyBytes, ar.proofs[0], ar.senderPublicKey)
276264

github/deemru/w8io/3ef1775 
108.84 ms