tx · JP6PHWTN4K5eXXfDBHT31Dx8GxBdqAY1BoeBoLUd9CW

3NA73oUXjqp7SpudXWV1yMFuKm9awPbqsVz:  -0.01200000 Waves

2022.10.27 16:37 [2290900] smart account 3NA73oUXjqp7SpudXWV1yMFuKm9awPbqsVz > SELF 0.00000000 Waves

{ "type": 13, "id": "JP6PHWTN4K5eXXfDBHT31Dx8GxBdqAY1BoeBoLUd9CW", "fee": 1200000, "feeAssetId": null, "timestamp": 1666877864745, "version": 2, "chainId": 84, "sender": "3NA73oUXjqp7SpudXWV1yMFuKm9awPbqsVz", "senderPublicKey": "2mHW72YTfnxJ1M8WsdUQjgpp3a2SUbt9mbAiePGiuJok", "proofs": [ "4z8v4ccbGveWojrU29yrpJb7i3fU5V35B3uEarvpWvLXceX7HiFrA91ZyBaTnA9DPH3FnPPdxbpyUhskQQ2k8sV3" ], "script": "base64:AAIFAAAAAAAAAEYIAhIDCgEBEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBCBIDCgEIEgMKAQgSBAoCCAgSAwoBCBIDCgEIEgUKAwgIARIDCgEIAAAAKQEAAAAQZ2V0U3RyaW5nT3JUaHJvdwAAAAIAAAAHYWRkcmVzcwAAAANrZXkJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAdhZGRyZXNzBQAAAANrZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAADENhbid0IHJlYWQgJwUAAAADa2V5AgAAAA0nIGF0IGFkZHJlc3MgCQAEJQAAAAEFAAAAB2FkZHJlc3MBAAAAEWdldEludGVnZXJPclRocm93AAAAAgAAAAdhZGRyZXNzAAAAA2tleQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAMQ2FuJ3QgcmVhZCAnBQAAAANrZXkCAAAADScgYXQgYWRkcmVzcyAJAAQlAAAAAQUAAAAHYWRkcmVzcwEAAAATcGFyc2VBZGRyZXNzT3JUaHJvdwAAAAEAAAAMbWF5YmVBZGRyZXNzCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQmAAAAAQUAAAAMbWF5YmVBZGRyZXNzCQABLAAAAAIJAAEsAAAAAgIAAAAaQ2FuJ3QgcGFyc2UgYWRkcmVzcyBmcm9tICcFAAAADG1heWJlQWRkcmVzcwIAAAABJwEAAAAKa2V5X2VudGl0eQAAAAMAAAAEbmFtZQAAAAJwawAAAAhwcm9wZXJ0eQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARuYW1lAgAAAAFfBQAAAAJwawIAAAABXwUAAAAIcHJvcGVydHkBAAAADmtleV9Ub2tlbl9uYW1lAAAAAQAAAAd0b2tlbklkCQEAAAAKa2V5X2VudGl0eQAAAAMCAAAABVRva2VuBQAAAAd0b2tlbklkAgAAAARuYW1lAQAAAA5rZXlfTmFtZV90b2tlbgAAAAEAAAAEbmFtZQkBAAAACmtleV9lbnRpdHkAAAADAgAAAAROYW1lBQAAAARuYW1lAgAAAAV0b2tlbgEAAAAOa2V5X05hbWVfb3duZXIAAAABAAAABG5hbWUJAQAAAAprZXlfZW50aXR5AAAAAwIAAAAETmFtZQUAAAAEbmFtZQIAAAAFb3duZXIBAAAAEWtleV9OYW1lX3Jlc29sdmVyAAAAAQAAAARuYW1lCQEAAAAKa2V5X2VudGl0eQAAAAMCAAAABE5hbWUFAAAABG5hbWUCAAAACHJlc29sdmVyAQAAABJrZXlfTmFtZV9leHBpcmVzQXQAAAABAAAABG5hbWUJAQAAAAprZXlfZW50aXR5AAAAAwIAAAAETmFtZQUAAAAEbmFtZQIAAAAJZXhwaXJlc0F0AQAAABJrZXlfTmFtZV9jcmVhdGVkQXQAAAABAAAABG5hbWUJAQAAAAprZXlfZW50aXR5AAAAAwIAAAAETmFtZQUAAAAEbmFtZQIAAAAJY3JlYXRlZEF0AAAAAAtrZXlfbmFtZVRUTAIAAAAHbmFtZVRUTAAAAAAPa2V5X2NvbnRyb2xsZXJzAgAAAAtjb250cm9sbGVycwEAAAAJX3NldE93bmVyAAAAAgAAAARuYW1lAAAABW93bmVyCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA5rZXlfTmFtZV9vd25lcgAAAAEFAAAABG5hbWUFAAAABW93bmVyBQAAAANuaWwBAAAACV9nZXRPd25lcgAAAAEAAAAEbmFtZQkABB0AAAACBQAAAAR0aGlzCQEAAAAOa2V5X05hbWVfb3duZXIAAAABBQAAAARuYW1lAQAAAAxfc2V0UmVzb2x2ZXIAAAACAAAABG5hbWUAAAAIcmVzb2x2ZXIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEWtleV9OYW1lX3Jlc29sdmVyAAAAAQUAAAAEbmFtZQUAAAAIcmVzb2x2ZXIFAAAAA25pbAEAAAAMX2dldFJlc29sdmVyAAAAAQAAAARuYW1lCQAEHQAAAAIFAAAABHRoaXMJAQAAABFrZXlfTmFtZV9yZXNvbHZlcgAAAAEFAAAABG5hbWUBAAAACV9nZXRUb2tlbgAAAAEAAAAEbmFtZQkABB0AAAACBQAAAAR0aGlzCQEAAAAOa2V5X05hbWVfdG9rZW4AAAABBQAAAARuYW1lAQAAAA1fZ2V0Q3Jl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BSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgUAAAAFJGFjYzAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAIAAAAAAAAAAAMAAAAAAAAAAAQAAAAAAAAAAAUAAAAAAAAAAAYAAAAAAAAAAAcAAAAAAAAAAAgAAAAAAAAAAAkAAAAAAAAAAAoAAAAAAAAAAAsAAAAAAAAAAAwAAAAAAAAAAA0AAAAA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YmUgbmVnYXRpdmUJAARMAAAAAgMJAABnAAAAAggFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAFAAAACWNyZWF0ZWRBdAUAAAAEdW5pdAkAAAIAAAABAgAAACFDcmVhdGVkQXQgY2Fubm90IGJlIGluIHRoZSBmdXR1cmUFAAAAA25pbAQAAAAOaXNzdWVOYW1lVG9rZW4JAQAAAA9faXNzdWVOYW1lVG9rZW4AAAABBQAAAARuYW1lBAAAAAd0b2tlbklkCQAEOAAAAAEJAAGRAAAAAgUAAAAOaXNzdWVOYW1lVG9rZW4AAAAAAAAAAAAEAAAACHRva2VuU3RyCQACWAAAAAEFAAAAB3Rva2VuSWQEAAAAFXJlZ2lzdGVyTmFtZVdpdGhUb2tlbgkBAAAAFl9yZWdpc3Rlck5hbWVXaXRoVG9rZW4AAAADBQAAAARuYW1lBQAAAAh0b2tlblN0cgUAAAAJY3JlYXRlZEF0BAAAABR0cmFuc2ZlclRva2VuVG9Pd25lcgkBAAAAFV90cmFuc2ZlclRva2VuVG9Pd25lcgAAAAIFAAAACHRva2VuU3RyBQAAAAVvd25lcgQAAAAMc2V0T3duZXJzaGlwCQEAAAAJX3NldE93bmVyAAAAAgUAAAAEbmFtZQUAAAAFb3duZXIJAAROAAAAAgkABE4AAAACCQAETgAAAAIFAAAADmlzc3VlTmFtZVRva2VuBQAAABVyZWdpc3Rlck5hbWVXaXRoVG9rZW4FAAAAFHRyYW5zZmVyVG9rZW5Ub093bmVyBQAAAAxzZXRPd25lcnNoaXAAAAADaW52AQAAAAdyZWNsYWltAAAAAQAAAARuYW1lCQEAAAALdmFsdWVPckVsc2UAAAACCQEAAAAJbW9kaWZpZXJzAAAAAQkABEwAAAACAwkBAAAADGlzQWN0aXZlTmFtZQAAAAEFAAAABG5hbWUFAAAABHVuaXQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAAWAFAAAABG5hbWUCAAAAD2AgaXMgbm90IGFjdGl2ZQUAAAADbmlsBAAAAAhuZXdPd25lcggFAAAAA2ludgAAAAxvcmlnaW5DYWxsZXIEAAAAD25ld093bmVyQWRkcmVzcwkABCUAAAABBQAAAAhuZXdPd25lcgQAAAAIdG9rZW5TdHIJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkBAAAACV9nZXRUb2tlbgAAAAEFAAAABG5hbWUJAAEsAAAAAgkAASwAAAACAgAAABhObyB0b2tlbiBpcyBpc3N1ZWQgZm9yIGAFAAAABG5hbWUCAAAAAWAEAAAAB3Rva2VuSWQJAAJZAAAAAQUAAAAIdG9rZW5TdHIEAAAACGhhc1Rva2VuCQAAAAAAAAIJAAPwAAAAAgUAAAAIbmV3T3duZXIFAAAAB3Rva2VuSWQAAAAAAAAAAAEEAAAADGlzVG9rZW5Pd25lcgkBAAAAB2lzT3duZXIAAAACBQAAAANpbnYFAAAABG5hbWUEAAAADWlzVG9rZW5FeGlzdHMEAAAAByRtYXRjaDAJAAPsAAAAAQUAAAAHdG9rZW5JZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAFQXNzZXQEAAAABXRva2VuBQAAAAckbWF0Y2gwCQAAAAAAAAIIBQAAAAV0b2tlbgAAAAhxdWFudGl0eQAAAAAAAAAAAQcDAwUAAAAMaXNUb2tlbk93bmVyCQEAAAABIQAAAAEFAAAADWlzVG9rZW5FeGlzdHMHBAAAAA1pc3N1ZU5ld1Rva2VuCQEAAAAPX2lzc3VlTmFtZVRva2VuAAAAAQUAAAAEbmFtZQQAAAAKbmV3VG9rZW5JZAkABDgAAAABCQABkQAAAAIFAAAADWlzc3VlTmV3VG9rZW4AAAAAAAAAAAAEAAAAC25ld1Rva2VuU3RyCQACWAAAAAEFAAAACm5ld1Rva2VuSWQEAAAAF3Jlc3RvcmVOYW1lV2l0aE5ld1Rva2VuCQEAAAAVX3Jlc3RvcmVOYW1lV2l0aFRva2VuAAAAAgUAAAAEbmFtZQUAAAALbmV3VG9rZW5TdHIEAAAAF3RyYW5zZmVyTmV3VG9rZW5Ub093bmVyCQEAAAAVX3RyYW5zZmVyVG9rZW5Ub093bmVyAAAAAgUAAAALbmV3VG9rZW5TdHIFAAAAD25ld093bmVyQWRkcmVzcwkABE4AAAACCQAETgAAAAIFAAAADWlzc3VlTmV3VG9rZW4FAAAAF3Jlc3RvcmVOYW1lV2l0aE5ld1Rva2VuBQAAABd0cmFuc2Zlck5ld1Rva2VuVG9Pd25lcgMDBQAAAAxpc1Rva2VuT3duZXIFAAAACGhhc1Rva2VuBwkAAAIAAAABAgAAABxZb3UgYWxyZWFkeSBvd24gYSBuYW1lIHRva2VuAwkBAAAAASEAAAABBQAAAAhoYXNUb2tlbgkAAAIAAAABAgAAABtZb3UgZG9uJ3QgaGF2ZSBhIG5hbWUgdG9rZW4JAQAAAAlfc2V0T3duZXIAAAACBQAAAARuYW1lBQAAAA9uZXdPd25lckFkZHJlc3MAAAAAuLMXdg==", "height": 2290900, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9J8FkfuhBofeQtbJWUiBo2DAVwpefzPzyv1Ajnp6Gnvm Next: 2YgyqVaqXcwpT21e5y4gP3gJyGUqm2MA8Xg6B8eN2niw Diff:
OldNewDifferences
4141 func v (h) = getString(this, n(h))
4242
4343
44-func w (h) = getString(this, o(h))
44+func w (h,x) = [StringEntry(o(h), x)]
4545
4646
47-func x (h) = getString(this, m(h))
47+func y (h) = getString(this, o(h))
4848
4949
50-func y (h) = getInteger(this, q(h))
50+func z (h) = getString(this, m(h))
5151
5252
53-func z (h) = getInteger(this, p(h))
53+func A (h) = getInteger(this, q(h))
5454
5555
56-func A () = getString(this, s)
56+func B (h) = getInteger(this, p(h))
5757
5858
59-let B = {
60- let C = A()
61- if ($isInstanceOf(C, "String"))
59+func C () = getString(this, s)
60+
61+
62+let D = {
63+ let E = C()
64+ if ($isInstanceOf(E, "String"))
6265 then {
63- let D = C
64- split(D, ",")
66+ let F = E
67+ split(F, ",")
6568 }
6669 else nil
6770 }
6871
69-let E = d(this, r)
72+let G = d(this, r)
7073
71-func F (h) = isDefined(getString(this, m(h)))
74+func H (h) = isDefined(getString(this, m(h)))
7275
7376
74-func G (h) = isDefined(y(h))
77+func I (h) = isDefined(A(h))
7578
7679
77-func H (h) = {
78- let C = z(h)
79- if ($isInstanceOf(C, "Int"))
80+func J (h) = {
81+ let E = B(h)
82+ if ($isInstanceOf(E, "Int"))
8083 then {
81- let I = C
82- (lastBlock.timestamp > I)
84+ let K = E
85+ (lastBlock.timestamp > K)
8386 }
8487 else false
8588 }
8689
8790
88-func J (h) = if (if (F(h))
89- then G(h)
91+func L (h) = if (if (H(h))
92+ then I(h)
9093 else false)
91- then !(H(h))
94+ then !(J(h))
9295 else false
9396
9497
95-func K (h) = {
96- let L = "abcdefghijklmnopqrstuvwxyz1234567890-"
97- func M (N,O) = if (N)
98- then contains(L, O)
98+func M (h) = {
99+ let N = "abcdefghijklmnopqrstuvwxyz1234567890-"
100+ func O (P,Q) = if (P)
101+ then contains(N, Q)
99102 else false
100103
101104 if (if (if (if (if ((size(h) > 0))
108111 then (lastIndexOf(h, "-") != (size(h) - 1))
109112 else false)
110113 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])
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])
117120
118- func V (T,U) = if ((U >= Q))
119- then T
121+ func X (V,W) = if ((W >= S))
122+ then V
120123 else throw("List size exceeds 63")
121124
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)
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)
123126 }
124127 else false
125128 }
126129
127130
128-func W (h) = if (K(h))
129- then if (!(F(h)))
131+func Y (h) = if (M(h))
132+ then if (!(H(h)))
130133 then true
131- else H(h)
134+ else J(h)
132135 else false
133136
134137
135-func X (f) = isDefined(addressFromString(f))
138+func Z (f) = isDefined(addressFromString(f))
136139
137140
138-func Y (Z) = (Z.caller == this)
141+func aa (ab) = (ab.caller == this)
139142
140143
141-func aa (Z,h) = (toString(Z.caller) == valueOrElse(v(h), ""))
144+func ac (ab,h) = (toString(ab.originCaller) == valueOrElse(v(h), ""))
142145
143146
144-func ab (b) = containsElement(B, b)
147+func ad (b) = containsElement(D, b)
145148
146149
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)
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)
153156 }
154157
155158
156-func ah (h) = [Issue(if ((size(h) > 16))
159+func aj (h) = [Issue(if ((size(h) > 16))
157160 then (take(h, 15) + "~")
158161 else take(h, 16), (h + ".waves"), 1, 0, false)]
159162
160163
161-func ai (h,l,aj) = [StringEntry(m(h), l), StringEntry(k(l), h), IntegerEntry(q(h), aj), IntegerEntry(p(h), (aj + E))]
164+func ak (h,l,al) = [StringEntry(m(h), l), StringEntry(k(l), h), IntegerEntry(q(h), al), IntegerEntry(p(h), (al + G))]
162165
163166
164-func ak (h,l) = [StringEntry(m(h), l), StringEntry(k(l), h)]
167+func am (h,l) = [StringEntry(m(h), l), StringEntry(k(l), h)]
165168
166169
167-func al (l,u) = [ScriptTransfer(e(u), 1, fromBase58String(l))]
170+func an (l,u) = [ScriptTransfer(e(u), 1, fromBase58String(l))]
168171
169172
170-func am (an) = unit
173+func ao (ap) = unit
171174
172175
173-func ao (Z) = if (Y(Z))
176+func aq (ab) = if (aa(ab))
174177 then unit
175178 else throw("Permission denied")
176179
177180
178-func ap (Z) = if (if (Y(Z))
181+func ar (ab) = if (if (aa(ab))
179182 then true
180- else ab(toString(Z.caller)))
183+ else ad(toString(ab.caller)))
181184 then unit
182185 else throw("Permission denied")
183186
184187
185-func aq (Z,h) = if (if (Y(Z))
188+func as (ab,h) = if (if (aa(ab))
186189 then true
187- else aa(Z, h))
190+ else ac(ab, h))
188191 then unit
189192 else throw("Permission denied")
190193
191194
192-@Callable(Z)
193-func init (E) = valueOrElse(am([ao(Z), if ((E > 0))
195+@Callable(ab)
196+func init (G) = valueOrElse(ao([aq(ab), if ((G > 0))
194197 then unit
195- else throw("TTL cannot be negative")]), [IntegerEntry(r, E)])
198+ else throw("TTL cannot be negative")]), [IntegerEntry(r, G)])
196199
197200
198201
199-@Callable(Z)
200-func supportsInterface (ar) = $Tuple2(nil, containsElement(["getOwner", "getResolver", "getNameCreated", "getNameExpires"], ar))
202+@Callable(ab)
203+func supportsInterface (at) = $Tuple2(nil, containsElement(["owner", "resolver", "nameCreated", "nameExpires"], at))
201204
202205
203206
204-@Callable(Z)
205-func addController (b) = valueOrElse(am([ao(Z), if (X(b))
207+@Callable(ab)
208+func addController (b) = valueOrElse(ao([aq(ab), if (Z(b))
206209 then unit
207- else throw("Controller must be a valid address"), if (!(ab(b)))
210+ else throw("Controller must be a valid address"), if (!(ad(b)))
208211 then unit
209- else throw((("Controller `" + b) + "` is already registered"))]), [StringEntry(s, makeString((B :+ b), ","))])
212+ else throw((("Controller `" + b) + "` is already registered"))]), [StringEntry(s, makeString((D :+ b), ","))])
210213
211214
212215
213-@Callable(Z)
214-func removeController (b) = valueOrElse(am([ao(Z), if (ab(b))
216+@Callable(ab)
217+func removeController (b) = valueOrElse(ao([aq(ab), if (ad(b))
215218 then unit
216219 else throw((("Controller `" + b) + "` is not registered"))]), {
217- let as = value(indexOf(B, b))
218-[StringEntry(s, makeString(removeByIndex(B, as), ","))]
220+ let au = value(indexOf(D, b))
221+[StringEntry(s, makeString(removeByIndex(D, au), ","))]
219222 })
220223
221224
222225
223-@Callable(Z)
224-func isValid (h) = $Tuple2(nil, K(h))
226+@Callable(ab)
227+func validate (h) = $Tuple2(nil, M(h))
225228
226229
227230
228-@Callable(Z)
229-func isAvailable (h) = $Tuple2(nil, W(h))
231+@Callable(ab)
232+func available (h) = $Tuple2(nil, Y(h))
230233
231234
232235
233-@Callable(Z)
234-func getOwner (h) = $Tuple2(nil, v(ac(h)._1))
236+@Callable(ab)
237+func owner (h) = $Tuple2(nil, v(ae(h)._1))
235238
236239
237240
238-@Callable(Z)
239-func getResolver (h) = $Tuple2(nil, w(ac(h)._1))
241+@Callable(ab)
242+func resolver (h) = $Tuple2(nil, y(ae(h)._1))
240243
241244
242245
243-@Callable(Z)
244-func getNameCreated (h) = $Tuple2(nil, y(ac(h)._1))
246+@Callable(ab)
247+func setResolver (h,x) = valueOrElse(ao([if (L(h))
248+ 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)))
245252
246253
247254
248-@Callable(Z)
249-func getNameExpires (h) = $Tuple2(nil, z(ac(h)._1))
255+@Callable(ab)
256+func nameCreated (h) = $Tuple2(nil, A(ae(h)._1))
250257
251258
252259
253-@Callable(Z)
254-func register (h,u,aj) = valueOrElse(am([ap(Z), if (W(h))
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))
255267 then unit
256- else throw((("`" + h) + "` cannot be registered")), if (X(u))
268+ else throw((("`" + h) + "` cannot be registered")), if (Z(u))
257269 then unit
258- else throw("Owner must be a valid address"), if ((aj > 0))
270+ else throw("Owner must be a valid address"), if ((al > 0))
259271 then unit
260- else throw("CreatedAt cannot be negative"), if ((lastBlock.timestamp >= aj))
272+ else throw("CreatedAt cannot be negative"), if ((lastBlock.timestamp >= al))
261273 then unit
262274 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)
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)
270282 })
271283
272284
273285
274-@Callable(Z)
275-func reclaim (h) = valueOrElse(am([if (J(h))
286+@Callable(ab)
287+func reclaim (h) = valueOrElse(ao([if (L(h))
276288 then unit
277289 else throw((("`" + h) + "` is not active"))]), {
278- let ay = Z.caller
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"))
290+ let aA = ab.originCaller
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"))
287299 then {
288- let aD = C
289- (aD.quantity == 1)
300+ let aF = E
301+ (aF.quantity == 1)
290302 }
291303 else false
292304 }
293- if (if (aB)
294- then !(aC)
305+ if (if (aD)
306+ then !(aE)
295307 else false)
296308 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)
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)
303315 }
304- else if (if (aB)
305- then aA
316+ else if (if (aD)
317+ then aC
306318 else false)
307319 then throw("You already own a name token")
308- else if (!(aA))
320+ else if (!(aC))
309321 then throw("You don't have a name token")
310- else t(h, az)
322+ else t(h, aB)
311323 })
312324
313325
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
2525 func o (h) = g("Name", h, "resolver")
2626
2727
2828 func p (h) = g("Name", h, "expiresAt")
2929
3030
3131 func q (h) = g("Name", h, "createdAt")
3232
3333
3434 let r = "nameTTL"
3535
3636 let s = "controllers"
3737
3838 func t (h,u) = [StringEntry(n(h), u)]
3939
4040
4141 func v (h) = getString(this, n(h))
4242
4343
44-func w (h) = getString(this, o(h))
44+func w (h,x) = [StringEntry(o(h), x)]
4545
4646
47-func x (h) = getString(this, m(h))
47+func y (h) = getString(this, o(h))
4848
4949
50-func y (h) = getInteger(this, q(h))
50+func z (h) = getString(this, m(h))
5151
5252
53-func z (h) = getInteger(this, p(h))
53+func A (h) = getInteger(this, q(h))
5454
5555
56-func A () = getString(this, s)
56+func B (h) = getInteger(this, p(h))
5757
5858
59-let B = {
60- let C = A()
61- if ($isInstanceOf(C, "String"))
59+func C () = getString(this, s)
60+
61+
62+let D = {
63+ let E = C()
64+ if ($isInstanceOf(E, "String"))
6265 then {
63- let D = C
64- split(D, ",")
66+ let F = E
67+ split(F, ",")
6568 }
6669 else nil
6770 }
6871
69-let E = d(this, r)
72+let G = d(this, r)
7073
71-func F (h) = isDefined(getString(this, m(h)))
74+func H (h) = isDefined(getString(this, m(h)))
7275
7376
74-func G (h) = isDefined(y(h))
77+func I (h) = isDefined(A(h))
7578
7679
77-func H (h) = {
78- let C = z(h)
79- if ($isInstanceOf(C, "Int"))
80+func J (h) = {
81+ let E = B(h)
82+ if ($isInstanceOf(E, "Int"))
8083 then {
81- let I = C
82- (lastBlock.timestamp > I)
84+ let K = E
85+ (lastBlock.timestamp > K)
8386 }
8487 else false
8588 }
8689
8790
88-func J (h) = if (if (F(h))
89- then G(h)
91+func L (h) = if (if (H(h))
92+ then I(h)
9093 else false)
91- then !(H(h))
94+ then !(J(h))
9295 else false
9396
9497
95-func K (h) = {
96- let L = "abcdefghijklmnopqrstuvwxyz1234567890-"
97- func M (N,O) = if (N)
98- then contains(L, O)
98+func M (h) = {
99+ let N = "abcdefghijklmnopqrstuvwxyz1234567890-"
100+ func O (P,Q) = if (P)
101+ then contains(N, Q)
99102 else false
100103
101104 if (if (if (if (if ((size(h) > 0))
102105 then (63 >= size(h))
103106 else false)
104107 then (indexOf(h, "--") != 2)
105108 else false)
106109 then (indexOf(h, "-") != 0)
107110 else false)
108111 then (lastIndexOf(h, "-") != (size(h) - 1))
109112 else false)
110113 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])
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])
117120
118- func V (T,U) = if ((U >= Q))
119- then T
121+ func X (V,W) = if ((W >= S))
122+ then V
120123 else throw("List size exceeds 63")
121124
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)
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)
123126 }
124127 else false
125128 }
126129
127130
128-func W (h) = if (K(h))
129- then if (!(F(h)))
131+func Y (h) = if (M(h))
132+ then if (!(H(h)))
130133 then true
131- else H(h)
134+ else J(h)
132135 else false
133136
134137
135-func X (f) = isDefined(addressFromString(f))
138+func Z (f) = isDefined(addressFromString(f))
136139
137140
138-func Y (Z) = (Z.caller == this)
141+func aa (ab) = (ab.caller == this)
139142
140143
141-func aa (Z,h) = (toString(Z.caller) == valueOrElse(v(h), ""))
144+func ac (ab,h) = (toString(ab.originCaller) == valueOrElse(v(h), ""))
142145
143146
144-func ab (b) = containsElement(B, b)
147+func ad (b) = containsElement(D, b)
145148
146149
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)
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)
153156 }
154157
155158
156-func ah (h) = [Issue(if ((size(h) > 16))
159+func aj (h) = [Issue(if ((size(h) > 16))
157160 then (take(h, 15) + "~")
158161 else take(h, 16), (h + ".waves"), 1, 0, false)]
159162
160163
161-func ai (h,l,aj) = [StringEntry(m(h), l), StringEntry(k(l), h), IntegerEntry(q(h), aj), IntegerEntry(p(h), (aj + E))]
164+func ak (h,l,al) = [StringEntry(m(h), l), StringEntry(k(l), h), IntegerEntry(q(h), al), IntegerEntry(p(h), (al + G))]
162165
163166
164-func ak (h,l) = [StringEntry(m(h), l), StringEntry(k(l), h)]
167+func am (h,l) = [StringEntry(m(h), l), StringEntry(k(l), h)]
165168
166169
167-func al (l,u) = [ScriptTransfer(e(u), 1, fromBase58String(l))]
170+func an (l,u) = [ScriptTransfer(e(u), 1, fromBase58String(l))]
168171
169172
170-func am (an) = unit
173+func ao (ap) = unit
171174
172175
173-func ao (Z) = if (Y(Z))
176+func aq (ab) = if (aa(ab))
174177 then unit
175178 else throw("Permission denied")
176179
177180
178-func ap (Z) = if (if (Y(Z))
181+func ar (ab) = if (if (aa(ab))
179182 then true
180- else ab(toString(Z.caller)))
183+ else ad(toString(ab.caller)))
181184 then unit
182185 else throw("Permission denied")
183186
184187
185-func aq (Z,h) = if (if (Y(Z))
188+func as (ab,h) = if (if (aa(ab))
186189 then true
187- else aa(Z, h))
190+ else ac(ab, h))
188191 then unit
189192 else throw("Permission denied")
190193
191194
192-@Callable(Z)
193-func init (E) = valueOrElse(am([ao(Z), if ((E > 0))
195+@Callable(ab)
196+func init (G) = valueOrElse(ao([aq(ab), if ((G > 0))
194197 then unit
195- else throw("TTL cannot be negative")]), [IntegerEntry(r, E)])
198+ else throw("TTL cannot be negative")]), [IntegerEntry(r, G)])
196199
197200
198201
199-@Callable(Z)
200-func supportsInterface (ar) = $Tuple2(nil, containsElement(["getOwner", "getResolver", "getNameCreated", "getNameExpires"], ar))
202+@Callable(ab)
203+func supportsInterface (at) = $Tuple2(nil, containsElement(["owner", "resolver", "nameCreated", "nameExpires"], at))
201204
202205
203206
204-@Callable(Z)
205-func addController (b) = valueOrElse(am([ao(Z), if (X(b))
207+@Callable(ab)
208+func addController (b) = valueOrElse(ao([aq(ab), if (Z(b))
206209 then unit
207- else throw("Controller must be a valid address"), if (!(ab(b)))
210+ else throw("Controller must be a valid address"), if (!(ad(b)))
208211 then unit
209- else throw((("Controller `" + b) + "` is already registered"))]), [StringEntry(s, makeString((B :+ b), ","))])
212+ else throw((("Controller `" + b) + "` is already registered"))]), [StringEntry(s, makeString((D :+ b), ","))])
210213
211214
212215
213-@Callable(Z)
214-func removeController (b) = valueOrElse(am([ao(Z), if (ab(b))
216+@Callable(ab)
217+func removeController (b) = valueOrElse(ao([aq(ab), if (ad(b))
215218 then unit
216219 else throw((("Controller `" + b) + "` is not registered"))]), {
217- let as = value(indexOf(B, b))
218-[StringEntry(s, makeString(removeByIndex(B, as), ","))]
220+ let au = value(indexOf(D, b))
221+[StringEntry(s, makeString(removeByIndex(D, au), ","))]
219222 })
220223
221224
222225
223-@Callable(Z)
224-func isValid (h) = $Tuple2(nil, K(h))
226+@Callable(ab)
227+func validate (h) = $Tuple2(nil, M(h))
225228
226229
227230
228-@Callable(Z)
229-func isAvailable (h) = $Tuple2(nil, W(h))
231+@Callable(ab)
232+func available (h) = $Tuple2(nil, Y(h))
230233
231234
232235
233-@Callable(Z)
234-func getOwner (h) = $Tuple2(nil, v(ac(h)._1))
236+@Callable(ab)
237+func owner (h) = $Tuple2(nil, v(ae(h)._1))
235238
236239
237240
238-@Callable(Z)
239-func getResolver (h) = $Tuple2(nil, w(ac(h)._1))
241+@Callable(ab)
242+func resolver (h) = $Tuple2(nil, y(ae(h)._1))
240243
241244
242245
243-@Callable(Z)
244-func getNameCreated (h) = $Tuple2(nil, y(ac(h)._1))
246+@Callable(ab)
247+func setResolver (h,x) = valueOrElse(ao([if (L(h))
248+ 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)))
245252
246253
247254
248-@Callable(Z)
249-func getNameExpires (h) = $Tuple2(nil, z(ac(h)._1))
255+@Callable(ab)
256+func nameCreated (h) = $Tuple2(nil, A(ae(h)._1))
250257
251258
252259
253-@Callable(Z)
254-func register (h,u,aj) = valueOrElse(am([ap(Z), if (W(h))
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))
255267 then unit
256- else throw((("`" + h) + "` cannot be registered")), if (X(u))
268+ else throw((("`" + h) + "` cannot be registered")), if (Z(u))
257269 then unit
258- else throw("Owner must be a valid address"), if ((aj > 0))
270+ else throw("Owner must be a valid address"), if ((al > 0))
259271 then unit
260- else throw("CreatedAt cannot be negative"), if ((lastBlock.timestamp >= aj))
272+ else throw("CreatedAt cannot be negative"), if ((lastBlock.timestamp >= al))
261273 then unit
262274 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)
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)
270282 })
271283
272284
273285
274-@Callable(Z)
275-func reclaim (h) = valueOrElse(am([if (J(h))
286+@Callable(ab)
287+func reclaim (h) = valueOrElse(ao([if (L(h))
276288 then unit
277289 else throw((("`" + h) + "` is not active"))]), {
278- let ay = Z.caller
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"))
290+ let aA = ab.originCaller
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"))
287299 then {
288- let aD = C
289- (aD.quantity == 1)
300+ let aF = E
301+ (aF.quantity == 1)
290302 }
291303 else false
292304 }
293- if (if (aB)
294- then !(aC)
305+ if (if (aD)
306+ then !(aE)
295307 else false)
296308 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)
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)
303315 }
304- else if (if (aB)
305- then aA
316+ else if (if (aD)
317+ then aC
306318 else false)
307319 then throw("You already own a name token")
308- else if (!(aA))
320+ else if (!(aC))
309321 then throw("You don't have a name token")
310- else t(h, az)
322+ else t(h, aB)
311323 })
312324
313325

github/deemru/w8io/873ac7e 
111.44 ms