tx · 9oY5NmxoJnVhcb5BB9gZ22RbR8EiHtMYcTmhPnJYe1uU

3Mt4RGMEyjSWYAocTPqd55wdHQQB3PU2UCm:  -0.01400000 Waves

2021.01.05 12:47 [1339923] smart account 3Mt4RGMEyjSWYAocTPqd55wdHQQB3PU2UCm > SELF 0.00000000 Waves

{ "type": 13, "id": "9oY5NmxoJnVhcb5BB9gZ22RbR8EiHtMYcTmhPnJYe1uU", "fee": 1400000, "feeAssetId": null, "timestamp": 1609840068265, "version": 2, "chainId": 84, "sender": "3Mt4RGMEyjSWYAocTPqd55wdHQQB3PU2UCm", "senderPublicKey": "FohxcSc8stwcVXsytmPwjVRthoDnmiFHbohjcgN1r4bP", "proofs": [ "iht4nLLcfdnLP9X6NgWbKZNv4MXQJRNaPUUHn9V7uQWagkjT5jQRExQpRim1EeUAt1rVbeEWMHrUQe2si7vqL7j" ], "script": "base64:AAIEAAAAAAAAACgIAhIECgIECBIDCgEEEgYKBAgICAgSBgoECAgICBIECgIICBIDCgEIAAAAHQAAAAAFY2hyaXMCAAAAIzNNc0c2alBOQ3JWSlV0WUI3WEpCeFM3dXRXc1hBZjRuOVZwAAAAAARqb2VwAgAAACMzTXptNFZMd3NOOXVad2JUTXpQajNYdXhWNmtFZkFSOFVETgAAAAAOZGFwcFJ1bm5pbmdLZXkCAAAAFGNvbmZfZGFwcF9pc19ydW5uaW5nAAAAABFtYWludGVuYW5jZU1TR0tleQIAAAAUY29uZl9tYWludGVuYW5jZV9tc2cAAAAAEndoaXRlbGlzdGVkb25seUtleQIAAAAVY29uZl93aGl0ZWxpc3RlZF9vbmx5AAAAAAtkYXBwUnVubmluZwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBsAAAACBQAAAAR0aGlzBQAAAA5kYXBwUnVubmluZ0tleQYAAAAADm1haW50ZW5hbmNlTVNHCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAAEW1haW50ZW5hbmNlTVNHS2V5AgAAAAAAAAAAD3doaXRlbGlzdGVkb25seQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBsAAAACBQAAAAR0aGlzBQAAABJ3aGl0ZWxpc3RlZG9ubHlLZXkGAAAAAAt1c2VyQWxsb3dlZAIAAAAHQUxMT1dFRAAAAAAOdXNlclJlZ2lzdGVyZWQCAAAAClJFR0lTVEVSRUQAAAAADHVzZXJWZXJpZmllZAIAAAAIVkVSSUZJRUQAAAAADXVzZXJTdXNwZW5kZWQCAAAACVNVU1BFTkRFRAAAAAALdXNlclJlbW92ZWQCAAAAB1JFTU9WRUQAAAAAEnVzZXJDaGFuZ2VSZXF1aXJlZAIAAAAPQ0hBTkdFX1JFUVVJUkVEAAAAABB1c2VyVW5yZWdpc3RlcmVkAgAAAAxVTlJFR0lTVEVSRUQAAAAACXVzZXJSZXNldAIAAAAFUkVTRVQBAAAADmdldFN0cmluZ0J5S2V5AAAAAQAAAANrZXkJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AgAAAAABAAAAD2dldEJvb2xlYW5CeUtleQAAAAEAAAADa2V5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGwAAAAIFAAAABHRoaXMFAAAAA2tleQcBAAAAD2dldEludGVnZXJCeUtleQAAAAEAAAADa2V5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQAAAAAAAAAAAAEAAAALa2V5VXNlckFkZHIAAAABAAAABmNhbGxlcgkAASwAAAACAgAAAAV1c2VyXwUAAAAGY2FsbGVyAQAAAAtrZXlVc2VyTmFtZQAAAAEAAAAGY2FsbGVyCQABLAAAAAICAAAACnVzZXJfbmFtZV8FAAAABmNhbGxlcgEAAAALa2V5VXNlckRlc2MAAAABAAAABmNhbGxlcgkAASwAAAACAgAAAAp1c2VyX2Rlc2NfBQAAAAZjYWxsZXIBAAAADWtleVVzZXJTb2NpYWwAAAABAAAABmNhbGxlcgkAASwAAAACAgAAAAx1c2VyX3NvY2lhbF8FAAAABmNhbGxlcgEAAAAMa2V5VXNlclRodW1iAAAAAQAAAAZjYWxsZXIJAAEsAAAAAgIAAAALdXNlcl90aHVtYl8FAAAABmNhbGxlcgEAAAANa2V5VXNlclN0YXR1cwAAAAEAAAAGY2FsbGVyCQABLAAAAAICAAAADHVzZXJfc3RhdHVzXwUAAAAGY2FsbGVyAQAAAAtrZXlVc2VyRGF0ZQAAAAEAAAAGY2FsbGVyCQABLAAAAAICAAAACnVzZXJfZGF0ZV8FAAAABmNhbGxlcgEAAAANdmFsaWRVc2VyRGF0YQAAAAQAAAAGY2FsbGVyAAAABG5hbWUAAAALZGVzY3JpcHRpb24AAAAKaXNBblVwZGF0ZQMDCQAAAAAAAAIFAAAABG5hbWUCAAAAAAYJAAAAAAAAAgUAAAALZGVzY3JpcHRpb24CAAAAAAkAAAIAAAABAgAAACROYW1lIGFuZCBkZXNjcmlwdGlvbiBjYW5ub3QgYmUgZW1wdHkDCQAAZgAAAAIJAAExAAAAAQUAAAALZGVzY3JpcHRpb24AAAAAAAAAAlgJAAACAAAAAQIAAAAZNjAwIENoYXIuIG1heCBkZXNjcmlwdGlvbgMJAABmAAAAAgkAATEAAAABBQAAAARuYW1lAAAAAAAAAAAtCQAAAgAAAAECAAAAETQ1IENoYXIuIG1heCBuYW1lBAAAAAZzdGF0dXMJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAA1rZXlVc2VyU3RhdHVzAAAAAQUAAAAGY2FsbGVyAwMJAAAAAAAAAgUAAAAGc3RhdHVzBQAAAA11c2VyU3VzcGVuZGVkBgkAAAAAAAACBQAAAAZzdGF0dXMFAAAAC3VzZXJSZW1vdmVkCQAAAgAAAAECAAAAG0FjY291bnQgc3VzcGVuZGVkLyByZW1vdmVkLgMDCQEAAAABIQAAAAEFAAAACmlzQW5VcGRhdGUJAAAAAAAAAgUAAAAGc3RhdHVzBQAAAA51c2VyUmVnaXN0ZXJlZAcJAAACAAAAAQIAAAASQWxyZWFkeSByZWdpc3RlcmVkAwMDCQEAAAABIQAAAAEFAAAACmlzQW5VcGRhdGUJAAAAAAAAAgUAAAAGc3RhdHVzAgAAAAAHBQAAAA93aGl0ZWxpc3RlZG9ubHkHCQAAAgAAAAECAAAAI0Nhbid0IHJlZ2lzdGVyLCBnZXQgYXBwcm92ZWQgZmlyc3QuAwMDBQAAAAppc0FuVXBkYXRlCQAAAAAAAAIFAAAABnN0YXR1cwIAAAAABwYDBQAAAAppc0FuVXBkYXRlCQAAAAAAAAIFAAAABnN0YXR1cwUAAAALdXNlckFsbG93ZWQHCQAAAgAAAAECAAAADlJlZ2lzdGVyIGZpcnN0BgEAAAARdmFsaWRhdGVOZXdTdGF0dXMAAAADAAAABnN0YXR1cwAAAAdhZGRyZXNzAAAADWN1cnJlbnRTdGF0dXMEAAAACWFsbFN0YXR1cwkABEwAAAACBQAAAAx1c2VyVmVyaWZpZWQJAARMAAAAAgUAAAAOdXNlclJlZ2lzdGVyZWQJAARMAAAAAgUAAAANdXNlclN1c3BlbmRlZAkABEwAAAACBQAAAAt1c2VyUmVtb3ZlZAkABEwAAAACBQAAAAt1c2VyQWxsb3dlZAkABEwAAAACBQAAABJ1c2VyQ2hhbmdlUmVxdWlyZWQFAAAAA25pbAQAAAALc3RhdHVzVG9TZXQDCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgUAAAAJYWxsU3RhdHVzBQAAAAZzdGF0dXMFAAAABnN0YXR1cwMDCQAAAAAAAAIFAAAABnN0YXR1cwUAAAAJdXNlclJlc2V0CQAAAAAAAAIF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AAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAC2tleVVzZXJEZXNjAAAAAQUAAAAGY2FsbGVyBQAAAAtkZXNjcmlwdGlvbgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAANa2V5VXNlclNvY2lhbAAAAAEFAAAABmNhbGxlcgUAAAAGc29jaWFsCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAxrZXlVc2VyVGh1bWIAAAABBQAAAAZjYWxsZXIFAAAABXRodW1iCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAZzdGF0dXMCAAAAAV8FAAAABmNhbGxlcgUAAAAEanNvbgUAAAADbmlsAAAABmludm9rZQEAAAAQY2hhbmdlVXNlclN0YXR1cwAAAAIAAAAHYWRkcmVzcwAAAAZzdGF0dXMDCQEAAAABIQAAAAEFAAAAC2RhcHBSdW5uaW5nCQAAAgAAAAEFAAAADm1haW50ZW5hbmNlTVNHBAAAAAZjYWxsZXIJAAQlAAAAAQkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQgFAAAABmludm9rZQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAAmlkCQACWAAAAAEIBQAAAAZpbnZva2UAAAANdHJhbnNhY3Rpb25JZAQAAAANY3VycmVudFN0YXR1cwkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAADWtleVVzZXJTdGF0dXMAAAABBQAAAAdhZGRyZXNzBAAAAAtzdGF0dXNUb1NldAkBAAAAEXZhbGlkYXRlTmV3U3RhdHVzAAAAAwUAAAAGc3RhdHVzBQAAAAdhZGRyZXNzBQAAAA1jdXJyZW50U3RhdHVzBAAAAARuYW1lCQACWgAAAAEJAAGbAAAAAQkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAC2tleVVzZXJOYW1lAAAAAQUAAAAHYWRkcmVzcwQAAAAFdGh1bWIJAAJaAAAAAQkAAZsAAAABCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAMa2V5VXNlclRodW1iAAAAAQUAAAAHYWRkcmVzcwQAAAAEZGF0ZQkBAAAAD2dldEludGVnZXJCeUtleQAAAAEJAQAAAAtrZXlVc2VyRGF0ZQAAAAEFAAAAB2FkZHJlc3MEAAAABGpzb24JAQAAAAhtYWtlSlNPTgAAAAMFAAAABG5hbWUFAAAABXRodW1iCQABpAAAAAEFAAAABGRhdGUDCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgkABEwAAAACBQAAAAVjaHJpcwkABEwAAAACBQAAAARqb2VwCQAETAAAAAIJAAQlAAAAAQUAAAAEdGhpcwUAAAADbmlsBQAAAAZjYWxsZXIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAADWtleVVzZXJTdGF0dXMAAAABBQAAAAdhZGRyZXNzBQAAAAtzdGF0dXNUb1NldAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIJAAEsAAAAAgUAAAANY3VycmVudFN0YXR1cwIAAAABXwUAAAAHYWRkcmVzcwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAALc3RhdHVzVG9TZXQCAAAAAV8FAAAAB2FkZHJlc3MFAAAABGpzb24FAAAAA25pbAkAAAIAAAABAgAAACFOb3QgYWxsb3dlZCB0byBjaGFuZ2UgdXNlciBzdGF0dXMAAAAGaW52b2tlAQAAAApkZWxldGVVc2VyAAAAAQAAAAdhZGRyZXNzBAAAAAZjYWxsZXIJAAQlAAAAAQkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQgFAAAABmludm9rZQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAAmlkCQACWAAAAAEIBQAAAAZpbnZva2UAAAANdHJhbnNhY3Rpb25JZAQAAAANY3VycmVudFN0YXR1cwkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAADWtleVVzZXJTdGF0dXMAAAABBQAAAAdhZGRyZXNzAwkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIJAARMAAAAAgUAAAAFY2hyaXMJAARMAAAAAgkABCUAAAABBQAAAAR0aGlzBQAAAANuaWwFAAAABmNhbGxlcgkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAALa2V5VXNlckRhdGUAAAABBQAAAAdhZGRyZXNzCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAtrZXlVc2VyQWRkcgAAAAEFAAAAB2FkZHJlc3MJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAC2tleVVzZXJOYW1lAAAAAQUAAAAHYWRkcmVzcwkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAALa2V5VXNlckRlc2MAAAABBQAAAAdhZGRyZXNzCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAA1rZXlVc2VyU29jaWFsAAAAAQUAAAAHYWRkcmVzcwkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAMa2V5VXNlclRodW1iAAAAAQUAAAAHYWRkcmVzcwkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIJAAEsAAAAAgUAAAANY3VycmVudFN0YXR1cwIAAAABXwUAAAAHYWRkcmVzcwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAANa2V5VXNlclN0YXR1cwAAAAEFAAAAB2FkZHJlc3MFAAAAC3VzZXJSZW1vdmVkBQAAAANuaWwJAAACAAAAAQIAAAALTm90IGFsbG93ZWQAAAAAOCCHjA==", "height": 1339923, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: tPReMNRmDwfWUAe1gZYBQYnBqzuFVBkKqjzjMaWCoRS Next: CRAxueusVJB9jqqRv1ou6kcpExBDnM6mPqpGPK1miv9V Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = "conf_dapp_is_running"
4+let a = "3MsG6jPNCrVJUtYB7XJBxS7utWsXAf4n9Vp"
55
6-let b = "conf_maintenance_msg"
6+let b = "3Mzm4VLwsN9uZwbTMzPj3XuxV6kEfAR8UDN"
77
8-let c = "conf_whitelisted_only"
8+let c = "conf_dapp_is_running"
99
10-let d = {
11- let e = getBoolean(this, a)
12- if ($isInstanceOf(e, "Boolean"))
13- then {
14- let f = e
15- f
16- }
17- else true
18- }
10+let d = "conf_maintenance_msg"
1911
20-let g = {
21- let e = getString(this, b)
22- if ($isInstanceOf(e, "String"))
23- then {
24- let f = e
25- f
26- }
27- else ""
28- }
12+let e = "conf_whitelisted_only"
2913
30-let h = {
31- let e = getBoolean(this, c)
32- if ($isInstanceOf(e, "Boolean"))
33- then {
34- let f = e
35- f
36- }
37- else true
38- }
14+let f = valueOrElse(getBoolean(this, c), true)
3915
40-let i = base58'Gf9t8FA4H3ssoZPCwrg3KwUFCci8zuUFP9ssRsUY3s6a'
16+let g = valueOrElse(getString(this, d), "")
4117
42-let j = "3MsG6jPNCrVJUtYB7XJBxS7utWsXAf4n9Vp"
18+let h = valueOrElse(getBoolean(this, e), true)
4319
44-let k = "3Mzm4VLwsN9uZwbTMzPj3XuxV6kEfAR8UDN"
20+let i = "ALLOWED"
4521
46-let l = "ALLOWED"
22+let j = "REGISTERED"
4723
48-let m = "REGISTERED"
24+let k = "VERIFIED"
4925
50-let n = "VERIFIED"
26+let l = "SUSPENDED"
5127
52-let o = "SUSPENDED"
28+let m = "REMOVED"
5329
54-let p = "REMOVED"
30+let n = "CHANGE_REQUIRED"
5531
56-let q = "CHANGE_REQUIRED"
32+let o = "UNREGISTERED"
5733
58-let r = "UNREGISTERED"
34+let p = "RESET"
5935
60-let s = "RESET"
36+func q (r) = valueOrElse(getString(this, r), "")
6137
62-func t (u) = {
63- let e = getString(this, u)
64- if ($isInstanceOf(e, "String"))
65- then {
66- let f = e
67- f
68- }
69- else ""
38+
39+func s (r) = valueOrElse(getBoolean(this, r), false)
40+
41+
42+func t (r) = valueOrElse(getInteger(this, r), 0)
43+
44+
45+func u (v) = ("user_" + v)
46+
47+
48+func w (v) = ("user_name_" + v)
49+
50+
51+func x (v) = ("user_desc_" + v)
52+
53+
54+func y (v) = ("user_social_" + v)
55+
56+
57+func z (v) = ("user_thumb_" + v)
58+
59+
60+func A (v) = ("user_status_" + v)
61+
62+
63+func B (v) = ("user_date_" + v)
64+
65+
66+func C (v,D,E,F) = if (if ((D == ""))
67+ then true
68+ else (E == ""))
69+ then throw("Name and description cannot be empty")
70+ else if ((size(E) > 600))
71+ then throw("600 Char. max description")
72+ else if ((size(D) > 45))
73+ then throw("45 Char. max name")
74+ else {
75+ let G = q(A(v))
76+ if (if ((G == l))
77+ then true
78+ else (G == m))
79+ then throw("Account suspended/ removed.")
80+ else if (if (!(F))
81+ then (G == j)
82+ else false)
83+ then throw("Already registered")
84+ else if (if (if (!(F))
85+ then (G == "")
86+ else false)
87+ then h
88+ else false)
89+ then throw("Can't register, get approved first.")
90+ else if (if (if (F)
91+ then (G == "")
92+ else false)
93+ then true
94+ else if (F)
95+ then (G == i)
96+ else false)
97+ then throw("Register first")
98+ else true
99+ }
100+
101+
102+func H (G,I,J) = {
103+ let K = [k, j, l, m, i, n]
104+ let L = if (containsElement(K, G))
105+ then G
106+ else if (if ((G == p))
107+ then (J == i)
108+ else false)
109+ then ""
110+ else throw("Unknown status")
111+ let M = t(B(I))
112+ if (if ((M == 0))
113+ then (L != i)
114+ else false)
115+ then throw("You cant set this status, user is not registered.")
116+ else if (if ((J == i))
117+ then (L == i)
118+ else false)
119+ then throw("User already allowed")
120+ else if (if ((J == j))
121+ then (L == i)
122+ else false)
123+ then throw("User already allowed & registered")
124+ else if (if ((J == k))
125+ then (L == i)
126+ else false)
127+ then throw("User already allowed & verified")
128+ else L
70129 }
71130
72131
73-func v (u) = {
74- let e = getBoolean(this, u)
75- if ($isInstanceOf(e, "Boolean"))
76- then {
77- let f = e
78- f
79- }
80- else false
81- }
132+func N (D,O,P) = (((((("{\"user_name\": \"" + D) + "\", \"user_thumb\":\"") + O) + "\",\"user_date\":\"") + P) + "\"}")
82133
83134
84-func w (u) = {
85- let e = getInteger(this, u)
86- if ($isInstanceOf(e, "Int"))
87- then {
88- let x = e
89- x
90- }
91- else 0
92- }
93-
94-
95-func y (z) = if (if ((75 > size(z)))
96- then (60 > size(split(z, "/")[0]))
97- else false)
98- then (16 > size(split(z, "/")[1]))
99- else false
100-
101-
102-func A (B) = ("user_" + B)
103-
104-
105-func C (B) = ("user_name_" + B)
106-
107-
108-func D (B) = ("user_desc_" + B)
109-
110-
111-func E (B) = ("user_social_" + B)
112-
113-
114-func F (B) = ("user_thumb_" + B)
115-
116-
117-func G (B) = ("user_status_" + B)
118-
119-
120-func H (B) = ("user_date_" + B)
121-
122-
123-@Callable(x)
124-func appRunning (I,J) = {
125- let B = toString(addressFromPublicKey(x.callerPublicKey))
126- let K = toBase58String(x.transactionId)
127- if (containsElement([j, k, toString(this)], B))
128- then [BooleanEntry(a, I), StringEntry(b, J)]
135+@Callable(Q)
136+func appRunning (R,S) = {
137+ let v = toString(addressFromPublicKey(Q.callerPublicKey))
138+ let T = toBase58String(Q.transactionId)
139+ if (containsElement([a, b, toString(this)], v))
140+ then [BooleanEntry(c, R), StringEntry(d, S)]
129141 else throw("You are not allowed to change this")
130142 }
131143
132144
133145
134-@Callable(x)
135-func registrationMode (L) = {
136- let B = toString(addressFromPublicKey(x.callerPublicKey))
137- let K = toBase58String(x.transactionId)
138- if (containsElement([j, k, toString(this)], B))
139- then [BooleanEntry(c, L)]
146+@Callable(Q)
147+func registrationMode (U) = {
148+ let v = toString(addressFromPublicKey(Q.callerPublicKey))
149+ let T = toBase58String(Q.transactionId)
150+ if (containsElement([a, toString(this)], v))
151+ then [BooleanEntry(e, U)]
140152 else throw("You are not allowed to change this")
141153 }
142154
143155
144156
145-@Callable(x)
146-func registerUser (M,N,O,P) = if (!(d))
157+@Callable(Q)
158+func registerUser (D,E,O,V) = if (!(f))
147159 then throw(g)
148160 else {
149- let B = toString(addressFromPublicKey(x.callerPublicKey))
150- let Q = t(G(B))
151- let K = toBase58String(x.transactionId)
152- let R = lastBlock.timestamp
153- if (if ((Q == o))
154- then true
155- else (Q == p))
156- then throw("Account suspended/ removed.")
157- else if ((Q == m))
158- then throw("Already registered")
159- else if (if ((Q == ""))
160- then h
161- else false)
162- then throw("Can't register, get approved first.")
163- else if (if ((M == ""))
164- then true
165- else (N == ""))
166- then throw("Name and description cannot be empty")
167- else if ((size(N) > 600))
168- then throw("600 Char. max description")
169- else if ((size(M) > 45))
170- then throw("45 Char. max name")
171- 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), m)]
161+ let v = toString(addressFromPublicKey(Q.callerPublicKey))
162+ let T = toBase58String(Q.transactionId)
163+ let W = lastBlock.timestamp
164+ if (!(C(v, D, E, false)))
165+ then throw("Something went wrong")
166+ else {
167+ let X = N(toBase64String(toBytes(D)), toBase64String(toBytes(O)), toString(W))
168+[IntegerEntry(B(v), W), StringEntry(u(v), ((T + "_") + toString(W))), StringEntry(w(v), D), StringEntry(x(v), E), StringEntry(y(v), V), StringEntry(z(v), O), StringEntry(A(v), j), DeleteEntry(("ALLOWED_" + v)), StringEntry(((j + "_") + v), X)]
169+ }
172170 }
173171
174172
175173
176-@Callable(x)
177-func updateUser (M,N,O,P) = if (!(d))
174+@Callable(Q)
175+func updateUser (D,E,O,V) = if (!(f))
178176 then throw(g)
179177 else {
180- let B = toString(addressFromPublicKey(x.callerPublicKey))
181- let K = toBase58String(x.transactionId)
182- let S = t(G(B))
183- if (if ((S == o))
184- then true
185- else (S == p))
186- then throw("Account suspended/ removed.")
187- else if (if ((S == ""))
188- then true
189- else (S == l))
190- then throw("Register first")
191- else if (if ((M == ""))
192- then true
193- else (N == ""))
194- then throw("Name & description cannot be empty")
195- else if ((size(N) > 600))
196- then throw("600 Char. max for description")
197- else if ((size(M) > 45))
198- then throw("45 Char. max name")
199- else [StringEntry(C(B), M), StringEntry(D(B), N), StringEntry(E(B), P), StringEntry(F(B), O)]
178+ let v = toString(addressFromPublicKey(Q.callerPublicKey))
179+ let T = toBase58String(Q.transactionId)
180+ let G = q(A(v))
181+ if (!(C(v, D, E, true)))
182+ then throw("Something went wrong")
183+ else {
184+ let P = t(B(v))
185+ let X = N(toBase64String(toBytes(D)), toBase64String(toBytes(O)), toString(P))
186+[StringEntry(w(v), D), StringEntry(x(v), E), StringEntry(y(v), V), StringEntry(z(v), O), StringEntry(((G + "_") + v), X)]
187+ }
200188 }
201189
202190
203191
204-@Callable(x)
205-func changeUserStatus (T,U) = if (!(d))
192+@Callable(Q)
193+func changeUserStatus (I,G) = if (!(f))
206194 then throw(g)
207195 else {
208- let B = toString(addressFromPublicKey(x.callerPublicKey))
209- let K = toBase58String(x.transactionId)
210- let V = t(G(T))
211- let W = if ((U == n))
212- then n
213- else if ((U == m))
214- then m
215- else if ((U == o))
216- then o
217- else if ((U == p))
218- then p
219- else if ((U == l))
220- then l
221- else if ((U == q))
222- then q
223- else if (if ((U == s))
224- then (V == l)
225- else false)
226- then ""
227- else throw("Unknown status")
228- let X = w(H(T))
229- if (if ((X == 0))
230- then (U != l)
231- else false)
232- then throw("You cant set this status, user is not registered.")
233- else if (if ((V == l))
234- then (U == l)
235- else false)
236- then throw("User already allowed")
237- else if (if ((V == m))
238- then (U == l)
239- else false)
240- then throw("User already allowed & registered")
241- else if (if ((V == n))
242- then (U == l)
243- else false)
244- then throw("User already allowed & verified")
245- else if (containsElement([j, k, toString(this)], B))
246- then [StringEntry(G(T), W)]
247- else throw("Not allowed to change user status")
196+ let v = toString(addressFromPublicKey(Q.callerPublicKey))
197+ let T = toBase58String(Q.transactionId)
198+ let J = q(A(I))
199+ let L = H(G, I, J)
200+ let D = toBase64String(toBytes(q(w(I))))
201+ let O = toBase64String(toBytes(q(z(I))))
202+ let P = t(B(I))
203+ let X = N(D, O, toString(P))
204+ if (containsElement([a, b, toString(this)], v))
205+ then [StringEntry(A(I), L), DeleteEntry(((J + "_") + I)), StringEntry(((L + "_") + I), X)]
206+ else throw("Not allowed to change user status")
248207 }
249208
250209
251210
252-@Callable(x)
253-func creditUser (T) = {
254- let B = toString(addressFromPublicKey(x.callerPublicKey))
255- let K = toBase58String(x.transactionId)
256- if (containsElement([j, k], B))
257- then [ScriptTransfer(Address(fromBase58String(T)), 30000000000, i)]
211+@Callable(Q)
212+func deleteUser (I) = {
213+ let v = toString(addressFromPublicKey(Q.callerPublicKey))
214+ let T = toBase58String(Q.transactionId)
215+ let J = q(A(I))
216+ if (containsElement([a, toString(this)], v))
217+ then [DeleteEntry(B(I)), DeleteEntry(u(I)), DeleteEntry(w(I)), DeleteEntry(x(I)), DeleteEntry(y(I)), DeleteEntry(z(I)), DeleteEntry(((J + "_") + I)), StringEntry(A(I), m)]
258218 else throw("Not allowed")
259- }
260-
261-
262-
263-@Callable(x)
264-func deleteUser (T) = {
265- let B = toString(addressFromPublicKey(x.callerPublicKey))
266- let K = toBase58String(x.transactionId)
267- if (containsElement([j, k, toString(this)], B))
268- then [DeleteEntry(H(T)), DeleteEntry(A(T)), DeleteEntry(C(T)), DeleteEntry(D(T)), DeleteEntry(E(T)), DeleteEntry(F(T)), StringEntry(G(T), p)]
269- else throw("Not allowed")
270- }
271-
272-
273-
274-@Callable(x)
275-func deleteEntry (Y) = {
276- let B = toString(addressFromPublicKey(x.callerPublicKey))
277- if ((B == j))
278- then [DeleteEntry(Y)]
279- else throw("no")
280219 }
281220
282221

github/deemru/w8io/026f985 
46.63 ms