tx · BdN4gSBVMNjbGfNoGRpGmKG6Pp7QZyr4VUz8N4pTWVRm

3MtrXLq2YFHNLqTBXr488vaQVQpsHdmbg7C:  -0.02100000 Waves

2024.12.03 23:51 [3398961] smart account 3MtrXLq2YFHNLqTBXr488vaQVQpsHdmbg7C > SELF 0.00000000 Waves

{ "type": 13, "id": "BdN4gSBVMNjbGfNoGRpGmKG6Pp7QZyr4VUz8N4pTWVRm", "fee": 2100000, "feeAssetId": null, "timestamp": 1733259196408, "version": 2, "chainId": 84, "sender": "3MtrXLq2YFHNLqTBXr488vaQVQpsHdmbg7C", "senderPublicKey": "ESRi59hjHAnDxmeFyTaaXNvzeEW323BvzYJYyKjpEsC1", "proofs": [ "XnMW2S55UqURVmSXp1qw5p9f6ta4mFYxyQjzXJ7HMpVAvYxfQfHK7PV2jmrSixYgEC6FSCgypQuVyU9P79nqK69" ], "script": "base64:AAIFAAAAAAAAAC8IAhIECgIICBIECgIICBIDCgEIEgUKAwgICBIECgIICBIDCgEBEgMKAQgSAwoBCAAAACUBAAAAB2dldEJvb2wAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABBsAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0Jvb2xlYW4EAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIHAQAAAAhhc1N0cmluZwAAAAEAAAAFdmFsdWUEAAAAByRtYXRjaDAFAAAABXZhbHVlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXMFAAAAByRtYXRjaDAFAAAAAXMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABcwUAAAAHJG1hdGNoMAkAAAIAAAABAgAAACZ3cm9uZyB0eXBlLCBleHBlY3RlZDogU3RyaW5nLCBnb3Q6IEludAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAQAAAABcwUAAAAHJG1hdGNoMAkAAAIAAAABAgAAACd3cm9uZyB0eXBlLCBleHBlY3RlZDogU3RyaW5nLCBnb3Q6IFVuaXQJAAACAAAAAQIAAAAcd3JvbmcgdHlwZSwgZXhwZWN0ZWQ6IFN0cmluZwEAAAAJaXNUZXN0RW52AAAAAAkBAAAAB2dldEJvb2wAAAABAgAAAAdURVNURU5WAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIAAAAHYWRkcmVzcwAAAANrZXkEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWECAAAAAAEAAAAMdHJ5R2V0U3RyaW5nAAAAAQAAAANrZXkJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIFAAAABHRoaXMFAAAAA2tleQEAAAAXc3RhdGljS2V5X29yYWNsZUFkZHJlc3MAAAAAAgAAABRzdGF0aWNfb3JhY2xlQWRkcmVzcwEAAAASc3RhdGljS2V5X2V4dHJhRmVlAAAAAAIAAAAPc3RhdGljX2V4dHJhRmVlAQAAABdzdGF0aWNLZXlfZmVlQWdncmVnYXRvcgAAAAACAAAAFHN0YXRpY19mZWVBZ2dyZWdhdG9yAQAAABxzdGF0aWNLZXlfcmVmQ29udHJhY3RBZGRyZXNzAAAAAAIAAAAZc3RhdGljX3JlZkNvbnRyYWN0QWRkcmVzcwEAAAAcc3RhdGljS2V5X2NhbmlSZWJpcnRoQWRkcmVzcwAAAAACAAAAG3N0YXRpY19jYW5pbmVSZWJpcnRoQWRkcmVzcwEAAAAcc3RhdGljS2V5X2NhbmlGYXJtaW5nQWRkcmVzcwAAAAACAAAAG3N0YXRpY19jYW5pbmVTdGFraW5nQWRkcmVzcwEAAAAWc3RhdGljS2V5X2l0ZW1zQWRkcmVzcwAAAAACAAAAE3N0YXRpY19pdGVtc0FkZHJlc3MBAAAACWdldE9yYWNsZQAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkBAAAAF3N0YXRpY0tleV9vcmFjbGVBZGRyZXNzAAAAAAEAAAAQZ2V0RmVlQWdncmVnYXRvcgAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAF3N0YXRpY0tleV9mZWVBZ2dyZWdhdG9yAAAAAAEAAAAOZ2V0TWludEFzc2V0SWQAAAAABQAAAAR1bml0AQAAAA5nZXRCdXJuQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAIAAAASc3RhdGljX2J1cm5BZGRyZXNzAQAAABVnZXRSZWZDb250cmFjdEFkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABxzdGF0aWNLZXlfcmVmQ29udHJhY3RBZGRyZXNzAAAAAAEAAAAVZ2V0Q2FuaVJlYmlydGhBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAcc3RhdGljS2V5X2NhbmlSZWJpcnRoQWRkcmVzcwAAAAABAAAAFWdldENhbmlGYXJtaW5nQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAHHN0YXRpY0tleV9jYW5pRmFybWluZ0FkZHJlc3MAAAAAAQAAAA9nZXRJdGVtc0FkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABZzdGF0aWNLZXlfaXRlbXNBZGRyZXNzAAAAAAEAAAAWY2hlY2tBZGRpdGlvbmFsUGF5bWVudAAAAAEAAAAHcGF5bWVudAMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAAHcGF5bWVudAAAAAdhc3NldElkCQAAAgAAAAECAAAAGkJEQ0FQOiBQbGVhc2UgYXR0YWNoIHdhdmVzBAAAAAlmZWVBbW91bnQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAASc3RhdGljS2V5X2V4dHJhRmVlAAAAAAMJAQAAAAIhPQAAAAIIBQAAAAdwYXltZW50AAAABmFtb3VudAUAAAAJZmVlQW1vdW50CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAB1CRENBUDogUGxlYXNlIGF0dGFjaCBleGFjdGx5IAkAAaQAAAABBQAAAAlmZWVBbW91bnQCAAAAEyBhbW91bnQgb2Ygd2F2ZWxldHMJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAEGdldEZlZUFnZ3JlZ2F0b3IAAAAABQAAAAlmZWVBbW91bnQFAAAABHVuaXQFAAAAA25pbAAAAAAQZGVsYXlGb3JIYXRjaGluZwAAAAAAAAAAAgAAAAAPSGF0Y2hpbmdTdGFydGVkAgAAABBIQVRDSElOR19TVEFSVEVEAAAAABBIYXRjaGluZ0ZpbmlzaGVk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BQAAAAd0eElkU3RyBAAAABFoYXRjaGluZ1N0YXR1c0tleQkBAAAAFGdldEhhdGNoaW5nU3RhdHVzS2V5AAAAAgUAAAAHYWRkcmVzcwUAAAAEdHhJZAQAAAAPZmluaXNoSGVpZ2h0S2V5CQEAAAAaZ2V0SGF0Y2hpbmdGaW5pc2hIZWlnaHRLZXkAAAACBQAAAAdhZGRyZXNzBQAAAAR0eElkBAAAABB0b3RhbER1Y2tzQW1vdW50CQEAAAANdHJ5R2V0SW50ZWdlcgAAAAECAAAAC2NhbmlfYW1vdW50BAAAAAplZ2dzTmVlZGVkCQEAAAAVY291bnRFZ2dzTmVlZGVkQW1vdW50AAAAAQUAAAAQdG90YWxEdWNrc0Ftb3VudAQAAAALJHQwNjk3MDcwMjIJAAUUAAAAAgkAASwAAAACCQABLAAAAAICAAAABUNBTkktBQAAAANnZW4CAAAAAy1KVQIAAAAEOFctSgQAAAAHZHVja0dlbggFAAAACyR0MDY5NzA3MDIyAAAAAl8xBAAAAAdmYXJtR2VuCAUAAAALJHQwNjk3MDcwMjIAAAACXzIEAAAAC2Rlc2NyaXB0aW9uCQABLAAAAAIJAAEsAAAAAgIAAAAOeyJnZW5vdHlwZSI6ICIFAAAAB2R1Y2tHZW4CAAAAGSIsICJjcm9zc2JyZWVkaW5nIjogdHJ1ZX0EAAAABWFzc2V0CQAEQwAAAAcFAAAAB2R1Y2tHZW4FAAAAC2Rlc2NyaXB0aW9uAAAAAAAAAAABAAAAAAAAAAAABwUAAAAEdW5pdAUAAAAGaGVpZ2h0BAAAAAdhc3NldElkCQAEOAAAAAEFAAAABWFzc2V0BAAAAAlkdWNrSWRLZXkJAQAAAAxnZXRDQU5JSWRLZXkAAAACBQAAAAdhZGRyZXNzBQAAAAR0eElkBAAAABN2YWx1ZUR1Y2tJZEtleUV4aXRzCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQUAAAAJZHVja0lkS2V5AwkBAAAAAiE9AAAAAgUAAAATdmFsdWVEdWNrSWRLZXlFeGl0cwIAAAAACQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAClJU0o6IFlvdSB3aWxsIG92ZXJyaWRlIGZvbGxvd2luZyBkdWNrSWQgOgUAAAAJZHVja0lkS2V5AgAAACQgbWFrZSBzdXJl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", "height": 3398961, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: B7mXXdprvczmQyEEm9yfKnx7vkRgJ4bhhteTWCSVCCpD Next: none Diff:
OldNewDifferences
1212 }
1313
1414
15-func e () = a("TESTENV")
15+func e (f) = {
16+ let c = f
17+ if ($isInstanceOf(c, "String"))
18+ then {
19+ let g = c
20+ g
21+ }
22+ else if ($isInstanceOf(c, "Int"))
23+ then {
24+ let g = c
25+ throw("wrong type, expected: String, got: Int")
26+ }
27+ else if ($isInstanceOf(c, "Unit"))
28+ then {
29+ let g = c
30+ throw("wrong type, expected: String, got: Unit")
31+ }
32+ else throw("wrong type, expected: String")
33+ }
1634
1735
18-func f (g,b) = {
19- let c = getString(g, b)
36+func h () = a("TESTENV")
37+
38+
39+func i (j,b) = {
40+ let c = getString(j, b)
2041 if ($isInstanceOf(c, "String"))
2142 then {
22- let h = c
23- h
43+ let k = c
44+ k
2445 }
2546 else ""
2647 }
2748
2849
29-func i (b) = f(this, b)
50+func l (b) = i(this, b)
3051
3152
32-func j () = "static_oracleAddress"
53+func m () = "static_oracleAddress"
3354
3455
35-func k () = "static_extraFee"
56+func n () = "static_extraFee"
3657
3758
38-func l () = "static_feeAggregator"
59+func o () = "static_feeAggregator"
3960
4061
41-func m () = "static_refContractAddress"
62+func p () = "static_refContractAddress"
4263
4364
44-func n () = "static_canineRebirthAddress"
65+func q () = "static_canineRebirthAddress"
4566
4667
47-func o () = "static_canineStakingAddress"
68+func r () = "static_canineStakingAddress"
4869
4970
50-func p () = Address(fromBase58String(i(j())))
71+func s () = "static_itemsAddress"
5172
5273
53-func q () = Address(fromBase58String(f(p(), l())))
74+func t () = Address(fromBase58String(l(m())))
5475
5576
56-func r () = unit
77+func u () = Address(fromBase58String(i(t(), o())))
5778
5879
59-func s () = Address(fromBase58String(f(p(), "static_burnAddress")))
80+func v () = unit
6081
6182
62-func t () = Address(fromBase58String(f(p(), m())))
83+func w () = Address(fromBase58String(i(t(), "static_burnAddress")))
6384
6485
65-func u () = Address(fromBase58String(f(p(), n())))
86+func x () = Address(fromBase58String(i(t(), p())))
6687
6788
68-func v () = Address(fromBase58String(f(p(), o())))
89+func y () = Address(fromBase58String(i(t(), q())))
6990
7091
71-func w (x) = if (isDefined(x.assetId))
92+func z () = Address(fromBase58String(i(t(), r())))
93+
94+
95+func A () = Address(fromBase58String(i(t(), s())))
96+
97+
98+func B (C) = if (isDefined(C.assetId))
7299 then throw("BDCAP: Please attach waves")
73100 else {
74- let y = getIntegerValue(p(), k())
75- if ((x.amount != y))
76- then throw((("BDCAP: Please attach exactly " + toString(y)) + " amount of wavelets"))
77- else [ScriptTransfer(q(), y, unit)]
101+ let D = getIntegerValue(t(), n())
102+ if ((C.amount != D))
103+ then throw((("BDCAP: Please attach exactly " + toString(D)) + " amount of wavelets"))
104+ else [ScriptTransfer(u(), D, unit)]
78105 }
79106
80107
81-let z = 2
108+let E = 2
82109
83-let A = "HATCHING_STARTED"
110+let F = "HATCHING_STARTED"
84111
85-let B = "HATCHING_FINISHED"
112+let G = "HATCHING_FINISHED"
86113
87-func C () = {
88- let D = Address(base58'3PEPftf2kWZDmAaWBjs6BUJa9957kiA2PkU')
89- let c = getInteger(D, "egglock")
114+func H () = {
115+ let I = Address(base58'3PEPftf2kWZDmAaWBjs6BUJa9957kiA2PkU')
116+ let c = getInteger(I, "egglock")
90117 if ($isInstanceOf(c, "Int"))
91118 then {
92119 let d = c
96123 }
97124
98125
99-func E (g,F) = (((g + "_") + toBase58String(F)) + "_status")
126+func J (j,K) = (((j + "_") + toBase58String(K)) + "_status")
100127
101128
102-func G (g,F) = (((g + "_") + toBase58String(F)) + "_fh")
129+func L (j,K) = (((j + "_") + toBase58String(K)) + "_fh")
103130
104131
105-func H (g,F) = (((g + "_") + toBase58String(F)) + "_di")
132+func M (j,K) = (((j + "_") + toBase58String(K)) + "_di")
106133
107134
108-func I (J) = (("stats_" + J) + "_amount")
135+func N (O) = (("stats_" + O) + "_amount")
109136
110137
111-func K (b) = {
112- let L = {
138+func P (b) = {
139+ let Q = {
113140 let c = getInteger(this, b)
114141 if ($isInstanceOf(c, "Int"))
115142 then {
118145 }
119146 else 0
120147 }
121- L
148+ Q
122149 }
123150
124151
125-let M = K("discountCoefficient")
152+let R = P("discountCoefficient")
126153
127-func N (O,F,P,Q) = {
128- let R = value(blockInfoByHeight((P - 1)))
129- let S = sha256((F + value(R.vrf)))
130- (toInt(S, (Q * 8)) % O)
154+func S (T,K,U,V) = {
155+ let W = value(blockInfoByHeight((U - 1)))
156+ let X = sha256((K + value(W.vrf)))
157+ (toInt(X, (V * 8)) % T)
131158 }
132159
133160
134-func T (U) = {
135- let V = [$Tuple2(("CANI-AAAAAAAA-G" + U), "8A-G")]
136- let W = [$Tuple2(("CANI-BBBBBBBB-G" + U), "8B-G"), $Tuple2(("CANI-CCCCCCCC-G" + U), "8C-G"), $Tuple2(("CANI-DDDDDDDD-G" + U), "8D-G"), $Tuple2(("CANI-EEEEEEEE-G" + U), "8E-G")]
137- $Tuple2((V ++ W), W)
161+func Y (Z) = {
162+ let aa = [$Tuple2(("CANI-AAAAAAAA-G" + Z), "8A-G")]
163+ let ab = [$Tuple2(("CANI-BBBBBBBB-G" + Z), "8B-G"), $Tuple2(("CANI-CCCCCCCC-G" + Z), "8C-G"), $Tuple2(("CANI-DDDDDDDD-G" + Z), "8D-G"), $Tuple2(("CANI-EEEEEEEE-G" + Z), "8E-G")]
164+ $Tuple2((aa ++ ab), ab)
138165 }
139166
140167
141-func X (F,P,Y) = {
142- let Z = N(4, F, P, 1)
143- let U = ["A", "B", "C", "D"][Z]
144- let aa = T(U)
145- let ab = if (Y)
146- then aa._1
147- else aa._2
148- let ac = N(size(ab), F, P, 0)
149-ab[ac]
168+func ac (K,U,ad) = {
169+ let ae = S(4, K, U, 1)
170+ let Z = ["A", "B", "C", "D"][ae]
171+ let af = Y(Z)
172+ let ag = if (ad)
173+ then af._1
174+ else af._2
175+ let ah = S(size(ag), K, U, 0)
176+ag[ah]
150177 }
151178
152179
153-let ad = (size(T("R")._2) - 1)
180+let ai = (size(Y("R")._2) - 1)
154181
155-func ae (af) = {
156- let ag = af
157- let ah = M
158- let ai = ad
159- let aj = (pow((100 + ((ag * ah) / (10 * ai))), 2, 5, 1, 2, DOWN) + 55)
160- (aj * 1500000)
182+func aj (ak) = {
183+ let al = ak
184+ let am = R
185+ let an = ai
186+ let ao = (pow((100 + ((al * am) / (10 * an))), 2, 5, 1, 2, DOWN) + 55)
187+ (ao * 1500000)
161188 }
162189
163190
164-func ak (al) = {
165- let c = al
191+func ap (f) = {
192+ let c = f
166193 if ($isInstanceOf(c, "Boolean"))
167194 then {
168- let am = c
169- am
195+ let aq = c
196+ aq
170197 }
171198 else throw("TI: wrong type, expected: Boolean")
172199 }
173200
174201
175-@Callable(an)
176-func reduceRarity (ao,ap) = {
177- let aq = fromBase58String(ao)
178- if (if ((an.caller != u()))
179- then (an.caller != this)
202+@Callable(ar)
203+func reduceRarity (as,at) = {
204+ let au = fromBase58String(as)
205+ if (if ((ar.caller != y()))
206+ then (ar.caller != this)
180207 else false)
181208 then throw("IRR: admin or rebirth only")
182209 else {
183- let ar = value(assetInfo(aq)).name
184- let as = takeRight(take(ar, 6), 1)
185- let at = (("8" + as) + "-G")
186-[IntegerEntry(I(ar), (K(I(ar)) - 1)), IntegerEntry((("stats_" + at) + "_quantity"), (K((("stats_" + at) + "_quantity")) - 1))]
210+ let av = value(assetInfo(au)).name
211+ let aw = takeRight(take(av, 6), 1)
212+ let ax = (("8" + aw) + "-G")
213+[IntegerEntry(N(av), (P(N(av)) - 1)), IntegerEntry((("stats_" + ax) + "_quantity"), (P((("stats_" + ax) + "_quantity")) - 1))]
187214 }
188215 }
189216
190217
191218
192-@Callable(an)
193-func increaseRarity (ao,ap) = {
194- let aq = fromBase58String(ao)
195- if (if ((an.caller != u()))
196- then (an.caller != this)
219+@Callable(ar)
220+func increaseRarity (as,at) = {
221+ let au = fromBase58String(as)
222+ if (if ((ar.caller != y()))
223+ then (ar.caller != this)
197224 else false)
198225 then throw("IRR: admin or rebirth only")
199226 else {
200- let ar = value(assetInfo(aq)).name
201- let as = takeRight(take(ar, 6), 1)
202- let at = (("8" + as) + "-G")
203-[IntegerEntry(I(ar), (K(I(ar)) + 1)), IntegerEntry((("stats_" + at) + "_quantity"), (K((("stats_" + at) + "_quantity")) + 1))]
227+ let av = value(assetInfo(au)).name
228+ let aw = takeRight(take(av, 6), 1)
229+ let ax = (("8" + aw) + "-G")
230+[IntegerEntry(N(av), (P(N(av)) + 1)), IntegerEntry((("stats_" + ax) + "_quantity"), (P((("stats_" + ax) + "_quantity")) + 1))]
204231 }
205232 }
206233
207234
208235
209-@Callable(an)
210-func configureOracle (au) = if ((an.caller != this))
236+@Callable(ar)
237+func configureOracle (ay) = if ((ar.caller != this))
211238 then throw("ICU: admin only")
212- else [StringEntry("static_oracleAddress", au)]
239+ else [StringEntry("static_oracleAddress", ay)]
213240
214241
215242
216-@Callable(an)
217-func issueJackpot (g,av,aw) = if (if ((an.caller != u()))
218- then (an.caller != this)
243+@Callable(ar)
244+func issueJackpot (j,az,aA) = if (if ((ar.caller != y()))
245+ then (ar.caller != this)
219246 else false)
220247 then throw("ISJ: admin or rebirth only")
221248 else {
222- let F = fromBase58String(av)
223- let ax = E(g, F)
224- let ay = G(g, F)
225- let az = K("cani_amount")
226- let aA = ae(az)
227- let aB = $Tuple2((("CANI-" + aw) + "-JU"), "8W-J")
228- let ar = aB._1
229- let at = aB._2
230- let aC = (("{\"genotype\": \"" + ar) + "\", \"crossbreeding\": true}")
231- let aq = Issue(ar, aC, 1, 0, false, unit, height)
232- let ao = calculateAssetId(aq)
233- let aD = H(g, F)
234- let aE = i(aD)
235- if ((aE != ""))
236- then throw((("ISJ: You will override following duckId :" + aD) + " make sure that your txId is unique!"))
237- else $Tuple2([IntegerEntry(G(g, F), height), IntegerEntry("cani_amount", (az + 1)), IntegerEntry("cani_last_price", (aA / 1500000)), StringEntry(ax, B), StringEntry(aD, toBase58String(ao)), StringEntry(toBase58String(ao), aD), IntegerEntry(I(ar), (K(I(ar)) + 1)), IntegerEntry((("stats_" + at) + "_quantity"), (K((("stats_" + at) + "_quantity")) + 1)), aq, ScriptTransfer(value(addressFromString(g)), 1, ao)], toBase58String(ao))
249+ let K = fromBase58String(az)
250+ let aB = J(j, K)
251+ let aC = L(j, K)
252+ let aD = P("cani_amount")
253+ let aE = aj(aD)
254+ let aF = $Tuple2((("CANI-" + aA) + "-JU"), "8W-J")
255+ let av = aF._1
256+ let ax = aF._2
257+ let aG = (("{\"genotype\": \"" + av) + "\", \"crossbreeding\": true}")
258+ let au = Issue(av, aG, 1, 0, false, unit, height)
259+ let as = calculateAssetId(au)
260+ let aH = M(j, K)
261+ let aI = l(aH)
262+ if ((aI != ""))
263+ then throw((("ISJ: You will override following duckId :" + aH) + " make sure that your txId is unique!"))
264+ else $Tuple2([IntegerEntry(L(j, K), height), IntegerEntry("cani_amount", (aD + 1)), IntegerEntry("cani_last_price", (aE / 1500000)), StringEntry(aB, G), StringEntry(aH, toBase58String(as)), StringEntry(toBase58String(as), aH), IntegerEntry(N(av), (P(N(av)) + 1)), IntegerEntry((("stats_" + ax) + "_quantity"), (P((("stats_" + ax) + "_quantity")) + 1)), au, ScriptTransfer(value(addressFromString(j)), 1, as)], toBase58String(as))
238265 }
239266
240267
241268
242-@Callable(an)
243-func issueFree (g,av) = if ((an.caller != u()))
269+@Callable(ar)
270+func issueFree (j,az) = if ((ar.caller != y()))
244271 then throw("CIF: rebirth only")
245272 else {
246- let F = fromBase58String(av)
247- let ax = E(g, F)
248- let ay = G(g, F)
249- let az = K("cani_amount")
250- let aA = ae(az)
251- let aF = X(F, (valueOrErrorMessage(transactionHeightById(F), ((av + " not found ") + toBase58String(F))) + 1), true)
252- let aG = aF._1
253- let at = aF._2
254- let aC = (("{\"genotype\": \"" + aG) + "\", \"crossbreeding\": true}")
255- let aq = Issue(aG, aC, 1, 0, false, unit, height)
256- let ao = calculateAssetId(aq)
257- let aH = (K(I(aG)) + 1)
258- let aD = H(g, F)
259- $Tuple2([IntegerEntry(G(g, F), height), IntegerEntry("cani_amount", (az + 1)), IntegerEntry("cani_last_price", (aA / 1500000)), StringEntry(ax, B), StringEntry(aD, toBase58String(ao)), StringEntry(toBase58String(ao), aD), IntegerEntry(I(aG), aH), IntegerEntry((("stats_" + at) + "_quantity"), (K((("stats_" + at) + "_quantity")) + 1)), aq, ScriptTransfer(value(addressFromString(g)), 1, ao)], toBase58String(ao))
273+ let K = fromBase58String(az)
274+ let aB = J(j, K)
275+ let aC = L(j, K)
276+ let aD = P("cani_amount")
277+ let aE = aj(aD)
278+ let aJ = ac(K, (valueOrErrorMessage(transactionHeightById(K), ((az + " not found ") + toBase58String(K))) + 1), true)
279+ let aK = aJ._1
280+ let ax = aJ._2
281+ let aG = (("{\"genotype\": \"" + aK) + "\", \"crossbreeding\": true}")
282+ let au = Issue(aK, aG, 1, 0, false, unit, height)
283+ let as = calculateAssetId(au)
284+ let aL = (P(N(aK)) + 1)
285+ let aH = M(j, K)
286+ $Tuple2([IntegerEntry(L(j, K), height), IntegerEntry("cani_amount", (aD + 1)), IntegerEntry("cani_last_price", (aE / 1500000)), StringEntry(aB, G), StringEntry(aH, toBase58String(as)), StringEntry(toBase58String(as), aH), IntegerEntry(N(aK), aL), IntegerEntry((("stats_" + ax) + "_quantity"), (P((("stats_" + ax) + "_quantity")) + 1)), au, ScriptTransfer(value(addressFromString(j)), 1, as)], toBase58String(as))
260287 }
261288
262289
263290
264-@Callable(an)
265-func setDiscount (L) = if ((an.caller != this))
291+@Callable(ar)
292+func setDiscount (Q) = if ((ar.caller != this))
266293 then throw("admin_only")
267- else [IntegerEntry("discountCoefficient", L)]
294+ else [IntegerEntry("discountCoefficient", Q)]
268295
269296
270297
271-@Callable(an)
272-func startHatching (aI) = {
273- let aJ = w(an.payments[0])
274- if ((aJ == aJ))
275- then if ((C() > 0))
298+@Callable(ar)
299+func startHatching (aM) = {
300+ let aN = B(ar.payments[0])
301+ if ((aN == aN))
302+ then if ((H() > 0))
276303 then throw("EGG operations are temporarily locked")
277304 else {
278- let aK = K("cani_amount")
279- let aA = ae(aK)
280- let aL = [StringEntry(E(toString(an.originCaller), an.transactionId), A), IntegerEntry(G(toString(an.originCaller), an.transactionId), (height + z)), IntegerEntry("cani_amount", (aK + 1)), IntegerEntry("cani_last_price", (aA / 1500000))]
281- let aM = aA
282- let aN = value(an.payments[1])
283- if ((aN.assetId != r()))
305+ let aO = P("cani_amount")
306+ let aE = aj(aO)
307+ let aP = [StringEntry(J(toString(ar.originCaller), ar.transactionId), F), IntegerEntry(L(toString(ar.originCaller), ar.transactionId), (height + E)), IntegerEntry("cani_amount", (aO + 1)), IntegerEntry("cani_last_price", (aE / 1500000))]
308+ let aQ = value(ar.payments[1])
309+ let aR = if ((size(ar.payments) == 3))
310+ then {
311+ let aS = e(invoke(A(), "checkArtefactDetails", [toBase58String(value(value(ar.payments[2]).assetId))], nil))
312+ if ((aS == aS))
313+ then if ((aS == "ART-CANCPN"))
314+ then ((aE / 100) * 85)
315+ else 100
316+ else throw("Strict value is not equal to itself.")
317+ }
318+ else aE
319+ if ((aQ.assetId != v()))
284320 then throw("TB: You can attach only WAVES")
285- else if ((aM > aN.amount))
286- then throw(((("TB: To breed a Canine you following amount of WAVES: " + toString(aM)) + " ") + toString(an.caller)))
321+ else if ((aR > aQ.amount))
322+ then throw(((("TB: To breed a Canine you following amount of WAVES: " + toString(aR)) + " ") + toString(ar.caller)))
287323 else {
288- let aO = invoke(v(), "addWavesAndStakeMore", nil, [AttachedPayment(unit, aM)])
289- if ((aO == aO))
324+ let aT = invoke(z(), "addWavesAndStakeMore", nil, [AttachedPayment(unit, aR)])
325+ if ((aT == aT))
290326 then {
291- let aP = if ((size(an.payments) == 2))
292- then [ScriptTransfer(an.caller, (an.payments[1].amount - aM), r())]
327+ let aU = if ((size(ar.payments) == 2))
328+ then [ScriptTransfer(ar.caller, (ar.payments[1].amount - aR), v())]
293329 else nil
294- ((aL ++ aP) ++ aJ)
330+ ((aP ++ aU) ++ aN)
295331 }
296332 else throw("Strict value is not equal to itself.")
297333 }
301337
302338
303339
304-@Callable(an)
305-func finishHatching (av) = {
306- let aJ = w(an.payments[0])
307- if ((aJ == aJ))
340+@Callable(ar)
341+func finishHatching (az) = {
342+ let aN = B(ar.payments[0])
343+ if ((aN == aN))
308344 then {
309- let F = fromBase58String(av)
310- let ax = E(toString(an.caller), F)
311- let ay = G(toString(an.caller), F)
312- let aQ = H(toString(an.caller), F)
313- let aR = getStringValue(this, ax)
314- let P = getIntegerValue(this, ay)
315- if ((aR == B))
345+ let K = fromBase58String(az)
346+ let aB = J(toString(ar.caller), K)
347+ let aC = L(toString(ar.caller), K)
348+ let aV = M(toString(ar.caller), K)
349+ let aW = getStringValue(this, aB)
350+ let U = getIntegerValue(this, aC)
351+ if ((aW == G))
316352 then {
317- let aS = getStringValue(this, H(toString(an.caller), F))
318- throw(("The Cani was hatched and claimed already, here is the folowing: " + aS))
353+ let aX = getStringValue(this, M(toString(ar.caller), K))
354+ throw(("The Cani was hatched and claimed already, here is the folowing: " + aX))
319355 }
320- else if ((P > height))
321- then throw((((("Hatching is not finished yet " + toString((P - height))) + " blocks remaining, it will take around ") + toString((P - height))) + " minutes"))
356+ else if ((U > height))
357+ then throw((((("Hatching is not finished yet " + toString((U - height))) + " blocks remaining, it will take around ") + toString((U - height))) + " minutes"))
322358 else {
323- let aT = X(F, P, false)
324- let aG = aT._1
325- let at = aT._2
326- let aC = (("{\"genotype\": \"" + aG) + "\", \"crossbreeding\": true}")
327- let aq = Issue(aG, aC, 1, 0, false, unit, P)
328- let ao = calculateAssetId(aq)
329- let aH = (K(I(aG)) + 1)
330- ([StringEntry(ax, B), StringEntry(aQ, toBase58String(ao)), StringEntry(toBase58String(ao), aQ), IntegerEntry(I(aG), aH), IntegerEntry((("stats_" + at) + "_quantity"), (K((("stats_" + at) + "_quantity")) + 1)), aq, ScriptTransfer(an.caller, 1, ao)] ++ aJ)
359+ let aY = ac(K, U, false)
360+ let aK = aY._1
361+ let ax = aY._2
362+ let aG = (("{\"genotype\": \"" + aK) + "\", \"crossbreeding\": true}")
363+ let au = Issue(aK, aG, 1, 0, false, unit, U)
364+ let as = calculateAssetId(au)
365+ let aL = (P(N(aK)) + 1)
366+ ([StringEntry(aB, G), StringEntry(aV, toBase58String(as)), StringEntry(toBase58String(as), aV), IntegerEntry(N(aK), aL), IntegerEntry((("stats_" + ax) + "_quantity"), (P((("stats_" + ax) + "_quantity")) + 1)), au, ScriptTransfer(ar.caller, 1, as)] ++ aN)
331367 }
332368 }
333369 else throw("Strict value is not equal to itself.")
334370 }
335371
336372
337-@Verifier(aU)
338-func aV () = if (e())
339- then sigVerify(aU.bodyBytes, aU.proofs[0], aU.senderPublicKey)
373+@Verifier(aZ)
374+func ba () = if (h())
375+ then sigVerify(aZ.bodyBytes, aZ.proofs[0], aZ.senderPublicKey)
340376 else {
341- let aW = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
342- let aX = base58'7DsP2WaMLocbHuUxux7pbXRjTrrZ1TFQPsi5QumS3gr8'
343- let aY = base58'BpFWP3p3JgYrrP45xfrKzeMcWMEXoinj4FVPPkUiA8D3'
344- let aZ = if (sigVerify(aU.bodyBytes, aU.proofs[0], aW))
377+ let bb = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
378+ let bc = base58'7DsP2WaMLocbHuUxux7pbXRjTrrZ1TFQPsi5QumS3gr8'
379+ let bd = base58'BpFWP3p3JgYrrP45xfrKzeMcWMEXoinj4FVPPkUiA8D3'
380+ let be = if (sigVerify(aZ.bodyBytes, aZ.proofs[0], bb))
345381 then 1
346- else if (sigVerify(aU.bodyBytes, aU.proofs[1], aW))
382+ else if (sigVerify(aZ.bodyBytes, aZ.proofs[1], bb))
347383 then 1
348- else if (sigVerify(aU.bodyBytes, aU.proofs[2], aW))
384+ else if (sigVerify(aZ.bodyBytes, aZ.proofs[2], bb))
349385 then 1
350386 else 0
351- let ba = if (sigVerify(aU.bodyBytes, aU.proofs[0], aX))
387+ let bf = if (sigVerify(aZ.bodyBytes, aZ.proofs[0], bc))
352388 then 1
353- else if (sigVerify(aU.bodyBytes, aU.proofs[1], aX))
389+ else if (sigVerify(aZ.bodyBytes, aZ.proofs[1], bc))
354390 then 1
355- else if (sigVerify(aU.bodyBytes, aU.proofs[2], aX))
391+ else if (sigVerify(aZ.bodyBytes, aZ.proofs[2], bc))
356392 then 1
357393 else 0
358- let bb = if (sigVerify(aU.bodyBytes, aU.proofs[0], aY))
394+ let bg = if (sigVerify(aZ.bodyBytes, aZ.proofs[0], bd))
359395 then 1
360- else if (sigVerify(aU.bodyBytes, aU.proofs[1], aY))
396+ else if (sigVerify(aZ.bodyBytes, aZ.proofs[1], bd))
361397 then 1
362- else if (sigVerify(aU.bodyBytes, aU.proofs[2], aY))
398+ else if (sigVerify(aZ.bodyBytes, aZ.proofs[2], bd))
363399 then 1
364400 else 0
365- let bc = ((aZ + ba) + bb)
366- let c = aU
367- (bc >= 2)
401+ let bh = ((be + bf) + bg)
402+ let c = aZ
403+ (bh >= 2)
368404 }
369405
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b) = {
55 let c = getBoolean(this, b)
66 if ($isInstanceOf(c, "Boolean"))
77 then {
88 let d = c
99 d
1010 }
1111 else false
1212 }
1313
1414
15-func e () = a("TESTENV")
15+func e (f) = {
16+ let c = f
17+ if ($isInstanceOf(c, "String"))
18+ then {
19+ let g = c
20+ g
21+ }
22+ else if ($isInstanceOf(c, "Int"))
23+ then {
24+ let g = c
25+ throw("wrong type, expected: String, got: Int")
26+ }
27+ else if ($isInstanceOf(c, "Unit"))
28+ then {
29+ let g = c
30+ throw("wrong type, expected: String, got: Unit")
31+ }
32+ else throw("wrong type, expected: String")
33+ }
1634
1735
18-func f (g,b) = {
19- let c = getString(g, b)
36+func h () = a("TESTENV")
37+
38+
39+func i (j,b) = {
40+ let c = getString(j, b)
2041 if ($isInstanceOf(c, "String"))
2142 then {
22- let h = c
23- h
43+ let k = c
44+ k
2445 }
2546 else ""
2647 }
2748
2849
29-func i (b) = f(this, b)
50+func l (b) = i(this, b)
3051
3152
32-func j () = "static_oracleAddress"
53+func m () = "static_oracleAddress"
3354
3455
35-func k () = "static_extraFee"
56+func n () = "static_extraFee"
3657
3758
38-func l () = "static_feeAggregator"
59+func o () = "static_feeAggregator"
3960
4061
41-func m () = "static_refContractAddress"
62+func p () = "static_refContractAddress"
4263
4364
44-func n () = "static_canineRebirthAddress"
65+func q () = "static_canineRebirthAddress"
4566
4667
47-func o () = "static_canineStakingAddress"
68+func r () = "static_canineStakingAddress"
4869
4970
50-func p () = Address(fromBase58String(i(j())))
71+func s () = "static_itemsAddress"
5172
5273
53-func q () = Address(fromBase58String(f(p(), l())))
74+func t () = Address(fromBase58String(l(m())))
5475
5576
56-func r () = unit
77+func u () = Address(fromBase58String(i(t(), o())))
5778
5879
59-func s () = Address(fromBase58String(f(p(), "static_burnAddress")))
80+func v () = unit
6081
6182
62-func t () = Address(fromBase58String(f(p(), m())))
83+func w () = Address(fromBase58String(i(t(), "static_burnAddress")))
6384
6485
65-func u () = Address(fromBase58String(f(p(), n())))
86+func x () = Address(fromBase58String(i(t(), p())))
6687
6788
68-func v () = Address(fromBase58String(f(p(), o())))
89+func y () = Address(fromBase58String(i(t(), q())))
6990
7091
71-func w (x) = if (isDefined(x.assetId))
92+func z () = Address(fromBase58String(i(t(), r())))
93+
94+
95+func A () = Address(fromBase58String(i(t(), s())))
96+
97+
98+func B (C) = if (isDefined(C.assetId))
7299 then throw("BDCAP: Please attach waves")
73100 else {
74- let y = getIntegerValue(p(), k())
75- if ((x.amount != y))
76- then throw((("BDCAP: Please attach exactly " + toString(y)) + " amount of wavelets"))
77- else [ScriptTransfer(q(), y, unit)]
101+ let D = getIntegerValue(t(), n())
102+ if ((C.amount != D))
103+ then throw((("BDCAP: Please attach exactly " + toString(D)) + " amount of wavelets"))
104+ else [ScriptTransfer(u(), D, unit)]
78105 }
79106
80107
81-let z = 2
108+let E = 2
82109
83-let A = "HATCHING_STARTED"
110+let F = "HATCHING_STARTED"
84111
85-let B = "HATCHING_FINISHED"
112+let G = "HATCHING_FINISHED"
86113
87-func C () = {
88- let D = Address(base58'3PEPftf2kWZDmAaWBjs6BUJa9957kiA2PkU')
89- let c = getInteger(D, "egglock")
114+func H () = {
115+ let I = Address(base58'3PEPftf2kWZDmAaWBjs6BUJa9957kiA2PkU')
116+ let c = getInteger(I, "egglock")
90117 if ($isInstanceOf(c, "Int"))
91118 then {
92119 let d = c
93120 d
94121 }
95122 else 0
96123 }
97124
98125
99-func E (g,F) = (((g + "_") + toBase58String(F)) + "_status")
126+func J (j,K) = (((j + "_") + toBase58String(K)) + "_status")
100127
101128
102-func G (g,F) = (((g + "_") + toBase58String(F)) + "_fh")
129+func L (j,K) = (((j + "_") + toBase58String(K)) + "_fh")
103130
104131
105-func H (g,F) = (((g + "_") + toBase58String(F)) + "_di")
132+func M (j,K) = (((j + "_") + toBase58String(K)) + "_di")
106133
107134
108-func I (J) = (("stats_" + J) + "_amount")
135+func N (O) = (("stats_" + O) + "_amount")
109136
110137
111-func K (b) = {
112- let L = {
138+func P (b) = {
139+ let Q = {
113140 let c = getInteger(this, b)
114141 if ($isInstanceOf(c, "Int"))
115142 then {
116143 let d = c
117144 d
118145 }
119146 else 0
120147 }
121- L
148+ Q
122149 }
123150
124151
125-let M = K("discountCoefficient")
152+let R = P("discountCoefficient")
126153
127-func N (O,F,P,Q) = {
128- let R = value(blockInfoByHeight((P - 1)))
129- let S = sha256((F + value(R.vrf)))
130- (toInt(S, (Q * 8)) % O)
154+func S (T,K,U,V) = {
155+ let W = value(blockInfoByHeight((U - 1)))
156+ let X = sha256((K + value(W.vrf)))
157+ (toInt(X, (V * 8)) % T)
131158 }
132159
133160
134-func T (U) = {
135- let V = [$Tuple2(("CANI-AAAAAAAA-G" + U), "8A-G")]
136- let W = [$Tuple2(("CANI-BBBBBBBB-G" + U), "8B-G"), $Tuple2(("CANI-CCCCCCCC-G" + U), "8C-G"), $Tuple2(("CANI-DDDDDDDD-G" + U), "8D-G"), $Tuple2(("CANI-EEEEEEEE-G" + U), "8E-G")]
137- $Tuple2((V ++ W), W)
161+func Y (Z) = {
162+ let aa = [$Tuple2(("CANI-AAAAAAAA-G" + Z), "8A-G")]
163+ let ab = [$Tuple2(("CANI-BBBBBBBB-G" + Z), "8B-G"), $Tuple2(("CANI-CCCCCCCC-G" + Z), "8C-G"), $Tuple2(("CANI-DDDDDDDD-G" + Z), "8D-G"), $Tuple2(("CANI-EEEEEEEE-G" + Z), "8E-G")]
164+ $Tuple2((aa ++ ab), ab)
138165 }
139166
140167
141-func X (F,P,Y) = {
142- let Z = N(4, F, P, 1)
143- let U = ["A", "B", "C", "D"][Z]
144- let aa = T(U)
145- let ab = if (Y)
146- then aa._1
147- else aa._2
148- let ac = N(size(ab), F, P, 0)
149-ab[ac]
168+func ac (K,U,ad) = {
169+ let ae = S(4, K, U, 1)
170+ let Z = ["A", "B", "C", "D"][ae]
171+ let af = Y(Z)
172+ let ag = if (ad)
173+ then af._1
174+ else af._2
175+ let ah = S(size(ag), K, U, 0)
176+ag[ah]
150177 }
151178
152179
153-let ad = (size(T("R")._2) - 1)
180+let ai = (size(Y("R")._2) - 1)
154181
155-func ae (af) = {
156- let ag = af
157- let ah = M
158- let ai = ad
159- let aj = (pow((100 + ((ag * ah) / (10 * ai))), 2, 5, 1, 2, DOWN) + 55)
160- (aj * 1500000)
182+func aj (ak) = {
183+ let al = ak
184+ let am = R
185+ let an = ai
186+ let ao = (pow((100 + ((al * am) / (10 * an))), 2, 5, 1, 2, DOWN) + 55)
187+ (ao * 1500000)
161188 }
162189
163190
164-func ak (al) = {
165- let c = al
191+func ap (f) = {
192+ let c = f
166193 if ($isInstanceOf(c, "Boolean"))
167194 then {
168- let am = c
169- am
195+ let aq = c
196+ aq
170197 }
171198 else throw("TI: wrong type, expected: Boolean")
172199 }
173200
174201
175-@Callable(an)
176-func reduceRarity (ao,ap) = {
177- let aq = fromBase58String(ao)
178- if (if ((an.caller != u()))
179- then (an.caller != this)
202+@Callable(ar)
203+func reduceRarity (as,at) = {
204+ let au = fromBase58String(as)
205+ if (if ((ar.caller != y()))
206+ then (ar.caller != this)
180207 else false)
181208 then throw("IRR: admin or rebirth only")
182209 else {
183- let ar = value(assetInfo(aq)).name
184- let as = takeRight(take(ar, 6), 1)
185- let at = (("8" + as) + "-G")
186-[IntegerEntry(I(ar), (K(I(ar)) - 1)), IntegerEntry((("stats_" + at) + "_quantity"), (K((("stats_" + at) + "_quantity")) - 1))]
210+ let av = value(assetInfo(au)).name
211+ let aw = takeRight(take(av, 6), 1)
212+ let ax = (("8" + aw) + "-G")
213+[IntegerEntry(N(av), (P(N(av)) - 1)), IntegerEntry((("stats_" + ax) + "_quantity"), (P((("stats_" + ax) + "_quantity")) - 1))]
187214 }
188215 }
189216
190217
191218
192-@Callable(an)
193-func increaseRarity (ao,ap) = {
194- let aq = fromBase58String(ao)
195- if (if ((an.caller != u()))
196- then (an.caller != this)
219+@Callable(ar)
220+func increaseRarity (as,at) = {
221+ let au = fromBase58String(as)
222+ if (if ((ar.caller != y()))
223+ then (ar.caller != this)
197224 else false)
198225 then throw("IRR: admin or rebirth only")
199226 else {
200- let ar = value(assetInfo(aq)).name
201- let as = takeRight(take(ar, 6), 1)
202- let at = (("8" + as) + "-G")
203-[IntegerEntry(I(ar), (K(I(ar)) + 1)), IntegerEntry((("stats_" + at) + "_quantity"), (K((("stats_" + at) + "_quantity")) + 1))]
227+ let av = value(assetInfo(au)).name
228+ let aw = takeRight(take(av, 6), 1)
229+ let ax = (("8" + aw) + "-G")
230+[IntegerEntry(N(av), (P(N(av)) + 1)), IntegerEntry((("stats_" + ax) + "_quantity"), (P((("stats_" + ax) + "_quantity")) + 1))]
204231 }
205232 }
206233
207234
208235
209-@Callable(an)
210-func configureOracle (au) = if ((an.caller != this))
236+@Callable(ar)
237+func configureOracle (ay) = if ((ar.caller != this))
211238 then throw("ICU: admin only")
212- else [StringEntry("static_oracleAddress", au)]
239+ else [StringEntry("static_oracleAddress", ay)]
213240
214241
215242
216-@Callable(an)
217-func issueJackpot (g,av,aw) = if (if ((an.caller != u()))
218- then (an.caller != this)
243+@Callable(ar)
244+func issueJackpot (j,az,aA) = if (if ((ar.caller != y()))
245+ then (ar.caller != this)
219246 else false)
220247 then throw("ISJ: admin or rebirth only")
221248 else {
222- let F = fromBase58String(av)
223- let ax = E(g, F)
224- let ay = G(g, F)
225- let az = K("cani_amount")
226- let aA = ae(az)
227- let aB = $Tuple2((("CANI-" + aw) + "-JU"), "8W-J")
228- let ar = aB._1
229- let at = aB._2
230- let aC = (("{\"genotype\": \"" + ar) + "\", \"crossbreeding\": true}")
231- let aq = Issue(ar, aC, 1, 0, false, unit, height)
232- let ao = calculateAssetId(aq)
233- let aD = H(g, F)
234- let aE = i(aD)
235- if ((aE != ""))
236- then throw((("ISJ: You will override following duckId :" + aD) + " make sure that your txId is unique!"))
237- else $Tuple2([IntegerEntry(G(g, F), height), IntegerEntry("cani_amount", (az + 1)), IntegerEntry("cani_last_price", (aA / 1500000)), StringEntry(ax, B), StringEntry(aD, toBase58String(ao)), StringEntry(toBase58String(ao), aD), IntegerEntry(I(ar), (K(I(ar)) + 1)), IntegerEntry((("stats_" + at) + "_quantity"), (K((("stats_" + at) + "_quantity")) + 1)), aq, ScriptTransfer(value(addressFromString(g)), 1, ao)], toBase58String(ao))
249+ let K = fromBase58String(az)
250+ let aB = J(j, K)
251+ let aC = L(j, K)
252+ let aD = P("cani_amount")
253+ let aE = aj(aD)
254+ let aF = $Tuple2((("CANI-" + aA) + "-JU"), "8W-J")
255+ let av = aF._1
256+ let ax = aF._2
257+ let aG = (("{\"genotype\": \"" + av) + "\", \"crossbreeding\": true}")
258+ let au = Issue(av, aG, 1, 0, false, unit, height)
259+ let as = calculateAssetId(au)
260+ let aH = M(j, K)
261+ let aI = l(aH)
262+ if ((aI != ""))
263+ then throw((("ISJ: You will override following duckId :" + aH) + " make sure that your txId is unique!"))
264+ else $Tuple2([IntegerEntry(L(j, K), height), IntegerEntry("cani_amount", (aD + 1)), IntegerEntry("cani_last_price", (aE / 1500000)), StringEntry(aB, G), StringEntry(aH, toBase58String(as)), StringEntry(toBase58String(as), aH), IntegerEntry(N(av), (P(N(av)) + 1)), IntegerEntry((("stats_" + ax) + "_quantity"), (P((("stats_" + ax) + "_quantity")) + 1)), au, ScriptTransfer(value(addressFromString(j)), 1, as)], toBase58String(as))
238265 }
239266
240267
241268
242-@Callable(an)
243-func issueFree (g,av) = if ((an.caller != u()))
269+@Callable(ar)
270+func issueFree (j,az) = if ((ar.caller != y()))
244271 then throw("CIF: rebirth only")
245272 else {
246- let F = fromBase58String(av)
247- let ax = E(g, F)
248- let ay = G(g, F)
249- let az = K("cani_amount")
250- let aA = ae(az)
251- let aF = X(F, (valueOrErrorMessage(transactionHeightById(F), ((av + " not found ") + toBase58String(F))) + 1), true)
252- let aG = aF._1
253- let at = aF._2
254- let aC = (("{\"genotype\": \"" + aG) + "\", \"crossbreeding\": true}")
255- let aq = Issue(aG, aC, 1, 0, false, unit, height)
256- let ao = calculateAssetId(aq)
257- let aH = (K(I(aG)) + 1)
258- let aD = H(g, F)
259- $Tuple2([IntegerEntry(G(g, F), height), IntegerEntry("cani_amount", (az + 1)), IntegerEntry("cani_last_price", (aA / 1500000)), StringEntry(ax, B), StringEntry(aD, toBase58String(ao)), StringEntry(toBase58String(ao), aD), IntegerEntry(I(aG), aH), IntegerEntry((("stats_" + at) + "_quantity"), (K((("stats_" + at) + "_quantity")) + 1)), aq, ScriptTransfer(value(addressFromString(g)), 1, ao)], toBase58String(ao))
273+ let K = fromBase58String(az)
274+ let aB = J(j, K)
275+ let aC = L(j, K)
276+ let aD = P("cani_amount")
277+ let aE = aj(aD)
278+ let aJ = ac(K, (valueOrErrorMessage(transactionHeightById(K), ((az + " not found ") + toBase58String(K))) + 1), true)
279+ let aK = aJ._1
280+ let ax = aJ._2
281+ let aG = (("{\"genotype\": \"" + aK) + "\", \"crossbreeding\": true}")
282+ let au = Issue(aK, aG, 1, 0, false, unit, height)
283+ let as = calculateAssetId(au)
284+ let aL = (P(N(aK)) + 1)
285+ let aH = M(j, K)
286+ $Tuple2([IntegerEntry(L(j, K), height), IntegerEntry("cani_amount", (aD + 1)), IntegerEntry("cani_last_price", (aE / 1500000)), StringEntry(aB, G), StringEntry(aH, toBase58String(as)), StringEntry(toBase58String(as), aH), IntegerEntry(N(aK), aL), IntegerEntry((("stats_" + ax) + "_quantity"), (P((("stats_" + ax) + "_quantity")) + 1)), au, ScriptTransfer(value(addressFromString(j)), 1, as)], toBase58String(as))
260287 }
261288
262289
263290
264-@Callable(an)
265-func setDiscount (L) = if ((an.caller != this))
291+@Callable(ar)
292+func setDiscount (Q) = if ((ar.caller != this))
266293 then throw("admin_only")
267- else [IntegerEntry("discountCoefficient", L)]
294+ else [IntegerEntry("discountCoefficient", Q)]
268295
269296
270297
271-@Callable(an)
272-func startHatching (aI) = {
273- let aJ = w(an.payments[0])
274- if ((aJ == aJ))
275- then if ((C() > 0))
298+@Callable(ar)
299+func startHatching (aM) = {
300+ let aN = B(ar.payments[0])
301+ if ((aN == aN))
302+ then if ((H() > 0))
276303 then throw("EGG operations are temporarily locked")
277304 else {
278- let aK = K("cani_amount")
279- let aA = ae(aK)
280- let aL = [StringEntry(E(toString(an.originCaller), an.transactionId), A), IntegerEntry(G(toString(an.originCaller), an.transactionId), (height + z)), IntegerEntry("cani_amount", (aK + 1)), IntegerEntry("cani_last_price", (aA / 1500000))]
281- let aM = aA
282- let aN = value(an.payments[1])
283- if ((aN.assetId != r()))
305+ let aO = P("cani_amount")
306+ let aE = aj(aO)
307+ let aP = [StringEntry(J(toString(ar.originCaller), ar.transactionId), F), IntegerEntry(L(toString(ar.originCaller), ar.transactionId), (height + E)), IntegerEntry("cani_amount", (aO + 1)), IntegerEntry("cani_last_price", (aE / 1500000))]
308+ let aQ = value(ar.payments[1])
309+ let aR = if ((size(ar.payments) == 3))
310+ then {
311+ let aS = e(invoke(A(), "checkArtefactDetails", [toBase58String(value(value(ar.payments[2]).assetId))], nil))
312+ if ((aS == aS))
313+ then if ((aS == "ART-CANCPN"))
314+ then ((aE / 100) * 85)
315+ else 100
316+ else throw("Strict value is not equal to itself.")
317+ }
318+ else aE
319+ if ((aQ.assetId != v()))
284320 then throw("TB: You can attach only WAVES")
285- else if ((aM > aN.amount))
286- then throw(((("TB: To breed a Canine you following amount of WAVES: " + toString(aM)) + " ") + toString(an.caller)))
321+ else if ((aR > aQ.amount))
322+ then throw(((("TB: To breed a Canine you following amount of WAVES: " + toString(aR)) + " ") + toString(ar.caller)))
287323 else {
288- let aO = invoke(v(), "addWavesAndStakeMore", nil, [AttachedPayment(unit, aM)])
289- if ((aO == aO))
324+ let aT = invoke(z(), "addWavesAndStakeMore", nil, [AttachedPayment(unit, aR)])
325+ if ((aT == aT))
290326 then {
291- let aP = if ((size(an.payments) == 2))
292- then [ScriptTransfer(an.caller, (an.payments[1].amount - aM), r())]
327+ let aU = if ((size(ar.payments) == 2))
328+ then [ScriptTransfer(ar.caller, (ar.payments[1].amount - aR), v())]
293329 else nil
294- ((aL ++ aP) ++ aJ)
330+ ((aP ++ aU) ++ aN)
295331 }
296332 else throw("Strict value is not equal to itself.")
297333 }
298334 }
299335 else throw("Strict value is not equal to itself.")
300336 }
301337
302338
303339
304-@Callable(an)
305-func finishHatching (av) = {
306- let aJ = w(an.payments[0])
307- if ((aJ == aJ))
340+@Callable(ar)
341+func finishHatching (az) = {
342+ let aN = B(ar.payments[0])
343+ if ((aN == aN))
308344 then {
309- let F = fromBase58String(av)
310- let ax = E(toString(an.caller), F)
311- let ay = G(toString(an.caller), F)
312- let aQ = H(toString(an.caller), F)
313- let aR = getStringValue(this, ax)
314- let P = getIntegerValue(this, ay)
315- if ((aR == B))
345+ let K = fromBase58String(az)
346+ let aB = J(toString(ar.caller), K)
347+ let aC = L(toString(ar.caller), K)
348+ let aV = M(toString(ar.caller), K)
349+ let aW = getStringValue(this, aB)
350+ let U = getIntegerValue(this, aC)
351+ if ((aW == G))
316352 then {
317- let aS = getStringValue(this, H(toString(an.caller), F))
318- throw(("The Cani was hatched and claimed already, here is the folowing: " + aS))
353+ let aX = getStringValue(this, M(toString(ar.caller), K))
354+ throw(("The Cani was hatched and claimed already, here is the folowing: " + aX))
319355 }
320- else if ((P > height))
321- then throw((((("Hatching is not finished yet " + toString((P - height))) + " blocks remaining, it will take around ") + toString((P - height))) + " minutes"))
356+ else if ((U > height))
357+ then throw((((("Hatching is not finished yet " + toString((U - height))) + " blocks remaining, it will take around ") + toString((U - height))) + " minutes"))
322358 else {
323- let aT = X(F, P, false)
324- let aG = aT._1
325- let at = aT._2
326- let aC = (("{\"genotype\": \"" + aG) + "\", \"crossbreeding\": true}")
327- let aq = Issue(aG, aC, 1, 0, false, unit, P)
328- let ao = calculateAssetId(aq)
329- let aH = (K(I(aG)) + 1)
330- ([StringEntry(ax, B), StringEntry(aQ, toBase58String(ao)), StringEntry(toBase58String(ao), aQ), IntegerEntry(I(aG), aH), IntegerEntry((("stats_" + at) + "_quantity"), (K((("stats_" + at) + "_quantity")) + 1)), aq, ScriptTransfer(an.caller, 1, ao)] ++ aJ)
359+ let aY = ac(K, U, false)
360+ let aK = aY._1
361+ let ax = aY._2
362+ let aG = (("{\"genotype\": \"" + aK) + "\", \"crossbreeding\": true}")
363+ let au = Issue(aK, aG, 1, 0, false, unit, U)
364+ let as = calculateAssetId(au)
365+ let aL = (P(N(aK)) + 1)
366+ ([StringEntry(aB, G), StringEntry(aV, toBase58String(as)), StringEntry(toBase58String(as), aV), IntegerEntry(N(aK), aL), IntegerEntry((("stats_" + ax) + "_quantity"), (P((("stats_" + ax) + "_quantity")) + 1)), au, ScriptTransfer(ar.caller, 1, as)] ++ aN)
331367 }
332368 }
333369 else throw("Strict value is not equal to itself.")
334370 }
335371
336372
337-@Verifier(aU)
338-func aV () = if (e())
339- then sigVerify(aU.bodyBytes, aU.proofs[0], aU.senderPublicKey)
373+@Verifier(aZ)
374+func ba () = if (h())
375+ then sigVerify(aZ.bodyBytes, aZ.proofs[0], aZ.senderPublicKey)
340376 else {
341- let aW = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
342- let aX = base58'7DsP2WaMLocbHuUxux7pbXRjTrrZ1TFQPsi5QumS3gr8'
343- let aY = base58'BpFWP3p3JgYrrP45xfrKzeMcWMEXoinj4FVPPkUiA8D3'
344- let aZ = if (sigVerify(aU.bodyBytes, aU.proofs[0], aW))
377+ let bb = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
378+ let bc = base58'7DsP2WaMLocbHuUxux7pbXRjTrrZ1TFQPsi5QumS3gr8'
379+ let bd = base58'BpFWP3p3JgYrrP45xfrKzeMcWMEXoinj4FVPPkUiA8D3'
380+ let be = if (sigVerify(aZ.bodyBytes, aZ.proofs[0], bb))
345381 then 1
346- else if (sigVerify(aU.bodyBytes, aU.proofs[1], aW))
382+ else if (sigVerify(aZ.bodyBytes, aZ.proofs[1], bb))
347383 then 1
348- else if (sigVerify(aU.bodyBytes, aU.proofs[2], aW))
384+ else if (sigVerify(aZ.bodyBytes, aZ.proofs[2], bb))
349385 then 1
350386 else 0
351- let ba = if (sigVerify(aU.bodyBytes, aU.proofs[0], aX))
387+ let bf = if (sigVerify(aZ.bodyBytes, aZ.proofs[0], bc))
352388 then 1
353- else if (sigVerify(aU.bodyBytes, aU.proofs[1], aX))
389+ else if (sigVerify(aZ.bodyBytes, aZ.proofs[1], bc))
354390 then 1
355- else if (sigVerify(aU.bodyBytes, aU.proofs[2], aX))
391+ else if (sigVerify(aZ.bodyBytes, aZ.proofs[2], bc))
356392 then 1
357393 else 0
358- let bb = if (sigVerify(aU.bodyBytes, aU.proofs[0], aY))
394+ let bg = if (sigVerify(aZ.bodyBytes, aZ.proofs[0], bd))
359395 then 1
360- else if (sigVerify(aU.bodyBytes, aU.proofs[1], aY))
396+ else if (sigVerify(aZ.bodyBytes, aZ.proofs[1], bd))
361397 then 1
362- else if (sigVerify(aU.bodyBytes, aU.proofs[2], aY))
398+ else if (sigVerify(aZ.bodyBytes, aZ.proofs[2], bd))
363399 then 1
364400 else 0
365- let bc = ((aZ + ba) + bb)
366- let c = aU
367- (bc >= 2)
401+ let bh = ((be + bf) + bg)
402+ let c = aZ
403+ (bh >= 2)
368404 }
369405

github/deemru/w8io/169f3d6 
129.68 ms