tx · 45RpUf1vCSNTpZvjdJzy3o3mS8KCJtDFbTF9xzx6PNjk

3NA73oUXjqp7SpudXWV1yMFuKm9awPbqsVz:  -0.01000000 Waves

2022.10.27 18:08 [2290990] smart account 3NA73oUXjqp7SpudXWV1yMFuKm9awPbqsVz > SELF 0.00000000 Waves

{ "type": 13, "id": "45RpUf1vCSNTpZvjdJzy3o3mS8KCJtDFbTF9xzx6PNjk", "fee": 1000000, "feeAssetId": null, "timestamp": 1666883397185, "version": 2, "chainId": 84, "sender": "3NA73oUXjqp7SpudXWV1yMFuKm9awPbqsVz", "senderPublicKey": "2mHW72YTfnxJ1M8WsdUQjgpp3a2SUbt9mbAiePGiuJok", "proofs": [ "4nFvn5DBDkHWRv6BzjYTpmBEpNSNaZEpqP4Dgq87VcSqbAvytMBdt5YUm8uuLa2VwLHtwmUe2a3ZAmvnrY6t4eX5" ], "script": "base64:AAIFAAAAAAAAABYIAhIFCgMICAESBAoCCAISAwoBCBIAAAAADQEAAAAQZ2V0U3RyaW5nT3JUaHJvdwAAAAIAAAAHYWRkcmVzcwAAAANrZXkJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAdhZGRyZXNzBQAAAANrZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAADENhbid0IHJlYWQgJwUAAAADa2V5AgAAAA0nIGF0IGFkZHJlc3MgCQAEJQAAAAEFAAAAB2FkZHJlc3MBAAAAEWdldEludGVnZXJPclRocm93AAAAAgAAAAdhZGRyZXNzAAAAA2tleQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAMQ2FuJ3QgcmVhZCAnBQAAAANrZXkCAAAADScgYXQgYWRkcmVzcyAJAAQlAAAAAQUAAAAHYWRkcmVzcwEAAAATcGFyc2VBZGRyZXNzT3JUaHJvdwAAAAEAAAAMbWF5YmVBZGRyZXNzCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQmAAAAAQUAAAAMbWF5YmVBZGRyZXNzCQABLAAAAAIJAAEsAAAAAgIAAAAaQ2FuJ3QgcGFyc2UgYWRkcmVzcyBmcm9tICcFAAAADG1heWJlQWRkcmVzcwIAAAABJwEAAAAKa2V5X2VudGl0eQAAAAMAAAAEbmFtZQAAAAJwawAAAAhwcm9wZXJ0eQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARuYW1lAgAAAAFfBQAAAAJwawIAAAABXwUAAAAIcHJvcGVydHkBAAAADmtleV9OYW1lX3Rva2VuAAAAAQAAAARuYW1lCQEAAAAKa2V5X2VudGl0eQAAAAMCAAAABE5hbWUFAAAABG5hbWUCAAAABXRva2VuAAAAABFrZXlfbWVlZHVzQWRkcmVzcwIAAAANbWVlZHVzQWRkcmVzcwAAAAAUa2V5X3JlZ2lzdHJhckFkZHJlc3MCAAAAEHJlZ2lzdHJhckFkZHJlc3MAAAAAF2tleV9tZWVkdXNJbml0VGltZXN0YW1wAgAAABNtZWVkdXNJbml0VGltZXN0YW1wAAAAAA1tZWVkdXNBZGRyZXNzCQEAAAAQZ2V0U3RyaW5nT3JUaHJvdwAAAAIFAAAABHRoaXMFAAAAEWtleV9tZWVkdXNBZGRyZXNzAAAAAAZtZWVkdXMJAQAAABNwYXJzZUFkZHJlc3NPclRocm93AAAAAQUAAAANbWVlZHVzQWRkcmVzcwAAAAAQcmVnaXN0cmFyQWRkcmVzcwkBAAAAEGdldFN0cmluZ09yVGhyb3cAAAACBQAAAAR0aGlzBQAAABRrZXlfcmVnaXN0cmFyQWRkcmVzcwAAAAAJcmVnaXN0cmFyCQEAAAATcGFyc2VBZGRyZXNzT3JUaHJvdwAAAAEFAAAAEHJlZ2lzdHJhckFkZHJlc3MAAAAAE21lZWR1c0luaXRUaW1lc3RhbXAJAQAAABFnZXRJbnRlZ2VyT3JUaHJvdwAAAAIFAAAABHRoaXMFAAAAF2tleV9tZWVkdXNJbml0VGltZXN0YW1wAAAABAAAAANpbnYBAAAABGluaXQAAAADAAAADW1lZWR1c0FkZHJlc3MAAAAQcmVnaXN0cmFyQWRkcmVzcwAAABNtZWVkdXNJbml0VGltZXN0YW1wCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAEWtleV9tZWVkdXNBZGRyZXNzBQAAAA1tZWVkdXNBZGRyZXNzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAFGtleV9yZWdpc3RyYXJBZGRyZXNzBQAAABByZWdpc3RyYXJBZGRyZXNzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABdrZXlfbWVlZHVzSW5pdFRpbWVzdGFtcAUAAAATbWVlZHVzSW5pdFRpbWVzdGFtcAUAAAADbmlsAAAAA2ludgEAAAAIdHJhbnNmZXIAAAACAAAACmFkZHJlc3NTdHIAAAAFYXNzZXQEAAAAB2FkZHJlc3MJAQAAABNwYXJzZUFkZHJlc3NPclRocm93AAAAAQUAAAAKYWRkcmVzc1N0cgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAdhZGRyZXNzAAAAAAAAAAABBQAAAAVhc3NldAUAAAADbmlsAAAAA2ludgEAAAAHcmVzZXJ2ZQAAAAEAAAAEbmFtZQQAAAAGY2FsbGVyCAUAAAADaW52AAAABmNhbGxlcgQAAAAJY2FsbGVyU3RyCQAEJQAAAAEFAAAABmNhbGxlcgMJAQAAAAIhPQAAAAIFAAAABHRoaXMFAAAABmNhbGxlcgkAAAIAAAABAgAAABpPbmx5IHNlbGYgY2FsbCBhcmUgYWxsb3dlZAQAAAALcmVzZXJ2YXRpb24JAAP8AAAABAUAAAAJcmVnaXN0cmFyAgAAAAhyZWdpc3RlcgkABEwAAAACBQAAAARuYW1lCQAETAAAAAIFAAAACWNhbGxlclN0cgkABEwAAAACBQAAABNtZWVkdXNJbml0VGltZXN0YW1wBQAAAANuaWwFAAAAA25pbAMJAAAAAAAAAgUAAAALcmVzZXJ2YXRpb24FAAAAC3Jlc2VydmF0aW9uBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAA2ludgEAAAAIZXhjaGFuZ2UAAAAABAAAAAZjYWxsZXIIBQAAAANpbnYAAAAMb3JpZ2luQ2FsbGVyBAAAAAljYWxsZXJTdHIJAAQlAAAAAQUAAAAGY2FsbGVyBAAAAANwbXQJAAGRAAAAAggFAAAAA2ludgAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAHYXNzZXRJZAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCAUAAAADcG10AAAAB2Fzc2V0SWQCAAAAFUFzc2V0IGNhbm5vdCBiZSBXQVZFUwQAAAAFYXNzZXQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkAA+wAAAABBQAAAAdhc3NldElkAgAAAA1JbnZhbGlkIGFzc2V0BAAAAAtpc01lZWR1c05GVAMDAwkAAAAAAAACCAUAAAAFYXNzZXQAAAAGaXNzdWVyBQAAAAZtZWVkdXMJAAAAAAAAAggFAAAABWFzc2V0AAAACHF1YW50aXR5AAAAAAAAAAABBwkAAAAAAAACCAUAAAAFYXNzZXQAAAAIZGVjaW1hbHMAAAAAAAAAAAAHCQAAAAAAAAIIBQAAAAVhc3NldAAAAApyZWlzc3VhYmxlBwcDAwkBAAAAAiE9AAAAAggFAAAAA3BtdAAAAAZhbW91bnQAAAAAAAAAAAEGCQEAAAABIQAAAAEFAAAAC2lzTWVlZHVzTkZUCQAAAgAAAAECAAAAIVBheW1lbnQgc2hvdWxkIGNvbnRhaW4gTWVlZHVzIE5GVAQAAAAIdG9rZW5TdHIJAQAAABBnZXRTdHJpbmdPclRocm93AAAAAgUAAAAJcmVnaXN0cmFyCQEAAAAOa2V5X05hbWVfdG9rZW4AAAABCAUAAAAFYXNzZXQAAAAEbmFtZQQAAAAFdG9rZW4JAAGbAAAAAQUAAAAIdG9rZW5TdHIEAAAACHRyYW5zZmVyCQAD/AAAAAQFAAAABHRoaXMCAAAACHRyYW5zZmVyCQAETAAAAAIFAAAACWNhbGxlclN0cgkABEwAAAACBQAAAAdhc3NldElkBQAAAANuaWwFAAAAA25pbAMJAAAAAAAAAgUAAAAIdHJhbnNmZXIFAAAACHRyYW5zZmVyBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAIGvcIU=", "height": 2290990, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2YgyqVaqXcwpT21e5y4gP3gJyGUqm2MA8Xg6B8eN2niw Next: H18J33EC1QZhnFNnMm748K2TwS8ujG58A5pEiwrVv7B4 Diff:
OldNewDifferences
1313 func g (h,i,j) = ((((h + "_") + i) + "_") + j)
1414
1515
16-func k (l) = g("Token", l, "name")
16+func k (h) = g("Name", h, "token")
1717
1818
19-func m (h) = g("Name", h, "token")
19+let l = "meedusAddress"
20+
21+let m = "registrarAddress"
22+
23+let n = "meedusInitTimestamp"
24+
25+let o = a(this, l)
26+
27+let p = e(o)
28+
29+let q = a(this, m)
30+
31+let r = e(q)
32+
33+let s = d(this, n)
34+
35+@Callable(t)
36+func init (o,q,s) = [StringEntry(l, o), StringEntry(m, q), IntegerEntry(n, s)]
2037
2138
22-func n (h) = g("Name", h, "owner")
2339
24-
25-func o (h) = g("Name", h, "resolver")
26-
27-
28-func p (h) = g("Name", h, "expiresAt")
29-
30-
31-func q (h) = g("Name", h, "createdAt")
32-
33-
34-let r = "nameTTL"
35-
36-let s = "controllers"
37-
38-func t (h,u) = [StringEntry(n(h), u)]
39-
40-
41-func v (h) = getString(this, n(h))
42-
43-
44-func w (h) = getString(this, o(h))
45-
46-
47-func x (h) = getString(this, m(h))
48-
49-
50-func y (h) = getInteger(this, q(h))
51-
52-
53-func z (h) = getInteger(this, p(h))
54-
55-
56-func A () = getString(this, s)
57-
58-
59-let B = {
60- let C = A()
61- if ($isInstanceOf(C, "String"))
62- then {
63- let D = C
64- split(D, ",")
65- }
66- else nil
67- }
68-
69-let E = d(this, r)
70-
71-func F (h) = isDefined(getString(this, m(h)))
72-
73-
74-func G (h) = isDefined(y(h))
75-
76-
77-func H (h) = {
78- let C = z(h)
79- if ($isInstanceOf(C, "Int"))
80- then {
81- let I = C
82- (lastBlock.timestamp > I)
83- }
84- else false
40+@Callable(t)
41+func transfer (u,v) = {
42+ let b = e(u)
43+[ScriptTransfer(b, 1, v)]
8544 }
8645
8746
88-func J (h) = if (if (F(h))
89- then G(h)
90- else false)
91- then !(H(h))
92- else false
9347
94-
95-func K (h) = {
96- let L = "abcdefghijklmnopqrstuvwxyz1234567890-"
97- func M (N,O) = if (N)
98- then contains(L, O)
99- else false
100-
101- if (if (if (if (if ((size(h) > 0))
102- then (63 >= size(h))
103- else false)
104- then (indexOf(h, "--") != 2)
105- else false)
106- then (indexOf(h, "-") != 0)
107- else false)
108- then (lastIndexOf(h, "-") != (size(h) - 1))
109- else false)
110- then {
111- let P = split(h, "")
112- let Q = size(P)
113- let R = true
114- func S (T,U) = if ((U >= Q))
115- then T
116- else M(T, P[U])
117-
118- func V (T,U) = if ((U >= Q))
119- then T
120- else throw("List size exceeds 63")
121-
122- V(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(R, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63)
48+@Callable(t)
49+func reserve (h) = {
50+ let w = t.caller
51+ let x = toString(w)
52+ if ((this != w))
53+ then throw("Only self call are allowed")
54+ else {
55+ let y = invoke(r, "register", [h, x, s], nil)
56+ if ((y == y))
57+ then nil
58+ else throw("Strict value is not equal to itself.")
12359 }
124- else false
12560 }
12661
12762
128-func W (h) = if (K(h))
129- then if (!(F(h)))
63+
64+@Callable(t)
65+func exchange () = {
66+ let w = t.originCaller
67+ let x = toString(w)
68+ let z = t.payments[0]
69+ let A = valueOrErrorMessage(z.assetId, "Asset cannot be WAVES")
70+ let v = valueOrErrorMessage(assetInfo(A), "Invalid asset")
71+ let B = if (if (if ((v.issuer == p))
72+ then (v.quantity == 1)
73+ else false)
74+ then (v.decimals == 0)
75+ else false)
76+ then (v.reissuable == false)
77+ else false
78+ if (if ((z.amount != 1))
13079 then true
131- else H(h)
132- else false
133-
134-
135-func X (f) = isDefined(addressFromString(f))
136-
137-
138-func Y (Z) = (Z.caller == this)
139-
140-
141-func aa (Z,h) = (toString(Z.originCaller) == valueOrElse(v(h), ""))
142-
143-
144-func ab (b) = containsElement(B, b)
145-
146-
147-func ac (h) = {
148- let ad = split(h, ".")
149- let ae = (size(ad) - 1)
150- let af = ad[ae]
151- let ag = makeString(removeByIndex(ad, ae), ".")
152- $Tuple2(af, ag)
80+ else !(B))
81+ then throw("Payment should contain Meedus NFT")
82+ else {
83+ let C = a(r, k(v.name))
84+ let D = toBytes(C)
85+ let E = invoke(this, "transfer", [x, A], nil)
86+ if ((E == E))
87+ then nil
88+ else throw("Strict value is not equal to itself.")
89+ }
15390 }
154-
155-
156-func ah (h) = [Issue(if ((size(h) > 16))
157- then (take(h, 15) + "~")
158- else take(h, 16), (h + ".waves"), 1, 0, false)]
159-
160-
161-func ai (h,l,aj) = [StringEntry(m(h), l), StringEntry(k(l), h), IntegerEntry(q(h), aj), IntegerEntry(p(h), (aj + E))]
162-
163-
164-func ak (h,l) = [StringEntry(m(h), l), StringEntry(k(l), h)]
165-
166-
167-func al (l,u) = [ScriptTransfer(e(u), 1, fromBase58String(l))]
168-
169-
170-func am (an) = unit
171-
172-
173-func ao (Z) = if (Y(Z))
174- then unit
175- else throw("Permission denied")
176-
177-
178-func ap (Z) = if (if (Y(Z))
179- then true
180- else ab(toString(Z.caller)))
181- then unit
182- else throw("Permission denied")
183-
184-
185-func aq (Z,h) = if (if (Y(Z))
186- then true
187- else aa(Z, h))
188- then unit
189- else throw("Permission denied")
190-
191-
192-@Callable(Z)
193-func init (E) = valueOrElse(am([ao(Z), if ((E > 0))
194- then unit
195- else throw("TTL cannot be negative")]), [IntegerEntry(r, E)])
196-
197-
198-
199-@Callable(Z)
200-func supportsInterface (ar) = $Tuple2(nil, containsElement(["getOwner", "getResolver", "getNameCreated", "getNameExpires"], ar))
201-
202-
203-
204-@Callable(Z)
205-func addController (b) = valueOrElse(am([ao(Z), if (X(b))
206- then unit
207- else throw("Controller must be a valid address"), if (!(ab(b)))
208- then unit
209- else throw((("Controller `" + b) + "` is already registered"))]), [StringEntry(s, makeString((B :+ b), ","))])
210-
211-
212-
213-@Callable(Z)
214-func removeController (b) = valueOrElse(am([ao(Z), if (ab(b))
215- then unit
216- else throw((("Controller `" + b) + "` is not registered"))]), {
217- let as = value(indexOf(B, b))
218-[StringEntry(s, makeString(removeByIndex(B, as), ","))]
219- })
220-
221-
222-
223-@Callable(Z)
224-func isValid (h) = $Tuple2(nil, K(h))
225-
226-
227-
228-@Callable(Z)
229-func isAvailable (h) = $Tuple2(nil, W(h))
230-
231-
232-
233-@Callable(Z)
234-func getOwner (h) = $Tuple2(nil, v(ac(h)._1))
235-
236-
237-
238-@Callable(Z)
239-func getResolver (h) = $Tuple2(nil, w(ac(h)._1))
240-
241-
242-
243-@Callable(Z)
244-func getNameCreated (h) = $Tuple2(nil, y(ac(h)._1))
245-
246-
247-
248-@Callable(Z)
249-func getNameExpires (h) = $Tuple2(nil, z(ac(h)._1))
250-
251-
252-
253-@Callable(Z)
254-func register (h,u,aj) = valueOrElse(am([ap(Z), if (W(h))
255- then unit
256- else throw((("`" + h) + "` cannot be registered")), if (X(u))
257- then unit
258- else throw("Owner must be a valid address"), if ((aj > 0))
259- then unit
260- else throw("CreatedAt cannot be negative"), if ((lastBlock.timestamp >= aj))
261- then unit
262- else throw("CreatedAt cannot be in the future")]), {
263- let at = ah(h)
264- let l = calculateAssetId(at[0])
265- let au = toBase58String(l)
266- let av = ai(h, au, aj)
267- let aw = al(au, u)
268- let ax = t(h, u)
269- (((at ++ av) ++ aw) ++ ax)
270- })
271-
272-
273-
274-@Callable(Z)
275-func reclaim (h) = valueOrElse(am([if (J(h))
276- then unit
277- else throw((("`" + h) + "` is not active"))]), {
278- let ay = Z.originCaller
279- let az = toString(ay)
280- let au = valueOrErrorMessage(x(h), (("No token is issued for `" + h) + "`"))
281- let l = fromBase58String(au)
282- let aA = (assetBalance(ay, l) == 1)
283- let aB = aa(Z, h)
284- let aC = {
285- let C = assetInfo(l)
286- if ($isInstanceOf(C, "Asset"))
287- then {
288- let aD = C
289- (aD.quantity == 1)
290- }
291- else false
292- }
293- if (if (aB)
294- then !(aC)
295- else false)
296- then {
297- let aE = ah(h)
298- let aF = calculateAssetId(aE[0])
299- let aG = toBase58String(aF)
300- let aH = ak(h, aG)
301- let aI = al(aG, az)
302- ((aE ++ aH) ++ aI)
303- }
304- else if (if (aB)
305- then aA
306- else false)
307- then throw("You already own a name token")
308- else if (!(aA))
309- then throw("You don't have a name token")
310- else t(h, az)
311- })
31291
31392
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b,c) = valueOrErrorMessage(getString(b, c), ((("Can't read '" + c) + "' at address ") + toString(b)))
55
66
77 func d (b,c) = valueOrErrorMessage(getInteger(b, c), ((("Can't read '" + c) + "' at address ") + toString(b)))
88
99
1010 func e (f) = valueOrErrorMessage(addressFromString(f), (("Can't parse address from '" + f) + "'"))
1111
1212
1313 func g (h,i,j) = ((((h + "_") + i) + "_") + j)
1414
1515
16-func k (l) = g("Token", l, "name")
16+func k (h) = g("Name", h, "token")
1717
1818
19-func m (h) = g("Name", h, "token")
19+let l = "meedusAddress"
20+
21+let m = "registrarAddress"
22+
23+let n = "meedusInitTimestamp"
24+
25+let o = a(this, l)
26+
27+let p = e(o)
28+
29+let q = a(this, m)
30+
31+let r = e(q)
32+
33+let s = d(this, n)
34+
35+@Callable(t)
36+func init (o,q,s) = [StringEntry(l, o), StringEntry(m, q), IntegerEntry(n, s)]
2037
2138
22-func n (h) = g("Name", h, "owner")
2339
24-
25-func o (h) = g("Name", h, "resolver")
26-
27-
28-func p (h) = g("Name", h, "expiresAt")
29-
30-
31-func q (h) = g("Name", h, "createdAt")
32-
33-
34-let r = "nameTTL"
35-
36-let s = "controllers"
37-
38-func t (h,u) = [StringEntry(n(h), u)]
39-
40-
41-func v (h) = getString(this, n(h))
42-
43-
44-func w (h) = getString(this, o(h))
45-
46-
47-func x (h) = getString(this, m(h))
48-
49-
50-func y (h) = getInteger(this, q(h))
51-
52-
53-func z (h) = getInteger(this, p(h))
54-
55-
56-func A () = getString(this, s)
57-
58-
59-let B = {
60- let C = A()
61- if ($isInstanceOf(C, "String"))
62- then {
63- let D = C
64- split(D, ",")
65- }
66- else nil
67- }
68-
69-let E = d(this, r)
70-
71-func F (h) = isDefined(getString(this, m(h)))
72-
73-
74-func G (h) = isDefined(y(h))
75-
76-
77-func H (h) = {
78- let C = z(h)
79- if ($isInstanceOf(C, "Int"))
80- then {
81- let I = C
82- (lastBlock.timestamp > I)
83- }
84- else false
40+@Callable(t)
41+func transfer (u,v) = {
42+ let b = e(u)
43+[ScriptTransfer(b, 1, v)]
8544 }
8645
8746
88-func J (h) = if (if (F(h))
89- then G(h)
90- else false)
91- then !(H(h))
92- else false
9347
94-
95-func K (h) = {
96- let L = "abcdefghijklmnopqrstuvwxyz1234567890-"
97- func M (N,O) = if (N)
98- then contains(L, O)
99- else false
100-
101- if (if (if (if (if ((size(h) > 0))
102- then (63 >= size(h))
103- else false)
104- then (indexOf(h, "--") != 2)
105- else false)
106- then (indexOf(h, "-") != 0)
107- else false)
108- then (lastIndexOf(h, "-") != (size(h) - 1))
109- else false)
110- then {
111- let P = split(h, "")
112- let Q = size(P)
113- let R = true
114- func S (T,U) = if ((U >= Q))
115- then T
116- else M(T, P[U])
117-
118- func V (T,U) = if ((U >= Q))
119- then T
120- else throw("List size exceeds 63")
121-
122- V(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(R, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63)
48+@Callable(t)
49+func reserve (h) = {
50+ let w = t.caller
51+ let x = toString(w)
52+ if ((this != w))
53+ then throw("Only self call are allowed")
54+ else {
55+ let y = invoke(r, "register", [h, x, s], nil)
56+ if ((y == y))
57+ then nil
58+ else throw("Strict value is not equal to itself.")
12359 }
124- else false
12560 }
12661
12762
128-func W (h) = if (K(h))
129- then if (!(F(h)))
63+
64+@Callable(t)
65+func exchange () = {
66+ let w = t.originCaller
67+ let x = toString(w)
68+ let z = t.payments[0]
69+ let A = valueOrErrorMessage(z.assetId, "Asset cannot be WAVES")
70+ let v = valueOrErrorMessage(assetInfo(A), "Invalid asset")
71+ let B = if (if (if ((v.issuer == p))
72+ then (v.quantity == 1)
73+ else false)
74+ then (v.decimals == 0)
75+ else false)
76+ then (v.reissuable == false)
77+ else false
78+ if (if ((z.amount != 1))
13079 then true
131- else H(h)
132- else false
133-
134-
135-func X (f) = isDefined(addressFromString(f))
136-
137-
138-func Y (Z) = (Z.caller == this)
139-
140-
141-func aa (Z,h) = (toString(Z.originCaller) == valueOrElse(v(h), ""))
142-
143-
144-func ab (b) = containsElement(B, b)
145-
146-
147-func ac (h) = {
148- let ad = split(h, ".")
149- let ae = (size(ad) - 1)
150- let af = ad[ae]
151- let ag = makeString(removeByIndex(ad, ae), ".")
152- $Tuple2(af, ag)
80+ else !(B))
81+ then throw("Payment should contain Meedus NFT")
82+ else {
83+ let C = a(r, k(v.name))
84+ let D = toBytes(C)
85+ let E = invoke(this, "transfer", [x, A], nil)
86+ if ((E == E))
87+ then nil
88+ else throw("Strict value is not equal to itself.")
89+ }
15390 }
154-
155-
156-func ah (h) = [Issue(if ((size(h) > 16))
157- then (take(h, 15) + "~")
158- else take(h, 16), (h + ".waves"), 1, 0, false)]
159-
160-
161-func ai (h,l,aj) = [StringEntry(m(h), l), StringEntry(k(l), h), IntegerEntry(q(h), aj), IntegerEntry(p(h), (aj + E))]
162-
163-
164-func ak (h,l) = [StringEntry(m(h), l), StringEntry(k(l), h)]
165-
166-
167-func al (l,u) = [ScriptTransfer(e(u), 1, fromBase58String(l))]
168-
169-
170-func am (an) = unit
171-
172-
173-func ao (Z) = if (Y(Z))
174- then unit
175- else throw("Permission denied")
176-
177-
178-func ap (Z) = if (if (Y(Z))
179- then true
180- else ab(toString(Z.caller)))
181- then unit
182- else throw("Permission denied")
183-
184-
185-func aq (Z,h) = if (if (Y(Z))
186- then true
187- else aa(Z, h))
188- then unit
189- else throw("Permission denied")
190-
191-
192-@Callable(Z)
193-func init (E) = valueOrElse(am([ao(Z), if ((E > 0))
194- then unit
195- else throw("TTL cannot be negative")]), [IntegerEntry(r, E)])
196-
197-
198-
199-@Callable(Z)
200-func supportsInterface (ar) = $Tuple2(nil, containsElement(["getOwner", "getResolver", "getNameCreated", "getNameExpires"], ar))
201-
202-
203-
204-@Callable(Z)
205-func addController (b) = valueOrElse(am([ao(Z), if (X(b))
206- then unit
207- else throw("Controller must be a valid address"), if (!(ab(b)))
208- then unit
209- else throw((("Controller `" + b) + "` is already registered"))]), [StringEntry(s, makeString((B :+ b), ","))])
210-
211-
212-
213-@Callable(Z)
214-func removeController (b) = valueOrElse(am([ao(Z), if (ab(b))
215- then unit
216- else throw((("Controller `" + b) + "` is not registered"))]), {
217- let as = value(indexOf(B, b))
218-[StringEntry(s, makeString(removeByIndex(B, as), ","))]
219- })
220-
221-
222-
223-@Callable(Z)
224-func isValid (h) = $Tuple2(nil, K(h))
225-
226-
227-
228-@Callable(Z)
229-func isAvailable (h) = $Tuple2(nil, W(h))
230-
231-
232-
233-@Callable(Z)
234-func getOwner (h) = $Tuple2(nil, v(ac(h)._1))
235-
236-
237-
238-@Callable(Z)
239-func getResolver (h) = $Tuple2(nil, w(ac(h)._1))
240-
241-
242-
243-@Callable(Z)
244-func getNameCreated (h) = $Tuple2(nil, y(ac(h)._1))
245-
246-
247-
248-@Callable(Z)
249-func getNameExpires (h) = $Tuple2(nil, z(ac(h)._1))
250-
251-
252-
253-@Callable(Z)
254-func register (h,u,aj) = valueOrElse(am([ap(Z), if (W(h))
255- then unit
256- else throw((("`" + h) + "` cannot be registered")), if (X(u))
257- then unit
258- else throw("Owner must be a valid address"), if ((aj > 0))
259- then unit
260- else throw("CreatedAt cannot be negative"), if ((lastBlock.timestamp >= aj))
261- then unit
262- else throw("CreatedAt cannot be in the future")]), {
263- let at = ah(h)
264- let l = calculateAssetId(at[0])
265- let au = toBase58String(l)
266- let av = ai(h, au, aj)
267- let aw = al(au, u)
268- let ax = t(h, u)
269- (((at ++ av) ++ aw) ++ ax)
270- })
271-
272-
273-
274-@Callable(Z)
275-func reclaim (h) = valueOrElse(am([if (J(h))
276- then unit
277- else throw((("`" + h) + "` is not active"))]), {
278- let ay = Z.originCaller
279- let az = toString(ay)
280- let au = valueOrErrorMessage(x(h), (("No token is issued for `" + h) + "`"))
281- let l = fromBase58String(au)
282- let aA = (assetBalance(ay, l) == 1)
283- let aB = aa(Z, h)
284- let aC = {
285- let C = assetInfo(l)
286- if ($isInstanceOf(C, "Asset"))
287- then {
288- let aD = C
289- (aD.quantity == 1)
290- }
291- else false
292- }
293- if (if (aB)
294- then !(aC)
295- else false)
296- then {
297- let aE = ah(h)
298- let aF = calculateAssetId(aE[0])
299- let aG = toBase58String(aF)
300- let aH = ak(h, aG)
301- let aI = al(aG, az)
302- ((aE ++ aH) ++ aI)
303- }
304- else if (if (aB)
305- then aA
306- else false)
307- then throw("You already own a name token")
308- else if (!(aA))
309- then throw("You don't have a name token")
310- else t(h, az)
311- })
31291
31392

github/deemru/w8io/c3f4982 
36.38 ms