tx · 7LDLRphrwKGHuR855Q8mv5jLF2jKWEZ18ysDfEqu86LG

3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj:  -0.01400000 Waves

2020.12.22 12:11 [1319714] smart account 3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj > SELF 0.00000000 Waves

{ "type": 13, "id": "7LDLRphrwKGHuR855Q8mv5jLF2jKWEZ18ysDfEqu86LG", "fee": 1400000, "feeAssetId": null, "timestamp": 1608628360624, "version": 2, "chainId": 84, "sender": "3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj", "senderPublicKey": "A2m227AHcq7gWfSU59Q3UJaqkEa7SccFYmJuWHbFrrKE", "proofs": [ "DtvpmbCLKYCuR5ML95z8suHoGxqAmTQGyArBffBA3rUgarccZ6enLHm83Df57HV8Vc6nNKm5wfu3xQXbXmhUpD4" ], "script": "base64:AAIEAAAAAAAAAC0IAhIECgIECBIDCgEEEgYKBAgICAgSBgoECAgICBIECgIICBIDCgEIEgMKAQgAAAAcAAAAAAtzaWduQXNzZXRJZAEAAAAg6KVqvMp3QvJwYTI1Sk9Fg7m5HuWZZxfDcerZC6EEresAAAAABWNocmlzAgAAACMzTXNHNmpQTkNyVkpVdFlCN1hKQnhTN3V0V3NYQWY0bjlWcAAAAAAEam9lcAIAAAAjM016bTRWTHdzTjl1WndiVE16UGozWHV4VjZrRWZBUjhVRE4AAAAADmRhcHBSdW5uaW5nS2V5AgAAABRjb25mX2RhcHBfaXNfcnVubmluZwAAAAARbWFpbnRlbmFuY2VNU0dLZXkCAAAAFGNvbmZfbWFpbnRlbmFuY2VfbXNnAAAAABJ3aGl0ZWxpc3RlZG9ubHlLZXkCAAAAFWNvbmZfd2hpdGVsaXN0ZWRfb25seQAAAAALZGFwcFJ1bm5pbmcEAAAAByRtYXRjaDAJAAQbAAAAAgUAAAAEdGhpcwUAAAAOZGFwcFJ1bm5pbmdLZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0Jvb2xlYW4EAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEGAAAAAA5tYWludGVuYW5jZU1TRwQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAABFtYWludGVuYW5jZU1TR0tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAAAAAAAD3doaXRlbGlzdGVkb25seQQAAAAHJG1hdGNoMAkABBsAAAACBQAAAAR0aGlzBQAAABJ3aGl0ZWxpc3RlZG9ubHlLZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0Jvb2xlYW4EAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEGAAAAAAt1c2VyQWxsb3dlZAIAAAAHQUxMT1dFRAAAAAAOdXNlclJlZ2lzdGVyZWQCAAAAClJFR0lTVEVSRUQAAAAADHVzZXJWZXJpZmllZAIAAAAIVkVSSUZJRUQAAAAADXVzZXJTdXNwZW5kZWQCAAAACVNVU1BFTkRFRAAAAAALdXNlclJlbW92ZWQCAAAAB1JFTU9WRUQAAAAAEnVzZXJDaGFu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AAAEdGhpcwUAAAADbmlsBQAAAAZjYWxsZXIJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIFAAAAEndoaXRlbGlzdGVkb25seUtleQUAAAAGV0xvbmx5BQAAAANuaWwJAAACAAAAAQIAAAAiWW91IGFyZSBub3QgYWxsb3dlZCB0byBjaGFuZ2UgdGhpcwAAAAFpAQAAAAxyZWdpc3RlclVzZXIAAAAEAAAABG5hbWUAAAALZGVzY3JpcHRpb24AAAAFdGh1bWIAAAAGc29jaWFsAwkBAAAAASEAAAABBQAAAAtkYXBwUnVubmluZwkAAAIAAAABBQAAAA5tYWludGVuYW5jZU1TRwQAAAAGY2FsbGVyCQAEJQAAAAEJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAALY2FuUmVnaXN0ZXIJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAA1rZXlVc2VyU3RhdHVzAAAAAQUAAAAGY2FsbGVyBAAAAAJpZAkAAlgAAAABCAUAAAABaQAAAA10cmFuc2FjdGlvbklkBAAAAAl0aW1lc3RhbXAIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wAwMJAAAAAAAAAgUAAAALY2FuUmVnaXN0ZXIFAAAADXVzZXJTdXNwZW5kZWQGCQAAAAAAAAIFAAAAC2NhblJlZ2lzdGVyBQAAAAt1c2VyUmVtb3ZlZAkAAAIAAAABAgAAABtBY2NvdW50IHN1c3BlbmRlZC8gcmVtb3ZlZC4DCQAAAAAAAAIFAAAAC2NhblJlZ2lzdGVyBQAAAA51c2VyUmVnaXN0ZXJlZAkAAAIAAAABAgAAABJBbHJlYWR5IHJlZ2lzdGVyZWQDAwkAAAAAAAACBQAAAAtjYW5SZWdpc3RlcgIAAAAABQAAAA93aGl0ZWxpc3RlZG9ubHkHCQAAAgAAAAECAAAAI0Nhbid0IHJlZ2lzdGVyLCBnZXQgYXBwcm92ZWQgZmlyc3QuAwMJAAAAAAAAAgUAAAAEbmFtZQIAAAAABgkAAAAAAAACBQAAAAtkZXNjcmlwdGlvbgIAAAAACQAAAgAAAAECAAAAJE5hbWUgYW5kIGRlc2NyaXB0aW9uIGNhbm5vdCBiZSBlbXB0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", "height": 1319714, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GQGhbPUpBdYBzXAjVXwgCsjoJ6MoMoA5pCkRGXDDCP6r Next: CFQ3ZS7ubiDHhztWGPooDSXxzWC4raNBjxeZXR8Zezy4 Diff:
OldNewDifferences
228228 else false)
229229 then ""
230230 else throw("Unknown status")
231- let Y = w(H(U))
232- if (if ((Y == 0))
233- then (V != l)
231+ if (if ((W == l))
232+ then (V == l)
234233 else false)
235- then throw("You cant set this status, user is not registered.")
236- else if (if ((W == l))
234+ then throw("User already allowed")
235+ else if (if ((W == m))
237236 then (V == l)
238237 else false)
239- then throw("User already allowed")
240- else if (if ((W == m))
238+ then throw("User already allowed & registered")
239+ else if (if ((W == n))
241240 then (V == l)
242241 else false)
243- then throw("User already allowed & registered")
244- else if (if ((W == n))
245- then (V == l)
246- else false)
247- then throw("User already allowed & verified")
248- else {
249- let M = toBase64String(toBytes(t(C(U))))
250- let O = toBase64String(toBytes(t(F(U))))
251- let Z = w(H(U))
252- let S = (((((((("{\"address\": \"" + U) + "\", \"name\": \"") + M) + "\", \"thumb\":\"") + O) + "\",\"date\":\"") + toString(Z)) + "\"}")
253- if (containsElement([b, c, toString(this)], B))
254- then [StringEntry(G(U), X), DeleteEntry(((W + "_") + U)), StringEntry(((X + "_") + U), S)]
255- else throw("Not allowed to change user status")
256- }
242+ then throw("User already allowed & verified")
243+ else {
244+ let M = toBase64String(toBytes(t(C(U))))
245+ let O = toBase64String(toBytes(t(F(U))))
246+ let Y = w(H(U))
247+ let S = (((((((("{\"address\": \"" + U) + "\", \"name\": \"") + M) + "\", \"thumb\":\"") + O) + "\",\"date\":\"") + toString(Y)) + "\"}")
248+ if (containsElement([b, c, toString(this)], B))
249+ then [StringEntry(G(U), X), DeleteEntry(((W + "_") + U)), StringEntry(((X + "_") + U), S)]
250+ else throw("Not allowed to change user status")
251+ }
257252 }
258253
259254
271266
272267
273268 @Callable(x)
274-func deleteEntry (aa) = {
269+func deleteEntry (Z) = {
275270 let B = toString(addressFromPublicKey(x.callerPublicKey))
276271 if ((B == b))
277- then [DeleteEntry(aa)]
272+ then [DeleteEntry(Z)]
278273 else throw("no")
279274 }
280275
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = base58'Gf9t8FA4H3ssoZPCwrg3KwUFCci8zuUFP9ssRsUY3s6a'
55
66 let b = "3MsG6jPNCrVJUtYB7XJBxS7utWsXAf4n9Vp"
77
88 let c = "3Mzm4VLwsN9uZwbTMzPj3XuxV6kEfAR8UDN"
99
1010 let d = "conf_dapp_is_running"
1111
1212 let e = "conf_maintenance_msg"
1313
1414 let f = "conf_whitelisted_only"
1515
1616 let g = {
1717 let h = getBoolean(this, d)
1818 if ($isInstanceOf(h, "Boolean"))
1919 then {
2020 let i = h
2121 i
2222 }
2323 else true
2424 }
2525
2626 let j = {
2727 let h = getString(this, e)
2828 if ($isInstanceOf(h, "String"))
2929 then {
3030 let i = h
3131 i
3232 }
3333 else ""
3434 }
3535
3636 let k = {
3737 let h = getBoolean(this, f)
3838 if ($isInstanceOf(h, "Boolean"))
3939 then {
4040 let i = h
4141 i
4242 }
4343 else true
4444 }
4545
4646 let l = "ALLOWED"
4747
4848 let m = "REGISTERED"
4949
5050 let n = "VERIFIED"
5151
5252 let o = "SUSPENDED"
5353
5454 let p = "REMOVED"
5555
5656 let q = "CHANGE_REQUIRED"
5757
5858 let r = "UNREGISTERED"
5959
6060 let s = "RESET"
6161
6262 func t (u) = {
6363 let h = getString(this, u)
6464 if ($isInstanceOf(h, "String"))
6565 then {
6666 let i = h
6767 i
6868 }
6969 else ""
7070 }
7171
7272
7373 func v (u) = {
7474 let h = getBoolean(this, u)
7575 if ($isInstanceOf(h, "Boolean"))
7676 then {
7777 let i = h
7878 i
7979 }
8080 else false
8181 }
8282
8383
8484 func w (u) = {
8585 let h = getInteger(this, u)
8686 if ($isInstanceOf(h, "Int"))
8787 then {
8888 let x = h
8989 x
9090 }
9191 else 0
9292 }
9393
9494
9595 func y (z) = if (if ((75 > size(z)))
9696 then (60 > size(split(z, "/")[0]))
9797 else false)
9898 then (16 > size(split(z, "/")[1]))
9999 else false
100100
101101
102102 func A (B) = ("user_" + B)
103103
104104
105105 func C (B) = ("user_name_" + B)
106106
107107
108108 func D (B) = ("user_desc_" + B)
109109
110110
111111 func E (B) = ("user_social_" + B)
112112
113113
114114 func F (B) = ("user_thumb_" + B)
115115
116116
117117 func G (B) = ("user_status_" + B)
118118
119119
120120 func H (B) = ("user_date_" + B)
121121
122122
123123 @Callable(x)
124124 func appRunning (I,J) = {
125125 let B = toString(addressFromPublicKey(x.callerPublicKey))
126126 let K = toBase58String(x.transactionId)
127127 if (containsElement([b, c, toString(this)], B))
128128 then [BooleanEntry(d, I), StringEntry(e, J)]
129129 else throw("You are not allowed to change this")
130130 }
131131
132132
133133
134134 @Callable(x)
135135 func registrationMode (L) = {
136136 let B = toString(addressFromPublicKey(x.callerPublicKey))
137137 let K = toBase58String(x.transactionId)
138138 if (containsElement([b, c, toString(this)], B))
139139 then [BooleanEntry(f, L)]
140140 else throw("You are not allowed to change this")
141141 }
142142
143143
144144
145145 @Callable(x)
146146 func registerUser (M,N,O,P) = if (!(g))
147147 then throw(j)
148148 else {
149149 let B = toString(addressFromPublicKey(x.callerPublicKey))
150150 let Q = t(G(B))
151151 let K = toBase58String(x.transactionId)
152152 let R = lastBlock.timestamp
153153 if (if ((Q == o))
154154 then true
155155 else (Q == p))
156156 then throw("Account suspended/ removed.")
157157 else if ((Q == m))
158158 then throw("Already registered")
159159 else if (if ((Q == ""))
160160 then k
161161 else false)
162162 then throw("Can't register, get approved first.")
163163 else if (if ((M == ""))
164164 then true
165165 else (N == ""))
166166 then throw("Name and description cannot be empty")
167167 else if ((size(N) > 600))
168168 then throw("600 Char. max description")
169169 else if ((size(M) > 45))
170170 then throw("45 Char. max name")
171171 else {
172172 let S = (((((((("{\"address\": \"" + B) + "\", \"name\": \"") + toBase64String(toBytes(M))) + "\", \"thumb\":\"") + toBase64String(toBytes(O))) + "\",\"date\":\"") + toString(R)) + "\"}")
173173 [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), m), DeleteEntry(("ALLOWED_" + B)), StringEntry(((m + "_") + B), S)]
174174 }
175175 }
176176
177177
178178
179179 @Callable(x)
180180 func updateUser (M,N,O,P) = if (!(g))
181181 then throw(j)
182182 else {
183183 let B = toString(addressFromPublicKey(x.callerPublicKey))
184184 let K = toBase58String(x.transactionId)
185185 let T = t(G(B))
186186 if (if ((T == o))
187187 then true
188188 else (T == p))
189189 then throw("Account suspended/ removed.")
190190 else if (if ((T == ""))
191191 then true
192192 else (T == l))
193193 then throw("Register first")
194194 else if (if ((M == ""))
195195 then true
196196 else (N == ""))
197197 then throw("Name & description cannot be empty")
198198 else if ((size(N) > 600))
199199 then throw("600 Char. max for description")
200200 else if ((size(M) > 45))
201201 then throw("45 Char. max name")
202202 else [StringEntry(C(B), M), StringEntry(D(B), N), StringEntry(E(B), P), StringEntry(F(B), O)]
203203 }
204204
205205
206206
207207 @Callable(x)
208208 func changeUserStatus (U,V) = if (!(g))
209209 then throw(j)
210210 else {
211211 let B = toString(addressFromPublicKey(x.callerPublicKey))
212212 let K = toBase58String(x.transactionId)
213213 let W = t(G(U))
214214 let X = if ((V == n))
215215 then n
216216 else if ((V == m))
217217 then m
218218 else if ((V == o))
219219 then o
220220 else if ((V == p))
221221 then p
222222 else if ((V == l))
223223 then l
224224 else if ((V == q))
225225 then q
226226 else if (if ((V == s))
227227 then (W == l)
228228 else false)
229229 then ""
230230 else throw("Unknown status")
231- let Y = w(H(U))
232- if (if ((Y == 0))
233- then (V != l)
231+ if (if ((W == l))
232+ then (V == l)
234233 else false)
235- then throw("You cant set this status, user is not registered.")
236- else if (if ((W == l))
234+ then throw("User already allowed")
235+ else if (if ((W == m))
237236 then (V == l)
238237 else false)
239- then throw("User already allowed")
240- else if (if ((W == m))
238+ then throw("User already allowed & registered")
239+ else if (if ((W == n))
241240 then (V == l)
242241 else false)
243- then throw("User already allowed & registered")
244- else if (if ((W == n))
245- then (V == l)
246- else false)
247- then throw("User already allowed & verified")
248- else {
249- let M = toBase64String(toBytes(t(C(U))))
250- let O = toBase64String(toBytes(t(F(U))))
251- let Z = w(H(U))
252- let S = (((((((("{\"address\": \"" + U) + "\", \"name\": \"") + M) + "\", \"thumb\":\"") + O) + "\",\"date\":\"") + toString(Z)) + "\"}")
253- if (containsElement([b, c, toString(this)], B))
254- then [StringEntry(G(U), X), DeleteEntry(((W + "_") + U)), StringEntry(((X + "_") + U), S)]
255- else throw("Not allowed to change user status")
256- }
242+ then throw("User already allowed & verified")
243+ else {
244+ let M = toBase64String(toBytes(t(C(U))))
245+ let O = toBase64String(toBytes(t(F(U))))
246+ let Y = w(H(U))
247+ let S = (((((((("{\"address\": \"" + U) + "\", \"name\": \"") + M) + "\", \"thumb\":\"") + O) + "\",\"date\":\"") + toString(Y)) + "\"}")
248+ if (containsElement([b, c, toString(this)], B))
249+ then [StringEntry(G(U), X), DeleteEntry(((W + "_") + U)), StringEntry(((X + "_") + U), S)]
250+ else throw("Not allowed to change user status")
251+ }
257252 }
258253
259254
260255
261256 @Callable(x)
262257 func deleteUser (U) = {
263258 let B = toString(addressFromPublicKey(x.callerPublicKey))
264259 let K = toBase58String(x.transactionId)
265260 let W = t(G(U))
266261 if (containsElement([b, toString(this)], B))
267262 then [DeleteEntry(H(U)), DeleteEntry(A(U)), DeleteEntry(C(U)), DeleteEntry(D(U)), DeleteEntry(E(U)), DeleteEntry(F(U)), DeleteEntry(((W + "_") + U)), StringEntry(G(U), p)]
268263 else throw("Not allowed")
269264 }
270265
271266
272267
273268 @Callable(x)
274-func deleteEntry (aa) = {
269+func deleteEntry (Z) = {
275270 let B = toString(addressFromPublicKey(x.callerPublicKey))
276271 if ((B == b))
277- then [DeleteEntry(aa)]
272+ then [DeleteEntry(Z)]
278273 else throw("no")
279274 }
280275
281276

github/deemru/w8io/026f985 
43.41 ms