tx · Arq1ezBd9E8Vfb5zNRW4VfEhTqyNB77XhFczkU7m4VWP

3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv:  -0.01400000 Waves

2022.04.09 18:12 [3066526] smart account 3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv > SELF 0.00000000 Waves

{ "type": 13, "id": "Arq1ezBd9E8Vfb5zNRW4VfEhTqyNB77XhFczkU7m4VWP", "fee": 1400000, "feeAssetId": null, "timestamp": 1649517198933, "version": 2, "chainId": 87, "sender": "3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv", "senderPublicKey": "EBHsV7TQYm4qS2V7iZXEXwcbUdEYQyCSLEdY2AMvLPns", "proofs": [ "37PzePxHLg3CNkPBXrpdibUFArNhpe7Fd5WZx4mqoHe4qWZkDaHRLugRkD7WQ7Uto8UkYzzFzd2YUARR2KM8HKEU" ], "script": "base64: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AAAAB3JlZkNhbGwFAAAAB3JlZkNhbGwJAAROAAAAAgUAAAAHcmVzdWx0cwkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIJAABlAAAAAggFAAAADGZpcnN0UGF5bWVudAAAAAZhbW91bnQFAAAACmVnZ3NOZWVkZWQFAAAAC2VnZ3NBc3NldElkBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAAG3N0YXJ0RHVja0hhdGNoaW5nRm9yQWRkcmVzcwAAAAEAAAAHYWRkcmVzcwMJAABmAAAAAgkBAAAACGlzTG9ja2VkAAAAAAAAAAAAAAAAAAkAAAIAAAABAgAAACVFR0cgb3BlcmF0aW9ucyBhcmUgdGVtcG9yYXJpbHkgbG9ja2VkAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyCQEAAAAHQWRkcmVzcwAAAAEFAAAAEHN3b3BQcm9tb0FkZHJlc3MJAAACAAAAAQIAAAARUGVybmlzc2lvbiBkZW5pZWQEAAAAEHRvdGFsRHVja3NBbW91bnQJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQIAAAAMZHVja3NfYW1vdW50BAAAAAplZ2dzTmVlZGVkCQEAAAAVY291bnRFZ2dzTmVlZGVkQW1vdW50AAAAAQUAAAAQdG90YWxEdWNrc0Ftb3VudAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAUZ2V0SGF0Y2hpbmdTdGF0dXNLZXkAAAACBQAAAAdhZGRyZXNzCAUAAAABaQAAAA10cmFuc2FjdGlvbklkBQAAAA9IYXRjaGluZ1N0YXJ0ZWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABpnZXRIYXRjaGluZ0ZpbmlzaEhlaWdodEtleQAAAAIFAAAAB2FkZHJlc3MIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQJAABkAAAAAgUAAAAGaGVpZ2h0BQAAABBkZWxheUZvckhhdGNoaW5nCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAxkdWNrc19hbW91bnQJAABkAAAAAgUAAAAQdG90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AAIFAAAAB2FkZHJlc3MFAAAABHR4SWQEAAAAD2ZpbmlzaEhlaWdodEtleQkBAAAAGmdldEhhdGNoaW5nRmluaXNoSGVpZ2h0S2V5AAAAAgUAAAAHYWRkcmVzcwUAAAAEdHhJZAQAAAAQdG90YWxEdWNrc0Ftb3VudAkBAAAADXRyeUdldEludGVnZXIAAAABAgAAAAxkdWNrc19hbW91bnQEAAAACmVnZ3NOZWVkZWQJAQAAABVjb3VudEVnZ3NOZWVkZWRBbW91bnQAAAABBQAAABB0b3RhbER1Y2tzQW1vdW50BAAAAAskdDA4NDA5ODQ5NAkBAAAADWdldFJhbmRvbU5hbWUAAAACBQAAAAR0eElkCQAAZAAAAAIJAQAAAAV2YWx1ZQAAAAEJAAPpAAAAAQUAAAAEdHhJZAAAAAAAAAAAAQQAAAAHZHVja0dlbggFAAAACyR0MDg0MDk4NDk0AAAAAl8xBAAAAAdmYXJtR2VuCAUAAAALJHQwODQwOTg0OTQAAAACXzIEAAAAC2Rlc2NyaXB0aW9uCQABLAAAAAIJAAEsAAAAAgIAAAAOeyJnZW5vdHlwZSI6ICIFAAAAB2R1Y2tHZW4CAAAAGSIsICJjcm9zc2JyZWVkaW5nIjogdHJ1ZX0EAAAABWFzc2V0CQAEQwAAAAcFAAAAB2R1Y2tHZW4FAAAAC2Rlc2NyaXB0aW9uAAAAAAAAAAABAAAAAAAAAAAABwUAAAAEdW5pdAUAAAAGaGVpZ2h0BAAAAAdhc3NldElkCQAEOAAAAAEFAAAABWFzc2V0BAAAAAZhbW91bnQJAABkAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAAPZ2V0RHVja1N0YXRzS2V5AAAAAQUAAAAHZHVja0dlbgAAAAAAAAAAAQQAAAAJZHVja0lkS2V5CQEAAAAMZ2V0RHVja0lkS2V5AAAAAgUAAAAHYWRkcmVzcwUAAAAEdHhJZAkABRQAAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAaZ2V0SGF0Y2hpbmdGaW5pc2hIZWlnaHRLZXkAAAACBQAAAAdhZGRyZXNzBQAAAAR0eElkBQAAAAZoZWlnaHQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAADGR1Y2tzX2Ftb3VudAkAAGQAAAACBQAAABB0b3RhbER1Y2tzQW1vdW50AAAAAAAAAAABCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABBkdWNrc19sYXN0X3ByaWNlCQAAaQAAAAIFAAAACmVnZ3NOZWVkZWQAAAAAAAAPQkAJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAARaGF0Y2hpbmdTdGF0dXNLZXkFAAAAEEhhdGNoaW5nRmluaXNoZWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAJZHVja0lkS2V5CQACWAAAAAEFAAAAB2Fzc2V0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAAlgAAAABBQAAAAdhc3NldElkBQAAAAlkdWNrSWRLZXkJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAA9nZXREdWNrU3RhdHNLZXkAAAABBQAAAAdkdWNrR2VuBQAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZzdGF0c18FAAAAB2Zhcm1HZW4CAAAACV9xdWFudGl0eQkAAGQAAAACCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAZzdGF0c18FAAAAB2Zhcm1HZW4CAAAACV9xdWFudGl0eQAAAAAAAAAAAQkABEwAAAACBQAAAAVhc3NldAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAFdmFsdWUAAAABCQAEJgAAAAEFAAAAB2FkZHJlc3MAAAAAAAAAAAEFAAAAB2Fzc2V0SWQFAAAAA25pbAkAAlgAAAABBQAAAAdhc3NldElkAAAAAWkBAAAADGlzc3VlSmFja3BvdAAAAAMAAAAHYWRkcmVzcwAAAAd0eElkU3RyAAAAA2dlbgMDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIJAQAAAAdBZGRyZXNzAAAAAQUAAAAOcmViaXJ0aEFkZHJlc3MJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwcJAAACAAAAAQIAAAAVYWRtaW4gb3IgcmViaXJ0aCBvbmx5BAAAAAR0eElkCQACWQAAAAEFAAAAB3R4SWRTdHIEAAAAEWhhdGNoaW5nU3RhdHVzS2V5CQEAAAAUZ2V0SGF0Y2hpbmdTdGF0dXNLZXkAAAACBQAAAAdhZGRyZXNzBQAAAAR0eElkBAAAAA9maW5pc2hIZWlnaHRLZXkJAQAAABpnZXRIYXRjaGluZ0ZpbmlzaEhlaWdodEtleQAAAAIFAAAAB2FkZHJlc3MFAAAABHR4SWQEAAAAEHRvdGFsRHVja3NBbW91bnQJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQIAAAAMZHVja3NfYW1vdW50BAAAAAplZ2dzTmVlZGVkCQEAAAAVY291bnRFZ2dzTmVlZGVkQW1vdW50AAAAAQUAAAAQdG90YWxEdWNrc0Ftb3VudAQAAAALJHQwOTk0Nzk5OTkJAAUUAAAAAgkAASwAAAACCQABLAAAAAICAAAABURVQ0stBQAAAANnZW4CAAAAAy1KVQIAAAAEOFctSgQAAAAHZHVja0dlbggFAAAACyR0MDk5NDc5OTk5AAAAAl8xBAAAAAdmYXJtR2VuCAUAAAALJHQwOTk0Nzk5OTkAAAACXzIEAAAAC2Rlc2NyaXB0aW9uCQABLAAAAAIJAAEsAAAAAgIAAAAOeyJnZW5vdHlwZSI6ICIFAAAAB2R1Y2tHZW4CAAAAGSIsICJjcm9zc2JyZWVkaW5nIjogdHJ1ZX0EAAAABWFzc2V0CQAEQwAAAAcFAAAAB2R1Y2tHZW4FAAAAC2Rlc2NyaXB0aW9uAAAAAAAAAAABAAAAAAAAAAAABwUAAAAEdW5pdAUAAAAGaGVpZ2h0BAAAAAdhc3NldElkCQAEOAAAAAEFAAAABWFzc2V0BAAAAAlkdWNrSWRLZXkJAQAAAAxnZXREdWNrSWRLZXkAAAACBQAAAAdhZGRyZXNzBQAAAAR0eElkCQAFFAAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABpnZXRIYXRjaGluZ0ZpbmlzaEhlaWdodEtleQAAAAIFAAAAB2FkZHJlc3MFAAAABHR4SWQFAAAABmhlaWdodAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAMZHVja3NfYW1vdW50CQAAZAAAAAIFAAAAEHRvdGFsRHVja3NBbW91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", "height": 3066526, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9VJjCjZTJQmFuCEeRJLFpSujbjgJWRrhFz9wnHritAmW Next: 7neWL1A7FKhkLN9p229SEyyqy3kg4KkhiKswSCt91Hw2 Diff:
OldNewDifferences
6161
6262 let y = v("discountCoefficient")
6363
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)
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)
6870 }
6971
7072
71-func F (G) = v(t(G))
73+func G (H) = v(t(H))
7274
7375
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)
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)
7880 else false)
7981 then $Tuple2("DUCK-WWZETKIN-JU", "1E1I1K1N1T1U2W1Z-J")
80- else if (if ((10 > I))
81- then (F("DUCK-WWWWMARG-JU") == 0)
82+ else if (if ((10 > J))
83+ then (G("DUCK-WWWWMARG-JU") == 0)
8284 else false)
8385 then $Tuple2("DUCK-WWWWMARG-JU", "1A1G1M1R4W-J")
84- else if (if ((15 > I))
85- then (F("DUCK-WWWDAISY-JU") == 0)
86+ else if (if ((15 > J))
87+ then (G("DUCK-WWWDAISY-JU") == 0)
8688 else false)
8789 then $Tuple2("DUCK-WWWDAISY-JU", "1A1D1I1S3W1Y-J")
8890 else {
89- let J = z(4, q, B, 0)
90- let K = z(4, q, B, 1)
91- let L = if ((K == 0))
91+ let K = A(4, q, C, 0)
92+ let L = A(4, q, C, 1)
93+ let M = if ((L == 0))
9294 then "Y"
93- else if ((K == 1))
95+ else if ((L == 1))
9496 then "G"
95- else if ((K == 2))
97+ else if ((L == 2))
9698 then "B"
9799 else "R"
98- if ((J == 0))
99- then $Tuple2(("DUCK-FFFFFFFF-G" + L), "8F-G")
100- else if ((J == 1))
101- then $Tuple2(("DUCK-HHHHHHHH-G" + L), "8H-G")
102- else if ((J == 2))
103- then $Tuple2(("DUCK-GGGGGGGG-G" + L), "8G-G")
104- else $Tuple2(("DUCK-IIIIIIII-G" + L), "8I-G")
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")
105107 }
106108 }
107109
108110
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)
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))
115120 }
116121
117122
118-@Callable(S)
119-func setDiscount (x) = if ((S.caller != this))
123+@Callable(U)
124+func setDiscount (x) = if ((U.caller != this))
120125 then throw("admin_only")
121126 else [IntegerEntry("discountCoefficient", x)]
122127
123128
124129
125-@Callable(S)
126-func startDuckHatching (T) = if ((k() > 0))
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))
127139 then throw("EGG operations are temporarily locked")
128140 else {
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))
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))
136148 then throw(("You can attach only EGG tokens with the following asset id: " + toBase58String(a)))
137- else if ((U > V.amount))
138- then throw(("To hatch a duck you currently need the following amount of EGGlets: " + toString(U)))
149+ else if ((W > X.amount))
150+ then throw(("To hatch a duck you currently need the following amount of EGGlets: " + toString(W)))
139151 else {
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)])
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)])
144156 else throw("Strict value is not equal to itself.")
145157 }
146158 }
147159
148160
149161
150-@Callable(S)
162+@Callable(U)
151163 func startDuckHatchingForAddress (p) = if ((k() > 0))
152164 then throw("EGG operations are temporarily locked")
153- else if ((S.caller != Address(j)))
165+ else if ((U.caller != Address(j)))
154166 then throw("Pernission denied")
155167 else {
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)]
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)]
159171 }
160172
161173
162174
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"))
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"))
171183 if ($isInstanceOf(m, "Boolean"))
172184 then {
173- let Q = m
174- Q
185+ let S = m
186+ S
175187 }
176188 else false
177189 }
178- let ae = getStringValue(this, aa)
179- let B = getIntegerValue(this, ab)
180- if ((ae == g))
190+ let ag = getStringValue(this, ac)
191+ let C = getIntegerValue(this, ad)
192+ if ((ag == g))
181193 then {
182- let af = getStringValue(this, s(toString(S.caller), q))
183- throw(("The duck was hatched and claimed already, here is the folowing: " + af))
194+ let ah = getStringValue(this, s(toString(U.caller), q))
195+ throw(("The duck was hatched and claimed already, here is the folowing: " + ah))
184196 }
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"))
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"))
187199 else {
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)]
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)]
196208 }
197209 }
198210
199211
200212
201-@Callable(S)
202-func issueFreeDuck (p,Z) = if ((S.caller != Address(h)))
213+@Callable(U)
214+func issueFreeDuck (p,ab) = if ((U.caller != Address(h)))
203215 then throw("rebirth only")
204216 else {
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))
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))
219231 }
220232
221233
222234
223-@Callable(S)
224-func issueJackpot (p,Z,G) = if (if ((S.caller != Address(h)))
225- then (S.caller != this)
235+@Callable(U)
236+func issueJackpot (p,ab,H) = if (if ((U.caller != Address(h)))
237+ then (U.caller != this)
226238 else false)
227239 then throw("admin or rebirth only")
228240 else {
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))
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))
242254 }
243255
244256
245257
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)
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)
251263 else false)
252264 then throw("admin or rebirth only")
253265 else {
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))]
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))]
258270 }
259271 }
260272
261273
262-@Verifier(ar)
263-func as () = sigVerify(ar.bodyBytes, ar.proofs[0], ar.senderPublicKey)
274+@Verifier(at)
275+func au () = sigVerify(at.bodyBytes, at.proofs[0], at.senderPublicKey)
264276
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS'
55
66 let b = 2
77
88 let c = 9
99
1010 let d = base58'3P8ejTkfRpz9WqCwCuihesNXU5k3zmFFfVe'
1111
1212 let e = 5
1313
1414 let f = "HATCHING_STARTED"
1515
1616 let g = "HATCHING_FINISHED"
1717
1818 let h = base58'3PCC6fVHNa6289DTDmcUo3RuLaFmteZZsmQ'
1919
2020 let i = base58'3PKmLiGEfqLWMC1H9xhzqvAZKUXfFm8uoeg'
2121
2222 let j = base58'3P6s9C39Ak5FAQ3F5VapYJ3ULxgbsAReXWD'
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-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)
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)
6870 }
6971
7072
71-func F (G) = v(t(G))
73+func G (H) = v(t(H))
7274
7375
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)
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)
7880 else false)
7981 then $Tuple2("DUCK-WWZETKIN-JU", "1E1I1K1N1T1U2W1Z-J")
80- else if (if ((10 > I))
81- then (F("DUCK-WWWWMARG-JU") == 0)
82+ else if (if ((10 > J))
83+ then (G("DUCK-WWWWMARG-JU") == 0)
8284 else false)
8385 then $Tuple2("DUCK-WWWWMARG-JU", "1A1G1M1R4W-J")
84- else if (if ((15 > I))
85- then (F("DUCK-WWWDAISY-JU") == 0)
86+ else if (if ((15 > J))
87+ then (G("DUCK-WWWDAISY-JU") == 0)
8688 else false)
8789 then $Tuple2("DUCK-WWWDAISY-JU", "1A1D1I1S3W1Y-J")
8890 else {
89- let J = z(4, q, B, 0)
90- let K = z(4, q, B, 1)
91- let L = if ((K == 0))
91+ let K = A(4, q, C, 0)
92+ let L = A(4, q, C, 1)
93+ let M = if ((L == 0))
9294 then "Y"
93- else if ((K == 1))
95+ else if ((L == 1))
9496 then "G"
95- else if ((K == 2))
97+ else if ((L == 2))
9698 then "B"
9799 else "R"
98- if ((J == 0))
99- then $Tuple2(("DUCK-FFFFFFFF-G" + L), "8F-G")
100- else if ((J == 1))
101- then $Tuple2(("DUCK-HHHHHHHH-G" + L), "8H-G")
102- else if ((J == 2))
103- then $Tuple2(("DUCK-GGGGGGGG-G" + L), "8G-G")
104- else $Tuple2(("DUCK-IIIIIIII-G" + L), "8I-G")
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")
105107 }
106108 }
107109
108110
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)
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))
115120 }
116121
117122
118-@Callable(S)
119-func setDiscount (x) = if ((S.caller != this))
123+@Callable(U)
124+func setDiscount (x) = if ((U.caller != this))
120125 then throw("admin_only")
121126 else [IntegerEntry("discountCoefficient", x)]
122127
123128
124129
125-@Callable(S)
126-func startDuckHatching (T) = if ((k() > 0))
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))
127139 then throw("EGG operations are temporarily locked")
128140 else {
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))
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))
136148 then throw(("You can attach only EGG tokens with the following asset id: " + toBase58String(a)))
137- else if ((U > V.amount))
138- then throw(("To hatch a duck you currently need the following amount of EGGlets: " + toString(U)))
149+ else if ((W > X.amount))
150+ then throw(("To hatch a duck you currently need the following amount of EGGlets: " + toString(W)))
139151 else {
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)])
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)])
144156 else throw("Strict value is not equal to itself.")
145157 }
146158 }
147159
148160
149161
150-@Callable(S)
162+@Callable(U)
151163 func startDuckHatchingForAddress (p) = if ((k() > 0))
152164 then throw("EGG operations are temporarily locked")
153- else if ((S.caller != Address(j)))
165+ else if ((U.caller != Address(j)))
154166 then throw("Pernission denied")
155167 else {
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)]
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)]
159171 }
160172
161173
162174
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"))
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"))
171183 if ($isInstanceOf(m, "Boolean"))
172184 then {
173- let Q = m
174- Q
185+ let S = m
186+ S
175187 }
176188 else false
177189 }
178- let ae = getStringValue(this, aa)
179- let B = getIntegerValue(this, ab)
180- if ((ae == g))
190+ let ag = getStringValue(this, ac)
191+ let C = getIntegerValue(this, ad)
192+ if ((ag == g))
181193 then {
182- let af = getStringValue(this, s(toString(S.caller), q))
183- throw(("The duck was hatched and claimed already, here is the folowing: " + af))
194+ let ah = getStringValue(this, s(toString(U.caller), q))
195+ throw(("The duck was hatched and claimed already, here is the folowing: " + ah))
184196 }
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"))
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"))
187199 else {
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)]
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)]
196208 }
197209 }
198210
199211
200212
201-@Callable(S)
202-func issueFreeDuck (p,Z) = if ((S.caller != Address(h)))
213+@Callable(U)
214+func issueFreeDuck (p,ab) = if ((U.caller != Address(h)))
203215 then throw("rebirth only")
204216 else {
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))
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))
219231 }
220232
221233
222234
223-@Callable(S)
224-func issueJackpot (p,Z,G) = if (if ((S.caller != Address(h)))
225- then (S.caller != this)
235+@Callable(U)
236+func issueJackpot (p,ab,H) = if (if ((U.caller != Address(h)))
237+ then (U.caller != this)
226238 else false)
227239 then throw("admin or rebirth only")
228240 else {
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))
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))
242254 }
243255
244256
245257
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)
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)
251263 else false)
252264 then throw("admin or rebirth only")
253265 else {
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))]
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))]
258270 }
259271 }
260272
261273
262-@Verifier(ar)
263-func as () = sigVerify(ar.bodyBytes, ar.proofs[0], ar.senderPublicKey)
274+@Verifier(at)
275+func au () = sigVerify(at.bodyBytes, at.proofs[0], at.senderPublicKey)
264276

github/deemru/w8io/3ef1775 
109.95 ms