tx · Ccv7yPPWKSby2iymoHDCnsezwWdk9iXeWVCoseanDBAT

3P5x9RxuqbMaVFPsaycvXHeFZXPmcswxA1c:  -0.01000000 Waves

2023.09.23 23:34 [3834324] smart account 3P5x9RxuqbMaVFPsaycvXHeFZXPmcswxA1c > SELF 0.00000000 Waves

{ "type": 13, "id": "Ccv7yPPWKSby2iymoHDCnsezwWdk9iXeWVCoseanDBAT", "fee": 1000000, "feeAssetId": null, "timestamp": 1695501297660, "version": 2, "chainId": 87, "sender": "3P5x9RxuqbMaVFPsaycvXHeFZXPmcswxA1c", "senderPublicKey": "9uEm8fN7ZMqn6sPuc39LRogUGXKNPPmRThGEL4GAqGa3", "proofs": [ "3H3PCAZptu9sMXfZpRz521F7yDkn59FfgWYCJ2YsfVjoXP2XytRGpovQgGVxFrAKp86E1M2AXMBuHHrpupWUhWMR" ], "script": "base64:BgIWCAISAwoBCBIDCgEBEgQKAgEBEgASABYAC1NUQVJUX1BSSUNFAKDCHgAIUVVPVElFTlQAAgAIREVDSU1BTFMAgMLXLwEXc3RhdGljS2V5X29yYWNsZUFkZHJlc3MAAhRzdGF0aWNfb3JhY2xlQWRkcmVzcwEUc3RhdGljS2V5X2VnZ0Fzc2V0SWQAAhFzdGF0aWNfZWdnQXNzZXRJZAESc3RhdGljS2V5X2V4dHJhRmVlAAIPc3RhdGljX2V4dHJhRmVlARdzdGF0aWNLZXlfZmVlQWdncmVnYXRvcgACFHN0YXRpY19mZWVBZ2dyZWdhdG9yARhzdGF0aWNLZXlfY291cG9uc0FkZHJlc3MAAhVzdGF0aWNfY291cG9uc0FkZHJlc3MBDmtleVVzZXJBZGRyZXNzAQdhZGRyZXNzCQCsAgIFB2FkZHJlc3MCBl9sZXZlbAETa2V5VXNlclNwZW50T25MZXZlbAEHYWRkcmVzcwkArAICBQdhZGRyZXNzAg1fc3BlbnRPbkxldmVsARZrZXlVc2VyU2tpbGxSZXNldFRpbWVzAQdhZGRyZXNzCQCsAgIFB2FkZHJlc3MCEV9za2lsbHNSZXNldFRpbWVzARNrZXlVc2VyU3BlbnRPblJlc2V0AQdhZGRyZXNzCQCsAgIFB2FkZHJlc3MCDV9zcGVudE9uUmVzZXQBDXRyeUdldEludGVnZXIBA2tleQQHJG1hdGNoMAkAmggCBQR0aGlzBQNrZXkDCQABAgUHJG1hdGNoMAIDSW50BAFiBQckbWF0Y2gwBQFiAAABFHRyeUdldFN0cmluZ0V4dGVybmFsAgdhZGRyZXNzA2tleQQHJG1hdGNoMAkAnQgCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwBQFhAgABDHRyeUdldFN0cmluZwEDa2V5CQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCBQR0aGlzBQNrZXkBCWdldE9yYWNsZQAJAQdBZGRyZXNzAQkA2QQBCQEMdHJ5R2V0U3RyaW5nAQkBF3N0YXRpY0tleV9vcmFjbGVBZGRyZXNzAAENZ2V0RWdnQXNzZXRJZAAJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJARRzdGF0aWNLZXlfZWdnQXNzZXRJZAABEGdldEZlZUFnZ3JlZ2F0b3IACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJARdzdGF0aWNLZXlfZmVlQWdncmVnYXRvcgABEWdldENvdXBvbnNBZGRyZXNzAAkBB0FkZHJlc3MBCQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUACQEYc3RhdGljS2V5X2NvdXBvbnNBZGRyZXNzAAEQY2FsY3VsYXRlTGV2ZWxVcAELZnV0dXJlTGV2ZWwEAnAxCQBsBgULU1RBUlRfUFJJQ0UACAkAaQIAkE4FC2Z1dHVyZUxldmVsAAQACAUHQ0VJTElORwQCcDIJAGwGBQtmdXR1cmVMZXZlbAAACQBpAgCQTgUIUVVPVElFTlQABAAIBQdDRUlMSU5HBAV0b3RhbAkAawMFAnAxBQJwMgUIREVDSU1BTFMEBWRlYnVnCQC5CQIJAMwIAgkArAICAgluZXdMZXZlbD0JAKQDAQULZnV0dXJlTGV2ZWwJAMwIAgkArAICAgNwMT0JAKQDAQUCcDEJAMwIAgkArAICAgNwMj0JAKQDAQUCcDIJAMwIAgkArAICAgZ0b3RhbD0JAKQDAQUFdG90YWwFA25pbAIBOwkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQICBURFQlVHBQVkZWJ1ZwUDbmlsBQV0b3RhbAEOY2FsY3VsYXRlUmVzZXQCDGN1cnJlbnRMZXZlbApyZXNldFRpbWVzBAdERVZJREVSAAQED3Jlc2V0VGltZXNUb1VzZQkAZAIFCnJlc2V0VGltZXMAAQQGcmVzdWx0CQBrAwUPcmVzZXRUaW1lc1RvVXNlCQBoAgUMY3VycmVudExldmVsBQhERUNJTUFMUwUHREVWSURFUgQFZGVidWcJALkJAgkAzAgCCQCsAgICBmxldmVsPQkApAMBBQxjdXJyZW50TGV2ZWwJAMwIAgkArAICAgtyZXNldFRpbWVzPQkApAMBBQpyZXNldFRpbWVzCQDMCAIJAKwCAgIQcmVzZXRUaW1lc1RvVXNlPQkApAMBBQ9yZXNldFRpbWVzVG9Vc2UJAMwIAgkArAICAgdyZXN1bHQ9CQCkAwEFBnJlc3VsdAUDbmlsAgE7CQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgIFREVCVUcFBWRlYnVnBQNuaWwFBnJlc3VsdAEWY2hlY2tBZGRpdGlvbmFsUGF5bWVudAEHcGF5bWVudAMJAQlpc0RlZmluZWQBCAUHcGF5bWVudAdhc3NldElkCQACAQIaTFNDQVA6IFBsZWFzZSBhdHRhY2ggd2F2ZXMECWZlZUFtb3VudAkBEUBleHRyTmF0aXZlKDEwNTApAgkBCWdldE9yYWNsZQAJARJzdGF0aWNLZXlfZXh0cmFGZWUAAwkBAiE9AggFB3BheW1lbnQGYW1vdW50BQlmZWVBbW91bnQJAAIBCQCsAgIJAKwCAgIdTFNDQVA6IFBsZWFzZSBhdHRhY2ggZXhhY3RseSAJAKQDAQUJZmVlQW1vdW50AhMgYW1vdW50IG9mIHdhdmVsZXRzCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARBnZXRGZWVBZ2dyZWdhdG9yAAUJZmVlQW1vdW50BQR1bml0BQNuaWwFAWkBD2NvbmZpZ3VyZU9yYWNsZQEGb3JhY2xlAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIPUkNPOiBhZG1pbiBvbmx5CQDMCAIJAQtTdHJpbmdFbnRyeQIJARdzdGF0aWNLZXlfb3JhY2xlQWRkcmVzcwAFBm9yYWNsZQUDbmlsAWkBC2xldmVsVXBNYXRoAQtmdXR1cmVMZXZlbAkBEGNhbGN1bGF0ZUxldmVsVXABBQtmdXR1cmVMZXZlbAFpAQ9yZXNldFNraWxsc01hdGgCDGN1cnJlbnRMZXZlbApyZXNldFRpbWVzCQEOY2FsY3VsYXRlUmVzZXQCBQxjdXJyZW50TGV2ZWwFCnJlc2V0VGltZXMBaQEHbGV2ZWxVcAAEFGtleVVzZXJBZGRyZXNzRmlsbGVkCQEOa2V5VXNlckFkZHJlc3MBCQClCAEIBQFpBmNhbGxlcgQZa2V5VXNlclNwZW50T25MZXZlbEZpbGxlZAkBE2tleVVzZXJTcGVudE9uTGV2ZWwBCQClCAEIBQFpBmNhbGxlcgQLbGV2ZWxPZlVzZXIJAQ10cnlHZXRJbnRlZ2VyAQUUa2V5VXNlckFkZHJlc3NGaWxsZWQEDnRvdGFsU3BlbnRVc2VyCQENdHJ5R2V0SW50ZWdlcgEFGWtleVVzZXJTcGVudE9uTGV2ZWxGaWxsZWQECXByaWNlQ2FsYwkBEGNhbGN1bGF0ZUxldmVsVXABCQBkAgULbGV2ZWxPZlVzZXIAAQQFcHJpY2UIBQlwcmljZUNhbGMCXzIEDGZpcnN0UGF5bWVudAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAZhbW91bnQIBQxmaXJzdFBheW1lbnQGYW1vdW50AwkBAiE9AggFDGZpcnN0UGF5bWVudAdhc3NldElkCQENZ2V0RWdnQXNzZXRJZAAJAAIBCQCsAgICQUxMVTogWW91IGNhbiBhdHRhY2ggb25seSBFR0cgdG9rZW5zIHdpdGggdGhlIGZvbGxvd2luZyBhc3NldCBpZDogCQDYBAEJAQ1nZXRFZ2dBc3NldElkAAMJAQIhPQIFBmFtb3VudAUFcHJpY2UJAAIBCQCsAgICKUxMVTogUGxlYXNlIGF0dGFjaCB0aGUgZXhhY3QgYXNzZXQgYW1vdW50CQCkAwEFBXByaWNlBAxyZWNvcmRBY3Rpb24JAPwHBAkBEWdldENvdXBvbnNBZGRyZXNzAAIMcmVjb3JkQWN0aW9uCQDMCAICB0xFVkVMVVAFA25pbAUDbmlsAwkAAAIFDHJlY29yZEFjdGlvbgUMcmVjb3JkQWN0aW9uCQDOCAIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUUa2V5VXNlckFkZHJlc3NGaWxsZWQJAGQCBQtsZXZlbE9mVXNlcgABCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRlrZXlVc2VyU3BlbnRPbkxldmVsRmlsbGVkCQBkAgUOdG90YWxTcGVudFVzZXIFBmFtb3VudAUDbmlsCAUJcHJpY2VDYWxjAl8xCQEWY2hlY2tBZGRpdGlvbmFsUGF5bWVudAEJAJEDAggFAWkIcGF5bWVudHMAAQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQVyZXNldAAEFGtleVVzZXJBZGRyZXNzRmlsbGVkCQEOa2V5VXNlckFkZHJlc3MBCQClCAEIBQFpBmNhbGxlcgQLbGV2ZWxPZlVzZXIJAQ10cnlHZXRJbnRlZ2VyAQUUa2V5VXNlckFkZHJlc3NGaWxsZWQEHGtleVVzZXJTa2lsbFJlc2V0VGltZXNGaWxsZWQJARZrZXlVc2VyU2tpbGxSZXNldFRpbWVzAQkApQgBCAUBaQZjYWxsZXIEDHJlc2V0c09mVXNlcgkBDXRyeUdldEludGVnZXIBBRxrZXlVc2VyU2tpbGxSZXNldFRpbWVzRmlsbGVkBBlrZXlVc2VyU3BlbnRPblJlc2V0RmlsbGVkCQETa2V5VXNlclNwZW50T25SZXNldAEJAKUIAQgFAWkGY2FsbGVyBBRhbW91bnRPZlNwZW5kT25SZXNldAkBDXRyeUdldEludGVnZXIBBRlrZXlVc2VyU3BlbnRPblJlc2V0RmlsbGVkBBhjYWxjdWxhdGVSZXNldENhbGN1bGF0ZWQJAQ5jYWxjdWxhdGVSZXNldAIFC2xldmVsT2ZVc2VyBQxyZXNldHNPZlVzZXIEBXByaWNlCAUYY2FsY3VsYXRlUmVzZXRDYWxjdWxhdGVkAl8yBAxmaXJzdFBheW1lbnQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQGYW1vdW50CAUMZmlyc3RQYXltZW50BmFtb3VudAMJAQIhPQIIBQxmaXJzdFBheW1lbnQHYXNzZXRJZAkBDWdldEVnZ0Fzc2V0SWQACQACAQkArAICAkBMUjogWW91IGNhbiBhdHRhY2ggb25seSBFR0cgdG9rZW5zIHdpdGggdGhlIGZvbGxvd2luZyBhc3NldCBpZDogCQDYBAEJAQ1nZXRFZ2dBc3NldElkAAMJAQIhPQIFBmFtb3VudAUFcHJpY2UJAAIBCQCsAgICKExSOiBQbGVhc2UgYXR0YWNoIHRoZSBleGFjdCBhc3NldCBhbW91bnQJAKQDAQUFcHJpY2UJAM4IAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRxrZXlVc2VyU2tpbGxSZXNldFRpbWVzRmlsbGVkCQBkAgUMcmVzZXRzT2ZVc2VyAAEJAMwIAgkBDEludGVnZXJFbnRyeQIFGWtleVVzZXJTcGVudE9uUmVzZXRGaWxsZWQJAGQCBRRhbW91bnRPZlNwZW5kT25SZXNldAUGYW1vdW50BQNuaWwIBRhjYWxjdWxhdGVSZXNldENhbGN1bGF0ZWQCXzEJARZjaGVja0FkZGl0aW9uYWxQYXltZW50AQkAkQMCCAUBaQhwYXltZW50cwABAMnYnAc=", "height": 3834324, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FqzC8FRHCiRjgzSDc4gSbdSSNRiEG6bT9RtaXg4UkDiB Next: none Diff:
OldNewDifferences
1919 func g () = "static_feeAggregator"
2020
2121
22-func h (i) = (i + "_level")
22+func h () = "static_couponsAddress"
2323
2424
25-func j (i) = (i + "_spentOnLevel")
25+func i (j) = (j + "_level")
2626
2727
28-func k (i) = (i + "_skillsResetTimes")
28+func k (j) = (j + "_spentOnLevel")
2929
3030
31-func l (i) = (i + "_spentOnReset")
31+func l (j) = (j + "_skillsResetTimes")
3232
3333
34-func m (n) = {
35- let o = getInteger(this, n)
36- if ($isInstanceOf(o, "Int"))
34+func m (j) = (j + "_spentOnReset")
35+
36+
37+func n (o) = {
38+ let p = getInteger(this, o)
39+ if ($isInstanceOf(p, "Int"))
3740 then {
38- let p = o
39- p
41+ let q = p
42+ q
4043 }
4144 else 0
4245 }
4346
4447
45-func q (i,n) = {
46- let o = getString(i, n)
47- if ($isInstanceOf(o, "String"))
48+func r (j,o) = {
49+ let p = getString(j, o)
50+ if ($isInstanceOf(p, "String"))
4851 then {
49- let r = o
50- r
52+ let s = p
53+ s
5154 }
5255 else ""
5356 }
5457
5558
56-func s (n) = q(this, n)
59+func t (o) = r(this, o)
5760
5861
59-func t () = Address(fromBase58String(s(d())))
62+func u () = Address(fromBase58String(t(d())))
6063
6164
62-func u () = fromBase58String(q(t(), e()))
65+func v () = fromBase58String(r(u(), e()))
6366
6467
65-func v () = Address(fromBase58String(q(t(), g())))
68+func w () = Address(fromBase58String(r(u(), g())))
6669
6770
68-func w (x) = {
69- let y = pow(a, 8, (10000 / x), 4, 8, CEILING)
70- let z = pow(x, 0, (10000 / b), 4, 8, CEILING)
71- let A = fraction(y, z, c)
72- let B = makeString([("newLevel=" + toString(x)), ("p1=" + toString(y)), ("p2=" + toString(z)), ("total=" + toString(A))], ";")
73- $Tuple2([StringEntry("DEBUG", B)], A)
71+func x () = Address(fromBase58String(r(u(), h())))
72+
73+
74+func y (z) = {
75+ let A = pow(a, 8, (10000 / z), 4, 8, CEILING)
76+ let B = pow(z, 0, (10000 / b), 4, 8, CEILING)
77+ let C = fraction(A, B, c)
78+ let D = makeString([("newLevel=" + toString(z)), ("p1=" + toString(A)), ("p2=" + toString(B)), ("total=" + toString(C))], ";")
79+ $Tuple2([StringEntry("DEBUG", D)], C)
7480 }
7581
7682
77-func C (D,E) = {
78- let F = 4
79- let G = (E + 1)
80- let H = fraction(G, (D * c), F)
81- let B = makeString([("level=" + toString(D)), ("resetTimes=" + toString(E)), ("resetTimesToUse=" + toString(G)), ("result=" + toString(H))], ";")
82- $Tuple2([StringEntry("DEBUG", B)], H)
83+func E (F,G) = {
84+ let H = 4
85+ let I = (G + 1)
86+ let J = fraction(I, (F * c), H)
87+ let D = makeString([("level=" + toString(F)), ("resetTimes=" + toString(G)), ("resetTimesToUse=" + toString(I)), ("result=" + toString(J))], ";")
88+ $Tuple2([StringEntry("DEBUG", D)], J)
8389 }
8490
8591
86-func I (J) = if (isDefined(J.assetId))
92+func K (L) = if (isDefined(L.assetId))
8793 then throw("LSCAP: Please attach waves")
8894 else {
89- let K = getIntegerValue(t(), f())
90- if ((J.amount != K))
91- then throw((("LSCAP: Please attach exactly " + toString(K)) + " amount of wavelets"))
92- else [ScriptTransfer(v(), K, unit)]
95+ let M = getIntegerValue(u(), f())
96+ if ((L.amount != M))
97+ then throw((("LSCAP: Please attach exactly " + toString(M)) + " amount of wavelets"))
98+ else [ScriptTransfer(w(), M, unit)]
9399 }
94100
95101
96-@Callable(L)
97-func configureOracle (M) = if ((L.caller != this))
102+@Callable(N)
103+func configureOracle (O) = if ((N.caller != this))
98104 then throw("RCO: admin only")
99- else [StringEntry(d(), M)]
105+ else [StringEntry(d(), O)]
100106
101107
102108
103-@Callable(L)
104-func levelUpMath (x) = w(x)
109+@Callable(N)
110+func levelUpMath (z) = y(z)
105111
106112
107113
108-@Callable(L)
109-func resetSkillsMath (D,E) = C(D, E)
114+@Callable(N)
115+func resetSkillsMath (F,G) = E(F, G)
110116
111117
112118
113-@Callable(L)
119+@Callable(N)
114120 func levelUp () = {
115- let N = h(toString(L.caller))
116- let O = j(toString(L.caller))
117- let P = m(N)
118- let Q = m(O)
119- let R = w((P + 1))
120- let S = R._2
121- let T = value(L.payments[0])
122- let U = T.amount
123- if ((T.assetId != u()))
124- then throw(("LLU: You can attach only EGG tokens with the following asset id: " + toBase58String(u())))
125- else if ((U != S))
126- then throw(("LLU: Please attach the exact asset amount" + toString(S)))
127- else (([IntegerEntry(N, (P + 1)), IntegerEntry(O, (Q + U))] ++ R._1) ++ I(L.payments[1]))
121+ let P = i(toString(N.caller))
122+ let Q = k(toString(N.caller))
123+ let R = n(P)
124+ let S = n(Q)
125+ let T = y((R + 1))
126+ let U = T._2
127+ let V = value(N.payments[0])
128+ let W = V.amount
129+ if ((V.assetId != v()))
130+ then throw(("LLU: You can attach only EGG tokens with the following asset id: " + toBase58String(v())))
131+ else if ((W != U))
132+ then throw(("LLU: Please attach the exact asset amount" + toString(U)))
133+ else {
134+ let X = invoke(x(), "recordAction", ["LEVELUP"], nil)
135+ if ((X == X))
136+ then (([IntegerEntry(P, (R + 1)), IntegerEntry(Q, (S + W))] ++ T._1) ++ K(N.payments[1]))
137+ else throw("Strict value is not equal to itself.")
138+ }
128139 }
129140
130141
131142
132-@Callable(L)
143+@Callable(N)
133144 func reset () = {
134- let N = h(toString(L.caller))
135- let P = m(N)
136- let V = k(toString(L.caller))
137- let W = m(V)
138- let X = l(toString(L.caller))
139- let Y = m(X)
140- let Z = C(P, W)
141- let S = Z._2
142- let T = value(L.payments[0])
143- let U = T.amount
144- if ((T.assetId != u()))
145- then throw(("LR: You can attach only EGG tokens with the following asset id: " + toBase58String(u())))
146- else if ((U != S))
147- then throw(("LR: Please attach the exact asset amount" + toString(S)))
148- else (([IntegerEntry(V, (W + 1)), IntegerEntry(X, (Y + U))] ++ Z._1) ++ I(L.payments[1]))
145+ let P = i(toString(N.caller))
146+ let R = n(P)
147+ let Y = l(toString(N.caller))
148+ let Z = n(Y)
149+ let aa = m(toString(N.caller))
150+ let ab = n(aa)
151+ let ac = E(R, Z)
152+ let U = ac._2
153+ let V = value(N.payments[0])
154+ let W = V.amount
155+ if ((V.assetId != v()))
156+ then throw(("LR: You can attach only EGG tokens with the following asset id: " + toBase58String(v())))
157+ else if ((W != U))
158+ then throw(("LR: Please attach the exact asset amount" + toString(U)))
159+ else (([IntegerEntry(Y, (Z + 1)), IntegerEntry(aa, (ab + W))] ++ ac._1) ++ K(N.payments[1]))
149160 }
150161
151162
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 500000
55
66 let b = 2
77
88 let c = 100000000
99
1010 func d () = "static_oracleAddress"
1111
1212
1313 func e () = "static_eggAssetId"
1414
1515
1616 func f () = "static_extraFee"
1717
1818
1919 func g () = "static_feeAggregator"
2020
2121
22-func h (i) = (i + "_level")
22+func h () = "static_couponsAddress"
2323
2424
25-func j (i) = (i + "_spentOnLevel")
25+func i (j) = (j + "_level")
2626
2727
28-func k (i) = (i + "_skillsResetTimes")
28+func k (j) = (j + "_spentOnLevel")
2929
3030
31-func l (i) = (i + "_spentOnReset")
31+func l (j) = (j + "_skillsResetTimes")
3232
3333
34-func m (n) = {
35- let o = getInteger(this, n)
36- if ($isInstanceOf(o, "Int"))
34+func m (j) = (j + "_spentOnReset")
35+
36+
37+func n (o) = {
38+ let p = getInteger(this, o)
39+ if ($isInstanceOf(p, "Int"))
3740 then {
38- let p = o
39- p
41+ let q = p
42+ q
4043 }
4144 else 0
4245 }
4346
4447
45-func q (i,n) = {
46- let o = getString(i, n)
47- if ($isInstanceOf(o, "String"))
48+func r (j,o) = {
49+ let p = getString(j, o)
50+ if ($isInstanceOf(p, "String"))
4851 then {
49- let r = o
50- r
52+ let s = p
53+ s
5154 }
5255 else ""
5356 }
5457
5558
56-func s (n) = q(this, n)
59+func t (o) = r(this, o)
5760
5861
59-func t () = Address(fromBase58String(s(d())))
62+func u () = Address(fromBase58String(t(d())))
6063
6164
62-func u () = fromBase58String(q(t(), e()))
65+func v () = fromBase58String(r(u(), e()))
6366
6467
65-func v () = Address(fromBase58String(q(t(), g())))
68+func w () = Address(fromBase58String(r(u(), g())))
6669
6770
68-func w (x) = {
69- let y = pow(a, 8, (10000 / x), 4, 8, CEILING)
70- let z = pow(x, 0, (10000 / b), 4, 8, CEILING)
71- let A = fraction(y, z, c)
72- let B = makeString([("newLevel=" + toString(x)), ("p1=" + toString(y)), ("p2=" + toString(z)), ("total=" + toString(A))], ";")
73- $Tuple2([StringEntry("DEBUG", B)], A)
71+func x () = Address(fromBase58String(r(u(), h())))
72+
73+
74+func y (z) = {
75+ let A = pow(a, 8, (10000 / z), 4, 8, CEILING)
76+ let B = pow(z, 0, (10000 / b), 4, 8, CEILING)
77+ let C = fraction(A, B, c)
78+ let D = makeString([("newLevel=" + toString(z)), ("p1=" + toString(A)), ("p2=" + toString(B)), ("total=" + toString(C))], ";")
79+ $Tuple2([StringEntry("DEBUG", D)], C)
7480 }
7581
7682
77-func C (D,E) = {
78- let F = 4
79- let G = (E + 1)
80- let H = fraction(G, (D * c), F)
81- let B = makeString([("level=" + toString(D)), ("resetTimes=" + toString(E)), ("resetTimesToUse=" + toString(G)), ("result=" + toString(H))], ";")
82- $Tuple2([StringEntry("DEBUG", B)], H)
83+func E (F,G) = {
84+ let H = 4
85+ let I = (G + 1)
86+ let J = fraction(I, (F * c), H)
87+ let D = makeString([("level=" + toString(F)), ("resetTimes=" + toString(G)), ("resetTimesToUse=" + toString(I)), ("result=" + toString(J))], ";")
88+ $Tuple2([StringEntry("DEBUG", D)], J)
8389 }
8490
8591
86-func I (J) = if (isDefined(J.assetId))
92+func K (L) = if (isDefined(L.assetId))
8793 then throw("LSCAP: Please attach waves")
8894 else {
89- let K = getIntegerValue(t(), f())
90- if ((J.amount != K))
91- then throw((("LSCAP: Please attach exactly " + toString(K)) + " amount of wavelets"))
92- else [ScriptTransfer(v(), K, unit)]
95+ let M = getIntegerValue(u(), f())
96+ if ((L.amount != M))
97+ then throw((("LSCAP: Please attach exactly " + toString(M)) + " amount of wavelets"))
98+ else [ScriptTransfer(w(), M, unit)]
9399 }
94100
95101
96-@Callable(L)
97-func configureOracle (M) = if ((L.caller != this))
102+@Callable(N)
103+func configureOracle (O) = if ((N.caller != this))
98104 then throw("RCO: admin only")
99- else [StringEntry(d(), M)]
105+ else [StringEntry(d(), O)]
100106
101107
102108
103-@Callable(L)
104-func levelUpMath (x) = w(x)
109+@Callable(N)
110+func levelUpMath (z) = y(z)
105111
106112
107113
108-@Callable(L)
109-func resetSkillsMath (D,E) = C(D, E)
114+@Callable(N)
115+func resetSkillsMath (F,G) = E(F, G)
110116
111117
112118
113-@Callable(L)
119+@Callable(N)
114120 func levelUp () = {
115- let N = h(toString(L.caller))
116- let O = j(toString(L.caller))
117- let P = m(N)
118- let Q = m(O)
119- let R = w((P + 1))
120- let S = R._2
121- let T = value(L.payments[0])
122- let U = T.amount
123- if ((T.assetId != u()))
124- then throw(("LLU: You can attach only EGG tokens with the following asset id: " + toBase58String(u())))
125- else if ((U != S))
126- then throw(("LLU: Please attach the exact asset amount" + toString(S)))
127- else (([IntegerEntry(N, (P + 1)), IntegerEntry(O, (Q + U))] ++ R._1) ++ I(L.payments[1]))
121+ let P = i(toString(N.caller))
122+ let Q = k(toString(N.caller))
123+ let R = n(P)
124+ let S = n(Q)
125+ let T = y((R + 1))
126+ let U = T._2
127+ let V = value(N.payments[0])
128+ let W = V.amount
129+ if ((V.assetId != v()))
130+ then throw(("LLU: You can attach only EGG tokens with the following asset id: " + toBase58String(v())))
131+ else if ((W != U))
132+ then throw(("LLU: Please attach the exact asset amount" + toString(U)))
133+ else {
134+ let X = invoke(x(), "recordAction", ["LEVELUP"], nil)
135+ if ((X == X))
136+ then (([IntegerEntry(P, (R + 1)), IntegerEntry(Q, (S + W))] ++ T._1) ++ K(N.payments[1]))
137+ else throw("Strict value is not equal to itself.")
138+ }
128139 }
129140
130141
131142
132-@Callable(L)
143+@Callable(N)
133144 func reset () = {
134- let N = h(toString(L.caller))
135- let P = m(N)
136- let V = k(toString(L.caller))
137- let W = m(V)
138- let X = l(toString(L.caller))
139- let Y = m(X)
140- let Z = C(P, W)
141- let S = Z._2
142- let T = value(L.payments[0])
143- let U = T.amount
144- if ((T.assetId != u()))
145- then throw(("LR: You can attach only EGG tokens with the following asset id: " + toBase58String(u())))
146- else if ((U != S))
147- then throw(("LR: Please attach the exact asset amount" + toString(S)))
148- else (([IntegerEntry(V, (W + 1)), IntegerEntry(X, (Y + U))] ++ Z._1) ++ I(L.payments[1]))
145+ let P = i(toString(N.caller))
146+ let R = n(P)
147+ let Y = l(toString(N.caller))
148+ let Z = n(Y)
149+ let aa = m(toString(N.caller))
150+ let ab = n(aa)
151+ let ac = E(R, Z)
152+ let U = ac._2
153+ let V = value(N.payments[0])
154+ let W = V.amount
155+ if ((V.assetId != v()))
156+ then throw(("LR: You can attach only EGG tokens with the following asset id: " + toBase58String(v())))
157+ else if ((W != U))
158+ then throw(("LR: Please attach the exact asset amount" + toString(U)))
159+ else (([IntegerEntry(Y, (Z + 1)), IntegerEntry(aa, (ab + W))] ++ ac._1) ++ K(N.payments[1]))
149160 }
150161
151162

github/deemru/w8io/3ef1775 
49.51 ms