tx · JEGNWtQ2MypsviZsUvhRKk9nAgJqrnbiJ9cj3sKWWVp6

3NA73oUXjqp7SpudXWV1yMFuKm9awPbqsVz:  -0.01100000 Waves

2022.11.28 18:14 [2337123] smart account 3NA73oUXjqp7SpudXWV1yMFuKm9awPbqsVz > SELF 0.00000000 Waves

{ "type": 13, "id": "JEGNWtQ2MypsviZsUvhRKk9nAgJqrnbiJ9cj3sKWWVp6", "fee": 1100000, "feeAssetId": null, "timestamp": 1669648434803, "version": 2, "chainId": 84, "sender": "3NA73oUXjqp7SpudXWV1yMFuKm9awPbqsVz", "senderPublicKey": "2mHW72YTfnxJ1M8WsdUQjgpp3a2SUbt9mbAiePGiuJok", "proofs": [ "3eKsVLD4sPB2VsMUcasxZdm56VZDxRWfQp149y69nFvkJA7Xj85s7aq2onmw6R3CRUTUx1kRHcafY6WEaxrR42A3" ], "script": "base64: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AAAUTGlzdCBzaXplIGV4Y2VlZHMgNjMJAQAAAAUkZjBfMgAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUk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c3RCbG9jawAAAAl0aW1lc3RhbXAFAAAACWNyZWF0ZWRBdAUAAAAEdW5pdAkAAAIAAAABAgAAACFDcmVhdGVkQXQgY2Fubm90IGJlIGluIHRoZSBmdXR1cmUFAAAAA25pbAQAAAAOaXNzdWVOYW1lVG9rZW4JAQAAAA9faXNzdWVOYW1lVG9rZW4AAAABBQAAAARuYW1lBAAAAAd0b2tlbklkCQAEOAAAAAEJAAGRAAAAAgUAAAAOaXNzdWVOYW1lVG9rZW4AAAAAAAAAAAAEAAAACHRva2VuU3RyCQACWAAAAAEFAAAAB3Rva2VuSWQEAAAAFXJlZ2lzdGVyTmFtZVdpdGhUb2tlbgkBAAAAFl9yZWdpc3Rlck5hbWVXaXRoVG9rZW4AAAADBQAAAARuYW1lBQAAAAh0b2tlblN0cgUAAAAJY3JlYXRlZEF0BAAAABR0cmFuc2ZlclRva2VuVG9Pd25lcgkBAAAAFV90cmFuc2ZlclRva2VuVG9Pd25lcgAAAAIFAAAACHRva2VuU3RyBQAAAAVvd25lcgQAAAAMc2V0T3duZXJzaGlwCQEAAAAJX3NldE93bmVyAAAAAgUAAAAEbmFtZQUAAAAFb3duZXIJAAROAAAAAgkABE4AAAACCQAETgAAAAIFAAAADmlzc3VlTmFtZVRva2VuBQAAABVyZWdpc3Rlck5hbWVXaXRoVG9rZW4FAAAAFHRyYW5zZmVyVG9rZW5Ub093bmVyBQAAAAxzZXRPd25lcnNoaXAAAAADaW52AQAAAAdyZWNsYWltAAAAAQAAAARuYW1lCQEAAAALdmFsdWVPckVsc2UAAAACCQEAAAAJbW9kaWZpZXJzAAAAAQkABEwAAAACCQEAAAAPb25seUluaXRpYWxpemVkAAAAAAkABEwAAAACAwkBAAAADGlzQWN0aXZlTmFtZQAAAAEFAAAABG5hbWUFAAAABHVuaXQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAAWAFAAAABG5hbWUCAAAAD2AgaXMgbm90IGFjdGl2ZQUAAAADbmlsBAAAAAhuZXdPd25lcggFAAAAA2ludgAAAAxvcmlnaW5DYWxsZXIEAAAAD25ld093bmVyQWRkcmVzcwkABCUAAAABBQAAAAhuZXdPd25lcgQAAAAIdG9rZW5TdHIJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkBAAAACV9nZXRUb2tlbgAAAAEFAAAABG5hbWUJAAEsAAAAAgkAASwAAAACAgAAABhObyB0b2tlbiBpcyBpc3N1ZWQgZm9yIGAFAAAABG5hbWUCAAAAAWAEAAAAB3Rva2VuSWQJAAJZAAAAAQUAAAAIdG9rZW5TdHIEAAAACGhhc1Rva2VuCQAAAAAAAAIJAAPwAAAAAgUAAAAIbmV3T3duZXIFAAAAB3Rva2VuSWQAAAAAAAAAAAEEAAAADGlzVG9rZW5Pd25lcgkBAAAAB2lzT3duZXIAAAACBQAAAANpbnYFAAAABG5hbWUEAAAADWlzVG9rZW5FeGlzdHMEAAAAByRtYXRjaDAJAAPsAAAAAQUAAAAHdG9rZW5JZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAFQXNzZXQEAAAABXRva2VuBQAAAAckbWF0Y2gwCQAAAAAAAAIIBQAAAAV0b2tlbgAAAAhxdWFudGl0eQAAAAAAAAAAAQcDAwUAAAAMaXNUb2tlbk93bmVyCQEAAAABIQAAAAEFAAAADWlzVG9rZW5FeGlzdHMHBAAAAA1pc3N1ZU5ld1Rva2VuCQEAAAAPX2lzc3VlTmFtZVRva2VuAAAAAQUAAAAEbmFtZQQAAAAKbmV3VG9rZW5JZAkABDgAAAABCQABkQAAAAIFAAAADWlzc3VlTmV3VG9rZW4AAAAAAAAAAAAEAAAAC25ld1Rva2VuU3RyCQACWAAAAAEFAAAACm5ld1Rva2VuSWQEAAAAF3Jlc3RvcmVOYW1lV2l0aE5ld1Rva2VuCQEAAAAVX3Jlc3RvcmVOYW1lV2l0aFRva2VuAAAAAgUAAAAEbmFtZQUAAAALbmV3VG9rZW5TdHIEAAAAF3RyYW5zZmVyTmV3VG9rZW5Ub093bmVyCQEAAAAVX3RyYW5zZmVyVG9rZW5Ub093bmVyAAAAAgUAAAALbmV3VG9rZW5TdHIFAAAAD25ld093bmVyQWRkcmVzcwkABE4AAAACCQAETgAAAAIFAAAADWlzc3VlTmV3VG9rZW4FAAAAF3Jlc3RvcmVOYW1lV2l0aE5ld1Rva2VuBQAAABd0cmFuc2Zlck5ld1Rva2VuVG9Pd25lcgMDBQAAAAxpc1Rva2VuT3duZXIFAAAACGhhc1Rva2VuBwkAAAIAAAABAgAAABxZb3UgYWxyZWFkeSBvd24gYSBuYW1lIHRva2VuAwkBAAAAASEAAAABBQAAAAhoYXNUb2tlbgkAAAIAAAABAgAAABtZb3UgZG9uJ3QgaGF2ZSBhIG5hbWUgdG9rZW4JAQAAAAlfc2V0T3duZXIAAAACBQAAAARuYW1lBQAAAA9uZXdPd25lckFkZHJlc3MAAAAAliLkJA==", "height": 2337123, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HaNuhCLsVpGyxffPK24GHWWx71JYw7gMddTDhDuL1LCi Next: 77GcPT7DeSX7HXDYappPJb31HfhRJfSQqikpvVZqmtEe Diff:
OldNewDifferences
2222 func k (b) = a("Name", b, "createdAt")
2323
2424
25-func l (b) = a("Name_", b, "_content")
25+let l = "nameTTL"
26+
27+let m = "controllers"
28+
29+func n (b,o) = [StringEntry(h(b), o)]
2630
2731
28-let m = "nameTTL"
29-
30-let n = "controllers"
31-
32-func o (b,p) = [StringEntry(h(b), p)]
32+func p (b) = getString(this, h(b))
3333
3434
35-func q (b) = getString(this, h(b))
35+func q (b) = getString(this, i(b))
3636
3737
38-func r (b) = getString(this, i(b))
38+func r (b) = getString(this, g(b))
3939
4040
41-func s (b) = getString(this, g(b))
41+func s (b) = getInteger(this, k(b))
4242
4343
44-func t (b) = getInteger(this, k(b))
44+func t (b) = getInteger(this, j(b))
4545
4646
47-func u (b) = getInteger(this, j(b))
48-
49-
50-func v (b) = getString(this, l(b))
51-
52-
53-func w () = getString(this, n)
54-
55-
56-let x = {
57- let y = w()
58- if ($isInstanceOf(y, "String"))
47+let u = {
48+ let v = getString(this, m)
49+ if ($isInstanceOf(v, "String"))
5950 then {
60- let z = y
61- split(z, ",")
51+ let w = v
52+ split(w, ",")
6253 }
6354 else nil
6455 }
6556
66-let A = value(getInteger(this, m))
57+let x = value(getInteger(this, l))
6758
68-let B = isDefined(getInteger(this, m))
59+let y = isDefined(getInteger(this, l))
6960
70-func C (b) = isDefined(getString(this, g(b)))
61+func z (b) = isDefined(getString(this, g(b)))
7162
7263
73-func D (b) = isDefined(t(b))
64+func A (b) = isDefined(s(b))
7465
7566
76-func E (b) = {
77- let y = u(b)
78- if ($isInstanceOf(y, "Int"))
67+func B (b) = {
68+ let v = t(b)
69+ if ($isInstanceOf(v, "Int"))
7970 then {
80- let F = y
81- (lastBlock.timestamp > F)
71+ let C = v
72+ (lastBlock.timestamp > C)
8273 }
8374 else false
8475 }
8576
8677
87-func G (b) = if (if (C(b))
88- then D(b)
78+func D (b) = if (if (z(b))
79+ then A(b)
8980 else false)
90- then !(E(b))
81+ then !(B(b))
9182 else false
9283
9384
94-func H (b) = {
95- let I = "abcdefghijklmnopqrstuvwxyz1234567890-"
96- func J (K,L) = if (K)
97- then contains(I, L)
85+func E (b) = {
86+ let F = "abcdefghijklmnopqrstuvwxyz1234567890-"
87+ func G (H,I) = if (H)
88+ then contains(F, I)
9889 else false
9990
10091 if (if (if (if (if ((size(b) > 3))
10798 then (lastIndexOf(b, "-") != (size(b) - 1))
10899 else false)
109100 then {
110- let M = split(b, "")
111- let N = size(M)
112- let O = true
113- func P (Q,R) = if ((R >= N))
114- then Q
115- else J(Q, M[R])
101+ let J = split(b, "")
102+ let K = size(J)
103+ let L = true
104+ func M (N,O) = if ((O >= K))
105+ then N
106+ else G(N, J[O])
116107
117- func S (Q,R) = if ((R >= N))
118- then Q
108+ func P (N,O) = if ((O >= K))
109+ then N
119110 else throw("List size exceeds 63")
120111
121- S(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(O, 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)
112+ P(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(L, 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)
122113 }
123114 else false
124115 }
125116
126117
127-func T (b) = if (H(b))
128- then !(G(b))
118+func Q (b) = if (E(b))
119+ then !(D(b))
129120 else false
130121
131122
132-func U (V) = isDefined(addressFromString(V))
123+func R (S) = isDefined(addressFromString(S))
133124
134125
135-func W (X) = (X.caller == this)
126+func T (U) = (U.caller == this)
136127
137128
138-func Y (X,b) = (toString(X.originCaller) == valueOrElse(q(b), ""))
129+func V (U,b) = (toString(U.originCaller) == valueOrElse(p(b), ""))
139130
140131
141-func Z (aa) = containsElement(x, aa)
132+func W (X) = containsElement(u, X)
142133
143134
144-func ab (b) = {
145- let ac = split(b, ".")
146- let ad = (size(ac) - 1)
147- let ae = ac[ad]
148- let af = makeString(removeByIndex(ac, ad), ".")
149- $Tuple2(ae, af)
135+func Y (b) = {
136+ let Z = split(b, ".")
137+ let aa = (size(Z) - 1)
138+ let ab = Z[aa]
139+ let ac = makeString(removeByIndex(Z, aa), ".")
140+ $Tuple2(ab, ac)
150141 }
151142
152143
153-func ag (b) = [Issue(if ((size(b) > 16))
144+func ad (b) = [Issue(if ((size(b) > 16))
154145 then (take(b, 15) + "~")
155146 else take(b, 16), (b + ".waves"), 1, 0, false)]
156147
157148
158-func ah (b,f,ai) = [StringEntry(g(b), f), StringEntry(e(f), b), IntegerEntry(k(b), ai), IntegerEntry(j(b), (ai + A))]
149+func ae (b,f,af) = [StringEntry(g(b), f), StringEntry(e(f), b), IntegerEntry(k(b), af), IntegerEntry(j(b), (af + x))]
159150
160151
161-func aj (b,f) = [StringEntry(g(b), f), StringEntry(e(f), b)]
152+func ag (b,f) = [StringEntry(g(b), f), StringEntry(e(f), b)]
162153
163154
164-func ak (f,p) = [ScriptTransfer(addressFromStringValue(p), 1, fromBase58String(f))]
155+func ah (f,o) = [ScriptTransfer(addressFromStringValue(o), 1, fromBase58String(f))]
165156
166157
167-func al (am) = unit
158+func ai (aj) = unit
168159
169160
170-func an (X) = if (W(X))
161+func ak (U) = if (T(U))
171162 then unit
172163 else throw("Permission denied")
173164
174165
175-func ao (X) = if (if (W(X))
166+func al (U) = if (if (T(U))
176167 then true
177- else Z(toString(X.caller)))
168+ else W(toString(U.caller)))
178169 then unit
179170 else throw("Permission denied")
180171
181172
182-func ap (X,b) = if (if (W(X))
173+func am (U,b) = if (if (T(U))
183174 then true
184- else Y(X, b))
175+ else V(U, b))
185176 then unit
186177 else throw("Permission denied")
187178
188179
189-func aq () = if (B)
180+func an () = if (y)
190181 then unit
191182 else throw("Contract is not initialized")
192183
193184
194-@Callable(X)
195-func init (A) = valueOrElse(al([an(X), if ((A > 0))
185+@Callable(U)
186+func init (x) = valueOrElse(ai([ak(U), if ((x > 0))
196187 then unit
197- else throw("TTL cannot be negative"), if (!(B))
188+ else throw("TTL cannot be negative"), if (!(y))
198189 then unit
199- else throw("Contract has already been initialized")]), [IntegerEntry(m, A)])
190+ else throw("Contract has already been initialized")]), [IntegerEntry(l, x)])
200191
201192
202193
203-@Callable(X)
204-func supportsInterface (ar) = $Tuple2(nil, containsElement(["owner", "resolver", "createdAt", "expiresAt", "tokenId", "content"], ar))
194+@Callable(U)
195+func addController (X) = valueOrElse(ai([ak(U), if (R(X))
196+ then unit
197+ else throw("Controller must be a valid address"), if (!(W(X)))
198+ then unit
199+ else throw((("Controller `" + X) + "` is already registered"))]), [StringEntry(m, makeString((u :+ X), ","))])
205200
206201
207202
208-@Callable(X)
209-func setContent (b,as) = valueOrElse(al([aq(), ap(X, b), if ((take(as, 4) == "ipfs"))
203+@Callable(U)
204+func removeController (X) = valueOrElse(ai([ak(U), if (W(X))
210205 then unit
211- else throw("Only ipfs content is correct")]), if ((size(as) > 0))
212- then [StringEntry(l(b), as)]
213- else [DeleteEntry(l(b))])
214-
215-
216-
217-@Callable(X)
218-func addController (aa) = valueOrElse(al([an(X), if (U(aa))
219- then unit
220- else throw("Controller must be a valid address"), if (!(Z(aa)))
221- then unit
222- else throw((("Controller `" + aa) + "` is already registered"))]), [StringEntry(n, makeString((x :+ aa), ","))])
223-
224-
225-
226-@Callable(X)
227-func removeController (aa) = valueOrElse(al([an(X), if (Z(aa))
228- then unit
229- else throw((("Controller `" + aa) + "` is not registered"))]), {
230- let at = value(indexOf(x, aa))
231-[StringEntry(n, makeString(removeByIndex(x, at), ","))]
206+ else throw((("Controller `" + X) + "` is not registered"))]), {
207+ let ao = value(indexOf(u, X))
208+[StringEntry(m, makeString(removeByIndex(u, ao), ","))]
232209 })
233210
234211
235212
236-@Callable(X)
237-func isValid (b) = $Tuple2(nil, H(b))
213+@Callable(U)
214+func isValid (b) = $Tuple2(nil, E(b))
238215
239216
240217
241-@Callable(X)
242-func isAvailable (b) = $Tuple2(nil, T(b))
218+@Callable(U)
219+func isAvailable (b) = $Tuple2(nil, Q(b))
243220
244221
245222
246-@Callable(X)
247-func resolve (b,ar,au) = {
248- let av = ab(b)
249- let aw = av._1
250- let af = av._2
251- $Tuple2(nil, {
252- let y = ar
253- if (("owner" == y))
254- then q(aw)
255- else if (("resolver" == y))
256- then r(aw)
257- else if (("createdAt" == y))
258- then t(aw)
259- else if (("expiresAt" == y))
260- then u(aw)
261- else if (("tokenId" == y))
262- then s(aw)
263- else if (("content" == y))
264- then v(aw)
223+@Callable(U)
224+func resolve (b,ap,aq) = {
225+ let ar = Y(b)
226+ let as = ar._1
227+ let ac = ar._2
228+ $Tuple2(nil, if ((size(ac) != 0))
229+ then unit
230+ else {
231+ let v = ap
232+ if (("owner" == v))
233+ then p(as)
234+ else if (("resolver" == v))
235+ then q(as)
236+ else if (("createdAt" == v))
237+ then s(as)
238+ else if (("expiresAt" == v))
239+ then t(as)
240+ else if (("tokenId" == v))
241+ then r(as)
265242 else unit
266- })
243+ })
267244 }
268245
269246
270247
271-@Callable(X)
272-func register (b,p,ai) = valueOrElse(al([aq(), ao(X), if (T(b))
248+@Callable(U)
249+func register (b,o,af) = valueOrElse(ai([an(), al(U), if (Q(b))
273250 then unit
274- else throw((("`" + b) + "` cannot be registered")), if (U(p))
251+ else throw((("`" + b) + "` cannot be registered")), if (R(o))
275252 then unit
276- else throw("Owner must be a valid address"), if ((ai > 0))
253+ else throw("Owner must be a valid address"), if ((af > 0))
277254 then unit
278- else throw("CreatedAt must be positive"), if ((lastBlock.timestamp >= ai))
255+ else throw("CreatedAt must be positive"), if ((lastBlock.timestamp >= af))
279256 then unit
280257 else throw("CreatedAt cannot be in the future")]), {
281- let ax = ag(b)
282- let f = calculateAssetId(ax[0])
283- let ay = toBase58String(f)
284- let az = ah(b, ay, ai)
285- let aA = ak(ay, p)
286- let aB = o(b, p)
287- (((ax ++ az) ++ aA) ++ aB)
258+ let at = ad(b)
259+ let f = calculateAssetId(at[0])
260+ let au = toBase58String(f)
261+ let av = ae(b, au, af)
262+ let aw = ah(au, o)
263+ let ax = n(b, o)
264+ (((at ++ av) ++ aw) ++ ax)
288265 })
289266
290267
291268
292-@Callable(X)
293-func reclaim (b) = valueOrElse(al([aq(), if (G(b))
269+@Callable(U)
270+func reclaim (b) = valueOrElse(ai([an(), if (D(b))
294271 then unit
295272 else throw((("`" + b) + "` is not active"))]), {
296- let aC = X.originCaller
297- let aD = toString(aC)
298- let ay = valueOrErrorMessage(s(b), (("No token is issued for `" + b) + "`"))
299- let f = fromBase58String(ay)
300- let aE = (assetBalance(aC, f) == 1)
301- let aF = Y(X, b)
302- let aG = {
303- let y = assetInfo(f)
304- if ($isInstanceOf(y, "Asset"))
273+ let ay = U.originCaller
274+ let az = toString(ay)
275+ let au = valueOrErrorMessage(r(b), (("No token is issued for `" + b) + "`"))
276+ let f = fromBase58String(au)
277+ let aA = (assetBalance(ay, f) == 1)
278+ let aB = V(U, b)
279+ let aC = {
280+ let v = assetInfo(f)
281+ if ($isInstanceOf(v, "Asset"))
305282 then {
306- let aH = y
307- (aH.quantity == 1)
283+ let aD = v
284+ (aD.quantity == 1)
308285 }
309286 else false
310287 }
311- if (if (aF)
312- then !(aG)
288+ if (if (aB)
289+ then !(aC)
313290 else false)
314291 then {
315- let aI = ag(b)
316- let aJ = calculateAssetId(aI[0])
317- let aK = toBase58String(aJ)
318- let aL = aj(b, aK)
319- let aM = ak(aK, aD)
320- ((aI ++ aL) ++ aM)
292+ let aE = ad(b)
293+ let aF = calculateAssetId(aE[0])
294+ let aG = toBase58String(aF)
295+ let aH = ag(b, aG)
296+ let aI = ah(aG, az)
297+ ((aE ++ aH) ++ aI)
321298 }
322- else if (if (aF)
323- then aE
299+ else if (if (aB)
300+ then aA
324301 else false)
325302 then throw("You already own a name token")
326- else if (!(aE))
303+ else if (!(aA))
327304 then throw("You don't have a name token")
328- else o(b, aD)
305+ else n(b, az)
329306 })
330307
331308
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b,c,d) = ((((b + "_") + c) + "_") + d)
55
66
77 func e (f) = a("Token", f, "name")
88
99
1010 func g (b) = a("Name", b, "token")
1111
1212
1313 func h (b) = a("Name", b, "owner")
1414
1515
1616 func i (b) = a("Name", b, "resolver")
1717
1818
1919 func j (b) = a("Name", b, "expiresAt")
2020
2121
2222 func k (b) = a("Name", b, "createdAt")
2323
2424
25-func l (b) = a("Name_", b, "_content")
25+let l = "nameTTL"
26+
27+let m = "controllers"
28+
29+func n (b,o) = [StringEntry(h(b), o)]
2630
2731
28-let m = "nameTTL"
29-
30-let n = "controllers"
31-
32-func o (b,p) = [StringEntry(h(b), p)]
32+func p (b) = getString(this, h(b))
3333
3434
35-func q (b) = getString(this, h(b))
35+func q (b) = getString(this, i(b))
3636
3737
38-func r (b) = getString(this, i(b))
38+func r (b) = getString(this, g(b))
3939
4040
41-func s (b) = getString(this, g(b))
41+func s (b) = getInteger(this, k(b))
4242
4343
44-func t (b) = getInteger(this, k(b))
44+func t (b) = getInteger(this, j(b))
4545
4646
47-func u (b) = getInteger(this, j(b))
48-
49-
50-func v (b) = getString(this, l(b))
51-
52-
53-func w () = getString(this, n)
54-
55-
56-let x = {
57- let y = w()
58- if ($isInstanceOf(y, "String"))
47+let u = {
48+ let v = getString(this, m)
49+ if ($isInstanceOf(v, "String"))
5950 then {
60- let z = y
61- split(z, ",")
51+ let w = v
52+ split(w, ",")
6253 }
6354 else nil
6455 }
6556
66-let A = value(getInteger(this, m))
57+let x = value(getInteger(this, l))
6758
68-let B = isDefined(getInteger(this, m))
59+let y = isDefined(getInteger(this, l))
6960
70-func C (b) = isDefined(getString(this, g(b)))
61+func z (b) = isDefined(getString(this, g(b)))
7162
7263
73-func D (b) = isDefined(t(b))
64+func A (b) = isDefined(s(b))
7465
7566
76-func E (b) = {
77- let y = u(b)
78- if ($isInstanceOf(y, "Int"))
67+func B (b) = {
68+ let v = t(b)
69+ if ($isInstanceOf(v, "Int"))
7970 then {
80- let F = y
81- (lastBlock.timestamp > F)
71+ let C = v
72+ (lastBlock.timestamp > C)
8273 }
8374 else false
8475 }
8576
8677
87-func G (b) = if (if (C(b))
88- then D(b)
78+func D (b) = if (if (z(b))
79+ then A(b)
8980 else false)
90- then !(E(b))
81+ then !(B(b))
9182 else false
9283
9384
94-func H (b) = {
95- let I = "abcdefghijklmnopqrstuvwxyz1234567890-"
96- func J (K,L) = if (K)
97- then contains(I, L)
85+func E (b) = {
86+ let F = "abcdefghijklmnopqrstuvwxyz1234567890-"
87+ func G (H,I) = if (H)
88+ then contains(F, I)
9889 else false
9990
10091 if (if (if (if (if ((size(b) > 3))
10192 then (63 >= size(b))
10293 else false)
10394 then (indexOf(b, "--") != 2)
10495 else false)
10596 then (indexOf(b, "-") != 0)
10697 else false)
10798 then (lastIndexOf(b, "-") != (size(b) - 1))
10899 else false)
109100 then {
110- let M = split(b, "")
111- let N = size(M)
112- let O = true
113- func P (Q,R) = if ((R >= N))
114- then Q
115- else J(Q, M[R])
101+ let J = split(b, "")
102+ let K = size(J)
103+ let L = true
104+ func M (N,O) = if ((O >= K))
105+ then N
106+ else G(N, J[O])
116107
117- func S (Q,R) = if ((R >= N))
118- then Q
108+ func P (N,O) = if ((O >= K))
109+ then N
119110 else throw("List size exceeds 63")
120111
121- S(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(O, 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)
112+ P(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(M(L, 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)
122113 }
123114 else false
124115 }
125116
126117
127-func T (b) = if (H(b))
128- then !(G(b))
118+func Q (b) = if (E(b))
119+ then !(D(b))
129120 else false
130121
131122
132-func U (V) = isDefined(addressFromString(V))
123+func R (S) = isDefined(addressFromString(S))
133124
134125
135-func W (X) = (X.caller == this)
126+func T (U) = (U.caller == this)
136127
137128
138-func Y (X,b) = (toString(X.originCaller) == valueOrElse(q(b), ""))
129+func V (U,b) = (toString(U.originCaller) == valueOrElse(p(b), ""))
139130
140131
141-func Z (aa) = containsElement(x, aa)
132+func W (X) = containsElement(u, X)
142133
143134
144-func ab (b) = {
145- let ac = split(b, ".")
146- let ad = (size(ac) - 1)
147- let ae = ac[ad]
148- let af = makeString(removeByIndex(ac, ad), ".")
149- $Tuple2(ae, af)
135+func Y (b) = {
136+ let Z = split(b, ".")
137+ let aa = (size(Z) - 1)
138+ let ab = Z[aa]
139+ let ac = makeString(removeByIndex(Z, aa), ".")
140+ $Tuple2(ab, ac)
150141 }
151142
152143
153-func ag (b) = [Issue(if ((size(b) > 16))
144+func ad (b) = [Issue(if ((size(b) > 16))
154145 then (take(b, 15) + "~")
155146 else take(b, 16), (b + ".waves"), 1, 0, false)]
156147
157148
158-func ah (b,f,ai) = [StringEntry(g(b), f), StringEntry(e(f), b), IntegerEntry(k(b), ai), IntegerEntry(j(b), (ai + A))]
149+func ae (b,f,af) = [StringEntry(g(b), f), StringEntry(e(f), b), IntegerEntry(k(b), af), IntegerEntry(j(b), (af + x))]
159150
160151
161-func aj (b,f) = [StringEntry(g(b), f), StringEntry(e(f), b)]
152+func ag (b,f) = [StringEntry(g(b), f), StringEntry(e(f), b)]
162153
163154
164-func ak (f,p) = [ScriptTransfer(addressFromStringValue(p), 1, fromBase58String(f))]
155+func ah (f,o) = [ScriptTransfer(addressFromStringValue(o), 1, fromBase58String(f))]
165156
166157
167-func al (am) = unit
158+func ai (aj) = unit
168159
169160
170-func an (X) = if (W(X))
161+func ak (U) = if (T(U))
171162 then unit
172163 else throw("Permission denied")
173164
174165
175-func ao (X) = if (if (W(X))
166+func al (U) = if (if (T(U))
176167 then true
177- else Z(toString(X.caller)))
168+ else W(toString(U.caller)))
178169 then unit
179170 else throw("Permission denied")
180171
181172
182-func ap (X,b) = if (if (W(X))
173+func am (U,b) = if (if (T(U))
183174 then true
184- else Y(X, b))
175+ else V(U, b))
185176 then unit
186177 else throw("Permission denied")
187178
188179
189-func aq () = if (B)
180+func an () = if (y)
190181 then unit
191182 else throw("Contract is not initialized")
192183
193184
194-@Callable(X)
195-func init (A) = valueOrElse(al([an(X), if ((A > 0))
185+@Callable(U)
186+func init (x) = valueOrElse(ai([ak(U), if ((x > 0))
196187 then unit
197- else throw("TTL cannot be negative"), if (!(B))
188+ else throw("TTL cannot be negative"), if (!(y))
198189 then unit
199- else throw("Contract has already been initialized")]), [IntegerEntry(m, A)])
190+ else throw("Contract has already been initialized")]), [IntegerEntry(l, x)])
200191
201192
202193
203-@Callable(X)
204-func supportsInterface (ar) = $Tuple2(nil, containsElement(["owner", "resolver", "createdAt", "expiresAt", "tokenId", "content"], ar))
194+@Callable(U)
195+func addController (X) = valueOrElse(ai([ak(U), if (R(X))
196+ then unit
197+ else throw("Controller must be a valid address"), if (!(W(X)))
198+ then unit
199+ else throw((("Controller `" + X) + "` is already registered"))]), [StringEntry(m, makeString((u :+ X), ","))])
205200
206201
207202
208-@Callable(X)
209-func setContent (b,as) = valueOrElse(al([aq(), ap(X, b), if ((take(as, 4) == "ipfs"))
203+@Callable(U)
204+func removeController (X) = valueOrElse(ai([ak(U), if (W(X))
210205 then unit
211- else throw("Only ipfs content is correct")]), if ((size(as) > 0))
212- then [StringEntry(l(b), as)]
213- else [DeleteEntry(l(b))])
214-
215-
216-
217-@Callable(X)
218-func addController (aa) = valueOrElse(al([an(X), if (U(aa))
219- then unit
220- else throw("Controller must be a valid address"), if (!(Z(aa)))
221- then unit
222- else throw((("Controller `" + aa) + "` is already registered"))]), [StringEntry(n, makeString((x :+ aa), ","))])
223-
224-
225-
226-@Callable(X)
227-func removeController (aa) = valueOrElse(al([an(X), if (Z(aa))
228- then unit
229- else throw((("Controller `" + aa) + "` is not registered"))]), {
230- let at = value(indexOf(x, aa))
231-[StringEntry(n, makeString(removeByIndex(x, at), ","))]
206+ else throw((("Controller `" + X) + "` is not registered"))]), {
207+ let ao = value(indexOf(u, X))
208+[StringEntry(m, makeString(removeByIndex(u, ao), ","))]
232209 })
233210
234211
235212
236-@Callable(X)
237-func isValid (b) = $Tuple2(nil, H(b))
213+@Callable(U)
214+func isValid (b) = $Tuple2(nil, E(b))
238215
239216
240217
241-@Callable(X)
242-func isAvailable (b) = $Tuple2(nil, T(b))
218+@Callable(U)
219+func isAvailable (b) = $Tuple2(nil, Q(b))
243220
244221
245222
246-@Callable(X)
247-func resolve (b,ar,au) = {
248- let av = ab(b)
249- let aw = av._1
250- let af = av._2
251- $Tuple2(nil, {
252- let y = ar
253- if (("owner" == y))
254- then q(aw)
255- else if (("resolver" == y))
256- then r(aw)
257- else if (("createdAt" == y))
258- then t(aw)
259- else if (("expiresAt" == y))
260- then u(aw)
261- else if (("tokenId" == y))
262- then s(aw)
263- else if (("content" == y))
264- then v(aw)
223+@Callable(U)
224+func resolve (b,ap,aq) = {
225+ let ar = Y(b)
226+ let as = ar._1
227+ let ac = ar._2
228+ $Tuple2(nil, if ((size(ac) != 0))
229+ then unit
230+ else {
231+ let v = ap
232+ if (("owner" == v))
233+ then p(as)
234+ else if (("resolver" == v))
235+ then q(as)
236+ else if (("createdAt" == v))
237+ then s(as)
238+ else if (("expiresAt" == v))
239+ then t(as)
240+ else if (("tokenId" == v))
241+ then r(as)
265242 else unit
266- })
243+ })
267244 }
268245
269246
270247
271-@Callable(X)
272-func register (b,p,ai) = valueOrElse(al([aq(), ao(X), if (T(b))
248+@Callable(U)
249+func register (b,o,af) = valueOrElse(ai([an(), al(U), if (Q(b))
273250 then unit
274- else throw((("`" + b) + "` cannot be registered")), if (U(p))
251+ else throw((("`" + b) + "` cannot be registered")), if (R(o))
275252 then unit
276- else throw("Owner must be a valid address"), if ((ai > 0))
253+ else throw("Owner must be a valid address"), if ((af > 0))
277254 then unit
278- else throw("CreatedAt must be positive"), if ((lastBlock.timestamp >= ai))
255+ else throw("CreatedAt must be positive"), if ((lastBlock.timestamp >= af))
279256 then unit
280257 else throw("CreatedAt cannot be in the future")]), {
281- let ax = ag(b)
282- let f = calculateAssetId(ax[0])
283- let ay = toBase58String(f)
284- let az = ah(b, ay, ai)
285- let aA = ak(ay, p)
286- let aB = o(b, p)
287- (((ax ++ az) ++ aA) ++ aB)
258+ let at = ad(b)
259+ let f = calculateAssetId(at[0])
260+ let au = toBase58String(f)
261+ let av = ae(b, au, af)
262+ let aw = ah(au, o)
263+ let ax = n(b, o)
264+ (((at ++ av) ++ aw) ++ ax)
288265 })
289266
290267
291268
292-@Callable(X)
293-func reclaim (b) = valueOrElse(al([aq(), if (G(b))
269+@Callable(U)
270+func reclaim (b) = valueOrElse(ai([an(), if (D(b))
294271 then unit
295272 else throw((("`" + b) + "` is not active"))]), {
296- let aC = X.originCaller
297- let aD = toString(aC)
298- let ay = valueOrErrorMessage(s(b), (("No token is issued for `" + b) + "`"))
299- let f = fromBase58String(ay)
300- let aE = (assetBalance(aC, f) == 1)
301- let aF = Y(X, b)
302- let aG = {
303- let y = assetInfo(f)
304- if ($isInstanceOf(y, "Asset"))
273+ let ay = U.originCaller
274+ let az = toString(ay)
275+ let au = valueOrErrorMessage(r(b), (("No token is issued for `" + b) + "`"))
276+ let f = fromBase58String(au)
277+ let aA = (assetBalance(ay, f) == 1)
278+ let aB = V(U, b)
279+ let aC = {
280+ let v = assetInfo(f)
281+ if ($isInstanceOf(v, "Asset"))
305282 then {
306- let aH = y
307- (aH.quantity == 1)
283+ let aD = v
284+ (aD.quantity == 1)
308285 }
309286 else false
310287 }
311- if (if (aF)
312- then !(aG)
288+ if (if (aB)
289+ then !(aC)
313290 else false)
314291 then {
315- let aI = ag(b)
316- let aJ = calculateAssetId(aI[0])
317- let aK = toBase58String(aJ)
318- let aL = aj(b, aK)
319- let aM = ak(aK, aD)
320- ((aI ++ aL) ++ aM)
292+ let aE = ad(b)
293+ let aF = calculateAssetId(aE[0])
294+ let aG = toBase58String(aF)
295+ let aH = ag(b, aG)
296+ let aI = ah(aG, az)
297+ ((aE ++ aH) ++ aI)
321298 }
322- else if (if (aF)
323- then aE
299+ else if (if (aB)
300+ then aA
324301 else false)
325302 then throw("You already own a name token")
326- else if (!(aE))
303+ else if (!(aA))
327304 then throw("You don't have a name token")
328- else o(b, aD)
305+ else n(b, az)
329306 })
330307
331308

github/deemru/w8io/873ac7e 
111.74 ms