tx · FnXXQH1q98dBfE2dCUdkaUivuDJuzMLFmG2BGN2T9tyr

3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj:  -0.01400000 Waves

2020.12.09 07:18 [1300635] smart account 3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj > SELF 0.00000000 Waves

{ "type": 13, "id": "FnXXQH1q98dBfE2dCUdkaUivuDJuzMLFmG2BGN2T9tyr", "fee": 1400000, "feeAssetId": null, "timestamp": 1607487548497, "version": 2, "chainId": 84, "sender": "3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj", "senderPublicKey": "A2m227AHcq7gWfSU59Q3UJaqkEa7SccFYmJuWHbFrrKE", "proofs": [ "72Kx5UioEwauFDThL46FiqDaP4Yj9Fa5GWWsewSKoCd2TMZq6veGCJiRaZeTdijTVDiEV6JxByEPyAeysqnsFDz" ], "script": "base64:AAIEAAAAAAAAADIIAhIECgIECBIDCgEEEgYKBAgICAgSBgoECAgICBIECgIICBIDCgEIEgMKAQgSAwoBCAAAABwBAAAADmdldFN0cmluZ0J5S2V5AAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWECAAAAAAEAAAAPZ2V0Qm9vbGVhbkJ5S2V5AAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQbAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAdCb29sZWFuBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBwEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWkFAAAAByRtYXRjaDAFAAAAAWkAAAAAAAAAAAABAAAAC3ZhbGlkYXRlQ0lEAAAAAQAAAANjaWQDAwkAAGYAAAACAAAAAAAAAABLCQABMQAAAAEFAAAAA2NpZAkAAGYAAAACAAAAAAAAAAA8CQABMQAAAAEJAAGRAAAAAgkABLUAAAACBQAAAANjaWQCAAAAAS8AAAAAAAAAAAAHCQAAZgAAAAIAAAAAAAAAABAJAAExAAAAAQkAAZEAAAACCQAEtQAAAAIFAAAAA2NpZAIAAAABLwAAAAAAAAAAAQcAAAAADmRhcHBSdW5uaW5nS2V5AgAAABRjb25mX2RhcHBfaXNfcnVubmluZwAAAAARbWFpbnRlbmFuY2VNU0dLZXkCAAAAFGNvbmZfbWFpbnRlbmFuY2VfbXNnAAAAABJ3aGl0ZWxpc3RlZG9ubHlLZXkCAAAAFWNvbmZfd2hpdGVsaXN0ZWRfb25seQAAAAALZGFwcFJ1bm5pbmcJAQAAAA9nZXRCb29sZWFuQnlLZXkAAAABBQAAAA5kYXBwUnVubmluZ0tleQAAAAAObWFpbnRlbmFuY2VNU0cJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAAEW1haW50ZW5hbmNlTVNHS2V5AAAAAA93aGl0ZWxpc3RlZG9ubHkJAQAAAA9nZXRCb29sZWFuQnlLZXkAAAABBQAAABJ3aGl0ZWxpc3RlZG9ubHlLZXkAAAAAC3NpZ25Bc3NldElkAQAAACDopWq8yndC8nBhMjVKT0WDubke5ZlnF8Nx6tkLoQSt6wAAAAAFY2hyaXMCAAAAIzNNc0c2alBOQ3JWSlV0WUI3WEpCeFM3dXRXc1hBZjRuOVZwAAAAAARqb2VwAgAAACMzTXptNFZMd3NOOXVad2JUTXpQajNYdXhWNmtFZkFSOFVETgAAAAALdXNlckFsbG93ZWQCAAAAB0FMTE9XRUQAAAAADnVzZXJSZWdpc3RlcmVkAgAAAApSRUdJU1RFUkVEAAAAAAx1c2VyVmVyaWZpZWQCAAAACFZFUklGSUVEAAAAAA11c2VyU3VzcGVuZGVkAgAAAAlTVVNQRU5ERUQAAAAAC3VzZXJSZW1vdmVkAgAAAAdSRU1PVkVEAAAAABJ1c2VyQ2hhbmdlUmVxdWlyZWQCAAAAD0NIQU5HRV9SRVFVSVJFRAAAAAAQdXNlclVucmVnaXN0ZXJlZAIAAAAMVU5SRUdJU1RFUkVEAAAAAAl1c2VyUmVzZXQCAAAABVJFU0VUAQAAAAtrZXlVc2VyQWRkcgAAAAEAAAAGY2FsbGVyCQABLAAAAAICAAAABXVzZXJfBQAAAAZjYWxsZXIBAAAAC2tleVVzZXJOYW1lAAAAAQAAAAZjYWxsZXIJAAEsAAAAAgIAAAAKdXNlcl9uYW1lXwUAAAAGY2FsbGVyAQAAAAtrZXlVc2VyRGVzYwAAAAEAAAAGY2FsbGVyCQABLAAAAAICAAAACnVzZXJfZGVzY18FAAAABmNhbGxlcgEAAAANa2V5VXNlclNvY2lhbAAAAAEAAAAGY2FsbGVyCQABLAAAAAICAAAADHVzZXJfc29jaWFsXwUAAAAGY2FsbGVyAQAAAAxrZXlVc2VyVGh1bWIAAAABAAAABmNhbGxlcgkAASwAAAACAgAAAAt1c2VyX3RodW1iXwUAAAAGY2FsbGVyAQAAAA1rZXlVc2VyU3RhdHVzAAAAAQAAAAZjYWxsZXIJAAEsAAAAAgIAAAAMdXNlcl9zdGF0dXNfBQAAAAZjYWxsZXIBAAAAC2tleVVzZXJEYXRlAAAAAQAAAAZjYWxs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dWJsaWNLZXkEAAAAAmlkCQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQEAAAADWN1cnJlbnRTdGF0dXMJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAA1rZXlVc2VyU3RhdHVzAAAAAQUAAAAHYWRkcmVzcwQAAAALc3RhdHVzVG9TZXQDCQAAAAAAAAIFAAAABnN0YXR1cwUAAAAMdXNlclZlcmlmaWVkBQAAAAx1c2VyVmVyaWZpZWQDCQAAAAAAAAIFAAAABnN0YXR1cwUAAAAOdXNlclJlZ2lzdGVyZWQFAAAADnVzZXJSZWdpc3RlcmVkAwkAAAAAAAACBQAAAAZzdGF0dXMFAAAADXVzZXJTdXNwZW5kZWQFAAAADXVzZXJTdXNwZW5kZWQDCQAAAAAAAAIFAAAABnN0YXR1cwUAAAALdXNlclJlbW92ZWQFAAAAC3VzZXJSZW1vdmVkAwkAAAAAAAACBQAAAAZzdGF0dXMFAAAAC3VzZXJBbGxvd2VkBQAAAAt1c2VyQWxsb3dlZAMJAAAAAAAAAgUAAAAGc3RhdHVzBQAAABJ1c2VyQ2hhbmdlUmVxdWlyZWQFAAAAEnVzZXJDaGFuZ2VSZXF1aXJlZAMDCQAAAAAAAAIFAAAABnN0YXR1cwUAAAAJdXNlclJlc2V0CQAAAAAAAAIFAAAADWN1cnJlbnRTdGF0dXMFAAAAC3VzZXJBbGxvd2VkBwIAAAAACQAAAgAAAAECAAAADlVua25vd24gc3RhdHVzBAAAABB1c2VySXNSZWdpc3RlcmVkCQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQkBAAAAC2tleVVzZXJEYXRlAAAAAQUAAAAHYWRkcmVzcwMDCQAAAAAAAAIFAAAAEHVzZXJJc1JlZ2lzdGVyZWQAAAAAAAAAAAAJAQAAAAIhPQAAAAIFAAAABnN0YXR1cwUAAAALdXNlckFsbG93ZWQHCQAAAgAAAAECAAAAMVlvdSBjYW50IHNldCB0aGlzIHN0YXR1cywgdXNlciBpcyBub3QgcmVnaXN0ZXJlZC4DAwkAAAAAAAACBQAAAA1jdXJyZW50U3RhdHVzBQAAAAt1c2VyQWxsb3dlZAkAAAAAAAACBQAAAAZzdGF0dXMFAAAAC3VzZXJBbGxvd2VkBwkAAAIAAAABAgAA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", "height": 1300635, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HtPZ5acvvyebjJsuQ6QSizzU7PUeR8PET1LjourK54TV Next: 83geuWDdtp2aDqcmBo8swMRtoJoYyMxqj7uXH5LxpQp6 Diff:
OldNewDifferences
108108
109109
110110 @Callable(g)
111-func registrationMode (o) = {
111+func registrationMode (L) = {
112112 let B = toString(addressFromPublicKey(g.callerPublicKey))
113113 let K = toBase58String(g.transactionId)
114114 if (containsElement([q, r, toString(this)], B))
119119
120120
121121 @Callable(g)
122-func registerUser (L,M,N,O) = if (!(m))
122+func registerUser (M,N,O,P) = if (!(m))
123123 then throw(n)
124124 else {
125125 let B = toString(addressFromPublicKey(g.callerPublicKey))
126- let P = a(G(B))
126+ let Q = a(G(B))
127127 let K = toBase58String(g.transactionId)
128- let Q = lastBlock.timestamp
129- if (if ((P == v))
128+ let R = lastBlock.timestamp
129+ if (if ((Q == v))
130130 then true
131- else (P == w))
131+ else (Q == w))
132132 then throw("Account suspended/ removed.")
133- else if ((P == t))
133+ else if ((Q == t))
134134 then throw("Already registered")
135- else if (if ((P == ""))
135+ else if (if ((Q == ""))
136136 then o
137137 else false)
138138 then throw("Can't register, get approved first.")
139- else if (if ((L == ""))
139+ else if (if ((M == ""))
140140 then true
141- else (M == ""))
141+ else (N == ""))
142142 then throw("Name and description cannot be empty")
143- else if ((size(M) > 600))
143+ else if ((size(N) > 600))
144144 then throw("600 Char. max description")
145- else if ((size(L) > 45))
145+ else if ((size(M) > 45))
146146 then throw("45 Char. max name")
147- else [IntegerEntry(H(B), Q), StringEntry(A(B), ((K + "_") + toString(Q))), StringEntry(C(B), L), StringEntry(D(B), M), StringEntry(E(B), O), StringEntry(F(B), N), StringEntry(G(B), t)]
147+ else [IntegerEntry(H(B), R), StringEntry(A(B), ((K + "_") + toString(R))), StringEntry(C(B), M), StringEntry(D(B), N), StringEntry(E(B), P), StringEntry(F(B), O), StringEntry(G(B), t)]
148148 }
149149
150150
151151
152152 @Callable(g)
153-func updateUser (L,M,N,O) = if (!(m))
153+func updateUser (M,N,O,P) = if (!(m))
154154 then throw(n)
155155 else {
156156 let B = toString(addressFromPublicKey(g.callerPublicKey))
157157 let K = toBase58String(g.transactionId)
158- let R = a(G(B))
159- if (if ((R == v))
158+ let S = a(G(B))
159+ if (if ((S == v))
160160 then true
161- else (R == w))
161+ else (S == w))
162162 then throw("Account suspended/ removed.")
163- else if (if ((R == ""))
163+ else if (if ((S == ""))
164164 then true
165- else (R == s))
165+ else (S == s))
166166 then throw("Register first")
167- else if (if ((L == ""))
167+ else if (if ((M == ""))
168168 then true
169- else (M == ""))
169+ else (N == ""))
170170 then throw("Name & description cannot be empty")
171- else if ((size(M) > 600))
171+ else if ((size(N) > 600))
172172 then throw("600 Char. max for description")
173- else if ((size(L) > 45))
173+ else if ((size(M) > 45))
174174 then throw("45 Char. max name")
175- else [StringEntry(C(B), L), StringEntry(D(B), M), StringEntry(E(B), O), StringEntry(F(B), N)]
175+ else [StringEntry(C(B), M), StringEntry(D(B), N), StringEntry(E(B), P), StringEntry(F(B), O)]
176176 }
177177
178178
179179
180180 @Callable(g)
181-func changeUserStatus (S,T) = if (!(m))
181+func changeUserStatus (T,U) = if (!(m))
182182 then throw(n)
183183 else {
184184 let B = toString(addressFromPublicKey(g.callerPublicKey))
185185 let K = toBase58String(g.transactionId)
186- let U = a(G(S))
187- let V = if ((T == u))
186+ let V = a(G(T))
187+ let W = if ((U == u))
188188 then u
189- else if ((T == t))
189+ else if ((U == t))
190190 then t
191- else if ((T == v))
191+ else if ((U == v))
192192 then v
193- else if ((T == w))
193+ else if ((U == w))
194194 then w
195- else if ((T == s))
195+ else if ((U == s))
196196 then s
197- else if ((T == x))
197+ else if ((U == x))
198198 then x
199- else if (if ((T == z))
200- then (U == s)
199+ else if (if ((U == z))
200+ then (V == s)
201201 else false)
202202 then ""
203203 else throw("Unknown status")
204- let W = f(H(S))
205- if (if ((W == 0))
206- then (T != s)
204+ let X = f(H(T))
205+ if (if ((X == 0))
206+ then (U != s)
207207 else false)
208208 then throw("You cant set this status, user is not registered.")
209- else if (if ((U == s))
210- then (T == s)
209+ else if (if ((V == s))
210+ then (U == s)
211211 else false)
212212 then throw("User already allowed")
213- else if (if ((U == t))
214- then (T == s)
213+ else if (if ((V == t))
214+ then (U == s)
215215 else false)
216216 then throw("User already allowed & registered")
217- else if (if ((U == u))
218- then (T == s)
217+ else if (if ((V == u))
218+ then (U == s)
219219 else false)
220220 then throw("User already allowed & verified")
221221 else if (containsElement([q, r, toString(this)], B))
222- then [StringEntry(G(S), V)]
222+ then [StringEntry(G(T), W)]
223223 else throw("Not allowed to change user status")
224224 }
225225
226226
227227
228228 @Callable(g)
229-func creditUser (S) = {
229+func creditUser (T) = {
230230 let B = toString(addressFromPublicKey(g.callerPublicKey))
231231 let K = toBase58String(g.transactionId)
232232 if (containsElement([q, r], B))
233- then [ScriptTransfer(Address(fromBase58String(S)), 30000000000, p)]
233+ then [ScriptTransfer(Address(fromBase58String(T)), 30000000000, p)]
234234 else throw("Not allowed")
235235 }
236236
237237
238238
239239 @Callable(g)
240-func deleteUser (S) = {
240+func deleteUser (T) = {
241241 let B = toString(addressFromPublicKey(g.callerPublicKey))
242242 let K = toBase58String(g.transactionId)
243243 if (containsElement([q, r, toString(this)], B))
244- then [DeleteEntry(H(S)), DeleteEntry(A(S)), DeleteEntry(C(S)), DeleteEntry(D(S)), DeleteEntry(E(S)), DeleteEntry(F(S)), StringEntry(G(S), w)]
244+ then [DeleteEntry(H(T)), DeleteEntry(A(T)), DeleteEntry(C(T)), DeleteEntry(D(T)), DeleteEntry(E(T)), DeleteEntry(F(T)), StringEntry(G(T), w)]
245245 else throw("Not allowed")
246246 }
247247
248248
249249
250250 @Callable(g)
251-func deleteEntry (X) = {
251+func deleteEntry (Y) = {
252252 let B = toString(addressFromPublicKey(g.callerPublicKey))
253253 if ((B == q))
254- then [DeleteEntry(X)]
254+ then [DeleteEntry(Y)]
255255 else throw("no")
256256 }
257257
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b) = {
55 let c = getString(this, b)
66 if ($isInstanceOf(c, "String"))
77 then {
88 let d = c
99 d
1010 }
1111 else ""
1212 }
1313
1414
1515 func e (b) = {
1616 let c = getBoolean(this, b)
1717 if ($isInstanceOf(c, "Boolean"))
1818 then {
1919 let d = c
2020 d
2121 }
2222 else false
2323 }
2424
2525
2626 func f (b) = {
2727 let c = getInteger(this, b)
2828 if ($isInstanceOf(c, "Int"))
2929 then {
3030 let g = c
3131 g
3232 }
3333 else 0
3434 }
3535
3636
3737 func h (i) = if (if ((75 > size(i)))
3838 then (60 > size(split(i, "/")[0]))
3939 else false)
4040 then (16 > size(split(i, "/")[1]))
4141 else false
4242
4343
4444 let j = "conf_dapp_is_running"
4545
4646 let k = "conf_maintenance_msg"
4747
4848 let l = "conf_whitelisted_only"
4949
5050 let m = e(j)
5151
5252 let n = a(k)
5353
5454 let o = e(l)
5555
5656 let p = base58'Gf9t8FA4H3ssoZPCwrg3KwUFCci8zuUFP9ssRsUY3s6a'
5757
5858 let q = "3MsG6jPNCrVJUtYB7XJBxS7utWsXAf4n9Vp"
5959
6060 let r = "3Mzm4VLwsN9uZwbTMzPj3XuxV6kEfAR8UDN"
6161
6262 let s = "ALLOWED"
6363
6464 let t = "REGISTERED"
6565
6666 let u = "VERIFIED"
6767
6868 let v = "SUSPENDED"
6969
7070 let w = "REMOVED"
7171
7272 let x = "CHANGE_REQUIRED"
7373
7474 let y = "UNREGISTERED"
7575
7676 let z = "RESET"
7777
7878 func A (B) = ("user_" + B)
7979
8080
8181 func C (B) = ("user_name_" + B)
8282
8383
8484 func D (B) = ("user_desc_" + B)
8585
8686
8787 func E (B) = ("user_social_" + B)
8888
8989
9090 func F (B) = ("user_thumb_" + B)
9191
9292
9393 func G (B) = ("user_status_" + B)
9494
9595
9696 func H (B) = ("user_date_" + B)
9797
9898
9999 @Callable(g)
100100 func appRunning (I,J) = {
101101 let B = toString(addressFromPublicKey(g.callerPublicKey))
102102 let K = toBase58String(g.transactionId)
103103 if (containsElement([q, r, toString(this)], B))
104104 then [BooleanEntry("conf_dapp_is_running", I), StringEntry("conf_maintenance_msg", J)]
105105 else throw("You are not allowed to change this")
106106 }
107107
108108
109109
110110 @Callable(g)
111-func registrationMode (o) = {
111+func registrationMode (L) = {
112112 let B = toString(addressFromPublicKey(g.callerPublicKey))
113113 let K = toBase58String(g.transactionId)
114114 if (containsElement([q, r, toString(this)], B))
115115 then [BooleanEntry("conf_whitelisted_only", o)]
116116 else throw("You are not allowed to change this")
117117 }
118118
119119
120120
121121 @Callable(g)
122-func registerUser (L,M,N,O) = if (!(m))
122+func registerUser (M,N,O,P) = if (!(m))
123123 then throw(n)
124124 else {
125125 let B = toString(addressFromPublicKey(g.callerPublicKey))
126- let P = a(G(B))
126+ let Q = a(G(B))
127127 let K = toBase58String(g.transactionId)
128- let Q = lastBlock.timestamp
129- if (if ((P == v))
128+ let R = lastBlock.timestamp
129+ if (if ((Q == v))
130130 then true
131- else (P == w))
131+ else (Q == w))
132132 then throw("Account suspended/ removed.")
133- else if ((P == t))
133+ else if ((Q == t))
134134 then throw("Already registered")
135- else if (if ((P == ""))
135+ else if (if ((Q == ""))
136136 then o
137137 else false)
138138 then throw("Can't register, get approved first.")
139- else if (if ((L == ""))
139+ else if (if ((M == ""))
140140 then true
141- else (M == ""))
141+ else (N == ""))
142142 then throw("Name and description cannot be empty")
143- else if ((size(M) > 600))
143+ else if ((size(N) > 600))
144144 then throw("600 Char. max description")
145- else if ((size(L) > 45))
145+ else if ((size(M) > 45))
146146 then throw("45 Char. max name")
147- else [IntegerEntry(H(B), Q), StringEntry(A(B), ((K + "_") + toString(Q))), StringEntry(C(B), L), StringEntry(D(B), M), StringEntry(E(B), O), StringEntry(F(B), N), StringEntry(G(B), t)]
147+ else [IntegerEntry(H(B), R), StringEntry(A(B), ((K + "_") + toString(R))), StringEntry(C(B), M), StringEntry(D(B), N), StringEntry(E(B), P), StringEntry(F(B), O), StringEntry(G(B), t)]
148148 }
149149
150150
151151
152152 @Callable(g)
153-func updateUser (L,M,N,O) = if (!(m))
153+func updateUser (M,N,O,P) = if (!(m))
154154 then throw(n)
155155 else {
156156 let B = toString(addressFromPublicKey(g.callerPublicKey))
157157 let K = toBase58String(g.transactionId)
158- let R = a(G(B))
159- if (if ((R == v))
158+ let S = a(G(B))
159+ if (if ((S == v))
160160 then true
161- else (R == w))
161+ else (S == w))
162162 then throw("Account suspended/ removed.")
163- else if (if ((R == ""))
163+ else if (if ((S == ""))
164164 then true
165- else (R == s))
165+ else (S == s))
166166 then throw("Register first")
167- else if (if ((L == ""))
167+ else if (if ((M == ""))
168168 then true
169- else (M == ""))
169+ else (N == ""))
170170 then throw("Name & description cannot be empty")
171- else if ((size(M) > 600))
171+ else if ((size(N) > 600))
172172 then throw("600 Char. max for description")
173- else if ((size(L) > 45))
173+ else if ((size(M) > 45))
174174 then throw("45 Char. max name")
175- else [StringEntry(C(B), L), StringEntry(D(B), M), StringEntry(E(B), O), StringEntry(F(B), N)]
175+ else [StringEntry(C(B), M), StringEntry(D(B), N), StringEntry(E(B), P), StringEntry(F(B), O)]
176176 }
177177
178178
179179
180180 @Callable(g)
181-func changeUserStatus (S,T) = if (!(m))
181+func changeUserStatus (T,U) = if (!(m))
182182 then throw(n)
183183 else {
184184 let B = toString(addressFromPublicKey(g.callerPublicKey))
185185 let K = toBase58String(g.transactionId)
186- let U = a(G(S))
187- let V = if ((T == u))
186+ let V = a(G(T))
187+ let W = if ((U == u))
188188 then u
189- else if ((T == t))
189+ else if ((U == t))
190190 then t
191- else if ((T == v))
191+ else if ((U == v))
192192 then v
193- else if ((T == w))
193+ else if ((U == w))
194194 then w
195- else if ((T == s))
195+ else if ((U == s))
196196 then s
197- else if ((T == x))
197+ else if ((U == x))
198198 then x
199- else if (if ((T == z))
200- then (U == s)
199+ else if (if ((U == z))
200+ then (V == s)
201201 else false)
202202 then ""
203203 else throw("Unknown status")
204- let W = f(H(S))
205- if (if ((W == 0))
206- then (T != s)
204+ let X = f(H(T))
205+ if (if ((X == 0))
206+ then (U != s)
207207 else false)
208208 then throw("You cant set this status, user is not registered.")
209- else if (if ((U == s))
210- then (T == s)
209+ else if (if ((V == s))
210+ then (U == s)
211211 else false)
212212 then throw("User already allowed")
213- else if (if ((U == t))
214- then (T == s)
213+ else if (if ((V == t))
214+ then (U == s)
215215 else false)
216216 then throw("User already allowed & registered")
217- else if (if ((U == u))
218- then (T == s)
217+ else if (if ((V == u))
218+ then (U == s)
219219 else false)
220220 then throw("User already allowed & verified")
221221 else if (containsElement([q, r, toString(this)], B))
222- then [StringEntry(G(S), V)]
222+ then [StringEntry(G(T), W)]
223223 else throw("Not allowed to change user status")
224224 }
225225
226226
227227
228228 @Callable(g)
229-func creditUser (S) = {
229+func creditUser (T) = {
230230 let B = toString(addressFromPublicKey(g.callerPublicKey))
231231 let K = toBase58String(g.transactionId)
232232 if (containsElement([q, r], B))
233- then [ScriptTransfer(Address(fromBase58String(S)), 30000000000, p)]
233+ then [ScriptTransfer(Address(fromBase58String(T)), 30000000000, p)]
234234 else throw("Not allowed")
235235 }
236236
237237
238238
239239 @Callable(g)
240-func deleteUser (S) = {
240+func deleteUser (T) = {
241241 let B = toString(addressFromPublicKey(g.callerPublicKey))
242242 let K = toBase58String(g.transactionId)
243243 if (containsElement([q, r, toString(this)], B))
244- then [DeleteEntry(H(S)), DeleteEntry(A(S)), DeleteEntry(C(S)), DeleteEntry(D(S)), DeleteEntry(E(S)), DeleteEntry(F(S)), StringEntry(G(S), w)]
244+ then [DeleteEntry(H(T)), DeleteEntry(A(T)), DeleteEntry(C(T)), DeleteEntry(D(T)), DeleteEntry(E(T)), DeleteEntry(F(T)), StringEntry(G(T), w)]
245245 else throw("Not allowed")
246246 }
247247
248248
249249
250250 @Callable(g)
251-func deleteEntry (X) = {
251+func deleteEntry (Y) = {
252252 let B = toString(addressFromPublicKey(g.callerPublicKey))
253253 if ((B == q))
254- then [DeleteEntry(X)]
254+ then [DeleteEntry(Y)]
255255 else throw("no")
256256 }
257257
258258

github/deemru/w8io/026f985 
67.65 ms