tx · 71nLY3vj8gjdwqm1pBqnEZksbSGAhqT3mKRvsKaS6DU9

3MvrXJVzDMDcshazxn88FybxHV2JvWQBxTc:  -0.01400000 Waves

2022.10.20 09:35 [2280364] smart account 3MvrXJVzDMDcshazxn88FybxHV2JvWQBxTc > SELF 0.00000000 Waves

{ "type": 13, "id": "71nLY3vj8gjdwqm1pBqnEZksbSGAhqT3mKRvsKaS6DU9", "fee": 1400000, "feeAssetId": null, "timestamp": 1666247772108, "version": 2, "chainId": 84, "sender": "3MvrXJVzDMDcshazxn88FybxHV2JvWQBxTc", "senderPublicKey": "Fq8P5ctrS7PNTX37bWWxvnwoB7C2FaNySZWnRmgPUaDH", "proofs": [ "5DHzsTNSRcLfJKNVGhqUnTgDdDd93UFkJXiyGyL1Hg5UEpmnNka7wPMaYo5zbcRQunSfdYSBcuhRe2o2ukyofyEn" ], "script": "base64:AAIFAAAAAAAAAFEIAhIDCgEBEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBCBIDCgEIEgMKAQgSBAoCCAgSAwoBCBIECgIICBIDCgEIEgMKAQgSBQoDCAgBEgMKAQgAAAAsAQAAABBnZXRTdHJpbmdPclRocm93AAAAAgAAAAdhZGRyZXNzAAAAA2tleQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAMQ2FuJ3QgcmVhZCAnBQAAAANrZXkCAAAADScgYXQgYWRkcmVzcyAJAAQlAAAAAQUAAAAHYWRkcmVzcwEAAAARZ2V0SW50ZWdlck9yVGhyb3cAAAACAAAAB2FkZHJlc3MAAAADa2V5CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAxDYW4ndCByZWFkICcFAAAAA2tleQIAAAANJyBhdCBhZGRyZXNzIAkABCUAAAABBQAAAAdhZGRyZXNzAQAAABNwYXJzZUFkZHJlc3NPclRocm93AAAAAQAAAAxtYXliZUFkZHJlc3MJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCYAAAABBQAAAAxtYXliZUFkZHJlc3MJAAEsAAAAAgkAASwAAAACAgAAABpDYW4ndCBwYXJzZSBhZGRyZXNzIGZyb20gJwUAAAAMbWF5YmVBZGRyZXNzAgAAAAEnAQAAAAprZXlfZW50aXR5AAAAAwAAAARuYW1lAAAAAnBrAAAACHByb3BlcnR5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABG5hbWUCAAAAAV8FAAAAAnBrAgAAAAFfBQAAAAhwcm9wZXJ0eQEAAAAOa2V5X1Rva2VuX25hbWUAAAABAAAAB3Rva2VuSWQJAQAAAAprZXlfZW50aXR5AAAAAwIAAAAFVG9rZW4FAAAAB3Rva2VuSWQCAAAABG5hbWUBAAAADmtleV9OYW1lX3Rva2VuAAAAAQAAAARuYW1lCQEAAAAKa2V5X2VudGl0eQAAAAMCAAAABE5hbWUFAAAABG5hbWUCAAAABXRva2VuAQAAAA5rZXlfTmFtZV9vd25lcgAAAAEAAAAEbmFtZQkBAAAACmtleV9lbnRpdHkAAAADAgAAAAROYW1lBQAAAARuYW1lAgAAAAVvd25lcgEAAAASa2V5X05hbWVfcmVnaXN0cmFyAAAAAQAAAARuYW1lCQEAAAAKa2V5X2VudGl0eQAAAAMCAAAABE5hbWUFAAAABG5hbWUCAAAACXJlZ2lzdHJhcgEAAAARa2V5X05hbWVfcmVzb2x2ZXIAAAABAAAABG5hbWUJAQAAAAprZXlfZW50aXR5AAAAAwIAAAAETmFtZQUAAAAEbmFtZQIAAAAIcmVzb2x2ZXIBAAAAEmtleV9OYW1lX2V4cGlyZXNBdAAAAAEAAAAEbmFtZQkBAAAACmtleV9lbnRpdHkAAAADAgAAAAROYW1lBQAAAARuYW1lAgAAAAlleHBpcmVzQXQBAAAAEmtleV9OYW1lX2NyZWF0ZWRBdAAAAAEAAAAEbmFtZQkBAAAACmtleV9lbnRpdHkAAAADAgAAAAROYW1lBQAAAARuYW1lAgAAAAljcmVhdGVkQXQAAAAAC2tleV9uYW1lVFRMAgAAAAduYW1lVFRMAAAAAA9rZXlfY29udHJvbGxlcnMCAAAAC2NvbnRyb2xsZXJzAQAAAAlfc2V0T3duZXIAAAACAAAABG5hbWUAAAAFb3duZXIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAADmtleV9OYW1lX293bmVyAAAAAQUAAAAEbmFtZQUAAAAFb3duZXIFAAAAA25pbAEAAAAJX2dldE93bmVyAAAAAQAAAARuYW1lCQAEHQAAAAIFAAAABHRoaXMJAQAAAA5rZXlfTmFtZV9vd25lcgAAAAEFAAAABG5hbWUBAAAADV9zZXRSZWdpc3RyYXIAAAACAAAABG5hbWUAAAAJcmVnaXN0cmFyCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABJrZXlfTmFtZV9yZWdpc3RyYXIAAAABBQAAAARuYW1lBQAAAAlyZWdpc3RyYXIFAAAAA25pbAEAAAANX2dldFJlZ2lzdHJhcgAAAAEAAAAEbmFtZQkABB0AAAACBQAAAAR0aGlzCQEAAAASa2V5X05hbWVfcmVnaXN0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YQkAAZEAAAACBQAAAAIkbAUAAAACJGkKAQAAAAUkZjBfMgAAAAIAAAACJGEAAAACJGkDCQAAZwAAAAIFAAAAAiRpBQAAAAIkcwUAAAACJGEJAAACAAAAAQIAAAAUTGlzdCBzaXplIGV4Y2VlZHMgNjMJAQAAAAUkZjBfMgAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUk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ZSBuZWdhdGl2ZQkABEwAAAACAwkAAGcAAAACCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAUAAAAJY3JlYXRlZEF0BQAAAAR1bml0CQAAAgAAAAECAAAAIUNyZWF0ZWRBdCBjYW5ub3QgYmUgaW4gdGhlIGZ1dHVyZQUAAAADbmlsBAAAAA5pc3N1ZU5hbWVUb2tlbgkBAAAAD19pc3N1ZU5hbWVUb2tlbgAAAAEFAAAABG5hbWUEAAAAB3Rva2VuSWQJAAQ4AAAAAQkAAZEAAAACBQAAAA5pc3N1ZU5hbWVUb2tlbgAAAAAAAAAAAAQAAAAIdG9rZW5TdHIJAAJYAAAAAQUAAAAHdG9rZW5JZAQAAAAVcmVnaXN0ZXJOYW1lV2l0aFRva2VuCQEAAAAWX3JlZ2lzdGVyTmFtZVdpdGhUb2tlbgAAAAMFAAAABG5hbWUFAAAACHRva2VuU3RyBQAAAAljcmVhdGVkQXQEAAAAFHRyYW5zZmVyVG9rZW5Ub093bmVyCQEAAAAVX3RyYW5zZmVyVG9rZW5Ub093bmVyAAAAAgUAAAAIdG9rZW5TdHIFAAAABW93bmVyBAAAAAxzZXRPd25lcnNoaXAJAQAAAAlfc2V0T3duZXIAAAACBQAAAARuYW1lBQAAAAVvd25lcgkABE4AAAACCQAETgAAAAIJAAROAAAAAgUAAAAOaXNzdWVOYW1lVG9rZW4FAAAAFXJlZ2lzdGVyTmFtZVdpdGhUb2tlbgUAAAAUdHJhbnNmZXJUb2tlblRvT3duZXIFAAAADHNldE93bmVyc2hpcAAAAANpbnYBAAAAB3JlY2xhaW0AAAABAAAABG5hbWUJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAQAAAAltb2RpZmllcnMAAAABCQAETAAAAAIDCQEAAAAMaXNBY3RpdmVOYW1lAAAAAQUAAAAEbmFtZQUAAAAEdW5pdAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAABYAUAAAAEbmFtZQIAAAAPYCBpcyBub3QgYWN0aXZlBQAAAANuaWwEAAAACG5ld093bmVyCAUAAAADaW52AAAABmNhbGxlcgQAAAAPbmV3T3duZXJBZGRyZXNzCQAEJQAAAAEFAAAACG5ld093bmVyBAAAAAh0b2tlblN0cgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQEAAAAJX2dldFRva2VuAAAAAQUAAAAEbmFtZQkAASwAAAACCQABLAAAAAICAAAAGE5vIHRva2VuIGlzIGlzc3VlZCBmb3IgYAUAAAAEbmFtZQIAAAABYAQAAAAHdG9rZW5JZAkAAlkAAAABBQAAAAh0b2tlblN0cgQAAAAIaGFzVG9rZW4JAAAAAAAAAgkAA/AAAAACBQAAAAhuZXdPd25lcgUAAAAHdG9rZW5JZAAAAAAAAAAAAQQAAAAMaXNUb2tlbk93bmVyCQEAAAAHaXNPd25lcgAAAAIFAAAAA2ludgUAAAAEbmFtZQQAAAANaXNUb2tlbkV4aXN0cwQAAAAHJG1hdGNoMAkAA+wAAAABBQAAAAd0b2tlbklkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAVBc3NldAQAAAAFdG9rZW4FAAAAByRtYXRjaDAJAAAAAAAAAggFAAAABXRva2VuAAAACHF1YW50aXR5AAAAAAAAAAABBwMDBQAAAAxpc1Rva2VuT3duZXIJAQAAAAEhAAAAAQUAAAANaXNUb2tlbkV4aXN0cwcEAAAADWlzc3VlTmV3VG9rZW4JAQAAAA9faXNzdWVOYW1lVG9rZW4AAAABBQAAAARuYW1lBAAAAApuZXdUb2tlbklkCQAEOAAAAAEJAAGRAAAAAgUAAAANaXNzdWVOZXdUb2tlbgAAAAAAAAAAAAQAAAALbmV3VG9rZW5TdHIJAAJYAAAAAQUAAAAKbmV3VG9rZW5JZAQAAAAXcmVzdG9yZU5hbWVXaXRoTmV3VG9rZW4JAQAAABVfcmVzdG9yZU5hbWVXaXRoVG9rZW4AAAACBQAAAARuYW1lBQAAAAtuZXdUb2tlblN0cgQAAAAXdHJhbnNmZXJOZXdUb2tlblRvT3duZXIJAQAAABVfdHJhbnNmZXJUb2tlblRvT3duZXIAAAACBQAAAAtuZXdUb2tlblN0cgUAAAAPbmV3T3duZXJBZGRyZXNzCQAETgAAAAIJAAROAAAAAgUAAAANaXNzdWVOZXdUb2tlbgUAAAAXcmVzdG9yZU5hbWVXaXRoTmV3VG9rZW4FAAAAF3RyYW5zZmVyTmV3VG9rZW5Ub093bmVyAwMFAAAADGlzVG9rZW5Pd25lcgUAAAAIaGFzVG9rZW4HCQAAAgAAAAECAAAAHFlvdSBhbHJlYWR5IG93biBhIG5hbWUgdG9rZW4DCQEAAAABIQAAAAEFAAAACGhhc1Rva2VuCQAAAgAAAAECAAAAG1lvdSBkb24ndCBoYXZlIGEgbmFtZSB0b2tlbgkBAAAACV9zZXRPd25lcgAAAAIFAAAABG5hbWUFAAAAD25ld093bmVyQWRkcmVzcwAAAAAukcW8", "height": 2280364, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: J6ptAN81AhnCvVFrodShtQLbVx9xeaR7KW4hdB8pBYHY Next: HuZ4vRc76Bv8M4bMbHkC66a5KS8pWaB7a1fYYzD7w8XS Diff:
OldNewDifferences
2222 func n (h) = g("Name", h, "owner")
2323
2424
25-func o (h) = g("Name", h, "resolver")
25+func o (h) = g("Name", h, "registrar")
2626
2727
28-func p (h) = g("Name", h, "expiresAt")
28+func p (h) = g("Name", h, "resolver")
2929
3030
31-func q (h) = g("Name", h, "createdAt")
31+func q (h) = g("Name", h, "expiresAt")
3232
3333
34-let r = "nameTTL"
35-
36-let s = "controllers"
37-
38-func t (h,u) = [StringEntry(n(h), u)]
34+func r (h) = g("Name", h, "createdAt")
3935
4036
41-func v (h) = getString(this, n(h))
37+let s = "nameTTL"
38+
39+let t = "controllers"
40+
41+func u (h,v) = [StringEntry(n(h), v)]
4242
4343
44-func w (h,x) = [StringEntry(o(h), x)]
44+func w (h) = getString(this, n(h))
4545
4646
47-func y (h) = getString(this, o(h))
47+func x (h,y) = [StringEntry(o(h), y)]
4848
4949
50-func z (h) = getString(this, m(h))
50+func z (h) = getString(this, o(h))
5151
5252
53-func A (h) = getInteger(this, q(h))
53+func A (h,B) = [StringEntry(p(h), B)]
5454
5555
56-func B (h) = getInteger(this, p(h))
56+func C (h) = getString(this, p(h))
5757
5858
59-func C () = getString(this, s)
59+func D (h) = getString(this, m(h))
6060
6161
62-let D = {
63- let E = C()
64- if ($isInstanceOf(E, "String"))
62+func E (h) = getInteger(this, r(h))
63+
64+
65+func F (h) = getInteger(this, q(h))
66+
67+
68+func G () = getString(this, t)
69+
70+
71+let H = {
72+ let I = G()
73+ if ($isInstanceOf(I, "String"))
6574 then {
66- let F = E
67- split(F, ",")
75+ let J = I
76+ split(J, ",")
6877 }
6978 else nil
7079 }
7180
72-let G = d(this, r)
81+let K = d(this, s)
7382
74-func H (h) = isDefined(getString(this, m(h)))
83+func L (h) = isDefined(getString(this, m(h)))
7584
7685
77-func I (h) = isDefined(A(h))
86+func M (h) = isDefined(E(h))
7887
7988
80-func J (h) = {
81- let E = B(h)
82- if ($isInstanceOf(E, "Int"))
89+func N (h) = {
90+ let I = F(h)
91+ if ($isInstanceOf(I, "Int"))
8392 then {
84- let K = E
85- (lastBlock.timestamp > K)
93+ let O = I
94+ (lastBlock.timestamp > O)
8695 }
8796 else false
8897 }
8998
9099
91-func L (h) = if (if (H(h))
92- then I(h)
100+func P (h) = if (if (L(h))
101+ then M(h)
93102 else false)
94- then !(J(h))
103+ then !(N(h))
95104 else false
96105
97106
98-func M (h) = {
99- let N = "abcdefghijklmnopqrstuvwxyz1234567890-"
100- func O (P,Q) = if (P)
101- then contains(N, Q)
107+func Q (h) = {
108+ let R = "abcdefghijklmnopqrstuvwxyz1234567890-"
109+ func S (T,U) = if (T)
110+ then contains(R, U)
102111 else false
103112
104- let R = if (if (if (if (if ((size(h) > 0))
113+ if (if (if (if (if ((size(h) > 0))
105114 then (63 >= size(h))
106115 else false)
107116 then (indexOf(h, "--") != 2)
111120 then (lastIndexOf(h, "-") != (size(h) - 1))
112121 else false)
113122 then {
114- let S = split(h, "")
115- let T = size(S)
116- let U = true
117- func V (W,X) = if ((X >= T))
118- then W
119- else O(W, S[X])
123+ let V = split(h, "")
124+ let W = size(V)
125+ let X = true
126+ func Y (Z,aa) = if ((aa >= W))
127+ then Z
128+ else S(Z, V[aa])
120129
121- func Y (W,X) = if ((X >= T))
122- then W
130+ func ab (Z,aa) = if ((aa >= W))
131+ then Z
123132 else throw("List size exceeds 63")
124133
125- Y(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(U, 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)
134+ ab(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(X, 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)
126135 }
127- else false
128- let Z = if (H(h))
129- then !(J(h))
130- else false
131- if (!(Z))
132- then R
133136 else false
134137 }
135138
136139
137-func aa (f) = isDefined(addressFromString(f))
140+func ac (h) = if (Q(h))
141+ then if (!(L(h)))
142+ then true
143+ else N(h)
144+ else false
138145
139146
140-func ab (ac) = (ac.caller == this)
147+func ad (f) = isDefined(addressFromString(f))
141148
142149
143-func ad (ac,h) = (toString(ac.caller) == valueOrElse(v(h), ""))
150+func ae (af) = (af.caller == this)
144151
145152
146-func ae (b) = containsElement(D, b)
153+func ag (af,h) = (toString(af.caller) == valueOrElse(w(h), ""))
147154
148155
149-func af (h) = {
150- let ag = split(h, ".")
151- let ah = (size(ag) - 1)
152- let ai = ag[ah]
153- let aj = makeString(removeByIndex(ag, ah), ".")
154- $Tuple2(ai, aj)
156+func ah (b) = containsElement(H, b)
157+
158+
159+func ai (h) = {
160+ let aj = split(h, ".")
161+ let ak = (size(aj) - 1)
162+ let al = aj[ak]
163+ let am = makeString(removeByIndex(aj, ak), ".")
164+ $Tuple2(al, am)
155165 }
156166
157167
158-func ak (h) = [Issue(if ((size(h) > 16))
168+func an (h) = [Issue(if ((size(h) > 16))
159169 then (take(h, 15) + "~")
160170 else take(h, 16), (h + ".waves"), 1, 0, false)]
161171
162172
163-func al (h,l,am) = [StringEntry(m(h), l), StringEntry(k(l), h), IntegerEntry(q(h), am), IntegerEntry(p(h), (am + G))]
173+func ao (h,l,ap) = [StringEntry(m(h), l), StringEntry(k(l), h), IntegerEntry(r(h), ap), IntegerEntry(q(h), (ap + K))]
164174
165175
166-func an (h,l) = [StringEntry(m(h), l), StringEntry(k(l), h)]
176+func aq (h,l) = [StringEntry(m(h), l), StringEntry(k(l), h)]
167177
168178
169-func ao (l,u) = [ScriptTransfer(e(u), 1, fromBase58String(l))]
179+func ar (l,v) = [ScriptTransfer(e(v), 1, fromBase58String(l))]
170180
171181
172-func ap (aq) = unit
182+func as (at) = unit
173183
174184
175-func ar (ac) = if (ab(ac))
185+func au (af) = if (ae(af))
176186 then unit
177187 else throw("Permission denied")
178188
179189
180-func as (ac) = if (if (ab(ac))
190+func av (af) = if (if (ae(af))
181191 then true
182- else ae(toString(ac.caller)))
192+ else ah(toString(af.caller)))
183193 then unit
184194 else throw("Permission denied")
185195
186196
187-func at (ac,h) = if (if (ab(ac))
197+func aw (af,h) = if (if (ae(af))
188198 then true
189- else ad(ac, h))
199+ else ag(af, h))
190200 then unit
191201 else throw("Permission denied")
192202
193203
194-@Callable(ac)
195-func init (G) = valueOrElse(ap([ar(ac), if ((G > 0))
204+@Callable(af)
205+func init (K) = valueOrElse(as([au(af), if ((K > 0))
196206 then unit
197- else throw("TTL cannot be negative")]), [IntegerEntry(r, G)])
207+ else throw("TTL cannot be negative")]), [IntegerEntry(s, K)])
198208
199209
200210
201-@Callable(ac)
202-func supportsInterface (au) = $Tuple2(nil, containsElement(["owner", "resolver", "nameCreated", "nameExpires"], au))
211+@Callable(af)
212+func supportsInterface (ax) = $Tuple2(nil, containsElement(["owner", "registrar", "resolver", "nameCreated", "nameExpires"], ax))
203213
204214
205215
206-@Callable(ac)
207-func addController (b) = valueOrElse(ap([ar(ac), if (aa(b))
216+@Callable(af)
217+func addController (b) = valueOrElse(as([au(af), if (ad(b))
208218 then unit
209- else throw("Controller must be a valid address"), if (!(ae(b)))
219+ else throw("Controller must be a valid address"), if (!(ah(b)))
210220 then unit
211- else throw((("Controller `" + b) + "` is already registered"))]), [StringEntry(s, makeString((D :+ b), ","))])
221+ else throw((("Controller `" + b) + "` is already registered"))]), [StringEntry(t, makeString((H :+ b), ","))])
212222
213223
214224
215-@Callable(ac)
216-func removeController (b) = valueOrElse(ap([ar(ac), if (ae(b))
225+@Callable(af)
226+func removeController (b) = valueOrElse(as([au(af), if (ah(b))
217227 then unit
218228 else throw((("Controller `" + b) + "` is not registered"))]), {
219- let av = value(indexOf(D, b))
220-[StringEntry(s, makeString(removeByIndex(D, av), ","))]
229+ let ay = value(indexOf(H, b))
230+[StringEntry(t, makeString(removeByIndex(H, ay), ","))]
221231 })
222232
223233
224234
225-@Callable(ac)
226-func available (h) = $Tuple2(nil, M(h))
235+@Callable(af)
236+func validate (h) = $Tuple2(nil, Q(h))
227237
228238
229239
230-@Callable(ac)
231-func owner (h) = $Tuple2(nil, v(af(h)._1))
240+@Callable(af)
241+func available (h) = $Tuple2(nil, ac(h))
232242
233243
234244
235-@Callable(ac)
236-func resolver (h) = $Tuple2(nil, y(af(h)._1))
245+@Callable(af)
246+func owner (h) = $Tuple2(nil, w(ai(h)._1))
237247
238248
239249
240-@Callable(ac)
241-func setResolver (h,x) = valueOrElse(ap([if (L(h))
242- then unit
243- else throw("Name expired or not registered"), at(ac, h), if (aa(x))
244- then unit
245- else throw("Resolver must be a valid contract address")]), w(h, x))
250+@Callable(af)
251+func registrar (h) = {
252+ let az = ai(h)
253+ let aA = az._1
254+ let am = az._2
255+ let aB = {
256+ let I = z(aA)
257+ if ($isInstanceOf(I, "String"))
258+ then {
259+ let aC = I
260+ if (ad(aC))
261+ then aC
262+ else unit
263+ }
264+ else unit
265+ }
266+ let y = value(addressFromString(value(aB)))
267+ let aD = {
268+ let I = invoke(y, "supportsInterface", ["registrar"], nil)
269+ if ($isInstanceOf(I, "Boolean"))
270+ then {
271+ let aD = I
272+ aD
273+ }
274+ else false
275+ }
276+ if (if ((size(am) == 0))
277+ then true
278+ else !(isDefined(aB)))
279+ then $Tuple2(nil, aB)
280+ else if (!(aD))
281+ then $Tuple2(nil, unit)
282+ else {
283+ let I = invoke(y, "registrar", [am], nil)
284+ if ($isInstanceOf(I, "String"))
285+ then {
286+ let aC = I
287+ $Tuple2(nil, if (ad(aC))
288+ then aC
289+ else unit)
290+ }
291+ else $Tuple2(nil, unit)
292+ }
293+ }
246294
247295
248296
249-@Callable(ac)
250-func nameCreated (h) = $Tuple2(nil, A(af(h)._1))
297+@Callable(af)
298+func setRegistrar (h,y) = valueOrElse(as([if (P(h))
299+ then unit
300+ else throw("Name expired or not registered"), aw(af, h), if (ad(y))
301+ then unit
302+ else throw("Registrar must be a valid contract address")]), x(h, y))
251303
252304
253305
254-@Callable(ac)
255-func nameExpires (h) = $Tuple2(nil, B(af(h)._1))
306+@Callable(af)
307+func resolver (h) = $Tuple2(nil, C(ai(h)._1))
256308
257309
258310
259-@Callable(ac)
260-func register (h,u,am) = valueOrElse(ap([as(ac), if (M(h))
311+@Callable(af)
312+func setResolver (h,B) = valueOrElse(as([if (P(h))
261313 then unit
262- else throw((("`" + h) + "` cannot be registered")), if (aa(u))
314+ else throw("Name expired or not registered"), aw(af, h), if (ad(B))
263315 then unit
264- else throw("Owner must be a valid address"), if ((am > 0))
316+ else throw("Resolver must be a valid contract address")]), A(h, B))
317+
318+
319+
320+@Callable(af)
321+func nameCreated (h) = $Tuple2(nil, E(ai(h)._1))
322+
323+
324+
325+@Callable(af)
326+func nameExpires (h) = $Tuple2(nil, F(ai(h)._1))
327+
328+
329+
330+@Callable(af)
331+func register (h,v,ap) = valueOrElse(as([av(af), if (ac(h))
265332 then unit
266- else throw("CreatedAt cannot be negative"), if ((lastBlock.timestamp >= am))
333+ else throw((("`" + h) + "` cannot be registered")), if (ad(v))
334+ then unit
335+ else throw("Owner must be a valid address"), if ((ap > 0))
336+ then unit
337+ else throw("CreatedAt cannot be negative"), if ((lastBlock.timestamp >= ap))
267338 then unit
268339 else throw("CreatedAt cannot be in the future")]), {
269- let aw = ak(h)
270- let l = calculateAssetId(aw[0])
271- let ax = toBase58String(l)
272- let ay = al(h, ax, am)
273- let az = ao(ax, u)
274- let aA = t(h, u)
275- (((aw ++ ay) ++ az) ++ aA)
340+ let aE = an(h)
341+ let l = calculateAssetId(aE[0])
342+ let aF = toBase58String(l)
343+ let aG = ao(h, aF, ap)
344+ let aH = ar(aF, v)
345+ let aI = u(h, v)
346+ (((aE ++ aG) ++ aH) ++ aI)
276347 })
277348
278349
279350
280-@Callable(ac)
281-func reclaim (h) = valueOrElse(ap([if (L(h))
351+@Callable(af)
352+func reclaim (h) = valueOrElse(as([if (P(h))
282353 then unit
283354 else throw((("`" + h) + "` is not active"))]), {
284- let aB = ac.caller
285- let aC = toString(aB)
286- let ax = valueOrErrorMessage(z(h), (("No token is issued for `" + h) + "`"))
287- let l = fromBase58String(ax)
288- let aD = (assetBalance(aB, l) == 1)
289- let aE = ad(ac, h)
290- let aF = {
291- let E = assetInfo(l)
292- if ($isInstanceOf(E, "Asset"))
355+ let aJ = af.caller
356+ let aK = toString(aJ)
357+ let aF = valueOrErrorMessage(D(h), (("No token is issued for `" + h) + "`"))
358+ let l = fromBase58String(aF)
359+ let aL = (assetBalance(aJ, l) == 1)
360+ let aM = ag(af, h)
361+ let aN = {
362+ let I = assetInfo(l)
363+ if ($isInstanceOf(I, "Asset"))
293364 then {
294- let aG = E
295- (aG.quantity == 1)
365+ let aO = I
366+ (aO.quantity == 1)
296367 }
297368 else false
298369 }
299- if (if (aE)
300- then !(aF)
370+ if (if (aM)
371+ then !(aN)
301372 else false)
302373 then {
303- let aH = ak(h)
304- let aI = calculateAssetId(aH[0])
305- let aJ = toBase58String(aI)
306- let aK = an(h, aJ)
307- let aL = ao(aJ, aC)
308- ((aH ++ aK) ++ aL)
374+ let aP = an(h)
375+ let aQ = calculateAssetId(aP[0])
376+ let aR = toBase58String(aQ)
377+ let aS = aq(h, aR)
378+ let aT = ar(aR, aK)
379+ ((aP ++ aS) ++ aT)
309380 }
310- else if (if (aE)
311- then aD
381+ else if (if (aM)
382+ then aL
312383 else false)
313384 then throw("You already own a name token")
314- else if (!(aD))
385+ else if (!(aL))
315386 then throw("You don't have a name token")
316- else t(h, aC)
387+ else u(h, aK)
317388 })
318389
319390
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
1616 func k (l) = g("Token", l, "name")
1717
1818
1919 func m (h) = g("Name", h, "token")
2020
2121
2222 func n (h) = g("Name", h, "owner")
2323
2424
25-func o (h) = g("Name", h, "resolver")
25+func o (h) = g("Name", h, "registrar")
2626
2727
28-func p (h) = g("Name", h, "expiresAt")
28+func p (h) = g("Name", h, "resolver")
2929
3030
31-func q (h) = g("Name", h, "createdAt")
31+func q (h) = g("Name", h, "expiresAt")
3232
3333
34-let r = "nameTTL"
35-
36-let s = "controllers"
37-
38-func t (h,u) = [StringEntry(n(h), u)]
34+func r (h) = g("Name", h, "createdAt")
3935
4036
41-func v (h) = getString(this, n(h))
37+let s = "nameTTL"
38+
39+let t = "controllers"
40+
41+func u (h,v) = [StringEntry(n(h), v)]
4242
4343
44-func w (h,x) = [StringEntry(o(h), x)]
44+func w (h) = getString(this, n(h))
4545
4646
47-func y (h) = getString(this, o(h))
47+func x (h,y) = [StringEntry(o(h), y)]
4848
4949
50-func z (h) = getString(this, m(h))
50+func z (h) = getString(this, o(h))
5151
5252
53-func A (h) = getInteger(this, q(h))
53+func A (h,B) = [StringEntry(p(h), B)]
5454
5555
56-func B (h) = getInteger(this, p(h))
56+func C (h) = getString(this, p(h))
5757
5858
59-func C () = getString(this, s)
59+func D (h) = getString(this, m(h))
6060
6161
62-let D = {
63- let E = C()
64- if ($isInstanceOf(E, "String"))
62+func E (h) = getInteger(this, r(h))
63+
64+
65+func F (h) = getInteger(this, q(h))
66+
67+
68+func G () = getString(this, t)
69+
70+
71+let H = {
72+ let I = G()
73+ if ($isInstanceOf(I, "String"))
6574 then {
66- let F = E
67- split(F, ",")
75+ let J = I
76+ split(J, ",")
6877 }
6978 else nil
7079 }
7180
72-let G = d(this, r)
81+let K = d(this, s)
7382
74-func H (h) = isDefined(getString(this, m(h)))
83+func L (h) = isDefined(getString(this, m(h)))
7584
7685
77-func I (h) = isDefined(A(h))
86+func M (h) = isDefined(E(h))
7887
7988
80-func J (h) = {
81- let E = B(h)
82- if ($isInstanceOf(E, "Int"))
89+func N (h) = {
90+ let I = F(h)
91+ if ($isInstanceOf(I, "Int"))
8392 then {
84- let K = E
85- (lastBlock.timestamp > K)
93+ let O = I
94+ (lastBlock.timestamp > O)
8695 }
8796 else false
8897 }
8998
9099
91-func L (h) = if (if (H(h))
92- then I(h)
100+func P (h) = if (if (L(h))
101+ then M(h)
93102 else false)
94- then !(J(h))
103+ then !(N(h))
95104 else false
96105
97106
98-func M (h) = {
99- let N = "abcdefghijklmnopqrstuvwxyz1234567890-"
100- func O (P,Q) = if (P)
101- then contains(N, Q)
107+func Q (h) = {
108+ let R = "abcdefghijklmnopqrstuvwxyz1234567890-"
109+ func S (T,U) = if (T)
110+ then contains(R, U)
102111 else false
103112
104- let R = if (if (if (if (if ((size(h) > 0))
113+ if (if (if (if (if ((size(h) > 0))
105114 then (63 >= size(h))
106115 else false)
107116 then (indexOf(h, "--") != 2)
108117 else false)
109118 then (indexOf(h, "-") != 0)
110119 else false)
111120 then (lastIndexOf(h, "-") != (size(h) - 1))
112121 else false)
113122 then {
114- let S = split(h, "")
115- let T = size(S)
116- let U = true
117- func V (W,X) = if ((X >= T))
118- then W
119- else O(W, S[X])
123+ let V = split(h, "")
124+ let W = size(V)
125+ let X = true
126+ func Y (Z,aa) = if ((aa >= W))
127+ then Z
128+ else S(Z, V[aa])
120129
121- func Y (W,X) = if ((X >= T))
122- then W
130+ func ab (Z,aa) = if ((aa >= W))
131+ then Z
123132 else throw("List size exceeds 63")
124133
125- Y(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(U, 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)
134+ ab(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(X, 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)
126135 }
127- else false
128- let Z = if (H(h))
129- then !(J(h))
130- else false
131- if (!(Z))
132- then R
133136 else false
134137 }
135138
136139
137-func aa (f) = isDefined(addressFromString(f))
140+func ac (h) = if (Q(h))
141+ then if (!(L(h)))
142+ then true
143+ else N(h)
144+ else false
138145
139146
140-func ab (ac) = (ac.caller == this)
147+func ad (f) = isDefined(addressFromString(f))
141148
142149
143-func ad (ac,h) = (toString(ac.caller) == valueOrElse(v(h), ""))
150+func ae (af) = (af.caller == this)
144151
145152
146-func ae (b) = containsElement(D, b)
153+func ag (af,h) = (toString(af.caller) == valueOrElse(w(h), ""))
147154
148155
149-func af (h) = {
150- let ag = split(h, ".")
151- let ah = (size(ag) - 1)
152- let ai = ag[ah]
153- let aj = makeString(removeByIndex(ag, ah), ".")
154- $Tuple2(ai, aj)
156+func ah (b) = containsElement(H, b)
157+
158+
159+func ai (h) = {
160+ let aj = split(h, ".")
161+ let ak = (size(aj) - 1)
162+ let al = aj[ak]
163+ let am = makeString(removeByIndex(aj, ak), ".")
164+ $Tuple2(al, am)
155165 }
156166
157167
158-func ak (h) = [Issue(if ((size(h) > 16))
168+func an (h) = [Issue(if ((size(h) > 16))
159169 then (take(h, 15) + "~")
160170 else take(h, 16), (h + ".waves"), 1, 0, false)]
161171
162172
163-func al (h,l,am) = [StringEntry(m(h), l), StringEntry(k(l), h), IntegerEntry(q(h), am), IntegerEntry(p(h), (am + G))]
173+func ao (h,l,ap) = [StringEntry(m(h), l), StringEntry(k(l), h), IntegerEntry(r(h), ap), IntegerEntry(q(h), (ap + K))]
164174
165175
166-func an (h,l) = [StringEntry(m(h), l), StringEntry(k(l), h)]
176+func aq (h,l) = [StringEntry(m(h), l), StringEntry(k(l), h)]
167177
168178
169-func ao (l,u) = [ScriptTransfer(e(u), 1, fromBase58String(l))]
179+func ar (l,v) = [ScriptTransfer(e(v), 1, fromBase58String(l))]
170180
171181
172-func ap (aq) = unit
182+func as (at) = unit
173183
174184
175-func ar (ac) = if (ab(ac))
185+func au (af) = if (ae(af))
176186 then unit
177187 else throw("Permission denied")
178188
179189
180-func as (ac) = if (if (ab(ac))
190+func av (af) = if (if (ae(af))
181191 then true
182- else ae(toString(ac.caller)))
192+ else ah(toString(af.caller)))
183193 then unit
184194 else throw("Permission denied")
185195
186196
187-func at (ac,h) = if (if (ab(ac))
197+func aw (af,h) = if (if (ae(af))
188198 then true
189- else ad(ac, h))
199+ else ag(af, h))
190200 then unit
191201 else throw("Permission denied")
192202
193203
194-@Callable(ac)
195-func init (G) = valueOrElse(ap([ar(ac), if ((G > 0))
204+@Callable(af)
205+func init (K) = valueOrElse(as([au(af), if ((K > 0))
196206 then unit
197- else throw("TTL cannot be negative")]), [IntegerEntry(r, G)])
207+ else throw("TTL cannot be negative")]), [IntegerEntry(s, K)])
198208
199209
200210
201-@Callable(ac)
202-func supportsInterface (au) = $Tuple2(nil, containsElement(["owner", "resolver", "nameCreated", "nameExpires"], au))
211+@Callable(af)
212+func supportsInterface (ax) = $Tuple2(nil, containsElement(["owner", "registrar", "resolver", "nameCreated", "nameExpires"], ax))
203213
204214
205215
206-@Callable(ac)
207-func addController (b) = valueOrElse(ap([ar(ac), if (aa(b))
216+@Callable(af)
217+func addController (b) = valueOrElse(as([au(af), if (ad(b))
208218 then unit
209- else throw("Controller must be a valid address"), if (!(ae(b)))
219+ else throw("Controller must be a valid address"), if (!(ah(b)))
210220 then unit
211- else throw((("Controller `" + b) + "` is already registered"))]), [StringEntry(s, makeString((D :+ b), ","))])
221+ else throw((("Controller `" + b) + "` is already registered"))]), [StringEntry(t, makeString((H :+ b), ","))])
212222
213223
214224
215-@Callable(ac)
216-func removeController (b) = valueOrElse(ap([ar(ac), if (ae(b))
225+@Callable(af)
226+func removeController (b) = valueOrElse(as([au(af), if (ah(b))
217227 then unit
218228 else throw((("Controller `" + b) + "` is not registered"))]), {
219- let av = value(indexOf(D, b))
220-[StringEntry(s, makeString(removeByIndex(D, av), ","))]
229+ let ay = value(indexOf(H, b))
230+[StringEntry(t, makeString(removeByIndex(H, ay), ","))]
221231 })
222232
223233
224234
225-@Callable(ac)
226-func available (h) = $Tuple2(nil, M(h))
235+@Callable(af)
236+func validate (h) = $Tuple2(nil, Q(h))
227237
228238
229239
230-@Callable(ac)
231-func owner (h) = $Tuple2(nil, v(af(h)._1))
240+@Callable(af)
241+func available (h) = $Tuple2(nil, ac(h))
232242
233243
234244
235-@Callable(ac)
236-func resolver (h) = $Tuple2(nil, y(af(h)._1))
245+@Callable(af)
246+func owner (h) = $Tuple2(nil, w(ai(h)._1))
237247
238248
239249
240-@Callable(ac)
241-func setResolver (h,x) = valueOrElse(ap([if (L(h))
242- then unit
243- else throw("Name expired or not registered"), at(ac, h), if (aa(x))
244- then unit
245- else throw("Resolver must be a valid contract address")]), w(h, x))
250+@Callable(af)
251+func registrar (h) = {
252+ let az = ai(h)
253+ let aA = az._1
254+ let am = az._2
255+ let aB = {
256+ let I = z(aA)
257+ if ($isInstanceOf(I, "String"))
258+ then {
259+ let aC = I
260+ if (ad(aC))
261+ then aC
262+ else unit
263+ }
264+ else unit
265+ }
266+ let y = value(addressFromString(value(aB)))
267+ let aD = {
268+ let I = invoke(y, "supportsInterface", ["registrar"], nil)
269+ if ($isInstanceOf(I, "Boolean"))
270+ then {
271+ let aD = I
272+ aD
273+ }
274+ else false
275+ }
276+ if (if ((size(am) == 0))
277+ then true
278+ else !(isDefined(aB)))
279+ then $Tuple2(nil, aB)
280+ else if (!(aD))
281+ then $Tuple2(nil, unit)
282+ else {
283+ let I = invoke(y, "registrar", [am], nil)
284+ if ($isInstanceOf(I, "String"))
285+ then {
286+ let aC = I
287+ $Tuple2(nil, if (ad(aC))
288+ then aC
289+ else unit)
290+ }
291+ else $Tuple2(nil, unit)
292+ }
293+ }
246294
247295
248296
249-@Callable(ac)
250-func nameCreated (h) = $Tuple2(nil, A(af(h)._1))
297+@Callable(af)
298+func setRegistrar (h,y) = valueOrElse(as([if (P(h))
299+ then unit
300+ else throw("Name expired or not registered"), aw(af, h), if (ad(y))
301+ then unit
302+ else throw("Registrar must be a valid contract address")]), x(h, y))
251303
252304
253305
254-@Callable(ac)
255-func nameExpires (h) = $Tuple2(nil, B(af(h)._1))
306+@Callable(af)
307+func resolver (h) = $Tuple2(nil, C(ai(h)._1))
256308
257309
258310
259-@Callable(ac)
260-func register (h,u,am) = valueOrElse(ap([as(ac), if (M(h))
311+@Callable(af)
312+func setResolver (h,B) = valueOrElse(as([if (P(h))
261313 then unit
262- else throw((("`" + h) + "` cannot be registered")), if (aa(u))
314+ else throw("Name expired or not registered"), aw(af, h), if (ad(B))
263315 then unit
264- else throw("Owner must be a valid address"), if ((am > 0))
316+ else throw("Resolver must be a valid contract address")]), A(h, B))
317+
318+
319+
320+@Callable(af)
321+func nameCreated (h) = $Tuple2(nil, E(ai(h)._1))
322+
323+
324+
325+@Callable(af)
326+func nameExpires (h) = $Tuple2(nil, F(ai(h)._1))
327+
328+
329+
330+@Callable(af)
331+func register (h,v,ap) = valueOrElse(as([av(af), if (ac(h))
265332 then unit
266- else throw("CreatedAt cannot be negative"), if ((lastBlock.timestamp >= am))
333+ else throw((("`" + h) + "` cannot be registered")), if (ad(v))
334+ then unit
335+ else throw("Owner must be a valid address"), if ((ap > 0))
336+ then unit
337+ else throw("CreatedAt cannot be negative"), if ((lastBlock.timestamp >= ap))
267338 then unit
268339 else throw("CreatedAt cannot be in the future")]), {
269- let aw = ak(h)
270- let l = calculateAssetId(aw[0])
271- let ax = toBase58String(l)
272- let ay = al(h, ax, am)
273- let az = ao(ax, u)
274- let aA = t(h, u)
275- (((aw ++ ay) ++ az) ++ aA)
340+ let aE = an(h)
341+ let l = calculateAssetId(aE[0])
342+ let aF = toBase58String(l)
343+ let aG = ao(h, aF, ap)
344+ let aH = ar(aF, v)
345+ let aI = u(h, v)
346+ (((aE ++ aG) ++ aH) ++ aI)
276347 })
277348
278349
279350
280-@Callable(ac)
281-func reclaim (h) = valueOrElse(ap([if (L(h))
351+@Callable(af)
352+func reclaim (h) = valueOrElse(as([if (P(h))
282353 then unit
283354 else throw((("`" + h) + "` is not active"))]), {
284- let aB = ac.caller
285- let aC = toString(aB)
286- let ax = valueOrErrorMessage(z(h), (("No token is issued for `" + h) + "`"))
287- let l = fromBase58String(ax)
288- let aD = (assetBalance(aB, l) == 1)
289- let aE = ad(ac, h)
290- let aF = {
291- let E = assetInfo(l)
292- if ($isInstanceOf(E, "Asset"))
355+ let aJ = af.caller
356+ let aK = toString(aJ)
357+ let aF = valueOrErrorMessage(D(h), (("No token is issued for `" + h) + "`"))
358+ let l = fromBase58String(aF)
359+ let aL = (assetBalance(aJ, l) == 1)
360+ let aM = ag(af, h)
361+ let aN = {
362+ let I = assetInfo(l)
363+ if ($isInstanceOf(I, "Asset"))
293364 then {
294- let aG = E
295- (aG.quantity == 1)
365+ let aO = I
366+ (aO.quantity == 1)
296367 }
297368 else false
298369 }
299- if (if (aE)
300- then !(aF)
370+ if (if (aM)
371+ then !(aN)
301372 else false)
302373 then {
303- let aH = ak(h)
304- let aI = calculateAssetId(aH[0])
305- let aJ = toBase58String(aI)
306- let aK = an(h, aJ)
307- let aL = ao(aJ, aC)
308- ((aH ++ aK) ++ aL)
374+ let aP = an(h)
375+ let aQ = calculateAssetId(aP[0])
376+ let aR = toBase58String(aQ)
377+ let aS = aq(h, aR)
378+ let aT = ar(aR, aK)
379+ ((aP ++ aS) ++ aT)
309380 }
310- else if (if (aE)
311- then aD
381+ else if (if (aM)
382+ then aL
312383 else false)
313384 then throw("You already own a name token")
314- else if (!(aD))
385+ else if (!(aL))
315386 then throw("You don't have a name token")
316- else t(h, aC)
387+ else u(h, aK)
317388 })
318389
319390

github/deemru/w8io/c3f4982 
114.36 ms