tx · 2fJifczpEwhKC8xoHRFLcuqgqGwNFNovRiXGAgLzAQUb

3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj:  -0.01400000 Waves

2020.12.09 07:08 [1300622] smart account 3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj > SELF 0.00000000 Waves

{ "type": 13, "id": "2fJifczpEwhKC8xoHRFLcuqgqGwNFNovRiXGAgLzAQUb", "fee": 1400000, "feeAssetId": null, "timestamp": 1607486908714, "version": 2, "chainId": 84, "sender": "3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj", "senderPublicKey": "A2m227AHcq7gWfSU59Q3UJaqkEa7SccFYmJuWHbFrrKE", "proofs": [ "2ZrdneqHXbSE8uc8wDVkBeqgeXbnHwzpKNQ5MHf3JrbwCNxb3o5Fg2qXSToD9zwUTs64Mg8PF8iBWeMhsCYX1KRQ" ], "script": "base64:AAIEAAAAAAAAADIIAhIECgIECBIDCgEEEgYKBAgICAgSBgoECAgICBIECgIICBIDCgEIEgMKAQgSAwoBCAAAABwBAAAADmdldFN0cmluZ0J5S2V5AAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWECAAAAAAEAAAAPZ2V0Qm9vbGVhbkJ5S2V5AAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQbAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAdCb29sZWFuBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBwEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWkFAAAAByRtYXRjaDAFAAAAAWkAAAAAAAAAAAABAAAAC3ZhbGlkYXRlQ0lEAAAAAQAAAANjaWQDAwkAAGYAAAACAAAAAAAAAABLCQABMQAAAAEFAAAAA2NpZAkAAGYAAAACAAAAAAAAAAA8CQABMQAAAAEJAAGRAAAAAgkABLUAAAACBQAAAANjaWQCAAAAAS8AAAAAAAAAAAAHCQAAZgAAAAIAAAAAAAAAABAJAAExAAAAAQkAAZEAAAACCQAEtQAAAAIFAAAAA2NpZAIAAAABLwAAAAAAAAAAAQcAAAAADmRhcHBSdW5uaW5nS2V5AgAAABRjb25mX2RhcHBfaXNfcnVubmluZwAAAAARbWFpbnRlbmFuY2VNU0dLZXkCAAAAFGNvbmZfbWFpbnRlbmFuY2VfbXNnAAAAABJ3aGl0ZWxpc3RlZG9ubHlLZXkCAAAAFWNvbmZfd2hpdGVsaXN0ZWRfb25seQAAAAALZGFwcFJ1bm5pbmcJAQAAAA9nZXRCb29sZWFuQnlLZXkAAAABBQAAAA5kYXBwUnVubmluZ0tleQAAAAAObWFpbnRlbmFuY2VNU0cJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAAEW1haW50ZW5hbmNlTVNHS2V5AAAAAA93aGl0ZWxpc3RlZG9ubHkJAQAAAA9nZXRCb29sZWFuQnlLZXkAAAABBQAAABJ3aGl0ZWxpc3RlZG9ubHlLZXkAAAAAC3NpZ25Bc3NldElkAQAAACDopWq8yndC8nBhMjVKT0WDubke5ZlnF8Nx6tkLoQSt6wAAAAAFY2hyaXMCAAAAIzNNc0c2alBOQ3JWSlV0WUI3WEpCeFM3dXRXc1hBZjRuOVZwAAAAAARqb2VwAgAAACMzTXptNFZMd3NOOXVad2JUTXpQajNYdXhWNmtFZkFSOFVETgAAAAALdXNlckFsbG93ZWQCAAAAB0FMTE9XRUQAAAAADnVzZXJSZWdpc3RlcmVkAgAAAApSRUdJU1RFUkVEAAAAAAx1c2VyVmVyaWZpZWQCAAAACFZFUklGSUVEAAAAAA11c2VyU3VzcGVuZGVkAgAAAAlTVVNQRU5ERUQAAAAAC3VzZXJSZW1vdmVkAgAAAAdSRU1PVkVEAAAAABJ1c2VyQ2hhbmdlUmVxdWlyZWQCAAAAD0NIQU5HRV9SRVFVSVJFRAAAAAAQdXNlclVucmVnaXN0ZXJlZAIAAAAMVU5SRUdJU1RFUkVEAAAAAAl1c2VyUmVzZXQCAAAABVJFU0VUAQAAAAtrZXlVc2VyQWRkcgAAAAEAAAAGY2FsbGVyCQABLAAAAAICAAAABXVzZXJfBQAAAAZjYWxsZXIBAAAAC2tleVVzZXJOYW1lAAAAAQAAAAZjYWxsZXIJAAEsAAAAAgIAAAAKdXNlcl9uYW1lXwUAAAAGY2FsbGVyAQAAAAtrZXlVc2VyRGVzYwAAAAEAAAAGY2FsbGVyCQABLAAAAAICAAAACnVzZXJfZGVzY18FAAAABmNhbGxlcgEAAAANa2V5VXNlclNvY2lhbAAAAAEAAAAGY2FsbGVyCQABLAAAAAICAAAADHVzZXJfc29jaWFsXwUAAAAGY2FsbGVyAQAAAAxrZXlVc2VyVGh1bWIAAAABAAAABmNhbGxlcgkAASwAAAACAgAAAAt1c2VyX3RodW1iXwUAAAAGY2FsbGVyAQAAAA1rZXlVc2VyU3RhdHVzAAAAAQAAAAZjYWxsZXIJAAEsAAAAAgIAAAAMdXNlcl9zdGF0dXNfBQAAAAZjYWxsZXIBAAAAC2tleVVzZXJEYXRlAAAAAQAAAAZjYWxs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clB1YmxpY0tleQQAAAACaWQJAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAQAAAANY3VycmVudFN0YXR1cwkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAADWtleVVzZXJTdGF0dXMAAAABBQAAAAdhZGRyZXNzBAAAAAtzdGF0dXNUb1NldAMJAAAAAAAAAgUAAAAGc3RhdHVzBQAAAAx1c2VyVmVyaWZpZWQFAAAADHVzZXJWZXJpZmllZAMJAAAAAAAAAgUAAAAGc3RhdHVzBQAAAA51c2VyUmVnaXN0ZXJlZAUAAAAOdXNlclJlZ2lzdGVyZWQDCQAAAAAAAAIFAAAABnN0YXR1cwUAAAANdXNlclN1c3BlbmRlZAUAAAANdXNlclN1c3BlbmRlZAMJAAAAAAAAAgUAAAAGc3RhdHVzBQAAAAt1c2VyUmVtb3ZlZAUAAAALdXNlclJlbW92ZWQDCQAAAAAAAAIFAAAABnN0YXR1cwUAAAALdXNlckFsbG93ZWQFAAAAC3VzZXJBbGxvd2VkAwkAAAAAAAACBQAAAAZzdGF0dXMFAAAAEnVzZXJDaGFuZ2VSZXF1aXJlZAUAAAASdXNlckNoYW5nZVJlcXVpcmVkAwMJAAAAAAAAAgUAAAAGc3RhdHVzBQAAAAl1c2VyUmVzZXQJAAAAAAAAAgUAAAANY3VycmVudFN0YXR1cwUAAAALdXNlckFsbG93ZWQHAgAAAAAJAAACAAAAAQIAAAAOVW5rbm93biBzdGF0dXMEAAAAEHVzZXJJc1JlZ2lzdGVyZWQJAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABCQEAAAALa2V5VXNlckRhdGUAAAABBQAAAAdhZGRyZXNzAwMJAAAAAAAAAgUAAAAQdXNlcklzUmVnaXN0ZXJlZAAAAAAAAAAAAAkBAAAAAiE9AAAAAgUAAAAGc3RhdHVzBQAAAAt1c2VyQWxsb3dlZAcJAAACAAAAAQIAAAAxWW91IGNhbnQgc2V0IHRoaXMgc3RhdHVzLCB1c2VyIGlzIG5vdCByZWdpc3RlcmVkLgMDCQAAAAAAAAIFAAAADWN1cnJlbnRTdGF0dXMFAAAAC3VzZXJBbGxvd2VkCQAAAAAAAAIFAAAABnN0YXR1cwUAAAALdXNlckFsbG93ZWQHCQAAAgAAAAEC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", "height": 1300622, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: B72PPuUBuHQFvxsfyi61v3jTLEMN8HpXoH192CZKiVHr Next: 4eSPSjkGxbdm2SqLqX5w8itinbFSmaLHG3tK4CFSz9rt Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = base58'Gf9t8FA4H3ssoZPCwrg3KwUFCci8zuUFP9ssRsUY3s6a'
5-
6-let b = "3MsG6jPNCrVJUtYB7XJBxS7utWsXAf4n9Vp"
7-
8-let c = "3Mzm4VLwsN9uZwbTMzPj3XuxV6kEfAR8UDN"
9-
10-let d = true
11-
12-let e = true
13-
14-let f = "SIGN Art is under maintenance"
15-
16-let g = "ALLOWED"
17-
18-let h = "REGISTERED"
19-
20-let i = "VERIFIED"
21-
22-let j = "SUSPENDED"
23-
24-let k = "REMOVED"
25-
26-let l = "CHANGE_REQUIRED"
27-
28-let m = "UNREGISTERED"
29-
30-let n = "RESET"
31-
32-func o (p) = {
33- let q = getString(this, p)
34- if ($isInstanceOf(q, "String"))
4+func a (b) = {
5+ let c = getString(this, b)
6+ if ($isInstanceOf(c, "String"))
357 then {
36- let r = q
37- r
8+ let d = c
9+ d
3810 }
3911 else ""
4012 }
4113
4214
43-func s (p) = {
44- let q = getInteger(this, p)
45- if ($isInstanceOf(q, "Int"))
15+func e (b) = {
16+ let c = getBoolean(this, b)
17+ if ($isInstanceOf(c, "Boolean"))
4618 then {
47- let t = q
48- t
19+ let d = c
20+ d
21+ }
22+ else false
23+ }
24+
25+
26+func f (b) = {
27+ let c = getInteger(this, b)
28+ if ($isInstanceOf(c, "Int"))
29+ then {
30+ let g = c
31+ g
4932 }
5033 else 0
5134 }
5235
5336
54-func u (v) = if (if ((75 > size(v)))
55- then (60 > size(split(v, "/")[0]))
37+func h (i) = if (if ((75 > size(i)))
38+ then (60 > size(split(i, "/")[0]))
5639 else false)
57- then (16 > size(split(v, "/")[1]))
40+ then (16 > size(split(i, "/")[1]))
5841 else false
5942
6043
61-func w (x) = ("user_" + x)
44+let j = "conf_dapp_is_running"
45+
46+let k = "conf_maintenance_msg"
47+
48+let l = "conf_whitelisted_only"
49+
50+let m = e(j)
51+
52+let n = a(k)
53+
54+let o = e(l)
55+
56+let p = base58'Gf9t8FA4H3ssoZPCwrg3KwUFCci8zuUFP9ssRsUY3s6a'
57+
58+let q = "3MsG6jPNCrVJUtYB7XJBxS7utWsXAf4n9Vp"
59+
60+let r = "3Mzm4VLwsN9uZwbTMzPj3XuxV6kEfAR8UDN"
61+
62+let s = "ALLOWED"
63+
64+let t = "REGISTERED"
65+
66+let u = "VERIFIED"
67+
68+let v = "SUSPENDED"
69+
70+let w = "REMOVED"
71+
72+let x = "CHANGE_REQUIRED"
73+
74+let y = "UNREGISTERED"
75+
76+let z = "RESET"
77+
78+func A (B) = ("user_" + B)
6279
6380
64-func y (x) = ("user_name_" + x)
81+func C (B) = ("user_name_" + B)
6582
6683
67-func z (x) = ("user_desc_" + x)
84+func D (B) = ("user_desc_" + B)
6885
6986
70-func A (x) = ("user_social_" + x)
87+func E (B) = ("user_social_" + B)
7188
7289
73-func B (x) = ("user_thumb_" + x)
90+func F (B) = ("user_thumb_" + B)
7491
7592
76-func C (x) = ("user_status_" + x)
93+func G (B) = ("user_status_" + B)
7794
7895
79-func D (x) = ("user_date_" + x)
96+func H (B) = ("user_date_" + B)
8097
8198
82-@Callable(t)
83-func registerUser (E,F,G,H) = if (!(e))
84- then throw(f)
99+@Callable(g)
100+func maintenance (I,J) = {
101+ let B = toString(addressFromPublicKey(g.callerPublicKey))
102+ let K = toBase58String(g.transactionId)
103+ if (containsElement([q, r, toString(this)], B))
104+ then [BooleanEntry("conf_dapp_is_running", I), StringEntry("conf_maintenance_msg", J)]
105+ else throw("You are not allowed to change this")
106+ }
107+
108+
109+
110+@Callable(g)
111+func registrationMode (o) = {
112+ let B = toString(addressFromPublicKey(g.callerPublicKey))
113+ let K = toBase58String(g.transactionId)
114+ if (containsElement([q, r, toString(this)], B))
115+ then [BooleanEntry("conf_whitelisted_only", o)]
116+ else throw("You are not allowed to change this")
117+ }
118+
119+
120+
121+@Callable(g)
122+func registerUser (L,M,N,O) = if (!(m))
123+ then throw(n)
85124 else {
86- let x = toString(addressFromPublicKey(t.callerPublicKey))
87- let I = o(C(x))
88- let J = toBase58String(t.transactionId)
89- let K = lastBlock.timestamp
90- if (if ((I == j))
125+ let B = toString(addressFromPublicKey(g.callerPublicKey))
126+ let P = a(G(B))
127+ let K = toBase58String(g.transactionId)
128+ let Q = lastBlock.timestamp
129+ if (if ((P == v))
91130 then true
92- else (I == k))
131+ else (P == w))
93132 then throw("Account suspended/ removed.")
94- else if ((I == h))
133+ else if ((P == t))
95134 then throw("Already registered")
96- else if (if ((I == ""))
97- then d
135+ else if (if ((P == ""))
136+ then o
98137 else false)
99138 then throw("Can't register, get approved first.")
100- else if (if ((E == ""))
139+ else if (if ((L == ""))
101140 then true
102- else (F == ""))
141+ else (M == ""))
103142 then throw("Name and description cannot be empty")
104- else if ((size(F) > 600))
143+ else if ((size(M) > 600))
105144 then throw("600 Char. max description")
106- else if ((size(E) > 45))
145+ else if ((size(L) > 45))
107146 then throw("45 Char. max name")
108- else [IntegerEntry(D(x), K), StringEntry(w(x), ((J + "_") + toString(K))), StringEntry(y(x), E), StringEntry(z(x), F), StringEntry(A(x), H), StringEntry(B(x), G), StringEntry(C(x), h)]
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)]
109148 }
110149
111150
112151
113-@Callable(t)
114-func updateUser (E,F,G,H) = if (!(e))
115- then throw(f)
152+@Callable(g)
153+func updateUser (L,M,N,O) = if (!(m))
154+ then throw(n)
116155 else {
117- let x = toString(addressFromPublicKey(t.callerPublicKey))
118- let J = toBase58String(t.transactionId)
119- let L = o(C(x))
120- if (if ((L == j))
156+ let B = toString(addressFromPublicKey(g.callerPublicKey))
157+ let K = toBase58String(g.transactionId)
158+ let R = a(G(B))
159+ if (if ((R == v))
121160 then true
122- else (L == k))
161+ else (R == w))
123162 then throw("Account suspended/ removed.")
124- else if (if ((L == ""))
163+ else if (if ((R == ""))
125164 then true
126- else (L == g))
165+ else (R == s))
127166 then throw("Register first")
128- else if (if ((E == ""))
167+ else if (if ((L == ""))
129168 then true
130- else (F == ""))
169+ else (M == ""))
131170 then throw("Name & description cannot be empty")
132- else if ((size(F) > 600))
171+ else if ((size(M) > 600))
133172 then throw("600 Char. max for description")
134- else if ((size(E) > 45))
173+ else if ((size(L) > 45))
135174 then throw("45 Char. max name")
136- else [StringEntry(y(x), E), StringEntry(z(x), F), StringEntry(A(x), H), StringEntry(B(x), G)]
175+ else [StringEntry(C(B), L), StringEntry(D(B), M), StringEntry(E(B), O), StringEntry(F(B), N)]
137176 }
138177
139178
140179
141-@Callable(t)
142-func changeUserStatus (M,N) = if (!(e))
143- then throw(f)
180+@Callable(g)
181+func changeUserStatus (S,I) = if (!(m))
182+ then throw(n)
144183 else {
145- let x = toString(addressFromPublicKey(t.callerPublicKey))
146- let J = toBase58String(t.transactionId)
147- let O = o(C(M))
148- let P = if ((N == i))
149- then i
150- else if ((N == h))
151- then h
152- else if ((N == j))
153- then j
154- else if ((N == k))
155- then k
156- else if ((N == g))
157- then g
158- else if ((N == l))
159- then l
160- else if (if ((N == n))
161- then (O == g)
184+ let B = toString(addressFromPublicKey(g.callerPublicKey))
185+ let K = toBase58String(g.transactionId)
186+ let T = a(G(S))
187+ let U = if ((I == u))
188+ then u
189+ else if ((I == t))
190+ then t
191+ else if ((I == v))
192+ then v
193+ else if ((I == w))
194+ then w
195+ else if ((I == s))
196+ then s
197+ else if ((I == x))
198+ then x
199+ else if (if ((I == z))
200+ then (T == s)
162201 else false)
163202 then ""
164203 else throw("Unknown status")
165- let Q = s(D(M))
166- if (if ((Q == 0))
167- then (N != g)
204+ let V = f(H(S))
205+ if (if ((V == 0))
206+ then (I != s)
168207 else false)
169208 then throw("You cant set this status, user is not registered.")
170- else if (if ((O == g))
171- then (N == g)
209+ else if (if ((T == s))
210+ then (I == s)
172211 else false)
173212 then throw("User already allowed")
174- else if (if ((O == h))
175- then (N == g)
213+ else if (if ((T == t))
214+ then (I == s)
176215 else false)
177216 then throw("User already allowed & registered")
178- else if (if ((O == i))
179- then (N == g)
217+ else if (if ((T == u))
218+ then (I == s)
180219 else false)
181220 then throw("User already allowed & verified")
182- else if (containsElement([b, c], x))
183- then [StringEntry(C(M), P)]
184- else throw(((("Not allowed to change user status " + x) + " / ") + b))
221+ else if (containsElement([q, r, toString(this)], B))
222+ then [StringEntry(G(S), U)]
223+ else throw("Not allowed to change user status")
185224 }
186225
187226
188227
189-@Callable(t)
190-func creditUser (M) = {
191- let x = toString(addressFromPublicKey(t.callerPublicKey))
192- let J = toBase58String(t.transactionId)
193- if (containsElement([b, c], x))
194- then [ScriptTransfer(Address(fromBase58String(M)), 30000000000, a)]
228+@Callable(g)
229+func creditUser (S) = {
230+ let B = toString(addressFromPublicKey(g.callerPublicKey))
231+ let K = toBase58String(g.transactionId)
232+ if (containsElement([q, r], B))
233+ then [ScriptTransfer(Address(fromBase58String(S)), 30000000000, p)]
195234 else throw("Not allowed")
196235 }
197236
198237
199238
200-@Callable(t)
201-func deleteUser (M) = {
202- let x = toString(addressFromPublicKey(t.callerPublicKey))
203- let J = toBase58String(t.transactionId)
204- if (containsElement([b, c], x))
205- then [DeleteEntry(D(M)), DeleteEntry(w(M)), DeleteEntry(y(M)), DeleteEntry(z(M)), DeleteEntry(A(M)), DeleteEntry(B(M)), StringEntry(C(M), k)]
239+@Callable(g)
240+func deleteUser (S) = {
241+ let B = toString(addressFromPublicKey(g.callerPublicKey))
242+ let K = toBase58String(g.transactionId)
243+ 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)]
206245 else throw("Not allowed")
207246 }
208247
209248
210249
211-@Callable(t)
212-func deleteEntry (R) = {
213- let x = toString(addressFromPublicKey(t.callerPublicKey))
214- if ((x == b))
215- then [DeleteEntry(R)]
250+@Callable(g)
251+func deleteEntry (W) = {
252+ let B = toString(addressFromPublicKey(g.callerPublicKey))
253+ if ((B == q))
254+ then [DeleteEntry(W)]
216255 else throw("no")
217256 }
218257
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = base58'Gf9t8FA4H3ssoZPCwrg3KwUFCci8zuUFP9ssRsUY3s6a'
5-
6-let b = "3MsG6jPNCrVJUtYB7XJBxS7utWsXAf4n9Vp"
7-
8-let c = "3Mzm4VLwsN9uZwbTMzPj3XuxV6kEfAR8UDN"
9-
10-let d = true
11-
12-let e = true
13-
14-let f = "SIGN Art is under maintenance"
15-
16-let g = "ALLOWED"
17-
18-let h = "REGISTERED"
19-
20-let i = "VERIFIED"
21-
22-let j = "SUSPENDED"
23-
24-let k = "REMOVED"
25-
26-let l = "CHANGE_REQUIRED"
27-
28-let m = "UNREGISTERED"
29-
30-let n = "RESET"
31-
32-func o (p) = {
33- let q = getString(this, p)
34- if ($isInstanceOf(q, "String"))
4+func a (b) = {
5+ let c = getString(this, b)
6+ if ($isInstanceOf(c, "String"))
357 then {
36- let r = q
37- r
8+ let d = c
9+ d
3810 }
3911 else ""
4012 }
4113
4214
43-func s (p) = {
44- let q = getInteger(this, p)
45- if ($isInstanceOf(q, "Int"))
15+func e (b) = {
16+ let c = getBoolean(this, b)
17+ if ($isInstanceOf(c, "Boolean"))
4618 then {
47- let t = q
48- t
19+ let d = c
20+ d
21+ }
22+ else false
23+ }
24+
25+
26+func f (b) = {
27+ let c = getInteger(this, b)
28+ if ($isInstanceOf(c, "Int"))
29+ then {
30+ let g = c
31+ g
4932 }
5033 else 0
5134 }
5235
5336
54-func u (v) = if (if ((75 > size(v)))
55- then (60 > size(split(v, "/")[0]))
37+func h (i) = if (if ((75 > size(i)))
38+ then (60 > size(split(i, "/")[0]))
5639 else false)
57- then (16 > size(split(v, "/")[1]))
40+ then (16 > size(split(i, "/")[1]))
5841 else false
5942
6043
61-func w (x) = ("user_" + x)
44+let j = "conf_dapp_is_running"
45+
46+let k = "conf_maintenance_msg"
47+
48+let l = "conf_whitelisted_only"
49+
50+let m = e(j)
51+
52+let n = a(k)
53+
54+let o = e(l)
55+
56+let p = base58'Gf9t8FA4H3ssoZPCwrg3KwUFCci8zuUFP9ssRsUY3s6a'
57+
58+let q = "3MsG6jPNCrVJUtYB7XJBxS7utWsXAf4n9Vp"
59+
60+let r = "3Mzm4VLwsN9uZwbTMzPj3XuxV6kEfAR8UDN"
61+
62+let s = "ALLOWED"
63+
64+let t = "REGISTERED"
65+
66+let u = "VERIFIED"
67+
68+let v = "SUSPENDED"
69+
70+let w = "REMOVED"
71+
72+let x = "CHANGE_REQUIRED"
73+
74+let y = "UNREGISTERED"
75+
76+let z = "RESET"
77+
78+func A (B) = ("user_" + B)
6279
6380
64-func y (x) = ("user_name_" + x)
81+func C (B) = ("user_name_" + B)
6582
6683
67-func z (x) = ("user_desc_" + x)
84+func D (B) = ("user_desc_" + B)
6885
6986
70-func A (x) = ("user_social_" + x)
87+func E (B) = ("user_social_" + B)
7188
7289
73-func B (x) = ("user_thumb_" + x)
90+func F (B) = ("user_thumb_" + B)
7491
7592
76-func C (x) = ("user_status_" + x)
93+func G (B) = ("user_status_" + B)
7794
7895
79-func D (x) = ("user_date_" + x)
96+func H (B) = ("user_date_" + B)
8097
8198
82-@Callable(t)
83-func registerUser (E,F,G,H) = if (!(e))
84- then throw(f)
99+@Callable(g)
100+func maintenance (I,J) = {
101+ let B = toString(addressFromPublicKey(g.callerPublicKey))
102+ let K = toBase58String(g.transactionId)
103+ if (containsElement([q, r, toString(this)], B))
104+ then [BooleanEntry("conf_dapp_is_running", I), StringEntry("conf_maintenance_msg", J)]
105+ else throw("You are not allowed to change this")
106+ }
107+
108+
109+
110+@Callable(g)
111+func registrationMode (o) = {
112+ let B = toString(addressFromPublicKey(g.callerPublicKey))
113+ let K = toBase58String(g.transactionId)
114+ if (containsElement([q, r, toString(this)], B))
115+ then [BooleanEntry("conf_whitelisted_only", o)]
116+ else throw("You are not allowed to change this")
117+ }
118+
119+
120+
121+@Callable(g)
122+func registerUser (L,M,N,O) = if (!(m))
123+ then throw(n)
85124 else {
86- let x = toString(addressFromPublicKey(t.callerPublicKey))
87- let I = o(C(x))
88- let J = toBase58String(t.transactionId)
89- let K = lastBlock.timestamp
90- if (if ((I == j))
125+ let B = toString(addressFromPublicKey(g.callerPublicKey))
126+ let P = a(G(B))
127+ let K = toBase58String(g.transactionId)
128+ let Q = lastBlock.timestamp
129+ if (if ((P == v))
91130 then true
92- else (I == k))
131+ else (P == w))
93132 then throw("Account suspended/ removed.")
94- else if ((I == h))
133+ else if ((P == t))
95134 then throw("Already registered")
96- else if (if ((I == ""))
97- then d
135+ else if (if ((P == ""))
136+ then o
98137 else false)
99138 then throw("Can't register, get approved first.")
100- else if (if ((E == ""))
139+ else if (if ((L == ""))
101140 then true
102- else (F == ""))
141+ else (M == ""))
103142 then throw("Name and description cannot be empty")
104- else if ((size(F) > 600))
143+ else if ((size(M) > 600))
105144 then throw("600 Char. max description")
106- else if ((size(E) > 45))
145+ else if ((size(L) > 45))
107146 then throw("45 Char. max name")
108- else [IntegerEntry(D(x), K), StringEntry(w(x), ((J + "_") + toString(K))), StringEntry(y(x), E), StringEntry(z(x), F), StringEntry(A(x), H), StringEntry(B(x), G), StringEntry(C(x), h)]
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)]
109148 }
110149
111150
112151
113-@Callable(t)
114-func updateUser (E,F,G,H) = if (!(e))
115- then throw(f)
152+@Callable(g)
153+func updateUser (L,M,N,O) = if (!(m))
154+ then throw(n)
116155 else {
117- let x = toString(addressFromPublicKey(t.callerPublicKey))
118- let J = toBase58String(t.transactionId)
119- let L = o(C(x))
120- if (if ((L == j))
156+ let B = toString(addressFromPublicKey(g.callerPublicKey))
157+ let K = toBase58String(g.transactionId)
158+ let R = a(G(B))
159+ if (if ((R == v))
121160 then true
122- else (L == k))
161+ else (R == w))
123162 then throw("Account suspended/ removed.")
124- else if (if ((L == ""))
163+ else if (if ((R == ""))
125164 then true
126- else (L == g))
165+ else (R == s))
127166 then throw("Register first")
128- else if (if ((E == ""))
167+ else if (if ((L == ""))
129168 then true
130- else (F == ""))
169+ else (M == ""))
131170 then throw("Name & description cannot be empty")
132- else if ((size(F) > 600))
171+ else if ((size(M) > 600))
133172 then throw("600 Char. max for description")
134- else if ((size(E) > 45))
173+ else if ((size(L) > 45))
135174 then throw("45 Char. max name")
136- else [StringEntry(y(x), E), StringEntry(z(x), F), StringEntry(A(x), H), StringEntry(B(x), G)]
175+ else [StringEntry(C(B), L), StringEntry(D(B), M), StringEntry(E(B), O), StringEntry(F(B), N)]
137176 }
138177
139178
140179
141-@Callable(t)
142-func changeUserStatus (M,N) = if (!(e))
143- then throw(f)
180+@Callable(g)
181+func changeUserStatus (S,I) = if (!(m))
182+ then throw(n)
144183 else {
145- let x = toString(addressFromPublicKey(t.callerPublicKey))
146- let J = toBase58String(t.transactionId)
147- let O = o(C(M))
148- let P = if ((N == i))
149- then i
150- else if ((N == h))
151- then h
152- else if ((N == j))
153- then j
154- else if ((N == k))
155- then k
156- else if ((N == g))
157- then g
158- else if ((N == l))
159- then l
160- else if (if ((N == n))
161- then (O == g)
184+ let B = toString(addressFromPublicKey(g.callerPublicKey))
185+ let K = toBase58String(g.transactionId)
186+ let T = a(G(S))
187+ let U = if ((I == u))
188+ then u
189+ else if ((I == t))
190+ then t
191+ else if ((I == v))
192+ then v
193+ else if ((I == w))
194+ then w
195+ else if ((I == s))
196+ then s
197+ else if ((I == x))
198+ then x
199+ else if (if ((I == z))
200+ then (T == s)
162201 else false)
163202 then ""
164203 else throw("Unknown status")
165- let Q = s(D(M))
166- if (if ((Q == 0))
167- then (N != g)
204+ let V = f(H(S))
205+ if (if ((V == 0))
206+ then (I != s)
168207 else false)
169208 then throw("You cant set this status, user is not registered.")
170- else if (if ((O == g))
171- then (N == g)
209+ else if (if ((T == s))
210+ then (I == s)
172211 else false)
173212 then throw("User already allowed")
174- else if (if ((O == h))
175- then (N == g)
213+ else if (if ((T == t))
214+ then (I == s)
176215 else false)
177216 then throw("User already allowed & registered")
178- else if (if ((O == i))
179- then (N == g)
217+ else if (if ((T == u))
218+ then (I == s)
180219 else false)
181220 then throw("User already allowed & verified")
182- else if (containsElement([b, c], x))
183- then [StringEntry(C(M), P)]
184- else throw(((("Not allowed to change user status " + x) + " / ") + b))
221+ else if (containsElement([q, r, toString(this)], B))
222+ then [StringEntry(G(S), U)]
223+ else throw("Not allowed to change user status")
185224 }
186225
187226
188227
189-@Callable(t)
190-func creditUser (M) = {
191- let x = toString(addressFromPublicKey(t.callerPublicKey))
192- let J = toBase58String(t.transactionId)
193- if (containsElement([b, c], x))
194- then [ScriptTransfer(Address(fromBase58String(M)), 30000000000, a)]
228+@Callable(g)
229+func creditUser (S) = {
230+ let B = toString(addressFromPublicKey(g.callerPublicKey))
231+ let K = toBase58String(g.transactionId)
232+ if (containsElement([q, r], B))
233+ then [ScriptTransfer(Address(fromBase58String(S)), 30000000000, p)]
195234 else throw("Not allowed")
196235 }
197236
198237
199238
200-@Callable(t)
201-func deleteUser (M) = {
202- let x = toString(addressFromPublicKey(t.callerPublicKey))
203- let J = toBase58String(t.transactionId)
204- if (containsElement([b, c], x))
205- then [DeleteEntry(D(M)), DeleteEntry(w(M)), DeleteEntry(y(M)), DeleteEntry(z(M)), DeleteEntry(A(M)), DeleteEntry(B(M)), StringEntry(C(M), k)]
239+@Callable(g)
240+func deleteUser (S) = {
241+ let B = toString(addressFromPublicKey(g.callerPublicKey))
242+ let K = toBase58String(g.transactionId)
243+ 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)]
206245 else throw("Not allowed")
207246 }
208247
209248
210249
211-@Callable(t)
212-func deleteEntry (R) = {
213- let x = toString(addressFromPublicKey(t.callerPublicKey))
214- if ((x == b))
215- then [DeleteEntry(R)]
250+@Callable(g)
251+func deleteEntry (W) = {
252+ let B = toString(addressFromPublicKey(g.callerPublicKey))
253+ if ((B == q))
254+ then [DeleteEntry(W)]
216255 else throw("no")
217256 }
218257
219258

github/deemru/w8io/c3f4982 
75.52 ms