tx · HQKJNcgRN3YhsZ2sAG5HFQ6LGi9FbojNaB2yCrm51qis

3MvCgypmBZFTRqL5HuRwCgS7maC7Fkv7pZY:  -0.01000000 Waves

2022.10.20 18:40 [2280924] smart account 3MvCgypmBZFTRqL5HuRwCgS7maC7Fkv7pZY > SELF 0.00000000 Waves

{ "type": 13, "id": "HQKJNcgRN3YhsZ2sAG5HFQ6LGi9FbojNaB2yCrm51qis", "fee": 1000000, "feeAssetId": null, "timestamp": 1666280452325, "version": 2, "chainId": 84, "sender": "3MvCgypmBZFTRqL5HuRwCgS7maC7Fkv7pZY", "senderPublicKey": "BqGSAiYghM27RZ2Axx3bmTudq9koHT4575AeK31Wx2Pp", "proofs": [ "iHYKkeoCyjKPQLaS8DtkkmYFYP6yiRU5NPJXcUydicoQQqEwahYXLpKw3H8b7GPgTLcGi1GtoEKoqdCiTdiTrcG" ], "script": "base64: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dHJhbnQJAQAAAAV2YWx1ZQAAAAEFAAAAD21heWJlUmVnaXN0cmFudAQAAAAOcGFyZW50UmVzb2x2ZXIJAQAAAAxfZ2V0UmVzb2x2ZXIAAAABBQAAAAlsYXN0TGFiZWwEAAAADXBhcmVudENyZWF0ZWQJAQAAAA1fZ2V0Q3JlYXRlZEF0AAAAAQUAAAAJbGFzdExhYmVsBAAAAAVvd25lcgQAAAAHJG1hdGNoMAkBAAAAF19jYWxsU3VwcG9ydGVkSW50ZXJmYWNlAAAAAwUAAAAKcmVnaXN0cmFudAIAAAAFb3duZXIFAAAACnJlc3RMYWJlbHMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAAFb3duZXIFAAAAByRtYXRjaDADCQEAAAAOaXNWYWxpZEFkZHJlc3MAAAABBQAAAAVvd25lcgUAAAAFb3duZXIFAAAABHVuaXQFAAAABHVuaXQEAAAACHJlc29sdmVyBAAAAAckbWF0Y2gwCQEAAAAXX2NhbGxTdXBwb3J0ZWRJbnRlcmZhY2UAAAADBQAAAApyZWdpc3RyYW50AgAAAAhyZXNvbHZlcgUAAAAKcmVzdExhYmVscwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAhyZXNvbHZlcgUAAAAHJG1hdGNoMAMJAQAAAA5pc1ZhbGlkQWRkcmVzcwAAAAEFAAAACHJlc29sdmVyBQAAAAhyZXNvbHZlcgUAAAAEdW5pdAUAAAAEdW5pdAQAAAALbmFtZUNyZWF0ZWQEAAAAByRtYXRjaDAJAQAAABdfY2FsbFN1cHBvcnRlZEludGVyZmFjZQAAAAMFAAAACnJlZ2lzdHJhbnQCAAAAC25hbWVDcmVhdGVkBQAAAApyZXN0TGFiZWxzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAC25hbWVDcmVhdGVkBQAAAAckbWF0Y2gwAwMJAABmAAAAAgUAAAALbmFtZUNyZWF0ZWQAAAAAAAAAAAAJAABmAAAAAggFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAFAAAAC25hbWVDcmVhdGVkBwUAAAALbmFtZUNyZWF0ZWQFAAAABHVuaXQFAAAABHVuaXQEAAAAC25hbWVFeHBpcmVzBAAAAAckbWF0Y2gwCQEAAAAXX2NhbGxTdXBwb3J0ZWRJbnRlcmZhY2UAAAADBQAAAApyZWdpc3RyYW50AgAAAAtuYW1lRXhwaXJlcwUAAAAKcmVzdExhYmVscwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAtuYW1lRXhwaXJlcwUAAAAHJG1hdGNoMAMJAABmAAAAAgUAAAALbmFtZUV4cGlyZXMAAAAAAAAAAAAFAAAAC25hbWVFeHBpcmVzBQAAAAR1bml0BQAAAAR1bml0BAAAAAppc1Jvb3ROYW1lAwkAAGYAAAACCQABMQAAAAEFAAAACWxhc3RMYWJlbAAAAAAAAAAAAAkAAAAAAAACCQABMQAAAAEFAAAACnJlc3RMYWJlbHMAAAAAAAAAAAAHAwMFAAAACmlzUm9vdE5hbWUGCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABBQAAAA9tYXliZVJlZ2lzdHJhbnQJAAUUAAAAAgUAAAADbmlsCQAFFgAAAAQFAAAAEXJlZ2lzdHJhbnRBZGRyZXNzBQAAAA5wYXJlbnRSZXNvbHZlcgUAAAANcGFyZW50Q3JlYXRlZAUAAAAEdW5pdAkABRQAAAACBQAAAANuaWwJAAUWAAAABAUAAAAFb3duZXIFAAAACHJlc29sdmVyBQAAAAtuYW1lQ3JlYXRlZAUAAAALbmFtZUV4cGlyZXMAAAAANe78uw==", "height": 2280924, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8CfJRrbiFPx4hyb9GUP2pQy9asF8vnZ8SPUwgPVP3gD9 Next: HJs69bGWLZoxDjkYVFWb8CtmkRXR3TQnB3348YFQSrXm Diff:
OldNewDifferences
1313 func g (h,i,j) = ((((h + "_") + i) + "_") + j)
1414
1515
16-func k (l) = g("Token", l, "name")
16+func k (l) = g("Name", l, "owner")
1717
1818
19-func m (h) = g("Name", h, "token")
19+func m (l) = g("Name", l, "resolver")
2020
2121
22-func n (h) = g("Name", h, "owner")
22+func n (l) = g("Name", l, "createdAt")
2323
2424
25-func o (h) = g("Name", h, "resolver")
25+func o (l) = getString(this, k(l))
2626
2727
28-func p (h) = g("Name", h, "expiresAt")
28+func p (l,q) = [StringEntry(k(l), q)]
2929
3030
31-func q (h) = g("Name", h, "createdAt")
31+func r (l) = getString(this, m(l))
3232
3333
34-let r = "nameTTL"
35-
36-let s = "controllers"
37-
38-func t (h,u) = [StringEntry(n(h), u)]
34+func s (l,t) = [StringEntry(m(l), t)]
3935
4036
41-func v (h) = getString(this, n(h))
37+func u (l) = getInteger(this, n(l))
4238
4339
44-func w (h,x) = [StringEntry(o(h), x)]
40+func v (l,w) = [IntegerEntry(n(l), w)]
4541
4642
47-func y (h) = getString(this, o(h))
43+func x (y) = (y.caller == this)
4844
4945
50-func z (h) = getString(this, m(h))
46+func z (y,l) = (toString(y.caller) == valueOrElse(o(l), ""))
5147
5248
53-func A (h) = getInteger(this, q(h))
49+func A (f) = isDefined(addressFromString(f))
5450
5551
56-func B (h) = getInteger(this, p(h))
57-
58-
59-func C () = getString(this, s)
60-
61-
62-let D = {
63- let E = C()
64- if ($isInstanceOf(E, "String"))
65- then {
66- let F = E
67- split(F, ",")
68- }
69- else nil
70- }
71-
72-let G = d(this, r)
73-
74-func H (h) = isDefined(getString(this, m(h)))
75-
76-
77-func I (h) = isDefined(A(h))
78-
79-
80-func J (h) = {
81- let E = B(h)
82- if ($isInstanceOf(E, "Int"))
83- then {
84- let K = E
85- (lastBlock.timestamp > K)
86- }
87- else false
52+func B (h) = {
53+ let C = split(h, ".")
54+ let D = (size(C) - 1)
55+ let E = C[D]
56+ let F = makeString(removeByIndex(C, D), ".")
57+ $Tuple2(E, F)
8858 }
8959
9060
91-func L (h) = if (if (H(h))
92- then I(h)
93- else false)
94- then !(J(h))
95- else false
96-
97-
98-func M (h) = {
99- let N = "abcdefghijklmnopqrstuvwxyz1234567890-"
100- func O (P,Q) = if (P)
101- then contains(N, Q)
102- else false
103-
104- if (if (if (if (if ((size(h) > 0))
105- then (63 >= size(h))
106- else false)
107- then (indexOf(h, "--") != 2)
108- else false)
109- then (indexOf(h, "-") != 0)
110- else false)
111- then (lastIndexOf(h, "-") != (size(h) - 1))
112- else false)
61+func G (H,I,F) = {
62+ let J = invoke(H, "supportsInterface", [I], nil)
63+ if ($isInstanceOf(J, "Boolean"))
11364 then {
114- let R = split(h, "")
115- let S = size(R)
116- let T = true
117- func U (V,W) = if ((W >= S))
118- then V
119- else O(V, R[W])
120-
121- func X (V,W) = if ((W >= S))
122- then V
123- else throw("List size exceeds 63")
124-
125- X(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(T, 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)
65+ let K = J
66+ if (!(K))
67+ then unit
68+ else {
69+ let L = invoke(value(H), I, [F], nil)
70+ if ($isInstanceOf(L, "String"))
71+ then {
72+ let M = L
73+ M
74+ }
75+ else if ($isInstanceOf(L, "Int"))
76+ then {
77+ let N = L
78+ N
79+ }
80+ else unit
81+ }
12682 }
127- else false
83+ else unit
12884 }
12985
13086
131-func Y (h) = if (M(h))
132- then if (!(H(h)))
133- then true
134- else J(h)
135- else false
87+func O (P) = unit
13688
13789
138-func Z (f) = isDefined(addressFromString(f))
139-
140-
141-func aa (ab) = (ab.caller == this)
142-
143-
144-func ac (ab,h) = (toString(ab.caller) == valueOrElse(v(h), ""))
145-
146-
147-func ad (b) = containsElement(D, b)
148-
149-
150-func ae (h) = {
151- let af = split(h, ".")
152- let ag = (size(af) - 1)
153- let ah = af[ag]
154- let ai = makeString(removeByIndex(af, ag), ".")
155- $Tuple2(ah, ai)
156- }
157-
158-
159-func aj (h) = [Issue(if ((size(h) > 16))
160- then (take(h, 15) + "~")
161- else take(h, 16), (h + ".waves"), 1, 0, false)]
162-
163-
164-func ak (h,l,al) = [StringEntry(m(h), l), StringEntry(k(l), h), IntegerEntry(q(h), al), IntegerEntry(p(h), (al + G))]
165-
166-
167-func am (h,l) = [StringEntry(m(h), l), StringEntry(k(l), h)]
168-
169-
170-func an (l,u) = [ScriptTransfer(e(u), 1, fromBase58String(l))]
171-
172-
173-func ao (ap) = unit
174-
175-
176-func aq (ab) = if (aa(ab))
90+func Q (y) = if (x(y))
17791 then unit
17892 else throw("Permission denied")
17993
18094
181-func ar (ab) = if (if (aa(ab))
95+func R (y,l) = if (if (x(y))
18296 then true
183- else ad(toString(ab.caller)))
97+ else z(y, l))
18498 then unit
18599 else throw("Permission denied")
186100
187101
188-func as (ab,h) = if (if (aa(ab))
189- then true
190- else ac(ab, h))
102+@Callable(y)
103+func setOwner (l,q) = valueOrElse(O([R(y, l), if (A(q))
191104 then unit
192- else throw("Permission denied")
193-
194-
195-@Callable(ab)
196-func init (G) = valueOrElse(ao([aq(ab), if ((G > 0))
197- then unit
198- else throw("TTL cannot be negative")]), [IntegerEntry(r, G)])
105+ else throw("Owner must be a valid address")]), p(l, q))
199106
200107
201108
202-@Callable(ab)
203-func supportsInterface (at) = $Tuple2(nil, containsElement(["owner", "resolver", "nameCreated", "nameExpires"], at))
109+@Callable(y)
110+func owner (l) = $Tuple2(nil, o(l))
204111
205112
206113
207-@Callable(ab)
208-func addController (b) = valueOrElse(ao([aq(ab), if (Z(b))
209- then unit
210- else throw("Controller must be a valid address"), if (!(ad(b)))
211- then unit
212- else throw((("Controller `" + b) + "` is already registered"))]), [StringEntry(s, makeString((D :+ b), ","))])
114+@Callable(y)
115+func resolver (l) = $Tuple2(nil, r(l))
213116
214117
215118
216-@Callable(ab)
217-func removeController (b) = valueOrElse(ao([aq(ab), if (ad(b))
119+@Callable(y)
120+func setResolver (l,t) = valueOrElse(O([R(y, l), if (A(t))
218121 then unit
219- else throw((("Controller `" + b) + "` is not registered"))]), {
220- let au = value(indexOf(D, b))
221-[StringEntry(s, makeString(removeByIndex(D, au), ","))]
222- })
122+ else throw("Resolver must be a valid contract address")]), s(l, t))
223123
224124
225125
226-@Callable(ab)
227-func validate (h) = $Tuple2(nil, M(h))
126+@Callable(y)
127+func nameCreated (l) = $Tuple2(nil, u(l))
228128
229129
230130
231-@Callable(ab)
232-func available (h) = $Tuple2(nil, Y(h))
131+@Callable(y)
132+func setRecord (l,q,t) = valueOrElse(O([Q(y)]), ((p(l, q) ++ s(l, t)) ++ v(l, lastBlock.timestamp)))
233133
234134
235135
236-@Callable(ab)
237-func owner (h) = $Tuple2(nil, v(ae(h)._1))
238-
239-
240-
241-@Callable(ab)
242-func resolver (h) = $Tuple2(nil, y(ae(h)._1))
243-
244-
245-
246-@Callable(ab)
247-func setResolver (h,x) = valueOrElse(ao([if (L(h))
136+@Callable(y)
137+func whoIs (h) = valueOrElse(O([if ((size(h) > 0))
248138 then unit
249- else throw("Name expired or not registered"), as(ab, h), if (Z(x))
250- then unit
251- else throw("Resolver must be a valid contract address")]), $Tuple2(nil, w(h, x)))
252-
253-
254-
255-@Callable(ab)
256-func nameCreated (h) = $Tuple2(nil, A(ae(h)._1))
257-
258-
259-
260-@Callable(ab)
261-func nameExpires (h) = $Tuple2(nil, B(ae(h)._1))
262-
263-
264-
265-@Callable(ab)
266-func register (h,u,al) = valueOrElse(ao([ar(ab), if (Y(h))
267- then unit
268- else throw((("`" + h) + "` cannot be registered")), if (Z(u))
269- then unit
270- else throw("Owner must be a valid address"), if ((al > 0))
271- then unit
272- else throw("CreatedAt cannot be negative"), if ((lastBlock.timestamp >= al))
273- then unit
274- else throw("CreatedAt cannot be in the future")]), {
275- let av = aj(h)
276- let l = calculateAssetId(av[0])
277- let aw = toBase58String(l)
278- let ax = ak(h, aw, al)
279- let ay = an(aw, u)
280- let az = t(h, u)
281- (((av ++ ax) ++ ay) ++ az)
282- })
283-
284-
285-
286-@Callable(ab)
287-func reclaim (h) = valueOrElse(ao([if (L(h))
288- then unit
289- else throw((("`" + h) + "` is not active"))]), {
290- let aA = ab.caller
291- let aB = toString(aA)
292- let aw = valueOrErrorMessage(z(h), (("No token is issued for `" + h) + "`"))
293- let l = fromBase58String(aw)
294- let aC = (assetBalance(aA, l) == 1)
295- let aD = ac(ab, h)
296- let aE = {
297- let E = assetInfo(l)
298- if ($isInstanceOf(E, "Asset"))
139+ else throw("Name cannot be empty")]), {
140+ let S = B(h)
141+ let E = S._1
142+ let F = S._2
143+ let T = o(E)
144+ let U = {
145+ let J = T
146+ if ($isInstanceOf(J, "String"))
299147 then {
300- let aF = E
301- (aF.quantity == 1)
148+ let q = J
149+ addressFromString(q)
302150 }
303- else false
151+ else unit
304152 }
305- if (if (aD)
306- then !(aE)
307- else false)
308- then {
309- let aG = aj(h)
310- let aH = calculateAssetId(aG[0])
311- let aI = toBase58String(aH)
312- let aJ = am(h, aI)
313- let aK = an(aI, aB)
314- ((aG ++ aJ) ++ aK)
315- }
316- else if (if (aD)
317- then aC
318- else false)
319- then throw("You already own a name token")
320- else if (!(aC))
321- then throw("You don't have a name token")
322- else t(h, aB)
153+ let H = value(U)
154+ let V = r(E)
155+ let W = u(E)
156+ let q = {
157+ let J = G(H, "owner", F)
158+ if ($isInstanceOf(J, "String"))
159+ then {
160+ let q = J
161+ if (A(q))
162+ then q
163+ else unit
164+ }
165+ else unit
166+ }
167+ let t = {
168+ let J = G(H, "resolver", F)
169+ if ($isInstanceOf(J, "String"))
170+ then {
171+ let t = J
172+ if (A(t))
173+ then t
174+ else unit
175+ }
176+ else unit
177+ }
178+ let X = {
179+ let J = G(H, "nameCreated", F)
180+ if ($isInstanceOf(J, "Int"))
181+ then {
182+ let X = J
183+ if (if ((X > 0))
184+ then (lastBlock.timestamp > X)
185+ else false)
186+ then X
187+ else unit
188+ }
189+ else unit
190+ }
191+ let Y = {
192+ let J = G(H, "nameExpires", F)
193+ if ($isInstanceOf(J, "Int"))
194+ then {
195+ let Y = J
196+ if ((Y > 0))
197+ then Y
198+ else unit
199+ }
200+ else unit
201+ }
202+ let Z = if ((size(E) > 0))
203+ then (size(F) == 0)
204+ else false
205+ if (if (Z)
206+ then true
207+ else !(isDefined(U)))
208+ then $Tuple2(nil, $Tuple4(T, V, W, unit))
209+ else $Tuple2(nil, $Tuple4(q, t, X, Y))
323210 })
324211
325212
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 (l) = g("Name", l, "owner")
1717
1818
19-func m (h) = g("Name", h, "token")
19+func m (l) = g("Name", l, "resolver")
2020
2121
22-func n (h) = g("Name", h, "owner")
22+func n (l) = g("Name", l, "createdAt")
2323
2424
25-func o (h) = g("Name", h, "resolver")
25+func o (l) = getString(this, k(l))
2626
2727
28-func p (h) = g("Name", h, "expiresAt")
28+func p (l,q) = [StringEntry(k(l), q)]
2929
3030
31-func q (h) = g("Name", h, "createdAt")
31+func r (l) = getString(this, m(l))
3232
3333
34-let r = "nameTTL"
35-
36-let s = "controllers"
37-
38-func t (h,u) = [StringEntry(n(h), u)]
34+func s (l,t) = [StringEntry(m(l), t)]
3935
4036
41-func v (h) = getString(this, n(h))
37+func u (l) = getInteger(this, n(l))
4238
4339
44-func w (h,x) = [StringEntry(o(h), x)]
40+func v (l,w) = [IntegerEntry(n(l), w)]
4541
4642
47-func y (h) = getString(this, o(h))
43+func x (y) = (y.caller == this)
4844
4945
50-func z (h) = getString(this, m(h))
46+func z (y,l) = (toString(y.caller) == valueOrElse(o(l), ""))
5147
5248
53-func A (h) = getInteger(this, q(h))
49+func A (f) = isDefined(addressFromString(f))
5450
5551
56-func B (h) = getInteger(this, p(h))
57-
58-
59-func C () = getString(this, s)
60-
61-
62-let D = {
63- let E = C()
64- if ($isInstanceOf(E, "String"))
65- then {
66- let F = E
67- split(F, ",")
68- }
69- else nil
70- }
71-
72-let G = d(this, r)
73-
74-func H (h) = isDefined(getString(this, m(h)))
75-
76-
77-func I (h) = isDefined(A(h))
78-
79-
80-func J (h) = {
81- let E = B(h)
82- if ($isInstanceOf(E, "Int"))
83- then {
84- let K = E
85- (lastBlock.timestamp > K)
86- }
87- else false
52+func B (h) = {
53+ let C = split(h, ".")
54+ let D = (size(C) - 1)
55+ let E = C[D]
56+ let F = makeString(removeByIndex(C, D), ".")
57+ $Tuple2(E, F)
8858 }
8959
9060
91-func L (h) = if (if (H(h))
92- then I(h)
93- else false)
94- then !(J(h))
95- else false
96-
97-
98-func M (h) = {
99- let N = "abcdefghijklmnopqrstuvwxyz1234567890-"
100- func O (P,Q) = if (P)
101- then contains(N, Q)
102- else false
103-
104- if (if (if (if (if ((size(h) > 0))
105- then (63 >= size(h))
106- else false)
107- then (indexOf(h, "--") != 2)
108- else false)
109- then (indexOf(h, "-") != 0)
110- else false)
111- then (lastIndexOf(h, "-") != (size(h) - 1))
112- else false)
61+func G (H,I,F) = {
62+ let J = invoke(H, "supportsInterface", [I], nil)
63+ if ($isInstanceOf(J, "Boolean"))
11364 then {
114- let R = split(h, "")
115- let S = size(R)
116- let T = true
117- func U (V,W) = if ((W >= S))
118- then V
119- else O(V, R[W])
120-
121- func X (V,W) = if ((W >= S))
122- then V
123- else throw("List size exceeds 63")
124-
125- X(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(T, 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)
65+ let K = J
66+ if (!(K))
67+ then unit
68+ else {
69+ let L = invoke(value(H), I, [F], nil)
70+ if ($isInstanceOf(L, "String"))
71+ then {
72+ let M = L
73+ M
74+ }
75+ else if ($isInstanceOf(L, "Int"))
76+ then {
77+ let N = L
78+ N
79+ }
80+ else unit
81+ }
12682 }
127- else false
83+ else unit
12884 }
12985
13086
131-func Y (h) = if (M(h))
132- then if (!(H(h)))
133- then true
134- else J(h)
135- else false
87+func O (P) = unit
13688
13789
138-func Z (f) = isDefined(addressFromString(f))
139-
140-
141-func aa (ab) = (ab.caller == this)
142-
143-
144-func ac (ab,h) = (toString(ab.caller) == valueOrElse(v(h), ""))
145-
146-
147-func ad (b) = containsElement(D, b)
148-
149-
150-func ae (h) = {
151- let af = split(h, ".")
152- let ag = (size(af) - 1)
153- let ah = af[ag]
154- let ai = makeString(removeByIndex(af, ag), ".")
155- $Tuple2(ah, ai)
156- }
157-
158-
159-func aj (h) = [Issue(if ((size(h) > 16))
160- then (take(h, 15) + "~")
161- else take(h, 16), (h + ".waves"), 1, 0, false)]
162-
163-
164-func ak (h,l,al) = [StringEntry(m(h), l), StringEntry(k(l), h), IntegerEntry(q(h), al), IntegerEntry(p(h), (al + G))]
165-
166-
167-func am (h,l) = [StringEntry(m(h), l), StringEntry(k(l), h)]
168-
169-
170-func an (l,u) = [ScriptTransfer(e(u), 1, fromBase58String(l))]
171-
172-
173-func ao (ap) = unit
174-
175-
176-func aq (ab) = if (aa(ab))
90+func Q (y) = if (x(y))
17791 then unit
17892 else throw("Permission denied")
17993
18094
181-func ar (ab) = if (if (aa(ab))
95+func R (y,l) = if (if (x(y))
18296 then true
183- else ad(toString(ab.caller)))
97+ else z(y, l))
18498 then unit
18599 else throw("Permission denied")
186100
187101
188-func as (ab,h) = if (if (aa(ab))
189- then true
190- else ac(ab, h))
102+@Callable(y)
103+func setOwner (l,q) = valueOrElse(O([R(y, l), if (A(q))
191104 then unit
192- else throw("Permission denied")
193-
194-
195-@Callable(ab)
196-func init (G) = valueOrElse(ao([aq(ab), if ((G > 0))
197- then unit
198- else throw("TTL cannot be negative")]), [IntegerEntry(r, G)])
105+ else throw("Owner must be a valid address")]), p(l, q))
199106
200107
201108
202-@Callable(ab)
203-func supportsInterface (at) = $Tuple2(nil, containsElement(["owner", "resolver", "nameCreated", "nameExpires"], at))
109+@Callable(y)
110+func owner (l) = $Tuple2(nil, o(l))
204111
205112
206113
207-@Callable(ab)
208-func addController (b) = valueOrElse(ao([aq(ab), if (Z(b))
209- then unit
210- else throw("Controller must be a valid address"), if (!(ad(b)))
211- then unit
212- else throw((("Controller `" + b) + "` is already registered"))]), [StringEntry(s, makeString((D :+ b), ","))])
114+@Callable(y)
115+func resolver (l) = $Tuple2(nil, r(l))
213116
214117
215118
216-@Callable(ab)
217-func removeController (b) = valueOrElse(ao([aq(ab), if (ad(b))
119+@Callable(y)
120+func setResolver (l,t) = valueOrElse(O([R(y, l), if (A(t))
218121 then unit
219- else throw((("Controller `" + b) + "` is not registered"))]), {
220- let au = value(indexOf(D, b))
221-[StringEntry(s, makeString(removeByIndex(D, au), ","))]
222- })
122+ else throw("Resolver must be a valid contract address")]), s(l, t))
223123
224124
225125
226-@Callable(ab)
227-func validate (h) = $Tuple2(nil, M(h))
126+@Callable(y)
127+func nameCreated (l) = $Tuple2(nil, u(l))
228128
229129
230130
231-@Callable(ab)
232-func available (h) = $Tuple2(nil, Y(h))
131+@Callable(y)
132+func setRecord (l,q,t) = valueOrElse(O([Q(y)]), ((p(l, q) ++ s(l, t)) ++ v(l, lastBlock.timestamp)))
233133
234134
235135
236-@Callable(ab)
237-func owner (h) = $Tuple2(nil, v(ae(h)._1))
238-
239-
240-
241-@Callable(ab)
242-func resolver (h) = $Tuple2(nil, y(ae(h)._1))
243-
244-
245-
246-@Callable(ab)
247-func setResolver (h,x) = valueOrElse(ao([if (L(h))
136+@Callable(y)
137+func whoIs (h) = valueOrElse(O([if ((size(h) > 0))
248138 then unit
249- else throw("Name expired or not registered"), as(ab, h), if (Z(x))
250- then unit
251- else throw("Resolver must be a valid contract address")]), $Tuple2(nil, w(h, x)))
252-
253-
254-
255-@Callable(ab)
256-func nameCreated (h) = $Tuple2(nil, A(ae(h)._1))
257-
258-
259-
260-@Callable(ab)
261-func nameExpires (h) = $Tuple2(nil, B(ae(h)._1))
262-
263-
264-
265-@Callable(ab)
266-func register (h,u,al) = valueOrElse(ao([ar(ab), if (Y(h))
267- then unit
268- else throw((("`" + h) + "` cannot be registered")), if (Z(u))
269- then unit
270- else throw("Owner must be a valid address"), if ((al > 0))
271- then unit
272- else throw("CreatedAt cannot be negative"), if ((lastBlock.timestamp >= al))
273- then unit
274- else throw("CreatedAt cannot be in the future")]), {
275- let av = aj(h)
276- let l = calculateAssetId(av[0])
277- let aw = toBase58String(l)
278- let ax = ak(h, aw, al)
279- let ay = an(aw, u)
280- let az = t(h, u)
281- (((av ++ ax) ++ ay) ++ az)
282- })
283-
284-
285-
286-@Callable(ab)
287-func reclaim (h) = valueOrElse(ao([if (L(h))
288- then unit
289- else throw((("`" + h) + "` is not active"))]), {
290- let aA = ab.caller
291- let aB = toString(aA)
292- let aw = valueOrErrorMessage(z(h), (("No token is issued for `" + h) + "`"))
293- let l = fromBase58String(aw)
294- let aC = (assetBalance(aA, l) == 1)
295- let aD = ac(ab, h)
296- let aE = {
297- let E = assetInfo(l)
298- if ($isInstanceOf(E, "Asset"))
139+ else throw("Name cannot be empty")]), {
140+ let S = B(h)
141+ let E = S._1
142+ let F = S._2
143+ let T = o(E)
144+ let U = {
145+ let J = T
146+ if ($isInstanceOf(J, "String"))
299147 then {
300- let aF = E
301- (aF.quantity == 1)
148+ let q = J
149+ addressFromString(q)
302150 }
303- else false
151+ else unit
304152 }
305- if (if (aD)
306- then !(aE)
307- else false)
308- then {
309- let aG = aj(h)
310- let aH = calculateAssetId(aG[0])
311- let aI = toBase58String(aH)
312- let aJ = am(h, aI)
313- let aK = an(aI, aB)
314- ((aG ++ aJ) ++ aK)
315- }
316- else if (if (aD)
317- then aC
318- else false)
319- then throw("You already own a name token")
320- else if (!(aC))
321- then throw("You don't have a name token")
322- else t(h, aB)
153+ let H = value(U)
154+ let V = r(E)
155+ let W = u(E)
156+ let q = {
157+ let J = G(H, "owner", F)
158+ if ($isInstanceOf(J, "String"))
159+ then {
160+ let q = J
161+ if (A(q))
162+ then q
163+ else unit
164+ }
165+ else unit
166+ }
167+ let t = {
168+ let J = G(H, "resolver", F)
169+ if ($isInstanceOf(J, "String"))
170+ then {
171+ let t = J
172+ if (A(t))
173+ then t
174+ else unit
175+ }
176+ else unit
177+ }
178+ let X = {
179+ let J = G(H, "nameCreated", F)
180+ if ($isInstanceOf(J, "Int"))
181+ then {
182+ let X = J
183+ if (if ((X > 0))
184+ then (lastBlock.timestamp > X)
185+ else false)
186+ then X
187+ else unit
188+ }
189+ else unit
190+ }
191+ let Y = {
192+ let J = G(H, "nameExpires", F)
193+ if ($isInstanceOf(J, "Int"))
194+ then {
195+ let Y = J
196+ if ((Y > 0))
197+ then Y
198+ else unit
199+ }
200+ else unit
201+ }
202+ let Z = if ((size(E) > 0))
203+ then (size(F) == 0)
204+ else false
205+ if (if (Z)
206+ then true
207+ else !(isDefined(U)))
208+ then $Tuple2(nil, $Tuple4(T, V, W, unit))
209+ else $Tuple2(nil, $Tuple4(q, t, X, Y))
323210 })
324211
325212

github/deemru/w8io/169f3d6 
68.17 ms