tx · FqzC8FRHCiRjgzSDc4gSbdSSNRiEG6bT9RtaXg4UkDiB

3P5x9RxuqbMaVFPsaycvXHeFZXPmcswxA1c:  -0.01000000 Waves

2023.04.29 15:53 [3621462] smart account 3P5x9RxuqbMaVFPsaycvXHeFZXPmcswxA1c > SELF 0.00000000 Waves

{ "type": 13, "id": "FqzC8FRHCiRjgzSDc4gSbdSSNRiEG6bT9RtaXg4UkDiB", "fee": 1000000, "feeAssetId": null, "timestamp": 1682772843310, "version": 2, "chainId": 87, "sender": "3P5x9RxuqbMaVFPsaycvXHeFZXPmcswxA1c", "senderPublicKey": "9uEm8fN7ZMqn6sPuc39LRogUGXKNPPmRThGEL4GAqGa3", "proofs": [ "6wEXcvVTVCqoLiLhg7yjSiyJzz8qsqrM3B79cgLBxVWTzyWtMNEcsGGJB6RMKfCotb6JvNjvaQ1XUVXDaqWaKDL" ], "script": "base64:BgIWCAISAwoBCBIDCgEBEgQKAgEBEgASABQAC1NUQVJUX1BSSUNFAKDCHgAIUVVPVElFTlQAAgAIREVDSU1BTFMAgMLXLwEXc3RhdGljS2V5X29yYWNsZUFkZHJlc3MAAhRzdGF0aWNfb3JhY2xlQWRkcmVzcwEUc3RhdGljS2V5X2VnZ0Fzc2V0SWQAAhFzdGF0aWNfZWdnQXNzZXRJZAESc3RhdGljS2V5X2V4dHJhRmVlAAIPc3RhdGljX2V4dHJhRmVlARdzdGF0aWNLZXlfZmVlQWdncmVnYXRvcgACFHN0YXRpY19mZWVBZ2dyZWdhdG9yAQ5rZXlVc2VyQWRkcmVzcwEHYWRkcmVzcwkArAICBQdhZGRyZXNzAgZfbGV2ZWwBE2tleVVzZXJTcGVudE9uTGV2ZWwBB2FkZHJlc3MJAKwCAgUHYWRkcmVzcwINX3NwZW50T25MZXZlbAEWa2V5VXNlclNraWxsUmVzZXRUaW1lcwEHYWRkcmVzcwkArAICBQdhZGRyZXNzAhFfc2tpbGxzUmVzZXRUaW1lcwETa2V5VXNlclNwZW50T25SZXNldAEHYWRkcmVzcwkArAICBQdhZGRyZXNzAg1fc3BlbnRPblJlc2V0AQ10cnlHZXRJbnRlZ2VyAQNrZXkEByRtYXRjaDAJAJoIAgUEdGhpcwUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQBYgUHJG1hdGNoMAUBYgAAARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIHYWRkcmVzcwNrZXkEByRtYXRjaDAJAJ0IAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAUBYQIAAQx0cnlHZXRTdHJpbmcBA2tleQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgUEdGhpcwUDa2V5AQlnZXRPcmFjbGUACQEHQWRkcmVzcwEJANkEAQkBDHRyeUdldFN0cmluZwEJARdzdGF0aWNLZXlfb3JhY2xlQWRkcmVzcwABDWdldEVnZ0Fzc2V0SWQACQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUACQEUc3RhdGljS2V5X2VnZ0Fzc2V0SWQAARBnZXRGZWVBZ2dyZWdhdG9yAAkBB0FkZHJlc3MBCQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUACQEXc3RhdGljS2V5X2ZlZUFnZ3JlZ2F0b3IAARBjYWxjdWxhdGVMZXZlbFVwAQtmdXR1cmVMZXZlbAQCcDEJAGwGBQtTVEFSVF9QUklDRQAICQBpAgCQTgULZnV0dXJlTGV2ZWwABAAIBQdDRUlMSU5HBAJwMgkAbAYFC2Z1dHVyZUxldmVsAAAJAGkCAJBOBQhRVU9USUVOVAAEAAgFB0NFSUxJTkcEBXRvdGFsCQBrAwUCcDEFAnAyBQhERUNJTUFMUwQFZGVidWcJALkJAgkAzAgCCQCsAgICCW5ld0xldmVsPQkApAMBBQtmdXR1cmVMZXZlbAkAzAgCCQCsAgICA3AxPQkApAMBBQJwMQkAzAgCCQCsAgICA3AyPQkApAMBBQJwMgkAzAgCCQCsAgICBnRvdGFsPQkApAMBBQV0b3RhbAUDbmlsAgE7CQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgIFREVCVUcFBWRlYnVnBQNuaWwFBXRvdGFsAQ5jYWxjdWxhdGVSZXNldAIMY3VycmVudExldmVsCnJlc2V0VGltZXMEB0RFVklERVIABAQPcmVzZXRUaW1lc1RvVXNlCQBkAgUKcmVzZXRUaW1lcwABBAZyZXN1bHQJAGsDBQ9yZXNldFRpbWVzVG9Vc2UJAGgCBQxjdXJyZW50TGV2ZWwFCERFQ0lNQUxTBQdERVZJREVSBAVkZWJ1ZwkAuQkCCQDMCAIJAKwCAgIGbGV2ZWw9CQCkAwEFDGN1cnJlbnRMZXZlbAkAzAgCCQCsAgICC3Jlc2V0VGltZXM9CQCkAwEFCnJlc2V0VGltZXMJAMwIAgkArAICAhByZXNldFRpbWVzVG9Vc2U9CQCkAwEFD3Jlc2V0VGltZXNUb1VzZQkAzAgCCQCsAgICB3Jlc3VsdD0JAKQDAQUGcmVzdWx0BQNuaWwCATsJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCAgVERUJVRwUFZGVidWcFA25pbAUGcmVzdWx0ARZjaGVja0FkZGl0aW9uYWxQYXltZW50AQdwYXltZW50AwkBCWlzRGVmaW5lZAEIBQdwYXltZW50B2Fzc2V0SWQJAAIBAhpMU0NBUDogUGxlYXNlIGF0dGFjaCB3YXZlcwQJZmVlQW1vdW50CQERQGV4dHJOYXRpdmUoMTA1MCkCCQEJZ2V0T3JhY2xlAAkBEnN0YXRpY0tleV9leHRyYUZlZQADCQECIT0CCAUHcGF5bWVudAZhbW91bnQFCWZlZUFtb3VudAkAAgEJAKwCAgkArAICAh1MU0NBUDogUGxlYXNlIGF0dGFjaCBleGFjdGx5IAkApAMBBQlmZWVBbW91bnQCEyBhbW91bnQgb2Ygd2F2ZWxldHMJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEGdldEZlZUFnZ3JlZ2F0b3IABQlmZWVBbW91bnQFBHVuaXQFA25pbAUBaQEPY29uZmlndXJlT3JhY2xlAQZvcmFjbGUDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAg9SQ086IGFkbWluIG9ubHkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBF3N0YXRpY0tleV9vcmFjbGVBZGRyZXNzAAUGb3JhY2xlBQNuaWwBaQELbGV2ZWxVcE1hdGgBC2Z1dHVyZUxldmVsCQEQY2FsY3VsYXRlTGV2ZWxVcAEFC2Z1dHVyZUxldmVsAWkBD3Jlc2V0U2tpbGxzTWF0aAIMY3VycmVudExldmVsCnJlc2V0VGltZXMJAQ5jYWxjdWxhdGVSZXNldAIFDGN1cnJlbnRMZXZlbAUKcmVzZXRUaW1lcwFpAQdsZXZlbFVwAAQUa2V5VXNlckFkZHJlc3NGaWxsZWQJAQ5rZXlVc2VyQWRkcmVzcwEJAKUIAQgFAWkGY2FsbGVyBBlrZXlVc2VyU3BlbnRPbkxldmVsRmlsbGVkCQETa2V5VXNlclNwZW50T25MZXZlbAEJAKUIAQgFAWkGY2FsbGVyBAtsZXZlbE9mVXNlcgkBDXRyeUdldEludGVnZXIBBRRrZXlVc2VyQWRkcmVzc0ZpbGxlZAQOdG90YWxTcGVudFVzZXIJAQ10cnlHZXRJbnRlZ2VyAQUZa2V5VXNlclNwZW50T25MZXZlbEZpbGxlZAQJcHJpY2VDYWxjCQEQY2FsY3VsYXRlTGV2ZWxVcAEJAGQCBQtsZXZlbE9mVXNlcgABBAVwcmljZQgFCXByaWNlQ2FsYwJfMgQMZmlyc3RQYXltZW50CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEBmFtb3VudAgFDGZpcnN0UGF5bWVudAZhbW91bnQDCQECIT0CCAUMZmlyc3RQYXltZW50B2Fzc2V0SWQJAQ1nZXRFZ2dBc3NldElkAAkAAgEJAKwCAgJBTExVOiBZb3UgY2FuIGF0dGFjaCBvbmx5IEVHRyB0b2tlbnMgd2l0aCB0aGUgZm9sbG93aW5nIGFzc2V0IGlkOiAJANgEAQkBDWdldEVnZ0Fzc2V0SWQAAwkBAiE9AgUGYW1vdW50BQVwcmljZQkAAgEJAKwCAgIpTExVOiBQbGVhc2UgYXR0YWNoIHRoZSBleGFjdCBhc3NldCBhbW91bnQJAKQDAQUFcHJpY2UJAM4IAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRRrZXlVc2VyQWRkcmVzc0ZpbGxlZAkAZAIFC2xldmVsT2ZVc2VyAAEJAMwIAgkBDEludGVnZXJFbnRyeQIFGWtleVVzZXJTcGVudE9uTGV2ZWxGaWxsZWQJAGQCBQ50b3RhbFNwZW50VXNlcgUGYW1vdW50BQNuaWwIBQlwcmljZUNhbGMCXzEJARZjaGVja0FkZGl0aW9uYWxQYXltZW50AQkAkQMCCAUBaQhwYXltZW50cwABAWkBBXJlc2V0AAQUa2V5VXNlckFkZHJlc3NGaWxsZWQJAQ5rZXlVc2VyQWRkcmVzcwEJAKUIAQgFAWkGY2FsbGVyBAtsZXZlbE9mVXNlcgkBDXRyeUdldEludGVnZXIBBRRrZXlVc2VyQWRkcmVzc0ZpbGxlZAQca2V5VXNlclNraWxsUmVzZXRUaW1lc0ZpbGxlZAkBFmtleVVzZXJTa2lsbFJlc2V0VGltZXMBCQClCAEIBQFpBmNhbGxlcgQMcmVzZXRzT2ZVc2VyCQENdHJ5R2V0SW50ZWdlcgEFHGtleVVzZXJTa2lsbFJlc2V0VGltZXNGaWxsZWQEGWtleVVzZXJTcGVudE9uUmVzZXRGaWxsZWQJARNrZXlVc2VyU3BlbnRPblJlc2V0AQkApQgBCAUBaQZjYWxsZXIEFGFtb3VudE9mU3BlbmRPblJlc2V0CQENdHJ5R2V0SW50ZWdlcgEFGWtleVVzZXJTcGVudE9uUmVzZXRGaWxsZWQEGGNhbGN1bGF0ZVJlc2V0Q2FsY3VsYXRlZAkBDmNhbGN1bGF0ZVJlc2V0AgULbGV2ZWxPZlVzZXIFDHJlc2V0c09mVXNlcgQFcHJpY2UIBRhjYWxjdWxhdGVSZXNldENhbGN1bGF0ZWQCXzIEDGZpcnN0UGF5bWVudAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAZhbW91bnQIBQxmaXJzdFBheW1lbnQGYW1vdW50AwkBAiE9AggFDGZpcnN0UGF5bWVudAdhc3NldElkCQENZ2V0RWdnQXNzZXRJZAAJAAIBCQCsAgICQExSOiBZb3UgY2FuIGF0dGFjaCBvbmx5IEVHRyB0b2tlbnMgd2l0aCB0aGUgZm9sbG93aW5nIGFzc2V0IGlkOiAJANgEAQkBDWdldEVnZ0Fzc2V0SWQAAwkBAiE9AgUGYW1vdW50BQVwcmljZQkAAgEJAKwCAgIoTFI6IFBsZWFzZSBhdHRhY2ggdGhlIGV4YWN0IGFzc2V0IGFtb3VudAkApAMBBQVwcmljZQkAzggCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIFHGtleVVzZXJTa2lsbFJlc2V0VGltZXNGaWxsZWQJAGQCBQxyZXNldHNPZlVzZXIAAQkAzAgCCQEMSW50ZWdlckVudHJ5AgUZa2V5VXNlclNwZW50T25SZXNldEZpbGxlZAkAZAIFFGFtb3VudE9mU3BlbmRPblJlc2V0BQZhbW91bnQFA25pbAgFGGNhbGN1bGF0ZVJlc2V0Q2FsY3VsYXRlZAJfMQkBFmNoZWNrQWRkaXRpb25hbFBheW1lbnQBCQCRAwIIBQFpCHBheW1lbnRzAAEAUP40lw==", "height": 3621462, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HTxJqi7dKQfP4Hv4izxRpjLK6GuokUSqeT8BGEGX9Src Next: Ccv7yPPWKSby2iymoHDCnsezwWdk9iXeWVCoseanDBAT Diff:
OldNewDifferences
77
88 let c = 100000000
99
10-func d (e) = (e + "_level")
10+func d () = "static_oracleAddress"
1111
1212
13-func f (e) = (e + "_spentOnLevel")
13+func e () = "static_eggAssetId"
1414
1515
16-func g (e) = (e + "_skillsResetTimes")
16+func f () = "static_extraFee"
1717
1818
19-func h (e) = (e + "_spentOnReset")
19+func g () = "static_feeAggregator"
2020
2121
22-func i (j) = {
23- let k = getInteger(this, j)
24- if ($isInstanceOf(k, "Int"))
22+func h (i) = (i + "_level")
23+
24+
25+func j (i) = (i + "_spentOnLevel")
26+
27+
28+func k (i) = (i + "_skillsResetTimes")
29+
30+
31+func l (i) = (i + "_spentOnReset")
32+
33+
34+func m (n) = {
35+ let o = getInteger(this, n)
36+ if ($isInstanceOf(o, "Int"))
2537 then {
26- let l = k
27- l
38+ let p = o
39+ p
2840 }
2941 else 0
3042 }
3143
3244
33-func m (e,j) = {
34- let k = getString(e, j)
35- if ($isInstanceOf(k, "String"))
45+func q (i,n) = {
46+ let o = getString(i, n)
47+ if ($isInstanceOf(o, "String"))
3648 then {
37- let n = k
38- n
49+ let r = o
50+ r
3951 }
4052 else ""
4153 }
4254
4355
44-func o (j) = m(this, j)
56+func s (n) = q(this, n)
4557
4658
47-func p () = Address(fromBase58String(o("static_oracleAddress")))
59+func t () = Address(fromBase58String(s(d())))
4860
4961
50-func q () = fromBase58String(m(p(), "static_eggAssetId"))
62+func u () = fromBase58String(q(t(), e()))
5163
5264
53-func r (s) = {
54- let t = pow(a, 8, (10000 / s), 4, 8, CEILING)
55- let u = pow(s, 0, (10000 / b), 4, 8, CEILING)
56- let v = fraction(t, u, c)
57- let w = makeString([("newLevel=" + toString(s)), ("p1=" + toString(t)), ("p2=" + toString(u)), ("total=" + toString(v))], ";")
58- $Tuple2([StringEntry("DEBUG", w)], v)
65+func v () = Address(fromBase58String(q(t(), g())))
66+
67+
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)
5974 }
6075
6176
62-func x (y,z) = {
63- let A = 4
64- let B = (z + 1)
65- let C = fraction(B, (y * c), A)
66- let w = makeString([("level=" + toString(y)), ("resetTimes=" + toString(z)), ("resetTimesToUse=" + toString(B)), ("result=" + toString(C))], ";")
67- $Tuple2([StringEntry("DEBUG", w)], C)
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)
6883 }
6984
7085
71-@Callable(D)
72-func configureOracle (E) = if ((D.caller != this))
86+func I (J) = if (isDefined(J.assetId))
87+ then throw("LSCAP: Please attach waves")
88+ 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)]
93+ }
94+
95+
96+@Callable(L)
97+func configureOracle (M) = if ((L.caller != this))
7398 then throw("RCO: admin only")
74- else [StringEntry("static_oracleAddress", E)]
99+ else [StringEntry(d(), M)]
75100
76101
77102
78-@Callable(D)
79-func levelUpMath (s) = r(s)
103+@Callable(L)
104+func levelUpMath (x) = w(x)
80105
81106
82107
83-@Callable(D)
84-func resetSkillsMath (y,z) = x(y, z)
108+@Callable(L)
109+func resetSkillsMath (D,E) = C(D, E)
85110
86111
87112
88-@Callable(D)
113+@Callable(L)
89114 func levelUp () = {
90- let F = d(toString(D.caller))
91- let G = f(toString(D.caller))
92- let H = i(F)
93- let I = i(G)
94- let J = r((H + 1))
95- let K = J._2
96- let L = value(D.payments[0])
97- let M = L.amount
98- if ((L.assetId != q()))
99- then throw(("LLU: You can attach only EGG tokens with the following asset id: " + toBase58String(q())))
100- else if ((M != K))
101- then throw(("LLU: Please attach the exact asset amount" + toString(K)))
102- else ([IntegerEntry(F, (H + 1)), IntegerEntry(G, (I + M))] ++ J._1)
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]))
103128 }
104129
105130
106131
107-@Callable(D)
132+@Callable(L)
108133 func reset () = {
109- let F = d(toString(D.caller))
110- let H = i(F)
111- let N = g(toString(D.caller))
112- let O = i(N)
113- let P = h(toString(D.caller))
114- let Q = i(P)
115- let R = x(H, O)
116- let K = R._2
117- let L = value(D.payments[0])
118- let M = L.amount
119- if ((L.assetId != q()))
120- then throw(("LR: You can attach only EGG tokens with the following asset id: " + toBase58String(q())))
121- else if ((M != K))
122- then throw(("LR: Please attach the exact asset amount" + toString(K)))
123- else ([IntegerEntry(N, (O + 1)), IntegerEntry(P, (Q + M))] ++ R._1)
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]))
124149 }
125150
126151
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
10-func d (e) = (e + "_level")
10+func d () = "static_oracleAddress"
1111
1212
13-func f (e) = (e + "_spentOnLevel")
13+func e () = "static_eggAssetId"
1414
1515
16-func g (e) = (e + "_skillsResetTimes")
16+func f () = "static_extraFee"
1717
1818
19-func h (e) = (e + "_spentOnReset")
19+func g () = "static_feeAggregator"
2020
2121
22-func i (j) = {
23- let k = getInteger(this, j)
24- if ($isInstanceOf(k, "Int"))
22+func h (i) = (i + "_level")
23+
24+
25+func j (i) = (i + "_spentOnLevel")
26+
27+
28+func k (i) = (i + "_skillsResetTimes")
29+
30+
31+func l (i) = (i + "_spentOnReset")
32+
33+
34+func m (n) = {
35+ let o = getInteger(this, n)
36+ if ($isInstanceOf(o, "Int"))
2537 then {
26- let l = k
27- l
38+ let p = o
39+ p
2840 }
2941 else 0
3042 }
3143
3244
33-func m (e,j) = {
34- let k = getString(e, j)
35- if ($isInstanceOf(k, "String"))
45+func q (i,n) = {
46+ let o = getString(i, n)
47+ if ($isInstanceOf(o, "String"))
3648 then {
37- let n = k
38- n
49+ let r = o
50+ r
3951 }
4052 else ""
4153 }
4254
4355
44-func o (j) = m(this, j)
56+func s (n) = q(this, n)
4557
4658
47-func p () = Address(fromBase58String(o("static_oracleAddress")))
59+func t () = Address(fromBase58String(s(d())))
4860
4961
50-func q () = fromBase58String(m(p(), "static_eggAssetId"))
62+func u () = fromBase58String(q(t(), e()))
5163
5264
53-func r (s) = {
54- let t = pow(a, 8, (10000 / s), 4, 8, CEILING)
55- let u = pow(s, 0, (10000 / b), 4, 8, CEILING)
56- let v = fraction(t, u, c)
57- let w = makeString([("newLevel=" + toString(s)), ("p1=" + toString(t)), ("p2=" + toString(u)), ("total=" + toString(v))], ";")
58- $Tuple2([StringEntry("DEBUG", w)], v)
65+func v () = Address(fromBase58String(q(t(), g())))
66+
67+
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)
5974 }
6075
6176
62-func x (y,z) = {
63- let A = 4
64- let B = (z + 1)
65- let C = fraction(B, (y * c), A)
66- let w = makeString([("level=" + toString(y)), ("resetTimes=" + toString(z)), ("resetTimesToUse=" + toString(B)), ("result=" + toString(C))], ";")
67- $Tuple2([StringEntry("DEBUG", w)], C)
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)
6883 }
6984
7085
71-@Callable(D)
72-func configureOracle (E) = if ((D.caller != this))
86+func I (J) = if (isDefined(J.assetId))
87+ then throw("LSCAP: Please attach waves")
88+ 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)]
93+ }
94+
95+
96+@Callable(L)
97+func configureOracle (M) = if ((L.caller != this))
7398 then throw("RCO: admin only")
74- else [StringEntry("static_oracleAddress", E)]
99+ else [StringEntry(d(), M)]
75100
76101
77102
78-@Callable(D)
79-func levelUpMath (s) = r(s)
103+@Callable(L)
104+func levelUpMath (x) = w(x)
80105
81106
82107
83-@Callable(D)
84-func resetSkillsMath (y,z) = x(y, z)
108+@Callable(L)
109+func resetSkillsMath (D,E) = C(D, E)
85110
86111
87112
88-@Callable(D)
113+@Callable(L)
89114 func levelUp () = {
90- let F = d(toString(D.caller))
91- let G = f(toString(D.caller))
92- let H = i(F)
93- let I = i(G)
94- let J = r((H + 1))
95- let K = J._2
96- let L = value(D.payments[0])
97- let M = L.amount
98- if ((L.assetId != q()))
99- then throw(("LLU: You can attach only EGG tokens with the following asset id: " + toBase58String(q())))
100- else if ((M != K))
101- then throw(("LLU: Please attach the exact asset amount" + toString(K)))
102- else ([IntegerEntry(F, (H + 1)), IntegerEntry(G, (I + M))] ++ J._1)
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]))
103128 }
104129
105130
106131
107-@Callable(D)
132+@Callable(L)
108133 func reset () = {
109- let F = d(toString(D.caller))
110- let H = i(F)
111- let N = g(toString(D.caller))
112- let O = i(N)
113- let P = h(toString(D.caller))
114- let Q = i(P)
115- let R = x(H, O)
116- let K = R._2
117- let L = value(D.payments[0])
118- let M = L.amount
119- if ((L.assetId != q()))
120- then throw(("LR: You can attach only EGG tokens with the following asset id: " + toBase58String(q())))
121- else if ((M != K))
122- then throw(("LR: Please attach the exact asset amount" + toString(K)))
123- else ([IntegerEntry(N, (O + 1)), IntegerEntry(P, (Q + M))] ++ R._1)
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]))
124149 }
125150
126151

github/deemru/w8io/6500d08 
74.20 ms