tx · 6os2Pq35hAnqinRsngabuYepg1q5u5ecXRiiLTwc1VsC

3PKmLiGEfqLWMC1H9xhzqvAZKUXfFm8uoeg:  -0.00900000 Waves

2022.07.26 15:37 [3222315] smart account 3PKmLiGEfqLWMC1H9xhzqvAZKUXfFm8uoeg > SELF 0.00000000 Waves

{ "type": 13, "id": "6os2Pq35hAnqinRsngabuYepg1q5u5ecXRiiLTwc1VsC", "fee": 900000, "feeAssetId": null, "timestamp": 1658839010107, "version": 2, "chainId": 87, "sender": "3PKmLiGEfqLWMC1H9xhzqvAZKUXfFm8uoeg", "senderPublicKey": "HhKF4aqirtdmzKKDA2qraDLtSG2n9RbkZrpjnGMZkEDm", "proofs": [ "2Ky996SU2teJt9xb13ekJkvteDMgHKq4UUW3qaFMgZj2FH3dzd7MTjbpVQ9uubaz5UpQ9Nt4vVvG1dp1p9HtzVC9" ], "script": "base64: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", "height": 3222315, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Fr2v97aFd7Kbvg64mxik1Cm6v2gWMwtrnJRW31QorS5R Next: 5ZqxArzKXicZsVDkAynXBw2ybnM58xEgFZL1CZV4BH5o Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-func a (b,c) = {
5- let d = getString(b, c)
6- if ($isInstanceOf(d, "String"))
7- then {
8- let e = d
9- e
10- }
11- else ""
4+let a = base58'3PCC6fVHNa6289DTDmcUo3RuLaFmteZZsmQ'
5+
6+let b = base58'3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv'
7+
8+let c = base58'BmKAXRQy7jZm44fa1YxNQDTcAwNSb74EpQwP5CT7UHdV'
9+
10+let d = 1632474000000
11+
12+let e = 21600000
13+
14+let f = base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS'
15+
16+let g = 80000000
17+
18+let h = 10000000000000000
19+
20+let i = 100000000000000
21+
22+let j = "global_issued_timestamp"
23+
24+let k = 86400000
25+
26+func l (m) = (("duckling_" + m) + "_feed")
27+
28+
29+func n (m) = (("duckling_" + m) + "_fedLap")
30+
31+
32+func o (m) = (("duckling_" + m) + "_fedTs")
33+
34+
35+func p (m,q) = (((("duckling_" + m) + "_lap_") + toString(q)) + "_fedTs")
36+
37+
38+func r (s,q,t) = ((((("address_" + s) + "_lap_") + toString(q)) + "_fedTs_") + toString(t))
39+
40+
41+func u (s) = (("address_" + s) + "_nonce")
42+
43+
44+func v (m) = (("duckling_" + m) + "_fedLastTs")
45+
46+
47+func w (m) = (("duckling_" + m) + "_level")
48+
49+
50+func x (s,q) = (((("address_" + s) + "_lap_") + toString(q)) + "_feed")
51+
52+
53+func y (m) = (("duckling_" + m) + "_grown")
54+
55+
56+func z (m) = (("duckling_" + m) + "_grown")
57+
58+
59+func A (B) = {
60+ let C = {
61+ let D = getInteger(this, B)
62+ if ($isInstanceOf(D, "Int"))
63+ then {
64+ let E = D
65+ E
66+ }
67+ else 0
68+ }
69+ C
1270 }
1371
1472
15-func f (c) = a(this, c)
16-
17-
18-func g () = Address(fromBase58String(f("static_oracleAddress")))
19-
20-
21-func h () = fromBase58String(a(g(), "static_eggAssetId"))
22-
23-
24-func i () = Address(fromBase58String(a(g(), "static_rebirthAddress")))
25-
26-
27-func j () = Address(fromBase58String(a(g(), "static_incubatorAddress")))
28-
29-
30-let k = base58'BmKAXRQy7jZm44fa1YxNQDTcAwNSb74EpQwP5CT7UHdV'
31-
32-let l = 1632474000000
33-
34-let m = 21600000
35-
36-let n = 80000000
37-
38-let o = 10000000000000000
39-
40-let p = 100000000000000
41-
42-let q = "global_issued_timestamp"
43-
44-let r = 86400000
45-
46-func s (t) = (("duckling_" + t) + "_feed")
47-
48-
49-func u (t) = (("duckling_" + t) + "_fedLap")
50-
51-
52-func v (t) = (("duckling_" + t) + "_fedTs")
53-
54-
55-func w (t,x) = (((("duckling_" + t) + "_lap_") + toString(x)) + "_fedTs")
56-
57-
58-func y (b,x,z) = ((((("address_" + b) + "_lap_") + toString(x)) + "_fedTs_") + toString(z))
59-
60-
61-func A (b) = (("address_" + b) + "_nonce")
62-
63-
64-func B (t) = (("duckling_" + t) + "_fedLastTs")
65-
66-
67-func C (t) = (("duckling_" + t) + "_level")
68-
69-
70-func D (b,x) = (((("address_" + b) + "_lap_") + toString(x)) + "_feed")
71-
72-
73-func E (t) = (("duckling_" + t) + "_grown")
74-
75-
76-func F (t) = (("duckling_" + t) + "_grown")
77-
78-
79-func G (t) = (("duckling_" + t) + "_startPercentage")
80-
81-
82-func H (c) = {
83- let I = {
84- let d = getInteger(this, c)
85- if ($isInstanceOf(d, "Int"))
86- then {
87- let J = d
88- J
89- }
90- else 0
91- }
92- I
93- }
94-
95-
96-func K (c) = {
97- let d = getBoolean(this, c)
98- if ($isInstanceOf(d, "Boolean"))
73+func F (B) = {
74+ let D = getBoolean(this, B)
75+ if ($isInstanceOf(D, "Boolean"))
9976 then {
100- let J = d
101- J
77+ let E = D
78+ E
10279 }
10380 else false
10481 }
10582
10683
107-func L (t) = {
108- let M = H(G(t))
109- let N = if ((M != 0))
110- then M
111- else 20
112- toBigInt((N * p))
113- }
114-
115-
116-func O (t) = {
117- let P = C(t)
118- let d = getString(P)
119- if ($isInstanceOf(d, "String"))
84+func G (m) = {
85+ let H = w(m)
86+ let D = getString(H)
87+ if ($isInstanceOf(D, "String"))
12088 then {
121- let Q = d
122- parseBigIntValue(Q)
89+ let I = D
90+ parseBigIntValue(I)
12391 }
12492 else {
125- let R = getBoolean((("duckling_" + t) + "_issuedByFeedCall"))
126- if ($isInstanceOf(R, "Boolean"))
93+ let J = getBoolean((("duckling_" + m) + "_issuedByFeedCall"))
94+ if ($isInstanceOf(J, "Boolean"))
12795 then {
128- let J = R
129- if ((J == true))
130- then toBigInt(0)
131- else L(t)
96+ let E = J
97+ toBigInt(0)
13298 }
133- else L(t)
99+ else toBigInt((20 * i))
134100 }
135101 }
136102
137103
138-func S () = (((lastBlock.timestamp - l) / m) + 1)
104+func K () = (((lastBlock.timestamp - d) / e) + 1)
139105
140106
141-func T (t) = {
142- let U = H(B(t))
143- if ((U > 0))
144- then U
107+func L (m) = {
108+ let M = A(v(m))
109+ if ((M > 0))
110+ then M
145111 else lastBlock.timestamp
146112 }
147113
148114
149-func V (t,W) = {
150- let X = lastBlock.timestamp
151- let Y = T(t)
152- let Z = (X - Y)
153- let aa = toBigInt(0)
154- let ab = fraction(toBigInt(W), toBigInt(o), toBigInt(n))
155- let ac = O(t)
156- let ad = ((ac - aa) + ab)
157- let ae = if ((toBigInt(0) > ad))
158- then toString(ab)
159- else toString(ad)
160- $Tuple2(ae, [("currentLevel=" + toString(ac)), ("newLevel=" + toString(ad)), ("growth=" + toString(ab)), ("penalty=" + toString(aa)), ("lastFedTs=" + toString(Y)), ("fedDiff=" + toString(Z))])
115+func N (m,O) = {
116+ let P = lastBlock.timestamp
117+ let Q = L(m)
118+ let R = (P - Q)
119+ let S = if (if ((R == 0))
120+ then true
121+ else ((k * 2) >= R))
122+ then toBigInt(0)
123+ else (toBigInt((R / k)) * toBigInt((i / 10)))
124+ let T = fraction(toBigInt(O), toBigInt(h), toBigInt(g))
125+ let U = G(m)
126+ let V = ((U - S) + T)
127+ let W = if ((toBigInt(0) > V))
128+ then toString(T)
129+ else toString(V)
130+ $Tuple2(W, [("currentLevel=" + toString(U)), ("newLevel=" + toString(V)), ("growth=" + toString(T)), ("penalty=" + toString(S)), ("lastFedTs=" + toString(Q)), ("fedDiff=" + toString(R))])
161131 }
162132
163133
164-func af (ag,ah,b) = makeString([toString(ag), toString(ah), b], ";")
134+func X (Y,Z,s) = makeString([toString(Y), toString(Z), s], ";")
165135
166136
167-@Callable(ai)
168-func configureOracle (aj) = if ((ai.caller != this))
169- then throw("admin only")
170- else [StringEntry("static_oracleAddress", aj)]
137+@Callable(aa)
138+func issueFreeDuckling (s,ab) = throw("Paused")
171139
172140
173141
174-@Callable(ai)
175-func issueFreeDuckling (b,ak,al) = if (if ((ai.caller != this))
176- then (ai.caller != i())
177- else false)
178- then throw("You can't issue free duckling")
179- else {
180- let am = Issue("BABY-11111111-GZ", "", 1, 0, false, unit, height)
181- let an = calculateAssetId(am)
182- $Tuple2([StringEntry((((b + "_") + ak) + "_di"), toBase58String(an)), IntegerEntry("stats_amount", (H("stats_amount") + 1)), BooleanEntry((("duckling_" + toBase58String(an)) + "_issuedByFeedCall"), (ai.caller == this)), IntegerEntry(G(toBase58String(an)), al), am, ScriptTransfer(value(addressFromString(b)), 1, an)], toBase58String(an))
183- }
142+@Callable(aa)
143+func feedDuckling (m,ac,Y,Z) = throw("Paused")
184144
185145
186146
187-@Callable(ai)
188-func feedDuckling (t,ao,ag,ah) = {
189- let ap = toString(ai.caller)
190- let aq = af(ag, ah, ap)
191- let ar = A(ap)
192- let as = H(ar)
193- let at = if (!(sigVerify_8Kb(toBytes(aq), fromBase58String(ao), k)))
194- then throw("Invalid proof from backend")
195- else if (if ((size(ai.payments) != 1))
196- then true
197- else (value(ai.payments[0]).assetId != h()))
198- then throw("Bad payment attached (asset[s] or amount)")
199- else if (K(E(t)))
200- then throw("Duckling is already grown")
201- else if ((ah != (as + 1)))
202- then throw(((("User Nonce should be " + toString(as)) + " + 1, while received ") + toString(ah)))
203- else if ((t == ""))
204- then {
205- let au = invoke(this, "issueFreeDuckling", [toString(ai.originCaller), toBase58String(ai.transactionId), 0], nil)
206- if ((au == au))
207- then {
208- let av = {
209- let d = au
210- if ($isInstanceOf(d, "String"))
211- then {
212- let aw = d
213- aw
214- }
215- else throw("Can't generate NFT")
216- }
217- av
218- }
219- else throw("Strict value is not equal to itself.")
220- }
221- else {
222- let ax = value(assetInfo(fromBase58String(t)))
223- if ((assetBalance(ai.caller, ax.id) != 1))
224- then throw("You're not the owner of the duckling")
225- else if ((ax.issuer != this))
226- then throw("Cant find duckling with such id")
227- else {
228- let ay = toBase58String(ax.id)
229- ay
230- }
231- }
232- let az = B(t)
233- let aA = T(at)
234- let aB = value(ai.payments[0]).amount
235- let aC = C(at)
236- let aD = s(at)
237- let aE = H(aD)
238- let aF = ((("duckling_" + at) + "_stat_") + toString(lastBlock.timestamp))
239- let aG = y(ap, S(), lastBlock.timestamp)
240- let aH = w(at, S())
241- let aI = u(at)
242- if ((aB > ag))
243- then throw(("Cannot feed duckling for such amount, max feed amount is: " + toString(ag)))
244- else {
245- let aJ = V(at, aB)
246-[IntegerEntry(ar, (as + 1)), IntegerEntry(az, lastBlock.timestamp), IntegerEntry(aD, (aE + aB)), IntegerEntry(aF, aB), IntegerEntry(aG, aB), IntegerEntry(aH, aB), IntegerEntry(aI, S()), StringEntry(aC, aJ._1), StringEntry((aF + "_debug"), makeString(aJ._2, ";"))]
247- }
248- }
147+@Callable(aa)
148+func turnDucklingIntoDuck () = throw("Paused")
249149
250150
251-
252-@Callable(ai)
253-func fixLevels (aK) = if (if ((ai.callerPublicKey != base58'GDxBbsDRmeY39quNrDsTXKJzFWbQVtjxHseF4ikxZ7n9'))
254- then (ai.caller != this)
255- else false)
256- then throw("BFL: Not authorized")
257- else {
258- let aL = value(split(aK, ","))
259- func aM (aN,av) = {
260- let aD = s(av)
261- let aE = H(aD)
262- let aC = C(av)
263- let aO = {
264- let d = getBoolean((("duckling_" + av) + "_issuedByFeedCall"))
265- if ($isInstanceOf(d, "Boolean"))
266- then {
267- let J = d
268- if ((J == true))
269- then toBigInt(0)
270- else L(av)
271- }
272- else L(av)
273- }
274- let ab = fraction(toBigInt(aE), toBigInt(o), toBigInt(n))
275- (aN ++ [StringEntry(aC, toString((aO + ab)))])
276- }
277-
278- let aP = aL
279- let aQ = size(aP)
280- let aR = nil
281- func aS (aT,aU) = if ((aU >= aQ))
282- then aT
283- else aM(aT, aP[aU])
284-
285- func aV (aT,aU) = if ((aU >= aQ))
286- then aT
287- else throw("List size exceeds 20")
288-
289- aV(aS(aS(aS(aS(aS(aS(aS(aS(aS(aS(aS(aS(aS(aS(aS(aS(aS(aS(aS(aS(aR, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
290- }
291-
292-
293-
294-@Callable(ai)
295-func turnDucklingIntoDuck () = {
296- let b = toString(ai.caller)
297- let aW = toBase58String(ai.transactionId)
298- let aX = H(q)
299- let aY = ((60 * 60) * 1000)
300- if (if ((aX > 0))
301- then (aY > (lastBlock.timestamp - aX))
302- else false)
303- then throw(("Can issue ducklings only once per 5 minutes, please wait for " + toString((aY - (lastBlock.timestamp - aX)))))
304- else if ((size(ai.payments) != 1))
305- then throw("Bad payment attached (asset[s] or amount)")
306- else {
307- let aZ = value(assetInfo(value(value(ai.payments[0]).assetId)))
308- if ((toBigInt(100) > O(toBase58String(aZ.id))))
309- then throw("Duckling is not grown yet...")
310- else if ((aZ.issuer != this))
311- then throw("Can use only ducklings from this dApp")
312- else {
313- let ba = invoke(j(), "startDuckHatching", [""], nil)
314- if ((ba == ba))
315- then {
316- let bb = E(toBase58String(aZ.id))
317-[BooleanEntry(bb, true), IntegerEntry(q, lastBlock.timestamp)]
318- }
319- else throw("Strict value is not equal to itself.")
320- }
321- }
322- }
323-
324-
325-@Verifier(bc)
326-func bd () = sigVerify(bc.bodyBytes, bc.proofs[0], bc.senderPublicKey)
151+@Verifier(ad)
152+func ae () = sigVerify(ad.bodyBytes, ad.proofs[0], ad.senderPublicKey)
327153

github/deemru/w8io/3ef1775 
54.78 ms