tx · 77GzLmgJoXoBthBdKB42FqQAzrQCu1kS6Q49CgdYkdfX

3PA2w9i9GnbKR3HB7XTmwf3DnaFBFcDiP12:  -0.01400000 Waves

2020.01.30 17:06 [1907761] smart account 3PA2w9i9GnbKR3HB7XTmwf3DnaFBFcDiP12 > SELF 0.00000000 Waves

{ "type": 13, "id": "77GzLmgJoXoBthBdKB42FqQAzrQCu1kS6Q49CgdYkdfX", "fee": 1400000, "feeAssetId": null, "timestamp": 1580392579096, "version": 1, "sender": "3PA2w9i9GnbKR3HB7XTmwf3DnaFBFcDiP12", "senderPublicKey": "5G9pgymdyBYGnWF3oahQXQNPnVaWEthMkeFRUzHjZ7mX", "proofs": [ "4yydkYTmTvupY7ULMS7yFupoRh3rUhPrvPgdEQUovVwes9XC6KgFfKvsCxmsaJJByeskGqhsb6rZEB9B3TzMogeM", "zkyuiS4T8jeBhUjuHRmMiPndmuFbVdCWGB96if3zbUT6whc4BsGNB2FDdu9qrLhiYGpwm2f3iw7Vn2hD23eXFMG", "5PMK6QkoB9fa1txzTUfuxTUJKUPZ85JaXbyJjv21VmMHb94n5M1Y8Hke7erfUyxbv2SwoJEQGd9wvNtHhfAUzsDK" ], "script": "base64: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", "chainId": 87, "height": 1907761, "spentComplexity": 0 } View: original | compacted Prev: Ar1MZfocGruKVy2Yz7kMawjSFXRGK5E74qsPyKTvnmTu Next: CcXRbcLQXjKzZViGJQ7CfPvJiqnfTGtMWcoY7fY5KSCY Diff:
OldNewDifferences
55
66 let b = 100000
77
8-let c = (2629800 * 1000)
8+let c = (2629746 * 1000)
99
10-let d = (1 * b)
10+let d = (b / 100)
1111
12-let e = (1000000 * b)
12+let e = (10000 * b)
1313
1414 let f = base58'EMdiF8uaySswfCdMxc114rSfzUsAKCtK9d8eSx6ruKP4'
1515
1717
1818 let h = base58'EaKK5PAFUkgtnF7xcyABUzi8YBQADmUDnPzQBHjCTAKT'
1919
20-let i = extract(lastBlock.timestamp)
20+let i = lastBlock.timestamp
2121
2222 let j = ((i / c) * c)
2323
2424 let k = (j + c)
2525
26-func l (m,n) = {
27- func o (p,q) = if (if ((p == ""))
28- then (q == 0)
26+let l = (k - (((24 * 60) * 60) * 1000))
27+
28+func m (n,o) = {
29+ let p = ","
30+ let q = "."
31+ func r (s,t) = if (if ((s == ""))
32+ then (t == 0)
2933 else false)
3034 then ""
31- else if ((p == ""))
32- then toString(q)
33- else ((p + ",") + takeRight(toString((q + 1000)), 3))
35+ else if ((s == ""))
36+ then toString(t)
37+ else ((s + p) + drop(toString((t + 1000)), 1))
3438
35- let r = (m / n)
36- let s = (m % n)
37- let t = (r / (((((1000 * 1000) * 1000) * 1000) * 1000) * 1000))
38- let u = (r % (((((1000 * 1000) * 1000) * 1000) * 1000) * 1000))
39- let v = (u / ((((1000 * 1000) * 1000) * 1000) * 1000))
40- let w = (u % ((((1000 * 1000) * 1000) * 1000) * 1000))
41- let x = (w / (((1000 * 1000) * 1000) * 1000))
42- let y = (w % (((1000 * 1000) * 1000) * 1000))
43- let z = (y / ((1000 * 1000) * 1000))
44- let A = (y % ((1000 * 1000) * 1000))
45- let B = (A / (1000 * 1000))
46- let C = (A % (1000 * 1000))
47- let D = (C / 1000)
48- let E = (C % 1000)
49- let F = {
50- let G = [t, v, x, z, B, D, E]
51- let H = size(G)
52- let I = ""
53- if ((H == 0))
54- then I
39+ func u (v) = if ((drop(v, (size(v) - 1)) != "0"))
40+ then v
41+ else take(v, (size(v) - 1))
42+
43+ let w = (n / o)
44+ let x = (n % o)
45+ let y = (w / (((((1000 * 1000) * 1000) * 1000) * 1000) * 1000))
46+ let z = (w % (((((1000 * 1000) * 1000) * 1000) * 1000) * 1000))
47+ let A = (z / ((((1000 * 1000) * 1000) * 1000) * 1000))
48+ let B = (z % ((((1000 * 1000) * 1000) * 1000) * 1000))
49+ let C = (B / (((1000 * 1000) * 1000) * 1000))
50+ let D = (B % (((1000 * 1000) * 1000) * 1000))
51+ let E = (D / ((1000 * 1000) * 1000))
52+ let F = (D % ((1000 * 1000) * 1000))
53+ let G = (F / (1000 * 1000))
54+ let H = (F % (1000 * 1000))
55+ let I = (H / 1000)
56+ let J = (H % 1000)
57+ let K = {
58+ let L = [y, A, C, E, G, I, J]
59+ let M = size(L)
60+ let N = ""
61+ if ((M == 0))
62+ then N
5563 else {
56- let J = o(I, G[0])
57- if ((H == 1))
58- then J
64+ let O = r(N, L[0])
65+ if ((M == 1))
66+ then O
5967 else {
60- let K = o(J, G[1])
61- if ((H == 2))
62- then K
68+ let P = r(O, L[1])
69+ if ((M == 2))
70+ then P
6371 else {
64- let L = o(K, G[2])
65- if ((H == 3))
66- then L
72+ let Q = r(P, L[2])
73+ if ((M == 3))
74+ then Q
6775 else {
68- let M = o(L, G[3])
69- if ((H == 4))
70- then M
76+ let R = r(Q, L[3])
77+ if ((M == 4))
78+ then R
7179 else {
72- let N = o(M, G[4])
73- if ((H == 5))
74- then N
80+ let S = r(R, L[4])
81+ if ((M == 5))
82+ then S
7583 else {
76- let O = o(N, G[5])
77- if ((H == 6))
78- then O
84+ let T = r(S, L[5])
85+ if ((M == 6))
86+ then T
7987 else {
80- let P = o(O, G[6])
81- if ((H == 7))
82- then P
88+ let U = r(T, L[6])
89+ if ((M == 7))
90+ then U
8391 else {
84- let Q = o(P, G[7])
92+ let V = r(U, L[7])
8593 throw("List size exceed 7")
8694 }
8795 }
92100 }
93101 }
94102 }
95- let R = take(drop((toString((s + n)) + "00000000"), 1), 8)
96- let S = if ((takeRight(R, 1) == "0"))
97- then dropRight(R, 1)
98- else R
99- let T = if ((takeRight(S, 1) == "0"))
100- then dropRight(S, 1)
101- else S
102- let U = if ((takeRight(T, 1) == "0"))
103- then dropRight(T, 1)
104- else T
105- let V = if ((takeRight(U, 1) == "0"))
106- then dropRight(U, 1)
107- else U
108- let W = if ((takeRight(V, 1) == "0"))
109- then dropRight(V, 1)
110- else V
111- let X = if ((takeRight(W, 1) == "0"))
112- then dropRight(W, 1)
113- else W
114- let Y = if ((takeRight(X, 1) == "0"))
115- then dropRight(X, 1)
116- else X
117- let Z = if ((takeRight(Y, 1) == "0"))
118- then dropRight(Y, 1)
119- else Y
120- ((if ((F != ""))
121- then F
122- else "0") + (if ((Z != ""))
123- then ("." + Z)
103+ let W = u(u(u(u(u(u(u(u(take(drop(toString((x + o)), 1), 8)))))))))
104+ ((if ((K != ""))
105+ then K
106+ else "0") + (if ((W != ""))
107+ then (q + W)
124108 else ""))
125109 }
126110
127111
128-@Callable(aa)
112+func X (Y) = {
113+ let Z = " "
114+ let aa = " UTC"
115+ let ab = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365]
116+ let ac = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366]
117+ if (if ((-12212553600000 > Y))
118+ then true
119+ else (Y > 253402300799999))
120+ then throw("ISO 8601: Only years from 1583 to 9999 are permitted.")
121+ else {
122+ let ad = (((((1969 * 365) + (1969 / 4)) - (1969 / 100)) + (1969 / 400)) + 366)
123+ let ae = (Y + ((ad * 86400) * 1000))
124+ let af = {
125+ let ag = ((ae / (31556952 * 1000)) - 1)
126+ let ah = (((((ag * 365) + (ag / 4)) - (ag / 100)) + (ag / 400)) + 366)
127+ let ai = ((ae / (86400 * 1000)) - ah)
128+ let aj = if (if (if ((((ag + 1) % 4) == 0))
129+ then (((ag + 1) % 100) != 0)
130+ else false)
131+ then true
132+ else (((ag + 1) % 400) == 0))
133+ then ac
134+ else ab
135+ let ak = if ((ai >= aj[12]))
136+ then throw()
137+ else if ((ai >= aj[11]))
138+ then 11
139+ else if ((ai >= aj[10]))
140+ then 10
141+ else if ((ai >= aj[9]))
142+ then 9
143+ else if ((ai >= aj[8]))
144+ then 8
145+ else if ((ai >= aj[7]))
146+ then 7
147+ else if ((ai >= aj[6]))
148+ then 6
149+ else if ((ai >= aj[5]))
150+ then 5
151+ else if ((ai >= aj[4]))
152+ then 4
153+ else if ((ai >= aj[3]))
154+ then 3
155+ else if ((ai >= aj[2]))
156+ then 2
157+ else if ((ai >= aj[1]))
158+ then 1
159+ else if ((ai >= aj[0]))
160+ then 0
161+ else throw()
162+ let al = (ai - aj[ak])
163+ ((((toString((ag + 1)) + "-") + drop(toString((ak + 101)), 1)) + "-") + drop(toString((al + 101)), 1))
164+ }
165+ let am = {
166+ let an = (ae % (86400 * 1000))
167+ let ao = (an / (3600 * 1000))
168+ let ap = (an % (3600 * 1000))
169+ let ak = (ap / (60 * 1000))
170+ let aq = (ap % (60 * 1000))
171+ let ar = (aq / 1000)
172+ let as = (aq % 1000)
173+ ((((drop(toString((ao + 100)), 1) + ":") + drop(toString((ak + 100)), 1)) + ":") + drop(toString((ar + 100)), 1))
174+ }
175+ (((af + Z) + am) + aa)
176+ }
177+ }
178+
179+
180+@Callable(at)
129181 func deposit () = {
130- let ab = if (isDefined(aa.payment))
131- then extract(aa.payment)
182+ let au = if (isDefined(at.payment))
183+ then extract(at.payment)
132184 else throw((("There is no attached payment " + a) + "."))
133- if ((ab.assetId != f))
185+ if ((au.assetId != f))
134186 then throw((("Only " + a) + " is allowed to deposit."))
135187 else {
136- let ac = toBase58String(this.bytes)
137- let ad = getIntegerValue(this, (ac + "_balance"))
138- let ae = toBase58String(aa.caller.bytes)
139- let af = {
140- let ag = getInteger(this, (ae + "_updatetime"))
141- if ($isInstanceOf(ag, "Int"))
188+ let av = toBase58String(this.bytes)
189+ let aw = getIntegerValue(this, (av + "_balance"))
190+ let ax = toBase58String(at.caller.bytes)
191+ let ay = {
192+ let az = getInteger(this, (ax + "_updatetime"))
193+ if ($isInstanceOf(az, "Int"))
142194 then {
143- let ah = ag
144- ah
195+ let aA = az
196+ aA
145197 }
146198 else 0
147199 }
148- let ai = (j >= af)
149- let aj = {
150- let ag = getBoolean(this, (ae + "_status"))
151- if ($isInstanceOf(ag, "Boolean"))
200+ let aB = (j >= ay)
201+ let aC = {
202+ let az = getBoolean(this, (ax + "_status"))
203+ if ($isInstanceOf(az, "Boolean"))
152204 then {
153- let ah = ag
154- ah
205+ let aA = az
206+ aA
155207 }
156208 else false
157209 }
158- let ak = if (if (ai)
159- then !(aj)
210+ let aD = if (if (aB)
211+ then !(aC)
160212 else false)
161213 then 0
162214 else {
163- let ag = getInteger(this, (ae + "_balance"))
164- if ($isInstanceOf(ag, "Int"))
215+ let az = getInteger(this, (ax + "_balance"))
216+ if ($isInstanceOf(az, "Int"))
165217 then {
166- let ah = ag
167- ah
218+ let aA = az
219+ aA
168220 }
169221 else 0
170222 }
171- let al = extract(ab.amount)
172- let am = if (aj)
173- then (ak + al)
174- else al
175- if (if ((d > am))
223+ let aE = au.amount
224+ let aF = if (aC)
225+ then (aD + aE)
226+ else aE
227+ if (if ((d > aF))
176228 then true
177- else (am > e))
178- then throw((((((((("The minimum allowable balance is " + l(d, b)) + " ") + a) + ", and the maximum is ") + l(e, b)) + " ") + a) + "."))
229+ else (aF > e))
230+ then throw((((((((("The minimum allowable balance is " + m(d, b)) + " ") + a) + ", and the maximum is ") + m(e, b)) + " ") + a) + "."))
179231 else {
180- let an = if (if (ai)
181- then aj
232+ let aG = if (if (aB)
233+ then aC
182234 else false)
183235 then j
184- else if (if (ai)
185- then !(aj)
236+ else if (if (aB)
237+ then !(aC)
186238 else false)
187239 then i
188240 else {
189- let ag = getInteger(this, (ae + "_starttime"))
190- if ($isInstanceOf(ag, "Int"))
241+ let az = getInteger(this, (ax + "_starttime"))
242+ if ($isInstanceOf(az, "Int"))
191243 then {
192- let ah = ag
193- if (aj)
194- then ah
195- else ((ah + i) - af)
244+ let aA = az
245+ if (aC)
246+ then aA
247+ else ((aA + i) - ay)
196248 }
197249 else 0
198250 }
199- let ao = if ((an > i))
251+ let aH = if ((aG > i))
200252 then k
201253 else {
202- let ap = (ak / d)
203- let aq = (am / d)
204- (fraction(an, ap, aq) + fraction(i, (aq - ap), aq))
254+ let aI = (aD / d)
255+ let aJ = (aF / d)
256+ (fraction(aG, aI, aJ) + fraction(i, (aJ - aI), aJ))
205257 }
206- if (aj)
207- then WriteSet([DataEntry((ac + "_balance"), (ad + al)), DataEntry((ae + "_balance"), am), DataEntry((ae + "_starttime"), ao), DataEntry((ae + "_updatetime"), i)])
208- else if (isDefined(getString(this, (ae + "_address"))))
209- then WriteSet([DataEntry((ac + "_balance"), (ad + al)), DataEntry((ae + "_balance"), am), DataEntry((ae + "_starttime"), ao), DataEntry((ae + "_status"), true), DataEntry((ae + "_updatetime"), i)])
210- else WriteSet([DataEntry((ac + "_balance"), (ad + al)), DataEntry((ae + "_address"), ae), DataEntry((ae + "_balance"), am), DataEntry((ae + "_starttime"), ao), DataEntry((ae + "_status"), true), DataEntry((ae + "_updatetime"), i)])
258+ if (aC)
259+ then WriteSet([DataEntry((av + "_balance"), (aw + aE)), DataEntry((ax + "_balance"), aF), DataEntry((ax + "_starttime"), aH), DataEntry((ax + "_updatetime"), i)])
260+ else if (isDefined(getString(this, (ax + "_address"))))
261+ then WriteSet([DataEntry((av + "_balance"), (aw + aE)), DataEntry((ax + "_balance"), aF), DataEntry((ax + "_starttime"), aH), DataEntry((ax + "_status"), true), DataEntry((ax + "_updatetime"), i)])
262+ else WriteSet([DataEntry((av + "_balance"), (aw + aE)), DataEntry((ax + "_address"), ax), DataEntry((ax + "_balance"), aF), DataEntry((ax + "_starttime"), aH), DataEntry((ax + "_status"), true), DataEntry((ax + "_updatetime"), i)])
211263 }
212264 }
213265 }
214266
215267
216268
217-@Callable(aa)
218-func withdraw (ar) = if (isDefined(aa.payment))
219- then throw("Please don't attach payment when withdrawing funds.")
269+@Callable(at)
270+func withdraw (aK) = if (isDefined(at.payment))
271+ then throw("Please do not attach payment when withdrawing funds.")
220272 else {
221- let ac = toBase58String(this.bytes)
222- let ad = getIntegerValue(this, (ac + "_balance"))
223- let as = getIntegerValue(this, (ac + "_starttime"))
224- let ae = toBase58String(aa.caller.bytes)
225- let af = {
226- let ag = getInteger(this, (ae + "_updatetime"))
227- if ($isInstanceOf(ag, "Int"))
273+ let av = toBase58String(this.bytes)
274+ let aw = getIntegerValue(this, (av + "_balance"))
275+ let aL = getIntegerValue(this, (av + "_starttime"))
276+ let ax = toBase58String(at.caller.bytes)
277+ let ay = {
278+ let az = getInteger(this, (ax + "_updatetime"))
279+ if ($isInstanceOf(az, "Int"))
228280 then {
229- let ah = ag
230- ah
281+ let aA = az
282+ aA
231283 }
232284 else 0
233285 }
234- let ai = (j >= af)
235- let aj = {
236- let ag = getBoolean(this, (ae + "_status"))
237- if ($isInstanceOf(ag, "Boolean"))
286+ let aB = (j >= ay)
287+ let aC = {
288+ let az = getBoolean(this, (ax + "_status"))
289+ if ($isInstanceOf(az, "Boolean"))
238290 then {
239- let ah = ag
240- ah
291+ let aA = az
292+ aA
241293 }
242294 else false
243295 }
244- let ak = if (!(aj))
296+ let aD = if (!(aC))
245297 then 0
246298 else {
247- let ag = getInteger(this, (ae + "_balance"))
248- if ($isInstanceOf(ag, "Int"))
299+ let az = getInteger(this, (ax + "_balance"))
300+ if ($isInstanceOf(az, "Int"))
249301 then {
250- let ah = ag
251- ah
302+ let aA = az
303+ aA
252304 }
253305 else 0
254306 }
255- let at = (af + c)
256- let al = if ((ar > 0))
257- then ar
258- else ak
259- let am = (ak - al)
260- if (if (if ((as >= 0))
261- then (ak >= as)
307+ let aM = (ay + c)
308+ let aE = if ((aK > 0))
309+ then aK
310+ else aD
311+ let aF = (aD - aE)
312+ if (if (if ((aL >= 0))
313+ then (aD >= aL)
262314 else false)
263- then (at >= i)
315+ then (aM > i)
264316 else false)
265- then throw((("Unable to withdraw coins! The account is locked for up to " + toString((at / 1000))) + " Unix timestamp..."))
266- else if ((0 >= al))
317+ then throw((("Unable to withdraw coins! The account is locked for up to " + X(aM)) + ". Please wait..."))
318+ else if ((0 >= aE))
267319 then throw("It's impossible to withdraw a negative amount or no balance.")
268- else if ((al > ak))
269- then throw((((((("It's impossible to withdraw more than the balance of " + toString(ak)) + " (") + l(ak, b)) + " ") + a) + ")."))
270- else if ((d > al))
271- then throw((((((("The minimum withdrawal amount is " + toString(d)) + " (") + l(d, b)) + " ") + a) + ")."))
320+ else if ((aE > aD))
321+ then throw((((((("It's impossible to withdraw more than the balance of " + toString(aD)) + " (") + m(aD, b)) + " ") + a) + ")."))
322+ else if ((d > aE))
323+ then throw((((((("The minimum withdrawal amount is " + toString(d)) + " (") + m(d, b)) + " ") + a) + ")."))
272324 else {
273- let an = if (ai)
325+ let aG = if (aB)
274326 then j
275327 else {
276- let ag = getInteger(this, (ae + "_starttime"))
277- if ($isInstanceOf(ag, "Int"))
328+ let az = getInteger(this, (ax + "_starttime"))
329+ if ($isInstanceOf(az, "Int"))
278330 then {
279- let ah = ag
280- ah
331+ let aA = az
332+ aA
281333 }
282334 else 0
283335 }
284- let ao = if ((an > i))
336+ let aH = if ((aG > i))
285337 then k
286- else if ((d > am))
287- then an
338+ else if ((d > aF))
339+ then aG
288340 else {
289- let ap = (ak / d)
290- let aq = (am / d)
291- (fraction(an, ap, aq) + fraction(i, (aq - ap), aq))
341+ let aI = (aD / d)
342+ let aJ = (aF / d)
343+ (fraction(aG, aI, aJ) + fraction(i, (aJ - aI), aJ))
292344 }
293- if ((am >= d))
294- then ScriptResult(WriteSet([DataEntry((ac + "_balance"), (ad - al)), DataEntry((ae + "_balance"), am), DataEntry((ae + "_starttime"), ao), DataEntry((ae + "_updatetime"), i)]), TransferSet([ScriptTransfer(aa.caller, al, f)]))
295- else ScriptResult(WriteSet([DataEntry((ac + "_balance"), (ad - ak)), DataEntry((ae + "_starttime"), ao), DataEntry((ae + "_status"), false), DataEntry((ae + "_updatetime"), i)]), TransferSet([ScriptTransfer(aa.caller, ak, f)]))
345+ if ((aF >= d))
346+ then ScriptResult(WriteSet([DataEntry((av + "_balance"), (aw - aE)), DataEntry((ax + "_balance"), aF), DataEntry((ax + "_starttime"), aH), DataEntry((ax + "_updatetime"), i)]), TransferSet([ScriptTransfer(at.caller, aE, f)]))
347+ else ScriptResult(WriteSet([DataEntry((av + "_balance"), (aw - aD)), DataEntry((ax + "_starttime"), aH), DataEntry((ax + "_status"), false), DataEntry((ax + "_updatetime"), i)]), TransferSet([ScriptTransfer(at.caller, aD, f)]))
296348 }
297349 }
298350
299351
300352
301-@Callable(aa)
302-func setMinStake (ar) = if (if ((aa.callerPublicKey != g))
303- then (aa.callerPublicKey != h)
353+@Callable(at)
354+func sendRewards (aN,aO,aP,aQ,aR,aS,aT,aU,aV,aW,aX,aY,aZ,ba,bb,bc,bd,be,bf,bg) = if (if ((at.callerPublicKey != g))
355+ then (at.callerPublicKey != h)
304356 else false)
305- then throw("Only an administrator can set or modify minStake!")
306- else if (isDefined(aa.payment))
307- then throw("Please don't attach payment when setting up minStake.")
357+ then throw("Only the administrator can send rewards to customers!")
358+ else if ((l > i))
359+ then throw((("The time to send rewards has not yet come! Beginning at " + X(l)) + ". Please wait..."))
308360 else {
309- let ac = toBase58String(this.bytes)
310- if (isDefined(getString(this, (ac + "_address"))))
311- then WriteSet([DataEntry((ac + "_starttime"), ar), DataEntry((ac + "_updatetime"), i)])
312- else WriteSet([DataEntry((ac + "_address"), ac), DataEntry((ac + "_balance"), 0), DataEntry((ac + "_starttime"), ar), DataEntry((ac + "_status"), false), DataEntry((ac + "_updatetime"), i)])
361+ let av = toBase58String(this.bytes)
362+ let aw = getIntegerValue(this, (av + "_balance"))
363+ let bh = (assetBalance(this, f) - aw)
364+ let bi = (((((((((aO + aQ) + aS) + aU) + aW) + aY) + ba) + bc) + be) + bg)
365+ let bj = if (!(isDefined(at.payment)))
366+ then bh
367+ else {
368+ let au = extract(at.payment)
369+ if ((au.assetId != f))
370+ then throw((("Only " + a) + " is allowed to deposit."))
371+ else (bh + au.amount)
372+ }
373+ if ((0 >= bi))
374+ then throw("Zero or negative rewards are not allowed.")
375+ else if ((bi > bj))
376+ then throw((((("Insufficient effective balance! The required amount is " + m((bi - bj), b)) + " ") + a) + "."))
377+ else {
378+ let bk = if (if ((bf == "-"))
379+ then (bg == 0)
380+ else false)
381+ then nil
382+ else if (!(getBooleanValue(this, (bf + "_status"))))
383+ then throw("The status of client #9 is inactive!")
384+ else if ((0 >= bg))
385+ then throw("Zero or negative amounts are not allowed.")
386+ else {
387+ let bl = getIntegerValue(this, (bf + "_balance"))
388+[DataEntry((bf + "_balance"), (bl + bg)), DataEntry((bf + "_starttime"), k)]
389+ }
390+ let bm = if (if ((bd == "-"))
391+ then (be == 0)
392+ else false)
393+ then bk
394+ else if (!(getBooleanValue(this, (bd + "_status"))))
395+ then throw("The status of client #8 is inactive!")
396+ else if ((0 >= be))
397+ then throw("Zero or negative amounts are not allowed.")
398+ else {
399+ let bn = getIntegerValue(this, (bd + "_balance"))
400+[DataEntry((bd + "_balance"), (bn + be)), DataEntry((bd + "_starttime"), k)] :: bk
401+ }
402+ let bo = if (if ((bb == "-"))
403+ then (bc == 0)
404+ else false)
405+ then bm
406+ else if (!(getBooleanValue(this, (bb + "_status"))))
407+ then throw("The status of client #7 is inactive!")
408+ else if ((0 >= bc))
409+ then throw("Zero or negative amounts are not allowed.")
410+ else {
411+ let bp = getIntegerValue(this, (bb + "_balance"))
412+[DataEntry((bb + "_balance"), (bp + bc)), DataEntry((bb + "_starttime"), k)] :: bm
413+ }
414+ let bq = if (if ((aZ == "-"))
415+ then (ba == 0)
416+ else false)
417+ then bo
418+ else if (!(getBooleanValue(this, (aZ + "_status"))))
419+ then throw("The status of client #6 is inactive!")
420+ else if ((0 >= ba))
421+ then throw("Zero or negative amounts are not allowed.")
422+ else {
423+ let br = getIntegerValue(this, (aZ + "_balance"))
424+[DataEntry((aZ + "_balance"), (br + ba)), DataEntry((aZ + "_starttime"), k)] :: bo
425+ }
426+ let bs = if (if ((aX == "-"))
427+ then (aY == 0)
428+ else false)
429+ then bq
430+ else if (!(getBooleanValue(this, (aX + "_status"))))
431+ then throw("The status of client #5 is inactive!")
432+ else if ((0 >= aY))
433+ then throw("Zero or negative amounts are not allowed.")
434+ else {
435+ let bt = getIntegerValue(this, (aX + "_balance"))
436+[DataEntry((aX + "_balance"), (bt + aY)), DataEntry((aX + "_starttime"), k)] :: bq
437+ }
438+ let bu = if (if ((aV == "-"))
439+ then (aW == 0)
440+ else false)
441+ then bs
442+ else if (!(getBooleanValue(this, (aV + "_status"))))
443+ then throw("The status of client #4 is inactive!")
444+ else if ((0 >= aW))
445+ then throw("Zero or negative amounts are not allowed.")
446+ else {
447+ let bv = getIntegerValue(this, (aV + "_balance"))
448+[DataEntry((aV + "_balance"), (bv + aW)), DataEntry((aV + "_starttime"), k)] :: bs
449+ }
450+ let bw = if (if ((aT == "-"))
451+ then (aU == 0)
452+ else false)
453+ then bu
454+ else if (!(getBooleanValue(this, (aT + "_status"))))
455+ then throw("The status of client #3 is inactive!")
456+ else if ((0 >= aU))
457+ then throw("Zero or negative amounts are not allowed.")
458+ else {
459+ let bx = getIntegerValue(this, (aT + "_balance"))
460+[DataEntry((aT + "_balance"), (bx + aU)), DataEntry((aT + "_starttime"), k)] :: bu
461+ }
462+ let by = if (if ((aR == "-"))
463+ then (aS == 0)
464+ else false)
465+ then bw
466+ else if (!(getBooleanValue(this, (aR + "_status"))))
467+ then throw("The status of client #2 is inactive!")
468+ else if ((0 >= aS))
469+ then throw("Zero or negative amounts are not allowed.")
470+ else {
471+ let bz = getIntegerValue(this, (aR + "_balance"))
472+[DataEntry((aR + "_balance"), (bz + aS)), DataEntry((aR + "_starttime"), k)] :: bw
473+ }
474+ let bA = if (if ((aP == "-"))
475+ then (aQ == 0)
476+ else false)
477+ then by
478+ else if (!(getBooleanValue(this, (aP + "_status"))))
479+ then throw("The status of client #1 is inactive!")
480+ else if ((0 >= aQ))
481+ then throw("Zero or negative amounts are not allowed.")
482+ else {
483+ let bB = getIntegerValue(this, (aP + "_balance"))
484+[DataEntry((aP + "_balance"), (bB + aQ)), DataEntry((aP + "_starttime"), k)] :: by
485+ }
486+ let bC = if (if ((aN == "-"))
487+ then (aO == 0)
488+ else false)
489+ then bA
490+ else if (!(getBooleanValue(this, (aN + "_status"))))
491+ then throw("The status of client #0 is inactive!")
492+ else if ((0 >= aO))
493+ then throw("Zero or negative amounts are not allowed.")
494+ else {
495+ let bD = getIntegerValue(this, (aN + "_balance"))
496+[DataEntry((aN + "_balance"), (bD + aO)), DataEntry((aN + "_starttime"), k)] :: bA
497+ }
498+ WriteSet(DataEntry((av + "_balance"), (aw + bi)) :: bC)
499+ }
313500 }
314501
315502
316-@Verifier(au)
317-func av () = {
318- let ag = au
319- if ($isInstanceOf(ag, "TransferTransaction"))
503+
504+@Callable(at)
505+func setMinStake (aE) = if (if ((at.callerPublicKey != g))
506+ then (at.callerPublicKey != h)
507+ else false)
508+ then throw("Only the administrator can set and modify minStake!")
509+ else if (isDefined(at.payment))
510+ then throw("Please do not attach payment when setting up minStake.")
511+ else {
512+ let av = toBase58String(this.bytes)
513+ if (isDefined(getString(this, (av + "_address"))))
514+ then WriteSet([DataEntry((av + "_starttime"), aE), DataEntry((av + "_updatetime"), i)])
515+ else WriteSet([DataEntry((av + "_address"), av), DataEntry((av + "_balance"), 0), DataEntry((av + "_starttime"), aE), DataEntry((av + "_status"), false), DataEntry((av + "_updatetime"), i)])
516+ }
517+
518+
519+@Verifier(bE)
520+func bF () = {
521+ let az = bE
522+ if ($isInstanceOf(az, "TransferTransaction"))
320523 then {
321- let aw = ag
322- if (if (if ((aw.assetId != f))
323- then (aw.feeAssetId != f)
524+ let bG = az
525+ if (if (if ((bG.assetId != f))
526+ then (bG.feeAssetId != f)
324527 else false)
325- then sigVerify(aw.bodyBytes, aw.proofs[2], g)
528+ then sigVerify(bG.bodyBytes, bG.proofs[2], g)
326529 else false)
327- then sigVerify(aw.bodyBytes, aw.proofs[1], h)
530+ then sigVerify(bG.bodyBytes, bG.proofs[1], h)
328531 else false
329532 }
330- else if ($isInstanceOf(ag, "SetScriptTransaction"))
533+ else if ($isInstanceOf(az, "SetScriptTransaction"))
331534 then {
332- let ax = ag
333- if (sigVerify(ax.bodyBytes, ax.proofs[2], g))
334- then sigVerify(ax.bodyBytes, ax.proofs[1], h)
535+ let bH = az
536+ if (sigVerify(bH.bodyBytes, bH.proofs[2], g))
537+ then sigVerify(bH.bodyBytes, bH.proofs[1], h)
335538 else false
336539 }
337540 else false
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "RusCoin"
55
66 let b = 100000
77
8-let c = (2629800 * 1000)
8+let c = (2629746 * 1000)
99
10-let d = (1 * b)
10+let d = (b / 100)
1111
12-let e = (1000000 * b)
12+let e = (10000 * b)
1313
1414 let f = base58'EMdiF8uaySswfCdMxc114rSfzUsAKCtK9d8eSx6ruKP4'
1515
1616 let g = base58'2in4yGNBKfitQbXbsHmL2unWrUnRo7GWyqcZXsmAzhQi'
1717
1818 let h = base58'EaKK5PAFUkgtnF7xcyABUzi8YBQADmUDnPzQBHjCTAKT'
1919
20-let i = extract(lastBlock.timestamp)
20+let i = lastBlock.timestamp
2121
2222 let j = ((i / c) * c)
2323
2424 let k = (j + c)
2525
26-func l (m,n) = {
27- func o (p,q) = if (if ((p == ""))
28- then (q == 0)
26+let l = (k - (((24 * 60) * 60) * 1000))
27+
28+func m (n,o) = {
29+ let p = ","
30+ let q = "."
31+ func r (s,t) = if (if ((s == ""))
32+ then (t == 0)
2933 else false)
3034 then ""
31- else if ((p == ""))
32- then toString(q)
33- else ((p + ",") + takeRight(toString((q + 1000)), 3))
35+ else if ((s == ""))
36+ then toString(t)
37+ else ((s + p) + drop(toString((t + 1000)), 1))
3438
35- let r = (m / n)
36- let s = (m % n)
37- let t = (r / (((((1000 * 1000) * 1000) * 1000) * 1000) * 1000))
38- let u = (r % (((((1000 * 1000) * 1000) * 1000) * 1000) * 1000))
39- let v = (u / ((((1000 * 1000) * 1000) * 1000) * 1000))
40- let w = (u % ((((1000 * 1000) * 1000) * 1000) * 1000))
41- let x = (w / (((1000 * 1000) * 1000) * 1000))
42- let y = (w % (((1000 * 1000) * 1000) * 1000))
43- let z = (y / ((1000 * 1000) * 1000))
44- let A = (y % ((1000 * 1000) * 1000))
45- let B = (A / (1000 * 1000))
46- let C = (A % (1000 * 1000))
47- let D = (C / 1000)
48- let E = (C % 1000)
49- let F = {
50- let G = [t, v, x, z, B, D, E]
51- let H = size(G)
52- let I = ""
53- if ((H == 0))
54- then I
39+ func u (v) = if ((drop(v, (size(v) - 1)) != "0"))
40+ then v
41+ else take(v, (size(v) - 1))
42+
43+ let w = (n / o)
44+ let x = (n % o)
45+ let y = (w / (((((1000 * 1000) * 1000) * 1000) * 1000) * 1000))
46+ let z = (w % (((((1000 * 1000) * 1000) * 1000) * 1000) * 1000))
47+ let A = (z / ((((1000 * 1000) * 1000) * 1000) * 1000))
48+ let B = (z % ((((1000 * 1000) * 1000) * 1000) * 1000))
49+ let C = (B / (((1000 * 1000) * 1000) * 1000))
50+ let D = (B % (((1000 * 1000) * 1000) * 1000))
51+ let E = (D / ((1000 * 1000) * 1000))
52+ let F = (D % ((1000 * 1000) * 1000))
53+ let G = (F / (1000 * 1000))
54+ let H = (F % (1000 * 1000))
55+ let I = (H / 1000)
56+ let J = (H % 1000)
57+ let K = {
58+ let L = [y, A, C, E, G, I, J]
59+ let M = size(L)
60+ let N = ""
61+ if ((M == 0))
62+ then N
5563 else {
56- let J = o(I, G[0])
57- if ((H == 1))
58- then J
64+ let O = r(N, L[0])
65+ if ((M == 1))
66+ then O
5967 else {
60- let K = o(J, G[1])
61- if ((H == 2))
62- then K
68+ let P = r(O, L[1])
69+ if ((M == 2))
70+ then P
6371 else {
64- let L = o(K, G[2])
65- if ((H == 3))
66- then L
72+ let Q = r(P, L[2])
73+ if ((M == 3))
74+ then Q
6775 else {
68- let M = o(L, G[3])
69- if ((H == 4))
70- then M
76+ let R = r(Q, L[3])
77+ if ((M == 4))
78+ then R
7179 else {
72- let N = o(M, G[4])
73- if ((H == 5))
74- then N
80+ let S = r(R, L[4])
81+ if ((M == 5))
82+ then S
7583 else {
76- let O = o(N, G[5])
77- if ((H == 6))
78- then O
84+ let T = r(S, L[5])
85+ if ((M == 6))
86+ then T
7987 else {
80- let P = o(O, G[6])
81- if ((H == 7))
82- then P
88+ let U = r(T, L[6])
89+ if ((M == 7))
90+ then U
8391 else {
84- let Q = o(P, G[7])
92+ let V = r(U, L[7])
8593 throw("List size exceed 7")
8694 }
8795 }
8896 }
8997 }
9098 }
9199 }
92100 }
93101 }
94102 }
95- let R = take(drop((toString((s + n)) + "00000000"), 1), 8)
96- let S = if ((takeRight(R, 1) == "0"))
97- then dropRight(R, 1)
98- else R
99- let T = if ((takeRight(S, 1) == "0"))
100- then dropRight(S, 1)
101- else S
102- let U = if ((takeRight(T, 1) == "0"))
103- then dropRight(T, 1)
104- else T
105- let V = if ((takeRight(U, 1) == "0"))
106- then dropRight(U, 1)
107- else U
108- let W = if ((takeRight(V, 1) == "0"))
109- then dropRight(V, 1)
110- else V
111- let X = if ((takeRight(W, 1) == "0"))
112- then dropRight(W, 1)
113- else W
114- let Y = if ((takeRight(X, 1) == "0"))
115- then dropRight(X, 1)
116- else X
117- let Z = if ((takeRight(Y, 1) == "0"))
118- then dropRight(Y, 1)
119- else Y
120- ((if ((F != ""))
121- then F
122- else "0") + (if ((Z != ""))
123- then ("." + Z)
103+ let W = u(u(u(u(u(u(u(u(take(drop(toString((x + o)), 1), 8)))))))))
104+ ((if ((K != ""))
105+ then K
106+ else "0") + (if ((W != ""))
107+ then (q + W)
124108 else ""))
125109 }
126110
127111
128-@Callable(aa)
112+func X (Y) = {
113+ let Z = " "
114+ let aa = " UTC"
115+ let ab = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365]
116+ let ac = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366]
117+ if (if ((-12212553600000 > Y))
118+ then true
119+ else (Y > 253402300799999))
120+ then throw("ISO 8601: Only years from 1583 to 9999 are permitted.")
121+ else {
122+ let ad = (((((1969 * 365) + (1969 / 4)) - (1969 / 100)) + (1969 / 400)) + 366)
123+ let ae = (Y + ((ad * 86400) * 1000))
124+ let af = {
125+ let ag = ((ae / (31556952 * 1000)) - 1)
126+ let ah = (((((ag * 365) + (ag / 4)) - (ag / 100)) + (ag / 400)) + 366)
127+ let ai = ((ae / (86400 * 1000)) - ah)
128+ let aj = if (if (if ((((ag + 1) % 4) == 0))
129+ then (((ag + 1) % 100) != 0)
130+ else false)
131+ then true
132+ else (((ag + 1) % 400) == 0))
133+ then ac
134+ else ab
135+ let ak = if ((ai >= aj[12]))
136+ then throw()
137+ else if ((ai >= aj[11]))
138+ then 11
139+ else if ((ai >= aj[10]))
140+ then 10
141+ else if ((ai >= aj[9]))
142+ then 9
143+ else if ((ai >= aj[8]))
144+ then 8
145+ else if ((ai >= aj[7]))
146+ then 7
147+ else if ((ai >= aj[6]))
148+ then 6
149+ else if ((ai >= aj[5]))
150+ then 5
151+ else if ((ai >= aj[4]))
152+ then 4
153+ else if ((ai >= aj[3]))
154+ then 3
155+ else if ((ai >= aj[2]))
156+ then 2
157+ else if ((ai >= aj[1]))
158+ then 1
159+ else if ((ai >= aj[0]))
160+ then 0
161+ else throw()
162+ let al = (ai - aj[ak])
163+ ((((toString((ag + 1)) + "-") + drop(toString((ak + 101)), 1)) + "-") + drop(toString((al + 101)), 1))
164+ }
165+ let am = {
166+ let an = (ae % (86400 * 1000))
167+ let ao = (an / (3600 * 1000))
168+ let ap = (an % (3600 * 1000))
169+ let ak = (ap / (60 * 1000))
170+ let aq = (ap % (60 * 1000))
171+ let ar = (aq / 1000)
172+ let as = (aq % 1000)
173+ ((((drop(toString((ao + 100)), 1) + ":") + drop(toString((ak + 100)), 1)) + ":") + drop(toString((ar + 100)), 1))
174+ }
175+ (((af + Z) + am) + aa)
176+ }
177+ }
178+
179+
180+@Callable(at)
129181 func deposit () = {
130- let ab = if (isDefined(aa.payment))
131- then extract(aa.payment)
182+ let au = if (isDefined(at.payment))
183+ then extract(at.payment)
132184 else throw((("There is no attached payment " + a) + "."))
133- if ((ab.assetId != f))
185+ if ((au.assetId != f))
134186 then throw((("Only " + a) + " is allowed to deposit."))
135187 else {
136- let ac = toBase58String(this.bytes)
137- let ad = getIntegerValue(this, (ac + "_balance"))
138- let ae = toBase58String(aa.caller.bytes)
139- let af = {
140- let ag = getInteger(this, (ae + "_updatetime"))
141- if ($isInstanceOf(ag, "Int"))
188+ let av = toBase58String(this.bytes)
189+ let aw = getIntegerValue(this, (av + "_balance"))
190+ let ax = toBase58String(at.caller.bytes)
191+ let ay = {
192+ let az = getInteger(this, (ax + "_updatetime"))
193+ if ($isInstanceOf(az, "Int"))
142194 then {
143- let ah = ag
144- ah
195+ let aA = az
196+ aA
145197 }
146198 else 0
147199 }
148- let ai = (j >= af)
149- let aj = {
150- let ag = getBoolean(this, (ae + "_status"))
151- if ($isInstanceOf(ag, "Boolean"))
200+ let aB = (j >= ay)
201+ let aC = {
202+ let az = getBoolean(this, (ax + "_status"))
203+ if ($isInstanceOf(az, "Boolean"))
152204 then {
153- let ah = ag
154- ah
205+ let aA = az
206+ aA
155207 }
156208 else false
157209 }
158- let ak = if (if (ai)
159- then !(aj)
210+ let aD = if (if (aB)
211+ then !(aC)
160212 else false)
161213 then 0
162214 else {
163- let ag = getInteger(this, (ae + "_balance"))
164- if ($isInstanceOf(ag, "Int"))
215+ let az = getInteger(this, (ax + "_balance"))
216+ if ($isInstanceOf(az, "Int"))
165217 then {
166- let ah = ag
167- ah
218+ let aA = az
219+ aA
168220 }
169221 else 0
170222 }
171- let al = extract(ab.amount)
172- let am = if (aj)
173- then (ak + al)
174- else al
175- if (if ((d > am))
223+ let aE = au.amount
224+ let aF = if (aC)
225+ then (aD + aE)
226+ else aE
227+ if (if ((d > aF))
176228 then true
177- else (am > e))
178- then throw((((((((("The minimum allowable balance is " + l(d, b)) + " ") + a) + ", and the maximum is ") + l(e, b)) + " ") + a) + "."))
229+ else (aF > e))
230+ then throw((((((((("The minimum allowable balance is " + m(d, b)) + " ") + a) + ", and the maximum is ") + m(e, b)) + " ") + a) + "."))
179231 else {
180- let an = if (if (ai)
181- then aj
232+ let aG = if (if (aB)
233+ then aC
182234 else false)
183235 then j
184- else if (if (ai)
185- then !(aj)
236+ else if (if (aB)
237+ then !(aC)
186238 else false)
187239 then i
188240 else {
189- let ag = getInteger(this, (ae + "_starttime"))
190- if ($isInstanceOf(ag, "Int"))
241+ let az = getInteger(this, (ax + "_starttime"))
242+ if ($isInstanceOf(az, "Int"))
191243 then {
192- let ah = ag
193- if (aj)
194- then ah
195- else ((ah + i) - af)
244+ let aA = az
245+ if (aC)
246+ then aA
247+ else ((aA + i) - ay)
196248 }
197249 else 0
198250 }
199- let ao = if ((an > i))
251+ let aH = if ((aG > i))
200252 then k
201253 else {
202- let ap = (ak / d)
203- let aq = (am / d)
204- (fraction(an, ap, aq) + fraction(i, (aq - ap), aq))
254+ let aI = (aD / d)
255+ let aJ = (aF / d)
256+ (fraction(aG, aI, aJ) + fraction(i, (aJ - aI), aJ))
205257 }
206- if (aj)
207- then WriteSet([DataEntry((ac + "_balance"), (ad + al)), DataEntry((ae + "_balance"), am), DataEntry((ae + "_starttime"), ao), DataEntry((ae + "_updatetime"), i)])
208- else if (isDefined(getString(this, (ae + "_address"))))
209- then WriteSet([DataEntry((ac + "_balance"), (ad + al)), DataEntry((ae + "_balance"), am), DataEntry((ae + "_starttime"), ao), DataEntry((ae + "_status"), true), DataEntry((ae + "_updatetime"), i)])
210- else WriteSet([DataEntry((ac + "_balance"), (ad + al)), DataEntry((ae + "_address"), ae), DataEntry((ae + "_balance"), am), DataEntry((ae + "_starttime"), ao), DataEntry((ae + "_status"), true), DataEntry((ae + "_updatetime"), i)])
258+ if (aC)
259+ then WriteSet([DataEntry((av + "_balance"), (aw + aE)), DataEntry((ax + "_balance"), aF), DataEntry((ax + "_starttime"), aH), DataEntry((ax + "_updatetime"), i)])
260+ else if (isDefined(getString(this, (ax + "_address"))))
261+ then WriteSet([DataEntry((av + "_balance"), (aw + aE)), DataEntry((ax + "_balance"), aF), DataEntry((ax + "_starttime"), aH), DataEntry((ax + "_status"), true), DataEntry((ax + "_updatetime"), i)])
262+ else WriteSet([DataEntry((av + "_balance"), (aw + aE)), DataEntry((ax + "_address"), ax), DataEntry((ax + "_balance"), aF), DataEntry((ax + "_starttime"), aH), DataEntry((ax + "_status"), true), DataEntry((ax + "_updatetime"), i)])
211263 }
212264 }
213265 }
214266
215267
216268
217-@Callable(aa)
218-func withdraw (ar) = if (isDefined(aa.payment))
219- then throw("Please don't attach payment when withdrawing funds.")
269+@Callable(at)
270+func withdraw (aK) = if (isDefined(at.payment))
271+ then throw("Please do not attach payment when withdrawing funds.")
220272 else {
221- let ac = toBase58String(this.bytes)
222- let ad = getIntegerValue(this, (ac + "_balance"))
223- let as = getIntegerValue(this, (ac + "_starttime"))
224- let ae = toBase58String(aa.caller.bytes)
225- let af = {
226- let ag = getInteger(this, (ae + "_updatetime"))
227- if ($isInstanceOf(ag, "Int"))
273+ let av = toBase58String(this.bytes)
274+ let aw = getIntegerValue(this, (av + "_balance"))
275+ let aL = getIntegerValue(this, (av + "_starttime"))
276+ let ax = toBase58String(at.caller.bytes)
277+ let ay = {
278+ let az = getInteger(this, (ax + "_updatetime"))
279+ if ($isInstanceOf(az, "Int"))
228280 then {
229- let ah = ag
230- ah
281+ let aA = az
282+ aA
231283 }
232284 else 0
233285 }
234- let ai = (j >= af)
235- let aj = {
236- let ag = getBoolean(this, (ae + "_status"))
237- if ($isInstanceOf(ag, "Boolean"))
286+ let aB = (j >= ay)
287+ let aC = {
288+ let az = getBoolean(this, (ax + "_status"))
289+ if ($isInstanceOf(az, "Boolean"))
238290 then {
239- let ah = ag
240- ah
291+ let aA = az
292+ aA
241293 }
242294 else false
243295 }
244- let ak = if (!(aj))
296+ let aD = if (!(aC))
245297 then 0
246298 else {
247- let ag = getInteger(this, (ae + "_balance"))
248- if ($isInstanceOf(ag, "Int"))
299+ let az = getInteger(this, (ax + "_balance"))
300+ if ($isInstanceOf(az, "Int"))
249301 then {
250- let ah = ag
251- ah
302+ let aA = az
303+ aA
252304 }
253305 else 0
254306 }
255- let at = (af + c)
256- let al = if ((ar > 0))
257- then ar
258- else ak
259- let am = (ak - al)
260- if (if (if ((as >= 0))
261- then (ak >= as)
307+ let aM = (ay + c)
308+ let aE = if ((aK > 0))
309+ then aK
310+ else aD
311+ let aF = (aD - aE)
312+ if (if (if ((aL >= 0))
313+ then (aD >= aL)
262314 else false)
263- then (at >= i)
315+ then (aM > i)
264316 else false)
265- then throw((("Unable to withdraw coins! The account is locked for up to " + toString((at / 1000))) + " Unix timestamp..."))
266- else if ((0 >= al))
317+ then throw((("Unable to withdraw coins! The account is locked for up to " + X(aM)) + ". Please wait..."))
318+ else if ((0 >= aE))
267319 then throw("It's impossible to withdraw a negative amount or no balance.")
268- else if ((al > ak))
269- then throw((((((("It's impossible to withdraw more than the balance of " + toString(ak)) + " (") + l(ak, b)) + " ") + a) + ")."))
270- else if ((d > al))
271- then throw((((((("The minimum withdrawal amount is " + toString(d)) + " (") + l(d, b)) + " ") + a) + ")."))
320+ else if ((aE > aD))
321+ then throw((((((("It's impossible to withdraw more than the balance of " + toString(aD)) + " (") + m(aD, b)) + " ") + a) + ")."))
322+ else if ((d > aE))
323+ then throw((((((("The minimum withdrawal amount is " + toString(d)) + " (") + m(d, b)) + " ") + a) + ")."))
272324 else {
273- let an = if (ai)
325+ let aG = if (aB)
274326 then j
275327 else {
276- let ag = getInteger(this, (ae + "_starttime"))
277- if ($isInstanceOf(ag, "Int"))
328+ let az = getInteger(this, (ax + "_starttime"))
329+ if ($isInstanceOf(az, "Int"))
278330 then {
279- let ah = ag
280- ah
331+ let aA = az
332+ aA
281333 }
282334 else 0
283335 }
284- let ao = if ((an > i))
336+ let aH = if ((aG > i))
285337 then k
286- else if ((d > am))
287- then an
338+ else if ((d > aF))
339+ then aG
288340 else {
289- let ap = (ak / d)
290- let aq = (am / d)
291- (fraction(an, ap, aq) + fraction(i, (aq - ap), aq))
341+ let aI = (aD / d)
342+ let aJ = (aF / d)
343+ (fraction(aG, aI, aJ) + fraction(i, (aJ - aI), aJ))
292344 }
293- if ((am >= d))
294- then ScriptResult(WriteSet([DataEntry((ac + "_balance"), (ad - al)), DataEntry((ae + "_balance"), am), DataEntry((ae + "_starttime"), ao), DataEntry((ae + "_updatetime"), i)]), TransferSet([ScriptTransfer(aa.caller, al, f)]))
295- else ScriptResult(WriteSet([DataEntry((ac + "_balance"), (ad - ak)), DataEntry((ae + "_starttime"), ao), DataEntry((ae + "_status"), false), DataEntry((ae + "_updatetime"), i)]), TransferSet([ScriptTransfer(aa.caller, ak, f)]))
345+ if ((aF >= d))
346+ then ScriptResult(WriteSet([DataEntry((av + "_balance"), (aw - aE)), DataEntry((ax + "_balance"), aF), DataEntry((ax + "_starttime"), aH), DataEntry((ax + "_updatetime"), i)]), TransferSet([ScriptTransfer(at.caller, aE, f)]))
347+ else ScriptResult(WriteSet([DataEntry((av + "_balance"), (aw - aD)), DataEntry((ax + "_starttime"), aH), DataEntry((ax + "_status"), false), DataEntry((ax + "_updatetime"), i)]), TransferSet([ScriptTransfer(at.caller, aD, f)]))
296348 }
297349 }
298350
299351
300352
301-@Callable(aa)
302-func setMinStake (ar) = if (if ((aa.callerPublicKey != g))
303- then (aa.callerPublicKey != h)
353+@Callable(at)
354+func sendRewards (aN,aO,aP,aQ,aR,aS,aT,aU,aV,aW,aX,aY,aZ,ba,bb,bc,bd,be,bf,bg) = if (if ((at.callerPublicKey != g))
355+ then (at.callerPublicKey != h)
304356 else false)
305- then throw("Only an administrator can set or modify minStake!")
306- else if (isDefined(aa.payment))
307- then throw("Please don't attach payment when setting up minStake.")
357+ then throw("Only the administrator can send rewards to customers!")
358+ else if ((l > i))
359+ then throw((("The time to send rewards has not yet come! Beginning at " + X(l)) + ". Please wait..."))
308360 else {
309- let ac = toBase58String(this.bytes)
310- if (isDefined(getString(this, (ac + "_address"))))
311- then WriteSet([DataEntry((ac + "_starttime"), ar), DataEntry((ac + "_updatetime"), i)])
312- else WriteSet([DataEntry((ac + "_address"), ac), DataEntry((ac + "_balance"), 0), DataEntry((ac + "_starttime"), ar), DataEntry((ac + "_status"), false), DataEntry((ac + "_updatetime"), i)])
361+ let av = toBase58String(this.bytes)
362+ let aw = getIntegerValue(this, (av + "_balance"))
363+ let bh = (assetBalance(this, f) - aw)
364+ let bi = (((((((((aO + aQ) + aS) + aU) + aW) + aY) + ba) + bc) + be) + bg)
365+ let bj = if (!(isDefined(at.payment)))
366+ then bh
367+ else {
368+ let au = extract(at.payment)
369+ if ((au.assetId != f))
370+ then throw((("Only " + a) + " is allowed to deposit."))
371+ else (bh + au.amount)
372+ }
373+ if ((0 >= bi))
374+ then throw("Zero or negative rewards are not allowed.")
375+ else if ((bi > bj))
376+ then throw((((("Insufficient effective balance! The required amount is " + m((bi - bj), b)) + " ") + a) + "."))
377+ else {
378+ let bk = if (if ((bf == "-"))
379+ then (bg == 0)
380+ else false)
381+ then nil
382+ else if (!(getBooleanValue(this, (bf + "_status"))))
383+ then throw("The status of client #9 is inactive!")
384+ else if ((0 >= bg))
385+ then throw("Zero or negative amounts are not allowed.")
386+ else {
387+ let bl = getIntegerValue(this, (bf + "_balance"))
388+[DataEntry((bf + "_balance"), (bl + bg)), DataEntry((bf + "_starttime"), k)]
389+ }
390+ let bm = if (if ((bd == "-"))
391+ then (be == 0)
392+ else false)
393+ then bk
394+ else if (!(getBooleanValue(this, (bd + "_status"))))
395+ then throw("The status of client #8 is inactive!")
396+ else if ((0 >= be))
397+ then throw("Zero or negative amounts are not allowed.")
398+ else {
399+ let bn = getIntegerValue(this, (bd + "_balance"))
400+[DataEntry((bd + "_balance"), (bn + be)), DataEntry((bd + "_starttime"), k)] :: bk
401+ }
402+ let bo = if (if ((bb == "-"))
403+ then (bc == 0)
404+ else false)
405+ then bm
406+ else if (!(getBooleanValue(this, (bb + "_status"))))
407+ then throw("The status of client #7 is inactive!")
408+ else if ((0 >= bc))
409+ then throw("Zero or negative amounts are not allowed.")
410+ else {
411+ let bp = getIntegerValue(this, (bb + "_balance"))
412+[DataEntry((bb + "_balance"), (bp + bc)), DataEntry((bb + "_starttime"), k)] :: bm
413+ }
414+ let bq = if (if ((aZ == "-"))
415+ then (ba == 0)
416+ else false)
417+ then bo
418+ else if (!(getBooleanValue(this, (aZ + "_status"))))
419+ then throw("The status of client #6 is inactive!")
420+ else if ((0 >= ba))
421+ then throw("Zero or negative amounts are not allowed.")
422+ else {
423+ let br = getIntegerValue(this, (aZ + "_balance"))
424+[DataEntry((aZ + "_balance"), (br + ba)), DataEntry((aZ + "_starttime"), k)] :: bo
425+ }
426+ let bs = if (if ((aX == "-"))
427+ then (aY == 0)
428+ else false)
429+ then bq
430+ else if (!(getBooleanValue(this, (aX + "_status"))))
431+ then throw("The status of client #5 is inactive!")
432+ else if ((0 >= aY))
433+ then throw("Zero or negative amounts are not allowed.")
434+ else {
435+ let bt = getIntegerValue(this, (aX + "_balance"))
436+[DataEntry((aX + "_balance"), (bt + aY)), DataEntry((aX + "_starttime"), k)] :: bq
437+ }
438+ let bu = if (if ((aV == "-"))
439+ then (aW == 0)
440+ else false)
441+ then bs
442+ else if (!(getBooleanValue(this, (aV + "_status"))))
443+ then throw("The status of client #4 is inactive!")
444+ else if ((0 >= aW))
445+ then throw("Zero or negative amounts are not allowed.")
446+ else {
447+ let bv = getIntegerValue(this, (aV + "_balance"))
448+[DataEntry((aV + "_balance"), (bv + aW)), DataEntry((aV + "_starttime"), k)] :: bs
449+ }
450+ let bw = if (if ((aT == "-"))
451+ then (aU == 0)
452+ else false)
453+ then bu
454+ else if (!(getBooleanValue(this, (aT + "_status"))))
455+ then throw("The status of client #3 is inactive!")
456+ else if ((0 >= aU))
457+ then throw("Zero or negative amounts are not allowed.")
458+ else {
459+ let bx = getIntegerValue(this, (aT + "_balance"))
460+[DataEntry((aT + "_balance"), (bx + aU)), DataEntry((aT + "_starttime"), k)] :: bu
461+ }
462+ let by = if (if ((aR == "-"))
463+ then (aS == 0)
464+ else false)
465+ then bw
466+ else if (!(getBooleanValue(this, (aR + "_status"))))
467+ then throw("The status of client #2 is inactive!")
468+ else if ((0 >= aS))
469+ then throw("Zero or negative amounts are not allowed.")
470+ else {
471+ let bz = getIntegerValue(this, (aR + "_balance"))
472+[DataEntry((aR + "_balance"), (bz + aS)), DataEntry((aR + "_starttime"), k)] :: bw
473+ }
474+ let bA = if (if ((aP == "-"))
475+ then (aQ == 0)
476+ else false)
477+ then by
478+ else if (!(getBooleanValue(this, (aP + "_status"))))
479+ then throw("The status of client #1 is inactive!")
480+ else if ((0 >= aQ))
481+ then throw("Zero or negative amounts are not allowed.")
482+ else {
483+ let bB = getIntegerValue(this, (aP + "_balance"))
484+[DataEntry((aP + "_balance"), (bB + aQ)), DataEntry((aP + "_starttime"), k)] :: by
485+ }
486+ let bC = if (if ((aN == "-"))
487+ then (aO == 0)
488+ else false)
489+ then bA
490+ else if (!(getBooleanValue(this, (aN + "_status"))))
491+ then throw("The status of client #0 is inactive!")
492+ else if ((0 >= aO))
493+ then throw("Zero or negative amounts are not allowed.")
494+ else {
495+ let bD = getIntegerValue(this, (aN + "_balance"))
496+[DataEntry((aN + "_balance"), (bD + aO)), DataEntry((aN + "_starttime"), k)] :: bA
497+ }
498+ WriteSet(DataEntry((av + "_balance"), (aw + bi)) :: bC)
499+ }
313500 }
314501
315502
316-@Verifier(au)
317-func av () = {
318- let ag = au
319- if ($isInstanceOf(ag, "TransferTransaction"))
503+
504+@Callable(at)
505+func setMinStake (aE) = if (if ((at.callerPublicKey != g))
506+ then (at.callerPublicKey != h)
507+ else false)
508+ then throw("Only the administrator can set and modify minStake!")
509+ else if (isDefined(at.payment))
510+ then throw("Please do not attach payment when setting up minStake.")
511+ else {
512+ let av = toBase58String(this.bytes)
513+ if (isDefined(getString(this, (av + "_address"))))
514+ then WriteSet([DataEntry((av + "_starttime"), aE), DataEntry((av + "_updatetime"), i)])
515+ else WriteSet([DataEntry((av + "_address"), av), DataEntry((av + "_balance"), 0), DataEntry((av + "_starttime"), aE), DataEntry((av + "_status"), false), DataEntry((av + "_updatetime"), i)])
516+ }
517+
518+
519+@Verifier(bE)
520+func bF () = {
521+ let az = bE
522+ if ($isInstanceOf(az, "TransferTransaction"))
320523 then {
321- let aw = ag
322- if (if (if ((aw.assetId != f))
323- then (aw.feeAssetId != f)
524+ let bG = az
525+ if (if (if ((bG.assetId != f))
526+ then (bG.feeAssetId != f)
324527 else false)
325- then sigVerify(aw.bodyBytes, aw.proofs[2], g)
528+ then sigVerify(bG.bodyBytes, bG.proofs[2], g)
326529 else false)
327- then sigVerify(aw.bodyBytes, aw.proofs[1], h)
530+ then sigVerify(bG.bodyBytes, bG.proofs[1], h)
328531 else false
329532 }
330- else if ($isInstanceOf(ag, "SetScriptTransaction"))
533+ else if ($isInstanceOf(az, "SetScriptTransaction"))
331534 then {
332- let ax = ag
333- if (sigVerify(ax.bodyBytes, ax.proofs[2], g))
334- then sigVerify(ax.bodyBytes, ax.proofs[1], h)
535+ let bH = az
536+ if (sigVerify(bH.bodyBytes, bH.proofs[2], g))
537+ then sigVerify(bH.bodyBytes, bH.proofs[1], h)
335538 else false
336539 }
337540 else false
338541 }
339542

github/deemru/w8io/873ac7e 
193.98 ms