tx · 5agNi1tt7hGX1nBzZTBUtRAUeH4MeQMkT7rW9gU7DyfJ

3MwyBKGZcdChEK9Z55HwLn3A2EgwEJJpqC1:  -0.01000000 Waves

2024.01.09 14:03 [2923849] smart account 3MwyBKGZcdChEK9Z55HwLn3A2EgwEJJpqC1 > SELF 0.00000000 Waves

{ "type": 13, "id": "5agNi1tt7hGX1nBzZTBUtRAUeH4MeQMkT7rW9gU7DyfJ", "fee": 1000000, "feeAssetId": null, "timestamp": 1704798280005, "version": 2, "chainId": 84, "sender": "3MwyBKGZcdChEK9Z55HwLn3A2EgwEJJpqC1", "senderPublicKey": "7c3qLtcJ7EaPS2JDjXv8MBbd4kpyc6R27wcn5GgvZhur", "proofs": [ "47EhNFkwpwb9JgFpqzojG54RwvQSY5VRgwRU3rrMQceH4QwQdKt7UKLmp87aN8zBwzAEZYfquk3csQthZ9uU9W5P" ], "script": "base64:BgIKCAISBgoECAEBARUADGNvbnRyYWN0RmlsZQIQdmVzdGluZ19uZW8ucmlkZQADU0VQAgJfXwAISURTX0xJU1QJAMwIAgAACQDMCAIAAQkAzAgCAAIJAMwIAgADCQDMCAIABAkAzAgCAAUJAMwIAgAGCQDMCAIABwkAzAgCAAgJAMwIAgAJCQDMCAIACgkAzAgCAAsJAMwIAgAMCQDMCAIADQkAzAgCAA4JAMwIAgAPCQDMCAIAEAkAzAgCABEJAMwIAgASCQDMCAIAEwkAzAgCABQJAMwIAgAVCQDMCAIAFgkAzAgCABcJAMwIAgAYCQDMCAIAGQkAzAgCABoJAMwIAgAbCQDMCAIAHAkAzAgCAB0FA25pbAARTUFYX1ZFU1RJTkdfQ09VTlQJAJADAQUISURTX0xJU1QBCHRocm93RXJyAQNtc2cJAAIBCQCsAgIJAKwCAgUMY29udHJhY3RGaWxlAgI6IAUDbXNnAAprZXlBc3NldElkCQC5CQIJAMwIAgICJXMJAMwIAgIHYXNzZXRJZAUDbmlsBQNTRVAADWFzc2V0SWRTdHJpbmcJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUKa2V5QXNzZXRJZAIFV0FWRVMADGFzc2V0SWRCeXRlcwMJAAACBQ1hc3NldElkU3RyaW5nAgVXQVZFUwUEdW5pdAkA2QQBBQ1hc3NldElkU3RyaW5nAAxrZXlBZG1pbkxpc3QJALkJAgkAzAgCAgIlcwkAzAgCAglhZG1pbkxpc3QFA25pbAUDU0VQAAlhZG1pbkxpc3QEByRtYXRjaDAJAJ0IAgUEdGhpcwUMa2V5QWRtaW5MaXN0AwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkAtQkCBQFzBQNTRVAFA25pbAEUaXNWYWxpZEFkZHJlc3NTdHJpbmcBDWFkZHJlc3NTdHJpbmcEByRtYXRjaDAJAKYIAQUNYWRkcmVzc1N0cmluZwMJAAECBQckbWF0Y2gwAgdBZGRyZXNzBAFhBQckbWF0Y2gwBgcBDmtleVVzZXJWZXN0aW5nAgt1c2VyQWRkcmVzcwJpZAQGY2hlY2tzCQDMCAIDCQEUaXNWYWxpZEFkZHJlc3NTdHJpbmcBBQt1c2VyQWRkcmVzcwYJAQh0aHJvd0VycgEJALkJAgkAzAgCAhVhZGRyZXNzIGlzIG5vdCB2YWxpZDoJAMwIAgULdXNlckFkZHJlc3MFA25pbAIBIAkAzAgCAwMJAGcCBQJpZAAACQBmAgURTUFYX1ZFU1RJTkdfQ09VTlQFAmlkBwYJAQh0aHJvd0VycgEJALkJAgkAzAgCAhZpZCBzaG91bGQgYmUgbGVzcyB0aGFuCQDMCAIJAKQDAQURTUFYX1ZFU1RJTkdfQ09VTlQJAMwIAgIEZ290OgkAzAgCCQCkAwEFAmlkBQNuaWwCASAFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwkAuQkCCQDMCAICBCVzJWQJAMwIAgULdXNlckFkZHJlc3MJAMwIAgkApAMBBQJpZAUDbmlsBQNTRVAJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BEWZvcm1hdFVzZXJWZXN0aW5nAw12ZXN0aW5nQW1vdW50CnN0YXJ0QmxvY2sKbG9ja0xlbmd0aAQGY2hlY2tzCQDMCAIDCQBnAgUNdmVzdGluZ0Ftb3VudAAABgkBCHRocm93RXJyAQIhdmVzdGluZyBhbW91bnQgY2Fubm90IGJlIG5lZ2F0aXZlCQDMCAIDCQBnAgUKc3RhcnRCbG9jawAABgkBCHRocm93RXJyAQIec3RhcnQgYmxvY2sgY2Fubm90IGJlIG5lZ2F0aXZlCQDMCAIDCQBnAgUKbG9ja0xlbmd0aAAABgkBCHRocm93RXJyAQIebG9jayBsZW5ndGggY2Fubm90IGJlIG5lZ2F0aXZlBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MJALkJAgkAzAgCAgolZCVkJWQlZCVkCQDMCAIJAKQDAQUNdmVzdGluZ0Ftb3VudAkAzAgCCQCkAwEFCnN0YXJ0QmxvY2sJAMwIAgkApAMBBQpsb2NrTGVuZ3RoBQNuaWwFA1NFUAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEQcGFyc2VVc2VyVmVzdGluZwILdXNlckFkZHJlc3MCaWQEByRtYXRjaDAJAJ0IAgUEdGhpcwkBDmtleVVzZXJWZXN0aW5nAgULdXNlckFkZHJlc3MFAmlkAwkAAQIFByRtYXRjaDACBlN0cmluZwQJcmF3U3RyaW5nBQckbWF0Y2gwBAtzcGxpdFN0cmluZwkAtQkCBQlyYXdTdHJpbmcFA1NFUAQNdmVzdGluZ0Ftb3VudAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFC3NwbGl0U3RyaW5nAAEECnN0YXJ0QmxvY2sJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQtzcGxpdFN0cmluZwACBApsb2NrTGVuZ3RoCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgULc3BsaXRTdHJpbmcAAwkAlQoDBQ12ZXN0aW5nQW1vdW50BQpzdGFydEJsb2NrBQpsb2NrTGVuZ3RoCQCVCgMAAAAAAAABEWtleVZlc3RpbmdIaXN0b3J5AwZhY3Rpb24LdXNlckFkZHJlc3MEdHhJZAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQZhY3Rpb24JAMwIAgULdXNlckFkZHJlc3MJAMwIAgUEdHhJZAUDbmlsBQNTRVABEmNhbGNVbmxvY2tlZEFtb3VudAMGYW1vdW50CnN0YXJ0QmxvY2sKbG9ja0xlbmd0aAQNZWxhcHNlZEJsb2NrcwkAZQIFBmhlaWdodAUKc3RhcnRCbG9jawQOdW5sb2NrZWRBbW91bnQDAwkBAiE9AgUKbG9ja0xlbmd0aAAACQBmAgUNZWxhcHNlZEJsb2NrcwAABwkAlwMBCQDMCAIJAGsDBQZhbW91bnQFDWVsYXBzZWRCbG9ja3MFCmxvY2tMZW5ndGgJAMwIAgUGYW1vdW50BQNuaWwAAAkAlAoCBQ51bmxvY2tlZEFtb3VudAkAZQIFBmFtb3VudAUOdW5sb2NrZWRBbW91bnQBFWdldFVzZXJVbmxvY2tlZEFtb3VudAILdXNlckFkZHJlc3MCaWQECyR0MDI3NDcyODI2CQEQcGFyc2VVc2VyVmVzdGluZwIFC3VzZXJBZGRyZXNzBQJpZAQNdmVzdGluZ0Ftb3VudAgFCyR0MDI3NDcyODI2Al8xBApzdGFydEJsb2NrCAULJHQwMjc0NzI4MjYCXzIECmxvY2tMZW5ndGgIBQskdDAyNzQ3MjgyNgJfMwQLJHQwMjgyOTI5MjYJARJjYWxjVW5sb2NrZWRBbW91bnQDBQ12ZXN0aW5nQW1vdW50BQpzdGFydEJsb2NrBQpsb2NrTGVuZ3RoBA51bmxvY2tlZEFtb3VudAgFCyR0MDI4MjkyOTI2Al8xBA9yZW1haW5pbmdBbW91bnQIBQskdDAyODI5MjkyNgJfMgkAlAoCBQ51bmxvY2tlZEFtb3VudAUPcmVtYWluaW5nQW1vdW50ARNnZXRVc2VyQ2xhaW1BY3Rpb25zAgt1c2VyQWRkcmVzcwJpZAQLJHQwMzAyOTMxMDgJARBwYXJzZVVzZXJWZXN0aW5nAgULdXNlckFkZHJlc3MFAmlkBA12ZXN0aW5nQW1vdW50CAULJHQwMzAyOTMxMDgCXzEECnN0YXJ0QmxvY2sIBQskdDAzMDI5MzEwOAJfMgQKbG9ja0xlbmd0aAgFCyR0MDMwMjkzMTA4Al8zBAskdDAzMTExMzE4OQkBFWdldFVzZXJVbmxvY2tlZEFtb3VudAIFC3VzZXJBZGRyZXNzBQJpZAQOdW5sb2NrZWRBbW91bnQIBQskdDAzMTExMzE4OQJfMQQPcmVtYWluaW5nQW1vdW50CAULJHQwMzExMTMxODkCXzIED3JlbWFpbmluZ0Jsb2NrcwkAlgMBCQDMCAIJAGUCCQBkAgUKc3RhcnRCbG9jawUKbG9ja0xlbmd0aAUGaGVpZ2h0CQDMCAIAAAUDbmlsBAdhY3Rpb25zAwkBAiE9AgUOdW5sb2NrZWRBbW91bnQAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQt1c2VyQWRkcmVzcwUOdW5sb2NrZWRBbW91bnQFDGFzc2V0SWRCeXRlcwkAzAgCCQELU3RyaW5nRW50cnkCCQEOa2V5VXNlclZlc3RpbmcCBQt1c2VyQWRkcmVzcwUCaWQJARFmb3JtYXRVc2VyVmVzdGluZwMFD3JlbWFpbmluZ0Ftb3VudAUGaGVpZ2h0BQ9yZW1haW5pbmdCbG9ja3MFA25pbAUDbmlsCQCUCgIFB2FjdGlvbnMFDnVubG9ja2VkQW1vdW50ARRnZXROZXdWZXN0aW5nQWN0aW9ucwULdXNlckFkZHJlc3MCaWQNdmVzdGluZ0Ftb3VudApzdGFydEJsb2NrCmxvY2tMZW5ndGgJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDmtleVVzZXJWZXN0aW5nAgULdXNlckFkZHJlc3MFAmlkCQERZm9ybWF0VXNlclZlc3RpbmcDBQ12ZXN0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AgEgBQthdmFpbGFibGVJZAEBaQEOdmVzdGluZ0ZvclVzZXIEC3VzZXJBZGRyZXNzDXZlc3RpbmdBbW91bnQKc3RhcnRCbG9jawpsb2NrTGVuZ3RoBAVjaGVjawkAzAgCAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQYJAQh0aHJvd0VycgECGHNob3VsZCBiZSBvbmx5IDEgcGF5bWVudAkAzAgCAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUMYXNzZXRJZEJ5dGVzBgkBCHRocm93RXJyAQkAuQkCCQDMCAICG3BheW1lbnQgYXNzZXRJZCBzaG91bGQgYmU6IAkAzAgCBQ1hc3NldElkU3RyaW5nBQNuaWwCASAJAMwIAgMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAUNdmVzdGluZ0Ftb3VudAYJAQh0aHJvd0VycgECL3BheW1lbnQgYW1vdW50IHNob3VsZCBiZSBlcXVhbCB0byB2ZXN0aW5nQW1vdW50CQDMCAIDAwkBAiE9AgUJYWRtaW5MaXN0BQNuaWwGCQEPY29udGFpbnNFbGVtZW50AgUJYWRtaW5MaXN0CQClCAEIBQFpBmNhbGxlcgYJAQh0aHJvd0VycgECEXlvdSBtdXN0IGJlIGFkbWluBQNuaWwDCQAAAgUFY2hlY2sFBWNoZWNrBAJpZAkBFWdldEF2YWlsYWJsZVZlc3RpbmdJZAEFC3VzZXJBZGRyZXNzCQEUZ2V0TmV3VmVzdGluZ0FjdGlvbnMFBQt1c2VyQWRkcmVzcwUCaWQFDXZlc3RpbmdBbW91bnQFCnN0YXJ0QmxvY2sFCmxvY2tMZW5ndGgJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4Afbp8Cg==", "height": 2923849, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2WjMxprX5yG784LJtQB91kBdNQBh7hvxbfNojjLGm9oq Next: 3LB3tmSRUfrmX3LjX6WwGzUsF7o4VWnoYtGsiBYNjQcU Diff:
OldNewDifferences
2020 then unit
2121 else fromBase58String(h)
2222
23-func j (k) = {
24- let l = addressFromString(k)
23+let j = makeString(["%s", "adminList"], b)
24+
25+let k = {
26+ let l = getString(this, j)
27+ if ($isInstanceOf(l, "String"))
28+ then {
29+ let m = l
30+ split(m, b)
31+ }
32+ else nil
33+ }
34+
35+func n (o) = {
36+ let l = addressFromString(o)
2537 if ($isInstanceOf(l, "Address"))
2638 then {
27- let m = l
39+ let p = l
2840 true
2941 }
3042 else false
3143 }
3244
3345
34-func n (o,p) = {
35- let q = [if (j(o))
46+func q (r,s) = {
47+ let t = [if (n(r))
3648 then true
37- else e(makeString(["address is not valid:", o], " ")), if (if ((p >= 0))
38- then (d > p)
49+ else e(makeString(["address is not valid:", r], " ")), if (if ((s >= 0))
50+ then (d > s)
3951 else false)
4052 then true
41- else e(makeString(["id should be less than", toString(d), "got:", toString(p)], " "))]
42- if ((q == q))
43- then makeString(["%s%d", o, toString(p)], b)
53+ else e(makeString(["id should be less than", toString(d), "got:", toString(s)], " "))]
54+ if ((t == t))
55+ then makeString(["%s%d", r, toString(s)], b)
4456 else throw("Strict value is not equal to itself.")
4557 }
4658
4759
48-func r (s,t,u) = {
49- let q = [if ((s >= 0))
60+func u (v,w,x) = {
61+ let t = [if ((v >= 0))
5062 then true
51- else e("vesting amount cannot be negative"), if ((t >= 0))
63+ else e("vesting amount cannot be negative"), if ((w >= 0))
5264 then true
53- else e("start block cannot be negative"), if ((u >= 0))
65+ else e("start block cannot be negative"), if ((x >= 0))
5466 then true
5567 else e("lock length cannot be negative")]
56- if ((q == q))
57- then makeString(["%d%d%d%d%d", toString(s), toString(t), toString(u)], b)
68+ if ((t == t))
69+ then makeString(["%d%d%d%d%d", toString(v), toString(w), toString(x)], b)
5870 else throw("Strict value is not equal to itself.")
5971 }
6072
6173
62-func v (o,p) = {
63- let l = getString(this, n(o, p))
74+func y (r,s) = {
75+ let l = getString(this, q(r, s))
6476 if ($isInstanceOf(l, "String"))
6577 then {
66- let w = l
67- let x = split(w, b)
68- let s = parseIntValue(x[1])
69- let t = parseIntValue(x[2])
70- let u = parseIntValue(x[3])
71- $Tuple3(s, t, u)
78+ let z = l
79+ let A = split(z, b)
80+ let v = parseIntValue(A[1])
81+ let w = parseIntValue(A[2])
82+ let x = parseIntValue(A[3])
83+ $Tuple3(v, w, x)
7284 }
7385 else $Tuple3(0, 0, 0)
7486 }
7587
7688
77-func y (z,o,A) = makeString(["%s%s%s", z, o, A], b)
89+func B (C,r,D) = makeString(["%s%s%s", C, r, D], b)
7890
7991
80-func B (C,t,u) = {
81- let D = (height - t)
82- let E = if (if ((u != 0))
83- then (D > 0)
92+func E (F,w,x) = {
93+ let G = (height - w)
94+ let H = if (if ((x != 0))
95+ then (G > 0)
8496 else false)
85- then min([fraction(C, D, u), C])
97+ then min([fraction(F, G, x), F])
8698 else 0
87- $Tuple2(E, (C - E))
99+ $Tuple2(H, (F - H))
88100 }
89101
90102
91-func F (o,p) = {
92- let G = v(o, p)
93- let s = G._1
94- let t = G._2
95- let u = G._3
96- let H = B(s, t, u)
97- let E = H._1
98- let I = H._2
99- $Tuple2(E, I)
103+func I (r,s) = {
104+ let J = y(r, s)
105+ let v = J._1
106+ let w = J._2
107+ let x = J._3
108+ let K = E(v, w, x)
109+ let H = K._1
110+ let L = K._2
111+ $Tuple2(H, L)
100112 }
101113
102114
103-func J (o,p) = {
104- let K = v(o, p)
105- let s = K._1
106- let t = K._2
107- let u = K._3
108- let L = F(o, p)
109- let E = L._1
110- let I = L._2
111- let M = max([((t + u) - height), 0])
112- let N = if ((E != 0))
113- then [ScriptTransfer(addressFromStringValue(o), E, i), StringEntry(n(o, p), r(I, height, M))]
115+func M (r,s) = {
116+ let N = y(r, s)
117+ let v = N._1
118+ let w = N._2
119+ let x = N._3
120+ let O = I(r, s)
121+ let H = O._1
122+ let L = O._2
123+ let P = max([((w + x) - height), 0])
124+ let Q = if ((H != 0))
125+ then [ScriptTransfer(addressFromStringValue(r), H, i), StringEntry(q(r, s), u(L, height, P))]
114126 else nil
115- $Tuple2(N, E)
127+ $Tuple2(Q, H)
116128 }
117129
118130
119-func O (o,p,s,t,u) = [StringEntry(n(o, p), r(s, t, u))]
131+func R (r,s,v,w,x) = [StringEntry(q(r, s), u(v, w, x))]
120132
121133
122-func P (o) = {
123- func Q (R,m) = {
124- let S = R
125- let T = S._1
126- let U = S._2
127- let V = J(o, m)
134+func S (r) = {
135+ func T (U,p) = {
136+ let V = U
128137 let W = V._1
129138 let X = V._2
130- $Tuple2((T ++ W), (U + X))
139+ let Y = M(r, p)
140+ let Z = Y._1
141+ let aa = Y._2
142+ $Tuple2((W ++ Z), (X + aa))
131143 }
132144
133- let Y = c
134- let Z = size(Y)
135- let aa = $Tuple2(nil, 0)
136- func ab (ac,ad) = if ((ad >= Z))
137- then ac
138- else Q(ac, Y[ad])
145+ let ab = c
146+ let ac = size(ab)
147+ let ad = $Tuple2(nil, 0)
148+ func ae (af,ag) = if ((ag >= ac))
149+ then af
150+ else T(af, ab[ag])
139151
140- func ae (ac,ad) = if ((ad >= Z))
141- then ac
152+ func ah (af,ag) = if ((ag >= ac))
153+ then af
142154 else throw("List size exceeds 30")
143155
144- ae(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(aa, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30)
156+ ah(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ad, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30)
145157 }
146158
147159
148-func af (o) = {
149- func ag (ah,p) = {
150- let ai = v(o, p)
151- let s = ai._1
152- let t = ai._2
153- let u = ai._3
154- if ((s > 0))
155- then ah
156- else if ((ah == -1))
157- then p
158- else min([ah, p])
160+func ai (r) = {
161+ func aj (ak,s) = {
162+ let al = y(r, s)
163+ let v = al._1
164+ let w = al._2
165+ let x = al._3
166+ if ((v > 0))
167+ then ak
168+ else if ((ak == -1))
169+ then s
170+ else min([ak, s])
159171 }
160172
161- let ah = {
162- let Y = c
163- let Z = size(Y)
164- let aa = -1
165- func ab (ac,ad) = if ((ad >= Z))
166- then ac
167- else ag(ac, Y[ad])
173+ let ak = {
174+ let ab = c
175+ let ac = size(ab)
176+ let ad = -1
177+ func ae (af,ag) = if ((ag >= ac))
178+ then af
179+ else aj(af, ab[ag])
168180
169- func ae (ac,ad) = if ((ad >= Z))
170- then ac
181+ func ah (af,ag) = if ((ag >= ac))
182+ then af
171183 else throw("List size exceeds 30")
172184
173- ae(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(aa, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30)
185+ ah(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ad, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30)
174186 }
175- if ((ah == -1))
176- then e(makeString(["user exceeded max vesting count: ", o], " "))
177- else ah
187+ if ((ak == -1))
188+ then e(makeString(["user exceeded max vesting count: ", r], " "))
189+ else ak
178190 }
179191
180192
181-@Callable(aj)
182-func foo (o,p,s,t,u) = O(o, p, s, t, u)
193+@Callable(am)
194+func vestingForUser (r,v,w,x) = {
195+ let an = [if ((size(am.payments) == 1))
196+ then true
197+ else e("should be only 1 payment"), if ((am.payments[0].assetId == i))
198+ then true
199+ else e(makeString(["payment assetId should be: ", h], " ")), if ((am.payments[0].amount == v))
200+ then true
201+ else e("payment amount should be equal to vestingAmount"), if (if ((k != nil))
202+ then true
203+ else containsElement(k, toString(am.caller)))
204+ then true
205+ else e("you must be admin")]
206+ if ((an == an))
207+ then {
208+ let s = ai(r)
209+ R(r, s, v, w, x)
210+ }
211+ else throw("Strict value is not equal to itself.")
212+ }
183213
184214
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "vesting_neo.ride"
55
66 let b = "__"
77
88 let c = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
99
1010 let d = size(c)
1111
1212 func e (f) = throw(((a + ": ") + f))
1313
1414
1515 let g = makeString(["%s", "assetId"], b)
1616
1717 let h = valueOrElse(getString(this, g), "WAVES")
1818
1919 let i = if ((h == "WAVES"))
2020 then unit
2121 else fromBase58String(h)
2222
23-func j (k) = {
24- let l = addressFromString(k)
23+let j = makeString(["%s", "adminList"], b)
24+
25+let k = {
26+ let l = getString(this, j)
27+ if ($isInstanceOf(l, "String"))
28+ then {
29+ let m = l
30+ split(m, b)
31+ }
32+ else nil
33+ }
34+
35+func n (o) = {
36+ let l = addressFromString(o)
2537 if ($isInstanceOf(l, "Address"))
2638 then {
27- let m = l
39+ let p = l
2840 true
2941 }
3042 else false
3143 }
3244
3345
34-func n (o,p) = {
35- let q = [if (j(o))
46+func q (r,s) = {
47+ let t = [if (n(r))
3648 then true
37- else e(makeString(["address is not valid:", o], " ")), if (if ((p >= 0))
38- then (d > p)
49+ else e(makeString(["address is not valid:", r], " ")), if (if ((s >= 0))
50+ then (d > s)
3951 else false)
4052 then true
41- else e(makeString(["id should be less than", toString(d), "got:", toString(p)], " "))]
42- if ((q == q))
43- then makeString(["%s%d", o, toString(p)], b)
53+ else e(makeString(["id should be less than", toString(d), "got:", toString(s)], " "))]
54+ if ((t == t))
55+ then makeString(["%s%d", r, toString(s)], b)
4456 else throw("Strict value is not equal to itself.")
4557 }
4658
4759
48-func r (s,t,u) = {
49- let q = [if ((s >= 0))
60+func u (v,w,x) = {
61+ let t = [if ((v >= 0))
5062 then true
51- else e("vesting amount cannot be negative"), if ((t >= 0))
63+ else e("vesting amount cannot be negative"), if ((w >= 0))
5264 then true
53- else e("start block cannot be negative"), if ((u >= 0))
65+ else e("start block cannot be negative"), if ((x >= 0))
5466 then true
5567 else e("lock length cannot be negative")]
56- if ((q == q))
57- then makeString(["%d%d%d%d%d", toString(s), toString(t), toString(u)], b)
68+ if ((t == t))
69+ then makeString(["%d%d%d%d%d", toString(v), toString(w), toString(x)], b)
5870 else throw("Strict value is not equal to itself.")
5971 }
6072
6173
62-func v (o,p) = {
63- let l = getString(this, n(o, p))
74+func y (r,s) = {
75+ let l = getString(this, q(r, s))
6476 if ($isInstanceOf(l, "String"))
6577 then {
66- let w = l
67- let x = split(w, b)
68- let s = parseIntValue(x[1])
69- let t = parseIntValue(x[2])
70- let u = parseIntValue(x[3])
71- $Tuple3(s, t, u)
78+ let z = l
79+ let A = split(z, b)
80+ let v = parseIntValue(A[1])
81+ let w = parseIntValue(A[2])
82+ let x = parseIntValue(A[3])
83+ $Tuple3(v, w, x)
7284 }
7385 else $Tuple3(0, 0, 0)
7486 }
7587
7688
77-func y (z,o,A) = makeString(["%s%s%s", z, o, A], b)
89+func B (C,r,D) = makeString(["%s%s%s", C, r, D], b)
7890
7991
80-func B (C,t,u) = {
81- let D = (height - t)
82- let E = if (if ((u != 0))
83- then (D > 0)
92+func E (F,w,x) = {
93+ let G = (height - w)
94+ let H = if (if ((x != 0))
95+ then (G > 0)
8496 else false)
85- then min([fraction(C, D, u), C])
97+ then min([fraction(F, G, x), F])
8698 else 0
87- $Tuple2(E, (C - E))
99+ $Tuple2(H, (F - H))
88100 }
89101
90102
91-func F (o,p) = {
92- let G = v(o, p)
93- let s = G._1
94- let t = G._2
95- let u = G._3
96- let H = B(s, t, u)
97- let E = H._1
98- let I = H._2
99- $Tuple2(E, I)
103+func I (r,s) = {
104+ let J = y(r, s)
105+ let v = J._1
106+ let w = J._2
107+ let x = J._3
108+ let K = E(v, w, x)
109+ let H = K._1
110+ let L = K._2
111+ $Tuple2(H, L)
100112 }
101113
102114
103-func J (o,p) = {
104- let K = v(o, p)
105- let s = K._1
106- let t = K._2
107- let u = K._3
108- let L = F(o, p)
109- let E = L._1
110- let I = L._2
111- let M = max([((t + u) - height), 0])
112- let N = if ((E != 0))
113- then [ScriptTransfer(addressFromStringValue(o), E, i), StringEntry(n(o, p), r(I, height, M))]
115+func M (r,s) = {
116+ let N = y(r, s)
117+ let v = N._1
118+ let w = N._2
119+ let x = N._3
120+ let O = I(r, s)
121+ let H = O._1
122+ let L = O._2
123+ let P = max([((w + x) - height), 0])
124+ let Q = if ((H != 0))
125+ then [ScriptTransfer(addressFromStringValue(r), H, i), StringEntry(q(r, s), u(L, height, P))]
114126 else nil
115- $Tuple2(N, E)
127+ $Tuple2(Q, H)
116128 }
117129
118130
119-func O (o,p,s,t,u) = [StringEntry(n(o, p), r(s, t, u))]
131+func R (r,s,v,w,x) = [StringEntry(q(r, s), u(v, w, x))]
120132
121133
122-func P (o) = {
123- func Q (R,m) = {
124- let S = R
125- let T = S._1
126- let U = S._2
127- let V = J(o, m)
134+func S (r) = {
135+ func T (U,p) = {
136+ let V = U
128137 let W = V._1
129138 let X = V._2
130- $Tuple2((T ++ W), (U + X))
139+ let Y = M(r, p)
140+ let Z = Y._1
141+ let aa = Y._2
142+ $Tuple2((W ++ Z), (X + aa))
131143 }
132144
133- let Y = c
134- let Z = size(Y)
135- let aa = $Tuple2(nil, 0)
136- func ab (ac,ad) = if ((ad >= Z))
137- then ac
138- else Q(ac, Y[ad])
145+ let ab = c
146+ let ac = size(ab)
147+ let ad = $Tuple2(nil, 0)
148+ func ae (af,ag) = if ((ag >= ac))
149+ then af
150+ else T(af, ab[ag])
139151
140- func ae (ac,ad) = if ((ad >= Z))
141- then ac
152+ func ah (af,ag) = if ((ag >= ac))
153+ then af
142154 else throw("List size exceeds 30")
143155
144- ae(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(aa, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30)
156+ ah(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ad, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30)
145157 }
146158
147159
148-func af (o) = {
149- func ag (ah,p) = {
150- let ai = v(o, p)
151- let s = ai._1
152- let t = ai._2
153- let u = ai._3
154- if ((s > 0))
155- then ah
156- else if ((ah == -1))
157- then p
158- else min([ah, p])
160+func ai (r) = {
161+ func aj (ak,s) = {
162+ let al = y(r, s)
163+ let v = al._1
164+ let w = al._2
165+ let x = al._3
166+ if ((v > 0))
167+ then ak
168+ else if ((ak == -1))
169+ then s
170+ else min([ak, s])
159171 }
160172
161- let ah = {
162- let Y = c
163- let Z = size(Y)
164- let aa = -1
165- func ab (ac,ad) = if ((ad >= Z))
166- then ac
167- else ag(ac, Y[ad])
173+ let ak = {
174+ let ab = c
175+ let ac = size(ab)
176+ let ad = -1
177+ func ae (af,ag) = if ((ag >= ac))
178+ then af
179+ else aj(af, ab[ag])
168180
169- func ae (ac,ad) = if ((ad >= Z))
170- then ac
181+ func ah (af,ag) = if ((ag >= ac))
182+ then af
171183 else throw("List size exceeds 30")
172184
173- ae(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(aa, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30)
185+ ah(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ad, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30)
174186 }
175- if ((ah == -1))
176- then e(makeString(["user exceeded max vesting count: ", o], " "))
177- else ah
187+ if ((ak == -1))
188+ then e(makeString(["user exceeded max vesting count: ", r], " "))
189+ else ak
178190 }
179191
180192
181-@Callable(aj)
182-func foo (o,p,s,t,u) = O(o, p, s, t, u)
193+@Callable(am)
194+func vestingForUser (r,v,w,x) = {
195+ let an = [if ((size(am.payments) == 1))
196+ then true
197+ else e("should be only 1 payment"), if ((am.payments[0].assetId == i))
198+ then true
199+ else e(makeString(["payment assetId should be: ", h], " ")), if ((am.payments[0].amount == v))
200+ then true
201+ else e("payment amount should be equal to vestingAmount"), if (if ((k != nil))
202+ then true
203+ else containsElement(k, toString(am.caller)))
204+ then true
205+ else e("you must be admin")]
206+ if ((an == an))
207+ then {
208+ let s = ai(r)
209+ R(r, s, v, w, x)
210+ }
211+ else throw("Strict value is not equal to itself.")
212+ }
183213
184214

github/deemru/w8io/169f3d6 
86.87 ms