tx · BbQd7W6c98QQ1W8JmjQDPgFKBeLCpY5kqQW4xW69yuKM

3N1Dhq5ZZyoojQisuTLusYjnGisqrxDwGLy:  -0.01000000 Waves

2021.10.07 15:57 [1735842] smart account 3N1Dhq5ZZyoojQisuTLusYjnGisqrxDwGLy > SELF 0.00000000 Waves

{ "type": 13, "id": "BbQd7W6c98QQ1W8JmjQDPgFKBeLCpY5kqQW4xW69yuKM", "fee": 1000000, "feeAssetId": null, "timestamp": 1633611502190, "version": 2, "chainId": 84, "sender": "3N1Dhq5ZZyoojQisuTLusYjnGisqrxDwGLy", "senderPublicKey": "4ogfEQE7KGDWQR7Vd5VThqBebZ47NxrMLmAApR3sFuXW", "proofs": [ "4TkvNH3dVPs5fd9rwBRgu4Dura2cwW4JhHXwDia3Awy2yajCjrq66MKX3s2WnNKnUSGcn6wgTDuZNDNMy5NDUZLa" ], "script": "base64:AAIFAAAAAAAAACsIAhIECgIECBIDCgEEEgcKBQgICAgIEgcKBQgICAgIEgUKAwgICBIDCgEIAAAAIAAAAAAJb3JhY2xlRmVlCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNNcFpRanpHb2dtaWZjRUtlOG1EZDZyaWJMN254VDlBQ3llAAAAAAZvd25lcnMJAARMAAAAAgkABB0AAAACBQAAAAlvcmFjbGVGZWUCAAAABm93bmVyMQkABEwAAAACCQAEHQAAAAIFAAAACW9yYWNsZUZlZQIAAAAGb3duZXIyBQAAAANuaWwAAAAADmRhcHBSdW5uaW5nS2V5AgAAABRjb25mX2RhcHBfaXNfcnVubmluZwAAAAARbWFpbnRlbmFuY2VNU0dLZXkCAAAAFGNvbmZfbWFpbnRlbmFuY2VfbXNnAAAAABJ3aGl0ZWxpc3RlZG9ubHlLZXkCAAAAFWNvbmZfd2hpdGVsaXN0ZWRfb25seQAAAAALZGFwcFJ1bm5pbmcJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQbAAAAAgUAAAAEdGhpcwUAAAAOZGFwcFJ1bm5pbmdLZXkGAAAAAA5tYWludGVuYW5jZU1TRwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAR0aGlzBQAAABFtYWludGVuYW5jZU1TR0tleQIAAAAAAAAAAA93aGl0ZWxpc3RlZG9ubHkJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQbAAAAAgUAAAAEdGhpcwUAAAASd2hpdGVsaXN0ZWRvbmx5S2V5BgAAAAALdXNlckFsbG93ZWQCAAAAB0FMTE9XRUQAAAAADnVzZXJSZWdpc3RlcmVkAgAAAApSRUdJU1RFUkVEAAAAAAx1c2VyVmVyaWZpZWQCAAAACFZFUklGSUVEAAAAAA11c2VyU3VzcGVuZGVkAgAAAAlTVVNQRU5ERUQAAAAAC3VzZXJSZW1vdmVkAgAAAAdSRU1PVkVEAAAAABJ1c2VyQ2hhbmdlUmVxdWlyZWQCAAAAD0NIQU5HRV9SRVFVSVJFRAAAAAAQdXNlclVucmVnaXN0ZXJlZAIAAAAMVU5SRUdJU1RFUkVEAAAAAAl1c2VyUmVzZXQCAAAABVJFU0VUAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEAAAAD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AAECAAAAEkFscmVhZHkgcmVnaXN0ZXJlZAMDAwkBAAAAASEAAAABBQAAAAppc0FuVXBkYXRlCQAAAAAAAAIFAAAABnN0YXR1cwIAAAAABwUAAAAPd2hpdGVsaXN0ZWRvbmx5BwkAAAIAAAABAgAAACNDYW4ndCByZWdpc3RlciwgZ2V0IGFwcHJvdmVkIGZpcnN0LgMDAwUAAAAKaXNBblVwZGF0ZQkAAAAAAAACBQAAAAZzdGF0dXMCAAAAAAcGAwUAAAAKaXNBblVwZGF0ZQkAAAAAAAACBQAAAAZzdGF0dXMFAAAAC3VzZXJBbGxvd2VkBwkAAAIAAAABAgAAAA5SZWdpc3RlciBmaXJzdAYBAAAAEXZhbGlkYXRlTmV3U3RhdHVzAAAAAwAAAAZzdGF0dXMAAAAHYWRkcmVzcwAAAA1jdXJyZW50U3RhdHVzBAAAAAlhbGxTdGF0dXMJAARMAAAAAgUAAAAMdXNlclZlcmlmaWVkCQAETAAAAAIFAAAADnVzZXJSZWdpc3RlcmVkCQAETAAAAAIFAAAADXVzZXJTdXNwZW5kZWQJAARMAAAAAgUAAAALdXNlclJlbW92ZWQJAARMAAAAAgUAAAALdXNlckFsbG93ZWQJAARMAAAAAgUAAAASdXNlckNoYW5nZVJlcXVpcmVkBQAAAANuaWwEAAAAC3N0YXR1c1RvU2V0AwkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIFAAAACWFsbFN0YXR1cwUAAAAGc3RhdHVzBQAAAAZzdGF0dXMDAwkAAAAAAAACBQAAAAZzdGF0dXMFAAAACXVzZXJSZXNldAkAAAAAAAACBQAAAA1jdXJyZW50U3RhdHVzBQAAAAt1c2VyQWxsb3dlZAcCAAAAAAkAAAIAAAABAgAAAA5Vbmtub3duIHN0YXR1cwQAAAAQdXNlcklzUmVnaXN0ZXJlZAkBAAAAD2dldEludGVnZXJCeUtleQAAAAEJAQAAAAtrZXlVc2VyRGF0ZQAAAAEFAAAAB2FkZHJlc3MDAwkAAAAAAAACBQAAABB1c2VySXNSZWdpc3RlcmVkAAAAAAAAAAAACQEAAAACIT0AAAACBQAAAAtzdGF0dXNUb1NldAUAAAALdXNlckFsbG93ZWQHCQAAAgAAAAECAAAAMVlvdSBjYW50IHNldCB0aGlzIHN0YXR1cywgdXNlciBpcyBub3QgcmVnaXN0ZXJlZC4DAwkAAAAAAAACBQAAAA1jdXJyZW50U3RhdHVzBQAAAAt1c2VyQWxsb3dlZAkAAAAAAAACBQAAAAtzdGF0dXNUb1NldAUAAAALdXNlckFsbG93ZWQHCQAAAgAAAAECAAAAFFVzZXIgYWxyZWFkeSBhbGxvd2VkAwMJAAAAAAAAAgUAAAANY3VycmVudFN0YXR1cwUAAAAOdXNlclJlZ2lzdGVyZWQJAAAAAAAAAgUAAAALc3RhdHVzVG9TZXQFAAAAC3VzZXJBbGxvd2VkBwkAAAIAAAABAgAAACFVc2VyIGFscmVhZHkgYWxsb3dlZCAmIHJlZ2lzdGVyZWQDAwkAAAAAAAACBQAAAA1jdXJyZW50U3RhdHVzBQAAAAx1c2VyVmVyaWZpZWQJAAAAAAAAAgUAAAALc3RhdHVzVG9TZXQFAAAAC3VzZXJBbGxvd2VkBwkAAAIAAAABAgAAAB9Vc2VyIGFscmVhZHkgYWxsb3dlZCAmIHZlcmlmaWVkBQAAAAtzdGF0dXNUb1NldAEAAAAIbWFrZUpTT04AAAADAAAABG5hbWUAAAAFdGh1bWIAAAAEZGF0ZQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAPeyJ1c2VyX25hbWUiOiAiBQAAAARuYW1lAgAAABEiLCAidXNlcl90aHVtYiI6IgUAAAAFdGh1bWICAAAADyIsInVzZXJfZGF0ZSI6IgUAAAAEZGF0ZQIAAAACIn0AAAAGAAAABmludm9rZQEAAAAKYXBwUnVubmluZwAAAAIAAAAGaXNMaXZlAAAAB21lc3NhZ2UEAAAABmNhbGxlcgkABCUAAAABCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCAUAAAAGaW52b2tlAAAAD2NhbGxlclB1YmxpY0tleQQAAAACaWQJAAJYAAAAAQgFAAAABmludm9rZQAAAA10cmFuc2FjdGlvbklkAwkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIJAARNAAAAAgUAAAAGb3duZXJzCQAEJQAAAAEFAAAABHRoaXMFAAAABmNhbGxlcgkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAAOZGFwcFJ1bm5pbmdLZXkFAAAABmlzTGl2ZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABFtYWludGVuYW5jZU1TR0tleQUAAAAHbWVzc2FnZQUAAAADbmlsCQAAAgAAAAECAAAAIllvdSBhcmUgbm90IGFsbG93ZWQgdG8gY2hhbmdlIHRoaXMAAAAGaW52b2tlAQAAABByZWdpc3RyYXRpb25Nb2RlAAAAAQAAAAZXTG9ubHkEAAAABmNhbGxlcgkABCUAAAABCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCAUAAAAGaW52b2tlAAAAD2NhbGxlclB1YmxpY0tleQQAAAACaWQJAAJYAAAAAQgFAAAABmludm9rZQAAAA10cmFuc2FjdGlvbklkAwkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIJAARNAAAAAgUAAAAGb3duZXJzCQAEJQAAAAEFAAAABHRoaXMFAAAABmNhbGxlcgkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAASd2hpdGVsaXN0ZWRvbmx5S2V5BQAAAAZXTG9ubHkFAAAAA25pbAkAAAIAAAABAgAAACJZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSB0aGlzAAAABmludm9rZQEAAAAMcmVnaXN0ZXJVc2VyAAAABQAAAARuYW1lAAAAC2Rlc2NyaXB0aW9uAAAABXRodW1iAAAABnNvY2lhbAAAAAZiYW5uZXIDCQEAAAABIQAAAAEFAAAAC2RhcHBSdW5uaW5nCQAAAgAAAAEFAAAADm1haW50ZW5hbmNlTVNHBAAAAAZjYWxsZXIJAAQlAAAAAQkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQgFAAAABmludm9rZQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAAmlkCQACWAAAAAEIBQAAAAZpbnZva2UAAAANdHJhbnNhY3Rpb25JZAQAAAAJdGltZXN0YW1wCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAMJAQAAAAEhAAAAAQkBAAAADnZhbGlkYXRlQmFubmVyAAAAAQUAAAAGYmFubmVyCQAAAgAAAAECAAAAFUludmFsaWQgYmFubmVyIGltYWdlIQMJAQAAAAEhAAAA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", "height": 1735842, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: cnK6R7pekKNXjiPiWTmVciSKJWVB39n625CTpM3ju3g Next: UsCe5gBo62vn9gJKgELvwBFCa6AqrdSEfEM5YW8iAwe Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = false
4+let a = value(addressFromString("3MpZQjzGogmifcEKe8mDd6ribL7nxT9ACye"))
55
6-let b = value(addressFromString("3MpZQjzGogmifcEKe8mDd6ribL7nxT9ACye"))
6+let b = [getString(a, "owner1"), getString(a, "owner2")]
77
8-let c = "3N65xLq8JcCeaEiR1TJQ7dBqXBvEy6E48Wz"
8+let c = "conf_dapp_is_running"
99
10-let d = "3MxcXrNbMZKYaSrhcfeMm2hZnBeCu3yRWsw"
10+let d = "conf_maintenance_msg"
1111
12-let e = value(addressFromString("3N9cQgZFPHHVu8wqsn2DkQFehg3h8CNiooA"))
12+let e = "conf_whitelisted_only"
1313
14-let f = value(addressFromString("3N9xZYGpzMFDXvXuctmU6zV8qSzm2ZfF31f"))
14+let f = valueOrElse(getBoolean(this, c), true)
1515
16-let g = base58'132maRL3uF35tc2bpRih9D6MYq5DR6H28zkop786dKyu'
16+let g = valueOrElse(getString(this, d), "")
1717
18-let h = [getString(b, "owner1"), getString(b, "owner2")]
18+let h = valueOrElse(getBoolean(this, e), true)
1919
20-let i = 150
20+let i = "ALLOWED"
2121
22-let j = 30
22+let j = "REGISTERED"
2323
24-let k = 70
24+let k = "VERIFIED"
2525
26-let l = valueOrElse(getBoolean(e, "conf_dapp_is_running"), true)
26+let l = "SUSPENDED"
2727
28-let m = valueOrElse(getString(e, "conf_maintenance_msg"), "")
28+let m = "REMOVED"
2929
30-let n = "SUSPENDED"
30+let n = "CHANGE_REQUIRED"
3131
32-let o = "REMOVED"
32+let o = "UNREGISTERED"
3333
34-let p = "UNREGISTERED"
34+let p = "RESET"
3535
36-let q = "ALLOWED"
37-
38-let r = "BIDTYPE"
39-
40-let s = "TRADITIONAL"
41-
42-func t (u) = valueOrElse(getString(e, u), "")
36+func q (r) = valueOrElse(getString(this, r), "")
4337
4438
45-func v (u) = valueOrElse(getString(this, u), "")
39+func s (r) = valueOrElse(getBoolean(this, r), false)
4640
4741
48-func w (u,x) = valueOrErrorMessage(getString(this, u), x)
42+func t (r) = valueOrElse(getInteger(this, r), 0)
4943
5044
51-func y (u) = valueOrErrorMessage(getInteger(b, u), "Integer undefine or 0 in oracle")
45+func u (v) = ("user_" + v)
5246
5347
54-func z (u) = valueOrElse(getInteger(this, u), 0)
48+func w (v) = ("user_name_" + v)
5549
5650
57-func A (u) = valueOrElse(getInteger(f, u), 0)
51+func x (v) = ("user_desc_" + v)
5852
5953
60-func B (u) = valueOrElse(getBoolean(this, u), false)
54+func y (v) = ("user_social_" + v)
6155
6256
63-func C (D) = (size(D) == 64)
57+func z (v) = ("user_thumb_" + v)
6458
6559
66-func E (F) = ("user_status_" + F)
60+func A (v) = ("user_banner_" + v)
6761
6862
69-func G (F,H) = ((("art_date_" + H) + "_") + F)
63+func B (v) = ("user_status_" + v)
7064
7165
72-func I (F,H) = ((("art_name_" + H) + "_") + F)
66+func C (v) = ("user_date_" + v)
7367
7468
75-func J (F,H) = ((("art_desc_" + H) + "_") + F)
69+func D (E) = if (contains(E, "/"))
70+ then if (if ((63 > size(E)))
71+ then (size(split(E, "/")[0]) == 46)
72+ else false)
73+ then (16 > size(split(E, "/")[1]))
74+ else false
75+ else false
7676
7777
78-func K (F,H) = ((("art_display_cid_" + H) + "_") + F)
78+func F (E) = if ((size(E) == 0))
79+ then true
80+ else if ((size(E) == 46))
81+ then true
82+ else false
7983
8084
81-func L (F,H) = ((("art_maxmint_" + H) + "_") + F)
82-
83-
84-func M (F,H) = ((("art_minprice_" + H) + "_") + F)
85-
86-
87-func N (H) = ("art_highestBidBidId_" + H)
88-
89-
90-func O (P) = ("bid_" + P)
91-
92-
93-func Q (F,H) = ((("art_duration_" + H) + "_") + F)
94-
95-
96-func R (F,H) = ((("art_endheight_" + H) + "_") + F)
97-
98-
99-func S (F,H) = ((("art_auctiontype_" + H) + "_") + F)
100-
101-
102-func T (F,H) = ((("art_issued_" + H) + "_") + F)
103-
104-
105-func U (V) = ("nft_issued_" + V)
106-
107-
108-func W (F,H) = ((("art_onsale_" + H) + "_") + F)
109-
110-
111-func X (F,H) = ((("art_entitlement_" + H) + "_") + F)
112-
113-
114-func Y (F,H) = ((("art_tags_" + H) + "_") + F)
115-
116-
117-func Z (F,H) = ((("art_type_" + H) + "_") + F)
118-
119-
120-func aa (F,H) = ((("art_price_" + H) + "_") + F)
121-
122-
123-func ab (F,H) = ((("art_assetAccepted_" + H) + "_") + F)
124-
125-
126-func ac (F,ad) = ((("get_hashbytxidaddr_" + ad) + "_") + F)
127-
128-
129-func ae (af) = ("get_owner_by_hash_" + af)
130-
131-
132-func ag (af,F) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((af + F)))))
133-
134-
135-let ah = y(("certification_fee_" + toBase58String(g)))
136-
137-func ai (P) = valueOrElse(z(O(P)), 0)
138-
139-
140-func aj (H) = {
141- let P = v(N(H))
142- if ((P == ""))
143- then 0
144- else ai(P)
85+func G (v,H,I,J,K) = {
86+ let L = if ((size(J) != 0))
87+ then D(J)
88+ else true
89+ if (!(L))
90+ then throw("CID don't match requirement!")
91+ else if (if ((H == ""))
92+ then true
93+ else (I == ""))
94+ then throw("Name and description cannot be empty")
95+ else if ((size(I) > 600))
96+ then throw("600 Char. max description")
97+ else if ((size(H) > 45))
98+ then throw("45 Char. max name")
99+ else {
100+ let M = q(B(v))
101+ if (if ((M == l))
102+ then true
103+ else (M == m))
104+ then throw("Account suspended/ removed.")
105+ else if (if (!(K))
106+ then (M == j)
107+ else false)
108+ then throw("Already registered")
109+ else if (if (if (!(K))
110+ then (M == "")
111+ else false)
112+ then h
113+ else false)
114+ then throw("Can't register, get approved first.")
115+ else if (if (if (K)
116+ then (M == "")
117+ else false)
118+ then true
119+ else if (K)
120+ then (M == i)
121+ else false)
122+ then throw("Register first")
123+ else true
124+ }
145125 }
146126
147127
148-func ak (al,am) = if ((size(al) == 0))
149- then throw("Field cannot be is empty")
150- else if ((size(al) > am))
151- then throw((al + " is too long"))
152- else true
153-
154-
155-func an (F) = {
156- let ao = valueOrElse(getString(e, E(F)), p)
157- if (if ((ao == p))
158- then true
159- else (ao == q))
160- then "Register this account first with 'Account' tab"
161- else if ((ao == n))
162- then "Account suspended"
163- else if ((ao == o))
164- then "Account removed"
165- else ""
128+func N (M,O,P) = {
129+ let Q = [k, j, l, m, i, n]
130+ let R = if (containsElement(Q, M))
131+ then M
132+ else if (if ((M == p))
133+ then (P == i)
134+ else false)
135+ then ""
136+ else throw("Unknown status")
137+ let S = t(C(O))
138+ if (if ((S == 0))
139+ then (R != i)
140+ else false)
141+ then throw("You cant set this status, user is not registered.")
142+ else if (if ((P == i))
143+ then (R == i)
144+ else false)
145+ then throw("User already allowed")
146+ else if (if ((P == j))
147+ then (R == i)
148+ else false)
149+ then throw("User already allowed & registered")
150+ else if (if ((P == k))
151+ then (R == i)
152+ else false)
153+ then throw("User already allowed & verified")
154+ else R
166155 }
167156
168157
169-func ap (F,aq,ar,as,at) = {
170- let au = an(F)
171- if ((au != ""))
172- then throw(au)
173- else if ((size(aq) == 0))
174- then throw("Display CID cannot be empty")
175- else if ((size(aq) != 46))
176- then throw("This doesn't seem a valid CID!")
177- else if (!(ak(ar, 100)))
178- then throw("100 Char. max name")
179- else if (!(ak(as, 1000)))
180- then throw("1000 Char. max description")
181- else if ((size(split(at, ",")) > 5))
182- then throw("5 tags max.")
183- else ""
184- }
158+func T (H,J,U) = (((((("{\"user_name\": \"" + H) + "\", \"user_thumb\":\"") + J) + "\",\"user_date\":\"") + U) + "\"}")
185159
186160
187-func av (aw) = if ((size(aw.payments) == 0))
188- then throw("No payment attached")
189- else {
190- let ax = value(aw.payments[0])
191- let ay = value(ax.amount)
192- $Tuple2(ax, ay)
193- }
194-
195-
196-func az (aw) = {
197- let aA = av(aw)
198- let ax = aA._1
199- let ay = aA._2
200- let aB = if (if (isDefined(ax.assetId))
201- then (ax.assetId == g)
202- else false)
203- then ax.assetId
204- else throw("Only USDN token accepted as transaction fee")
205- if ((ay != ah))
206- then throw(((("Payment amount should be " + toString(ah)) + " but is: ") + toString(ay)))
207- else $Tuple2(ay, aB)
208- }
209-
210-
211-func aC (aD,H) = {
212- let aE = getInteger(this, T(aD, H))
213- if ($isInstanceOf(aE, "Int"))
214- then {
215- let aF = aE
216- if ((aF != 0))
217- then true
218- else false
219- }
220- else false
221- }
222-
223-
224-func aG (aw,aH,aI) = {
225- let aJ = av(aw)
226- let ax = aJ._1
227- let ay = aJ._2
228- let aB = if (!(isDefined(ax.assetId)))
229- then throw("Wrong asset id")
230- else if (if ((size(aH) > 0))
231- then (toBase58String(value(ax.assetId)) == aH)
232- else false)
233- then ax.assetId
234- else throw("Wrong asset id")
235- if (if ((aB == unit))
236- then (aH != "")
237- else false)
238- then throw("Wrong asset id")
239- else if ((aI != ay))
240- then throw(((("Payment don't match " + toString(aI)) + " ") + toString(ay)))
241- else $Tuple2(ay, aB)
242- }
243-
244-
245-func aK (aB) = if ((aB != toBase58String(g)))
246- then throw("Only USDN accepted")
247- else true
248-
249-
250-func aL (aB,aM) = {
251- let aN = if (a)
252- then 1
253- else (ah * 2)
254- if (if (if ((aB == toBase58String(g)))
255- then (aN > aM)
256- else false)
257- then (aM != 0)
258- else false)
259- then throw(("Wrong minimum sell price " + toString(aN)))
260- else true
261- }
262-
263-
264-func aO (aB) = if ((aB == "WAVES"))
265- then throw("Only USDN is accepted!")
266- else fromBase58String(aB)
267-
268-
269-func aP (aQ) = {
270- let aR = v((aQ + "_OPEN"))
271- if ((aR == ""))
272- then throw("Bid not found")
273- else {
274- let aS = split(aR, "_")
275- let aT = parseIntValue(aS[1])
276- let aU = aO(aS[0])
277- if ((0 >= aT))
278- then throw("Wrong amount")
279- else $Tuple2(aT, aU)
280- }
281- }
282-
283-
284-func aV (aw) = if (!(l))
285- then throw(m)
286- else $Tuple3(toBase58String(aw.transactionId), toBase58String(aw.caller.bytes), lastBlock.timestamp)
287-
288-
289-func aW (aw,aX,aY,P) = if (if (if ((toBase58String(aw.caller.bytes) == aX))
290- then (aY != "")
291- else false)
292- then (P != "")
293- else false)
294- then true
295- else false
296-
297-
298-func aZ (aw,aX,H,ba) = {
299- let bb = (toBase58String(aw.caller.bytes) == aX)
300- let bc = z("total_nft_issued")
301- let bd = v(I(aX, H))
302- if ((bd == ""))
303- then throw("Art doesn't exist")
304- else {
305- let be = B(W(aX, H))
306- let bf = z(T(aX, H))
307- let aI = valueOrElse(z(aa(aX, H)), (ah * 2))
308- let aH = if (bb)
309- then toBase58String(g)
310- else v(ab(aX, H))
311- let bg = z(L(aX, H))
312- if (if (if (!(ba))
313- then !(bb)
314- else false)
315- then if (if ((0 >= aI))
316- then true
317- else !(be))
318- then true
319- else (0 >= bg)
320- else false)
321- then throw("Art not for sale")
322- else if (if (if (!(ba))
323- then bb
324- else false)
325- then (0 >= bg)
326- else false)
327- then throw("Max issuable not set")
328- else $Tuple7(bc, bd, bf, aI, aH, bg, be)
329- }
330- }
331-
332-
333-func bh (aw,F,aX,H,aY,P,aH,aI,ba) = {
334- let au = an(aX)
335- if (if (ba)
336- then (au != "")
337- else false)
338- then throw(au)
339- else {
340- let aQ = ((((((("bid_" + H) + "_") + aX) + "_") + aY) + "_") + P)
341- let bi = if (ba)
342- then aP(aQ)
343- else aG(aw, aH, aI)
344- let ay = bi._1
345- let aB = bi._2
346- $Tuple3(aQ, ay, aB)
347- }
348- }
349-
350-
351-func bj (aX,aB,ay,bf,bg) = {
352- let bk = A(aX)
353- let bl = if ((bk > height))
354- then 0
355- else if ((aB == g))
356- then i
357- else throw("Only USDN is accepted!")
358- let bm = fraction(ay, bl, 1000)
359- let bn = (ay - bm)
360- if ((bf == bg))
361- then throw("Art sold out")
362- else {
363- let bo = (bf + 1)
364- $Tuple3(bm, bn, bo)
365- }
366- }
367-
368-
369-func bp (aX,H,bd,bo,bg,bc,F,aY,P,aw,be) = {
370- let bq = ((((((((("Creator: " + aX) + ",ArtID: ") + H) + ",Artwork name: ") + bd) + ",Issue: ") + toString(bo)) + "/") + toString(bg))
371- let br = if (if ((bo == bg))
372- then true
373- else !(be))
374- then false
375- else true
376- let bs = if ((aY != ""))
377- then addressFromStringValue(aY)
378- else aw.caller
379- $Tuple3(br, bs, bq)
380- }
381-
382-
383-func bt (bu) = if ((4 > bu))
384- then "SSR"
385- else if ((11 > bu))
386- then "SR"
387- else if ((101 > bu))
388- then "R"
389- else "N"
390-
391-
392-func bv (aB,aQ,bw) = {
393- let bx = if (!(isDefined(aB)))
394- then throw("Only USDN is accepted")
395- else toBase58String(value(aB))
396- let aR = v((aQ + "_OPEN"))
397- let by = DeleteEntry((aQ + "_OPEN"))
398- let bz = StringEntry((aQ + "_CLOSED"), ((aR + "_") + toString(bw)))
399- $Tuple3(bx, by, bz)
400- }
401-
402-
403-func bA (aw,H,aX,P,aY,ba) = {
404- let bB = aV(aw)
405- let bC = bB._1
406- let F = bB._2
407- let bw = bB._3
408- let bD = aZ(aw, aX, H, ba)
409- let bc = bD._1
410- let bd = bD._2
411- let bf = bD._3
412- let aI = bD._4
413- let aH = bD._5
414- let bg = bD._6
415- let be = bD._7
416- let aR = bh(aw, F, aX, H, aY, P, aH, aI, ba)
417- let aQ = aR._1
418- let ay = aR._2
419- let aB = aR._3
420- let bE = bj(aX, value(aB), ay, bf, bg)
421- let bm = bE._1
422- let bn = bE._2
423- let bo = bE._3
424- let bF = bp(aX, H, bd, bo, bg, bc, F, aY, P, aw, be)
425- let br = bF._1
426- let bs = bF._2
427- let bq = bF._3
428- let bG = invoke(this, "mintNft", [bc, bq, toString(bs)], nil)
429- if ((bG == bG))
430- then {
431- let bH = {
432- let aE = bG
433- if ($isInstanceOf(aE, "String"))
434- then {
435- let bI = aE
436- bI
437- }
438- else throw("Incorrect invoke result")
439- }
440- let bJ = bv(aB, aQ, bw)
441- let bx = bJ._1
442- let by = bJ._2
443- let bz = bJ._3
444- let bK = ((((((("art_sold_" + toString(bo)) + "_of_") + toString(bg)) + "_") + H) + "_") + aX)
445- let bL = bt(bo)
446- let bM = if (!(ba))
447- then ((((((((((F + "_") + toString(bw)) + "_") + bC) + "_") + toString(aI)) + "_") + aH) + "_") + bH)
448- else ((((((((((toString(bs) + "_") + toString(bw)) + "_") + bC) + "_") + toString(ay)) + "_") + bx) + "_") + bH)
449- let bN = StringEntry(bK, bM)
450- let bO = [IntegerEntry(T(aX, H), bo), StringEntry(("nft_" + bH), bK), StringEntry(("nft_rarity_" + bH), bL), IntegerEntry("total_nft_issued", (bc + 1)), BooleanEntry(W(aX, H), br), ScriptTransfer(Address(fromBase58String(aX)), bn, aB), ScriptTransfer(Address(fromBase58String(c)), bm, aB), StringEntry(U(bH), aX)]
451- let bP = invoke(addressFromStringValue(d), "createCert", [toString(bs), bH, aX], nil)
452- if ((bP == bP))
453- then if (ba)
454- then (((bO :+ bN) :+ bz) :+ by)
455- else bN :: bO
456- else throw("Strict value is not equal to itself.")
457- }
458- else throw("Strict value is not equal to itself.")
459- }
460-
461-
462-func bQ (aw,H,aX) = {
463- let bR = aV(aw)
464- let bC = bR._1
465- let F = bR._2
466- let bw = bR._3
467- let bS = av(aw)
468- let ax = bS._1
469- let ay = bS._2
470- let aB = if (!(isDefined(ax.assetId)))
471- then throw("Only USDN is accepted!")
472- else toBase58String(value(ax.assetId))
473- let bT = z(("current_bidamount_" + H))
474- if (!(aK(aB)))
475- then throw("asset not accepted")
476- else if (!(aL(aB, ay)))
477- then throw("Wrong min sell")
478- else {
479- let bf = z(T(aX, H))
480- let bg = z(L(aX, H))
481- if ((0 >= bg))
482- then throw("No max edition set for this artwork")
483- else if ((bf >= bg))
484- then throw("Sold out, you cannot bid")
485- else [StringEntry((((((((("bid_" + H) + "_") + aX) + "_") + F) + "_") + bC) + "_OPEN"), ((((aB + "_") + toString(ay)) + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + H), (bT + 1))]
486- }
487- }
488-
489-
490-func bU (aw,H,aX) = {
491- let bV = z(R(aX, H))
492- let bW = aj(H)
493- if ((height > bV))
494- then throw("This auction is finished already!")
495- else {
496- let bX = aV(aw)
497- let bC = bX._1
498- let F = bX._2
499- let bw = bX._3
500- let bY = av(aw)
501- let ax = bY._1
502- let ay = bY._2
503- if ((bW >= ay))
504- then throw(("Please place a bid higher than: " + toString(bW)))
505- else {
506- let aB = if (!(isDefined(ax.assetId)))
507- then throw("Only USDN is accepted!")
508- else toBase58String(value(ax.assetId))
509- let bT = z(("current_bidamount_" + H))
510- if (!(aK(aB)))
511- then throw("asset not accepted")
512- else if (!(aL(aB, ay)))
513- then throw("Wrong min sell")
514- else {
515- let bf = z(T(aX, H))
516- let bg = z(L(aX, H))
517- if ((0 >= bg))
518- then throw("No max edition set for this artwork")
519- else if ((bf >= bg))
520- then throw("Sold out, you cannot bid")
521- else [StringEntry((((((((("bid_" + H) + "_") + aX) + "_") + F) + "_") + bC) + "_OPEN"), ((((aB + "_") + toString(ay)) + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + H), (bT + 1)), StringEntry(N(H), toBase58String(aw.transactionId)), IntegerEntry(O(toBase58String(aw.transactionId)), ay)]
522- }
523- }
524- }
525- }
526-
527-
528-func bZ (aw,H,aX,P,aY) = {
529- let F = toBase58String(aw.caller.bytes)
530- if ((F != aX))
531- then throw("You cannot do this action")
532- else bA(aw, H, aX, P, aY, true)
533- }
534-
535-
536-func ca (H,aX) = {
537- let bf = z(T(aX, H))
538- let bg = z(L(aX, H))
539- let cb = z(R(aX, H))
540- let cc = z(Q(aX, H))
541- let bV = (cc + height)
542- if ((height > cb))
543- then if ((bf == bg))
544- then throw("Can't restart auction, max amount sold")
545- else [IntegerEntry(R(aX, H), bV), DeleteEntry(N(H))]
546- else throw("Previous auction isn't completed yet")
547- }
548-
549-
550-func cd (aw,H,aX,P,aY) = {
551- let bV = z(R(aX, H))
552- let ce = v(N(H))
553- if ((height > bV))
554- then if ((P == ce))
555- then {
556- let cf = bA(aw, H, aX, P, aY, true)
557- let cg = ca(H, aX)
558- (cg ++ cf)
559- }
560- else throw("This is not the winning bid!")
561- else throw("This auction is not yet finished!")
562- }
563-
564-
565-func ch (aw,H,aX,P) = {
566- let ci = aV(aw)
567- let bC = ci._1
568- let F = ci._2
569- let bw = ci._3
570- let bT = z(("current_bidamount_" + H))
571- let aQ = ((((((("bid_" + H) + "_") + aX) + "_") + F) + "_") + P)
572- let aR = w((aQ + "_OPEN"), "Bid not found")
573- let aS = split(aR, "_")
574- let aB = aO(aS[0])
575- let cj = "CANCELED"
576-[DeleteEntry((aQ + "_OPEN")), StringEntry(((aQ + "_") + cj), ((aR + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + H), (bT - 1)), ScriptTransfer(Address(fromBase58String(F)), parseIntValue(aS[1]), aB)]
577- }
578-
579-
580-func ck (aw,H,aX,P) = {
581- let ci = aV(aw)
582- let bC = ci._1
583- let F = ci._2
584- let bw = ci._3
585- let bT = z(("current_bidamount_" + H))
586- let aQ = ((((((("bid_" + H) + "_") + aX) + "_") + F) + "_") + P)
587- let aR = w((aQ + "_OPEN"), "Bid not found")
588- let aS = split(aR, "_")
589- let aB = aO(aS[0])
590- let cj = "CANCELED"
591- let aT = parseIntValue(aS[1])
592- let ce = v(N(H))
593- if ((P == ce))
594- then throw("You can't cancel the highest bid!")
595- else [DeleteEntry((aQ + "_OPEN")), StringEntry(((aQ + "_") + cj), ((aR + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + H), (bT - 1)), ScriptTransfer(Address(fromBase58String(F)), aT, aB)]
596- }
597-
598-
599-@Callable(aw)
600-func mintNft (bc,bq,bs) = if ((aw.caller == this))
601- then {
602- let cl = Address(fromBase58String(bs))
603- let cm = Issue(("SCONEX_" + toString((bc + 1))), bq, 1, 0, false)
604- let bH = calculateAssetId(cm)
605- $Tuple2([cm, ScriptTransfer(cl, 1, bH)], toBase58String(bH))
606- }
607- else throw("Only the dApp can mint NFT's")
608-
609-
610-
611-@Callable(aw)
612-func addArtwork (af,ar,as,at,cn,aq,co) = {
613- let cp = aV(aw)
614- let H = cp._1
615- let F = cp._2
616- let bw = cp._3
617- let cq = ap(F, aq, ar, as, at)
618- if ((cq != ""))
619- then throw("Something went wrong!")
620- else {
621- let cr = az(aw)
622- let ay = cr._1
623- let aB = cr._2
624- if (!(isDefined(ay)))
625- then throw("Something went wrong")
626- else {
627- let cs = v(ag(af, F))
628- if ((cs != ""))
629- then throw("You already added it")
630- else {
631- let ct = v(ae(af))
632- if ((ct != ""))
633- then throw("This hash is already registered")
634- else [StringEntry(ae(af), F), StringEntry(ag(af, F), H), IntegerEntry(G(F, H), bw), StringEntry(I(F, H), ar), StringEntry(J(F, H), as), StringEntry(K(F, H), aq), StringEntry(Z(F, H), cn), StringEntry(Y(F, H), at), IntegerEntry(L(F, H), 0), IntegerEntry(T(F, H), 0), BooleanEntry(W(F, H), false), StringEntry(ac(F, H), af), StringEntry(X(F, H), co), ScriptTransfer(Address(fromBase58String(c)), ay, aB)]
635- }
636- }
637- }
161+@Callable(V)
162+func appRunning (W,X) = {
163+ let v = toString(addressFromPublicKey(V.callerPublicKey))
164+ let Y = toBase58String(V.transactionId)
165+ if (containsElement((b :+ toString(this)), v))
166+ then [BooleanEntry(c, W), StringEntry(d, X)]
167+ else throw("You are not allowed to change this")
638168 }
639169
640170
641171
642-@Callable(aw)
643-func sellArtwork (H,aM,cu,aB,cv,cw,cc) = {
644- let cx = aV(aw)
645- let bC = cx._1
646- let F = cx._2
647- let bd = v(I(F, H))
648- if (!(containsElement([r, s], cv)))
649- then throw("We don't know this auction type")
650- else if ((bd == ""))
651- then throw("This art doesn't match your account")
652- else {
653- let bT = z(("current_bidamount_" + H))
654- if (!(aK(aB)))
655- then throw("Something went wrong!")
656- else if (!(aL(aB, aM)))
657- then throw("Something went wrong!")
658- else {
659- let au = an(F)
660- if ((au != ""))
661- then throw(au)
662- else {
663- let bf = z(T(F, H))
664- let bg = z(L(F, H))
665- if ((cu > 10))
666- then throw("10 editions max per artwork")
667- else if (if ((bf != 0))
668- then (bf == bg)
669- else false)
670- then throw("Max edition reached.")
671- else if (if ((bf > 0))
672- then (bg != cu)
673- else false)
674- then throw("Cannot change maximum issuable anymore")
675- else if (if ((bT > 0))
676- then (bg != cu)
677- else false)
678- then throw("Cannot change maximum issuable with active orders")
679- else {
680- let br = if (if ((aM > 0))
681- then (cu > 0)
682- else false)
683- then true
684- else false
685- let bV = (cc + height)
686-[BooleanEntry(W(F, H), br), IntegerEntry(aa(F, H), aM), IntegerEntry(L(F, H), cu), IntegerEntry(M(F, H), cw), IntegerEntry(Q(F, H), cc), IntegerEntry(R(F, H), bV), StringEntry(ab(F, H), aB), StringEntry(S(F, H), cv)]
687- }
688- }
689- }
690- }
172+@Callable(V)
173+func registrationMode (Z) = {
174+ let v = toString(addressFromPublicKey(V.callerPublicKey))
175+ let Y = toBase58String(V.transactionId)
176+ if (containsElement((b :+ toString(this)), v))
177+ then [BooleanEntry(e, Z)]
178+ else throw("You are not allowed to change this")
691179 }
692180
693181
694182
695-@Callable(aw)
696-func buyArtwork (H,aX) = bA(aw, H, aX, "", "", false)
183+@Callable(V)
184+func registerUser (H,I,J,aa,ab) = if (!(f))
185+ then throw(g)
186+ else {
187+ let v = toString(addressFromPublicKey(V.callerPublicKey))
188+ let Y = toBase58String(V.transactionId)
189+ let ac = lastBlock.timestamp
190+ if (!(F(ab)))
191+ then throw("Invalid banner image!")
192+ else if (!(G(v, H, I, J, false)))
193+ then throw("Something went wrong")
194+ else {
195+ let ad = T(toBase64String(toBytes(H)), toBase64String(toBytes(J)), toString(ac))
196+[IntegerEntry(C(v), ac), StringEntry(u(v), ((Y + "_") + toString(ac))), StringEntry(w(v), H), StringEntry(x(v), I), StringEntry(y(v), aa), StringEntry(z(v), J), StringEntry(A(v), ab), StringEntry(B(v), j), DeleteEntry(("ALLOWED_" + v)), StringEntry(((j + "_") + v), ad)]
197+ }
198+ }
697199
698200
699201
700-@Callable(aw)
701-func deleteEntry (cy) = {
702- let F = toString(addressFromPublicKey(aw.callerPublicKey))
703- if (containsElement(h, F))
704- then [DeleteEntry(cy)]
705- else throw("no")
202+@Callable(V)
203+func updateUser (H,I,J,aa,ab) = if (!(f))
204+ then throw(g)
205+ else {
206+ let v = toString(addressFromPublicKey(V.callerPublicKey))
207+ let Y = toBase58String(V.transactionId)
208+ let M = q(B(v))
209+ if (!(F(ab)))
210+ then throw("Invalid banner image!")
211+ else if (!(G(v, H, I, J, true)))
212+ then throw("Something went wrong")
213+ else {
214+ let U = t(C(v))
215+ let ad = T(toBase64String(toBytes(H)), toBase64String(toBytes(J)), toString(U))
216+[StringEntry(w(v), H), StringEntry(x(v), I), StringEntry(y(v), aa), StringEntry(A(v), ab), StringEntry(z(v), J), StringEntry(((M + "_") + v), ad)]
217+ }
218+ }
219+
220+
221+
222+@Callable(V)
223+func changeUserStatus (O,M,ae) = {
224+ let v = toString(addressFromPublicKey(V.callerPublicKey))
225+ let Y = toBase58String(V.transactionId)
226+ let af = addressFromString(O)
227+ let ag = af
228+ if ($isInstanceOf(ag, "Address"))
229+ then {
230+ let af = ag
231+ let P = q(B(O))
232+ let R = N(M, O, P)
233+ let H = toBase64String(toBytes(q(w(O))))
234+ let J = toBase64String(toBytes(q(z(O))))
235+ let U = t(C(O))
236+ let ad = T(H, J, toString(U))
237+ if (containsElement((b :+ toString(this)), v))
238+ then [StringEntry(B(O), R), DeleteEntry(((P + "_") + O)), StringEntry(((R + "_") + O), ad), StringEntry(("user_note_" + O), ae)]
239+ else throw("Not allowed to change user status")
240+ }
241+ else throw("Seems to be an invalid address!")
706242 }
707243
708244
709245
710-@Callable(aw)
711-func setBid (H,aX) = {
712- let cv = v(S(aX, H))
713- if ((cv == r))
714- then bQ(aw, H, aX)
715- else if ((cv == s))
716- then bU(aw, H, aX)
717- else throw((("Unknown auction type :" + cv) + ", please contact the admins"))
718- }
719-
720-
721-
722-@Callable(aw)
723-func acceptBid (H,aX,P,aY) = {
724- let cv = v(S(aX, H))
725- if ((cv == r))
726- then bZ(aw, H, aX, P, aY)
727- else if ((cv == s))
728- then cd(aw, H, aX, P, aY)
729- else throw((("Unknown auction type :" + cv) + ", please contact the admins"))
730- }
731-
732-
733-
734-@Callable(aw)
735-func cancelBid (H,aX,P) = {
736- let cv = v(S(aX, H))
737- if ((cv == r))
738- then ch(aw, H, aX, P)
739- else ck(aw, H, aX, P)
246+@Callable(V)
247+func deleteUser (O) = {
248+ let v = toString(addressFromPublicKey(V.callerPublicKey))
249+ let Y = toBase58String(V.transactionId)
250+ let P = q(B(O))
251+ if (containsElement((b :+ toString(this)), v))
252+ then [DeleteEntry(C(O)), DeleteEntry(u(O)), DeleteEntry(w(O)), DeleteEntry(x(O)), DeleteEntry(y(O)), DeleteEntry(z(O)), DeleteEntry(((P + "_") + O)), StringEntry(B(O), m)]
253+ else throw("Not allowed")
740254 }
741255
742256

github/deemru/w8io/169f3d6 
91.42 ms