tx · CFQ3ZS7ubiDHhztWGPooDSXxzWC4raNBjxeZXR8Zezy4

3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj:  -0.01400000 Waves

2020.12.22 12:14 [1319716] smart account 3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj > SELF 0.00000000 Waves

{ "type": 13, "id": "CFQ3ZS7ubiDHhztWGPooDSXxzWC4raNBjxeZXR8Zezy4", "fee": 1400000, "feeAssetId": null, "timestamp": 1608628378593, "version": 2, "chainId": 84, "sender": "3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj", "senderPublicKey": "A2m227AHcq7gWfSU59Q3UJaqkEa7SccFYmJuWHbFrrKE", "proofs": [ "48nB4X3kqAwuEuJatFA9rxT2iZjdK4JCCw77tBLi3GH5YGviMZWefK3Hqhaz15GHs95BC3JcLR24ifYcLekUxQSv" ], "script": "base64:AAIEAAAAAAAAAC0IAhIECgIECBIDCgEEEgYKBAgICAgSBgoECAgICBIECgIICBIDCgEIEgMKAQgAAAAcAAAAAAtzaWduQXNzZXRJZAEAAAAg6KVqvMp3QvJwYTI1Sk9Fg7m5HuWZZxfDcerZC6EEresAAAAABWNocmlzAgAAACMzTXNHNmpQTkNyVkpVdFlCN1hKQnhTN3V0V3NYQWY0bjlWcAAAAAAEam9lcAIAAAAjM016bTRWTHdzTjl1WndiVE16UGozWHV4VjZrRWZBUjhVRE4AAAAADmRhcHBSdW5uaW5nS2V5AgAAABRjb25mX2RhcHBfaXNfcnVubmluZwAAAAARbWFpbnRlbmFuY2VNU0dLZXkCAAAAFGNvbmZfbWFpbnRlbmFuY2VfbXNnAAAAABJ3aGl0ZWxpc3RlZG9ubHlLZXkCAAAAFWNvbmZfd2hpdGVsaXN0ZWRfb25seQAAAAALZGFwcFJ1bm5pbmcEAAAAByRtYXRjaDAJAAQbAAAAAgUAAAAEdGhpcwUAAAAOZGFwcFJ1bm5pbmdLZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0Jvb2xlYW4EAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEGAAAAAA5tYWludGVuYW5jZU1TRwQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAABFtYWludGVuYW5jZU1TR0tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAAAAAAAD3doaXRlbGlzdGVkb25seQQAAAAHJG1hdGNoMAkABBsAAAACBQAAAAR0aGlzBQAAABJ3aGl0ZWxpc3RlZG9ubHlLZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0Jvb2xlYW4EAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEGAAAAAAt1c2VyQWxsb3dlZAIAAAAHQUxMT1dFRAAAAAAOdXNlclJlZ2lzdGVyZWQCAAAAClJFR0lTVEVSRUQAAAAADHVzZXJWZXJpZmllZAIAAAAIVkVSSUZJRUQAAAAADXVzZXJTdXNwZW5kZWQCAAAACVNVU1BFTkRFRAAAAAALdXNlclJlbW92ZWQCAAAAB1JFTU9WRUQAAAAAEnVzZXJDaGFu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AAAEdGhpcwUAAAADbmlsBQAAAAZjYWxsZXIJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIFAAAAEndoaXRlbGlzdGVkb25seUtleQUAAAAGV0xvbmx5BQAAAANuaWwJAAACAAAAAQIAAAAiWW91IGFyZSBub3QgYWxsb3dlZCB0byBjaGFuZ2UgdGhpcwAAAAFpAQAAAAxyZWdpc3RlclVzZXIAAAAEAAAABG5hbWUAAAALZGVzY3JpcHRpb24AAAAFdGh1bWIAAAAGc29jaWFsAwkBAAAAASEAAAABBQAAAAtkYXBwUnVubmluZwkAAAIAAAABBQAAAA5tYWludGVuYW5jZU1TRwQAAAAGY2FsbGVyCQAEJQAAAAEJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAALY2FuUmVnaXN0ZXIJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAA1rZXlVc2VyU3RhdHVzAAAAAQUAAAAGY2FsbGVyBAAAAAJpZAkAAlgAAAABCAUAAAABaQAAAA10cmFuc2FjdGlvbklkBAAAAAl0aW1lc3RhbXAIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wAwMJAAAAAAAAAgUAAAALY2FuUmVnaXN0ZXIFAAAADXVzZXJTdXNwZW5kZWQGCQAAAAAAAAIFAAAAC2NhblJlZ2lzdGVyBQAAAAt1c2VyUmVtb3ZlZAkAAAIAAAABAgAAABtBY2NvdW50IHN1c3BlbmRlZC8gcmVtb3ZlZC4DCQAAAAAAAAIFAAAAC2NhblJlZ2lzdGVyBQAAAA51c2VyUmVnaXN0ZXJlZAkAAAIAAAABAgAAABJBbHJlYWR5IHJlZ2lzdGVyZWQDAwkAAAAAAAACBQAAAAtjYW5SZWdpc3RlcgIAAAAABQAAAA93aGl0ZWxpc3RlZG9ubHkHCQAAAgAAAAECAAAAI0Nhbid0IHJlZ2lzdGVyLCBnZXQgYXBwcm92ZWQgZmlyc3QuAwMJAAAAAAAAAgUAAAAEbmFtZQIAAAAABgkAAAAAAAACBQAAAAtkZXNjcmlwdGlvbgIAAAAACQAAAgAAAAECAAAAJE5hbWUgYW5kIGRlc2NyaXB0aW9uIGNhbm5vdCBiZSBlbXB0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ZW1vdmVkAwkAAAAAAAACBQAAAAZzdGF0dXMFAAAAC3VzZXJBbGxvd2VkBQAAAAt1c2VyQWxsb3dlZAMJAAAAAAAAAgUAAAAGc3RhdHVzBQAAABJ1c2VyQ2hhbmdlUmVxdWlyZWQFAAAAEnVzZXJDaGFuZ2VSZXF1aXJlZAMDCQAAAAAAAAIFAAAABnN0YXR1cwUAAAAJdXNlclJlc2V0CQAAAAAAAAIFAAAADWN1cnJlbnRTdGF0dXMFAAAAC3VzZXJBbGxvd2VkBwIAAAAACQAAAgAAAAECAAAADlVua25vd24gc3RhdHVzBAAAABB1c2VySXNSZWdpc3RlcmVkCQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQkBAAAAC2tleVVzZXJEYXRlAAAAAQUAAAAHYWRkcmVzcwMDCQAAAAAAAAIFAAAAEHVzZXJJc1JlZ2lzdGVyZWQAAAAAAAAAAAAJAQAAAAIhPQAAAAIFAAAABnN0YXR1cwUAAAALdXNlckFsbG93ZWQHCQAAAgAAAAECAAAAMVlvdSBjYW50IHNldCB0aGlzIHN0YXR1cywgdXNlciBpcyBub3QgcmVnaXN0ZXJlZC4DAwkAAAAAAAACBQAAAA1jdXJyZW50U3RhdHVzBQAAAAt1c2VyQWxsb3dlZAkAAAAAAAACBQAAAAZzdGF0dXMFAAAAC3VzZXJBbGxvd2VkBwkAAAIAAAABAgAAABRVc2VyIGFscmVhZHkgYWxsb3dlZAMDCQAAAAAAAAIFAAAADWN1cnJlbnRTdGF0dXMFAAAADnVzZXJSZWdpc3RlcmVkCQAAAAAAAAIFAAAABnN0YXR1cwUAAAALdXNlckFsbG93ZWQHCQAAAgAAAAECAAAAIVVzZXIgYWxyZWFkeSBhbGxvd2VkICYgcmVnaXN0ZXJlZAMDCQAAAAAAAAIFAAAADWN1cnJlbnRTdGF0dXMFAAAADHVzZXJWZXJpZmllZAkAAAAAAAACBQAAAAZzdGF0dXMFAAAAC3VzZXJBbGxvd2VkBwkAAAIAAAABAgAAAB9Vc2VyIGFscmVhZHkgYWxsb3dlZCAmIHZlcmlmaWVkBAAAAARuYW1lCQACWgAAAAEJAAGbAAAAAQkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAC2tleVVzZXJOYW1lAAAAAQUAAAAHYWRk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", "height": 1319716, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7LDLRphrwKGHuR855Q8mv5jLF2jKWEZ18ysDfEqu86LG Next: HRpFahxX4MSp2phhyKRQiBdHhVtNyifR1cXzgEYBfr6z Diff:
OldNewDifferences
228228 else false)
229229 then ""
230230 else throw("Unknown status")
231- if (if ((W == l))
232- then (V == l)
231+ let Y = w(H(U))
232+ if (if ((Y == 0))
233+ then (V != l)
233234 else false)
234- then throw("User already allowed")
235- else if (if ((W == m))
235+ then throw("You cant set this status, user is not registered.")
236+ else if (if ((W == l))
236237 then (V == l)
237238 else false)
238- then throw("User already allowed & registered")
239- else if (if ((W == n))
239+ then throw("User already allowed")
240+ else if (if ((W == m))
240241 then (V == l)
241242 else false)
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- }
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+ }
252257 }
253258
254259
266271
267272
268273 @Callable(x)
269-func deleteEntry (Z) = {
274+func deleteEntry (aa) = {
270275 let B = toString(addressFromPublicKey(x.callerPublicKey))
271276 if ((B == b))
272- then [DeleteEntry(Z)]
277+ then [DeleteEntry(aa)]
273278 else throw("no")
274279 }
275280
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- if (if ((W == l))
232- then (V == l)
231+ let Y = w(H(U))
232+ if (if ((Y == 0))
233+ then (V != l)
233234 else false)
234- then throw("User already allowed")
235- else if (if ((W == m))
235+ then throw("You cant set this status, user is not registered.")
236+ else if (if ((W == l))
236237 then (V == l)
237238 else false)
238- then throw("User already allowed & registered")
239- else if (if ((W == n))
239+ then throw("User already allowed")
240+ else if (if ((W == m))
240241 then (V == l)
241242 else false)
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- }
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+ }
252257 }
253258
254259
255260
256261 @Callable(x)
257262 func deleteUser (U) = {
258263 let B = toString(addressFromPublicKey(x.callerPublicKey))
259264 let K = toBase58String(x.transactionId)
260265 let W = t(G(U))
261266 if (containsElement([b, toString(this)], B))
262267 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)]
263268 else throw("Not allowed")
264269 }
265270
266271
267272
268273 @Callable(x)
269-func deleteEntry (Z) = {
274+func deleteEntry (aa) = {
270275 let B = toString(addressFromPublicKey(x.callerPublicKey))
271276 if ((B == b))
272- then [DeleteEntry(Z)]
277+ then [DeleteEntry(aa)]
273278 else throw("no")
274279 }
275280
276281

github/deemru/w8io/026f985 
41.93 ms