tx · F4zvHSVB5MFMyVqkPfJ8RqdyCiQNWyZNyyVws5jszYgH

3NA73oUXjqp7SpudXWV1yMFuKm9awPbqsVz:  -0.01000000 Waves

2022.10.03 16:31 [2256221] smart account 3NA73oUXjqp7SpudXWV1yMFuKm9awPbqsVz > SELF 0.00000000 Waves

{ "type": 13, "id": "F4zvHSVB5MFMyVqkPfJ8RqdyCiQNWyZNyyVws5jszYgH", "fee": 1000000, "feeAssetId": null, "timestamp": 1664803891467, "version": 2, "chainId": 84, "sender": "3NA73oUXjqp7SpudXWV1yMFuKm9awPbqsVz", "senderPublicKey": "2mHW72YTfnxJ1M8WsdUQjgpp3a2SUbt9mbAiePGiuJok", "proofs": [ "3qXx8e7qBVxZwSyY9tf5UxkX3mzd3gDesY33mYPWjPfydaGkYog1cqr8MxLUS9LG6LzDuLQDcs13qPJoGk357G26" ], "script": "base64:AAIFAAAAAAAAABIIAhIECgIIARIDCgEIEgMKAQgAAAAVAQAAABBnZXRTdHJpbmdPclRocm93AAAAAgAAAAdhZGRyZXNzAAAAA2tleQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAMQ2FuJ3QgcmVhZCAnBQAAAANrZXkCAAAADScgYXQgYWRkcmVzcyAJAAQlAAAAAQUAAAAHYWRkcmVzcwEAAAARZ2V0SW50ZWdlck9yVGhyb3cAAAACAAAAB2FkZHJlc3MAAAADa2V5CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAxDYW4ndCByZWFkICcFAAAAA2tleQIAAAANJyBhdCBhZGRyZXNzIAkABCUAAAABBQAAAAdhZGRyZXNzAQAAABNwYXJzZUFkZHJlc3NPclRocm93AAAAAQAAAAxtYXliZUFkZHJlc3MJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCYAAAABBQAAAAxtYXliZUFkZHJlc3MJAAEsAAAAAgkAASwAAAACAgAAABpDYW4ndCBwYXJzZSBhZGRyZXNzIGZyb20gJwUAAAAMbWF5YmVBZGRyZXNzAgAAAAEnAQAAAAprZXlfZW50aXR5AAAAAwAAAARuYW1lAAAAAnBrAAAACHByb3BlcnR5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABG5hbWUCAAAAAV8FAAAAAnBrAgAAAAFfBQAAAAhwcm9wZXJ0eQEAAAAOa2V5X1Rva2VuX25hbWUAAAABAAAAB3Rva2VuSWQJAQAAAAprZXlfZW50aXR5AAAAAwIAAAAFVG9rZW4FAAAAB3Rva2VuSWQCAAAABG5hbWUBAAAADmtleV9OYW1lX3Rva2VuAAAAAQAAAARuYW1lCQEAAAAKa2V5X2VudGl0eQAAAAMCAAAABE5hbWUFAAAABG5hbWUCAAAABXRva2VuAQAAAA5rZXlfTmFtZV9vd25lcgAAAAEAAAAEbmFtZQkBAAAACmtleV9lbnRpdHkAAAADAgAAAAROYW1lBQAAAARuYW1lAgAAAAVvd25lcgEAAAASa2V5X05hbWVfZXhwaXJlc0F0AAAAAQAAAARuYW1lCQEAAAAKa2V5X2VudGl0eQAAAAMCAAAABE5hbWUFAAAABG5hbWUCAAAACWV4cGlyZXNBdAEAAAASa2V5X05hbWVfY3JlYXRlZEF0AAAAAQAAAARuYW1lCQEAAAAKa2V5X2VudGl0eQAAAAMCAAAABE5hbWUFAAAABG5hbWUCAAAACWNyZWF0ZWRBdAEAAAAOa2V5X093bmVyX25hbWUAAAABAAAAB2FkZHJlc3MJAQAAAAprZXlfZW50aXR5AAAAAwIAAAAFT3duZXIFAAAAB2FkZHJlc3MCAAAABG5hbWUAAAAAEmtleV9hdWN0aW9uQWRkcmVzcwIAAAAOYXVjdGlvbkFkZHJlc3MAAAAAGmtleV9uYW1lRXhwaXJhdGlvbkludGVydmFsAgAAABZuYW1lRXhwaXJhdGlvbkludGVydmFsAAAAABRrZXlfbWF4QXV0aG9yaXplZEZlZQIAAAAQbWF4QXV0aG9yaXplZEZlZQAAAAARYXVjdGlvbkFkZHJlc3NTdHIJAQAAABBnZXRTdHJpbmdPclRocm93AAAAAgUAAAAEdGhpcwUAAAASa2V5X2F1Y3Rpb25BZGRyZXNzAAAAAA5hdWN0aW9uQWRkcmVzcwkBAAAAE3BhcnNlQWRkcmVzc09yVGhyb3cAAAABBQAAABFhdWN0aW9uQWRkcmVzc1N0cgAAAAAWbmFtZUV4cGlyYXRpb25JbnRlcnZhbAkBAAAAEWdldEludGVnZXJPclRocm93AAAAAgUAAAAEdGhpcwUAAAAaa2V5X25hbWVFeHBpcmF0aW9uSW50ZXJ2YWwAAAAAEG1heEF1dGhvcml6ZWRGZWUJAQAAABFnZXRJbnRlZ2VyT3JUaHJvdwAAAAIFAAAABHRoaXMFAAAAFGtleV9tYXhBdXRob3JpemVkRmVlAQAAAAV3aG9JcwAAAAEAAAAEbmFtZQQAAAAJZXhwaXJlc0F0CQEAAAARZ2V0SW50ZWdlck9yVGhyb3cAAAACBQAAAAR0aGlzCQEAAAASa2V5X05hbWVfZXhwaXJlc0F0AAAAAQUAAAAEbmFtZQQAAAAFdG9rZW4JAQAAABBnZXRTdHJpbmdPclRocm93AAAAAgUAAAAEdGhpcwkBAAAADmtleV9OYW1lX3Rva2VuAAAAAQUAAAAEbmFtZQQAAAAFb3duZXIJAQAAABBnZXRTdHJpbmdPclRocm93AAAAAgUAAAAEdGhpcwkBAAAADmtleV9OYW1lX293bmVyAAAAAQUAAAAEbmFtZQkABRUAAAADBQAAAAVvd25lcgUAAAAJZXhwaXJlc0F0BQAAAAV0b2tlbgEAAAARaXNSZWdpc3RlcmVkVG9rZW4AAAABAAAAB3Rva2VuSWQJAQAAAAlpc0RlZmluZWQAAAABCQAEHQAAAAIFAAAABHRoaXMJAQAAAA5rZXlfVG9rZW5fbmFtZQAAAAEFAAAAB3Rva2VuSWQBAAAAEGlzUmVnaXN0ZXJlZE5hbWUAAAABAAAABG5hbWUJAQAAAAlpc0RlZmluZWQAAAABCQAEHQAAAAIFAAAABHRoaXMJAQAAAA5rZXlfTmFtZV90b2tlbgAAAAEFAAAABG5hbWUBAAAADWlzRXhwaXJlZE5hbWUAAAABAAAABG5hbWUEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkBAAAAEmtleV9OYW1lX2V4cGlyZXNBdAAAAAEFAAAABG5hbWUDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAJZXhwaXJlc0F0BQAAAAckbWF0Y2gwCQAAZgAAAAIFAAAACWV4cGlyZXNBdAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAHAAAAAwAAAANpbnYBAAAABGluaXQAAAACAAAADmF1Y3Rpb25BZGRyZXNzAAAAFm5hbWVFeHBpcmF0aW9uSW50ZXJ2YWwDCQEAAAACIT0AAAACCAUAAAADaW52AAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAABFQZXJtaXNzaW9uIGRlbmllZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABJrZXlfYXVjdGlvbkFkZHJlc3MFAAAADmF1Y3Rpb25BZGRyZXNzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABprZXlfbmFtZUV4cGlyYXRpb25JbnRlcnZhbAUAAAAWbmFtZUV4cGlyYXRpb25JbnRlcnZhbAUAAAADbmlsAAAAA2lu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", "height": 2256221, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8pX3zFNXz9Hc7ZrtY5vp9s9JNkCaaSefPsKiPgEH5KVg Next: HXRBWk7aqRpaoZZ6jwwbLoR8RT9CB4v3qcbzcJoJeBER Diff:
OldNewDifferences
3131 func q (b) = g("Owner", b, "name")
3232
3333
34-let r = "authorizedPublicKey"
34+let r = "auctionAddress"
3535
36-let s = "auctionAddress"
36+let s = "nameExpirationInterval"
3737
38-let t = "nameExpirationInterval"
38+let t = "maxAuthorizedFee"
3939
40-let u = "maxAuthorizedFee"
40+let u = a(this, r)
4141
42-let v = fromBase58String(a(this, r))
42+let v = e(u)
4343
44-let w = addressFromPublicKey(v)
44+let w = d(this, s)
4545
46-let x = toString(w)
46+let x = d(this, t)
4747
48-let y = a(this, s)
49-
50-let z = e(y)
51-
52-let A = d(this, t)
53-
54-let B = d(this, u)
55-
56-func C (h) = {
57- let D = d(this, o(h))
58- let E = a(this, m(h))
59- let F = a(this, n(h))
60- $Tuple3(F, D, E)
48+func y (h) = {
49+ let z = d(this, o(h))
50+ let A = a(this, m(h))
51+ let B = a(this, n(h))
52+ $Tuple3(B, z, A)
6153 }
6254
6355
64-func G (l) = isDefined(getString(this, k(l)))
56+func C (l) = isDefined(getString(this, k(l)))
6557
6658
67-func H (h) = isDefined(getString(this, m(h)))
59+func D (h) = isDefined(getString(this, m(h)))
6860
6961
70-func I (h) = {
71- let J = getInteger(this, o(h))
72- if ($isInstanceOf(J, "Int"))
62+func E (h) = {
63+ let F = getInteger(this, o(h))
64+ if ($isInstanceOf(F, "Int"))
7365 then {
74- let D = J
75- (D > lastBlock.timestamp)
66+ let z = F
67+ (z > lastBlock.timestamp)
7668 }
7769 else false
7870 }
7971
8072
81-func K (L) = if ((size(L) == 2))
82- then (L[0] == base58'')
83- else false
84-
85-
86-func M (N) = {
87- let O = addressFromRecipient(N.dApp)
88- let P = N.function
89- if (if (if ((O == this))
90- then (P == "registerNameToken")
91- else false)
92- then (B >= N.fee)
93- else false)
94- then !(isDefined(N.feeAssetId))
95- else false
96- }
97-
98-
99-func Q (N) = if (if (if ((N.decimals == 0))
100- then (N.quantity == 1)
101- else false)
102- then !(N.reissuable)
103- else false)
104- then (B >= N.fee)
105- else false
106-
107-
108-@Callable(R)
109-func init (v,z,A,B) = if ((R.caller != this))
73+@Callable(G)
74+func init (v,w) = if ((G.caller != this))
11075 then throw("Permission denied")
111- else [StringEntry(r, v), StringEntry(s, z), IntegerEntry(t, A), IntegerEntry(u, B)]
76+ else [StringEntry(r, v), IntegerEntry(s, w)]
11277
11378
11479
115-@Callable(R)
116-func registerNameToken (l) = if ((R.caller != this))
117- then throw("Permission denied")
118- else {
119- let E = {
120- let J = assetInfo(fromBase58String(l))
121- if ($isInstanceOf(J, "Asset"))
122- then {
123- let S = J
124- S
125- }
126- else throw("Can't find asset")
127- }
128- let T = if ((lastIndexOf(E.name, "~") == 15))
129- then 15
130- else 16
131- if ((E.issuer != this))
132- then throw("Name token is not issued by the Registrar")
133- else if ((take(E.name, T) != take(E.description, T)))
134- then throw("Trimmed and full names do not match")
135- else if (G(l))
136- then throw("Token already in use")
137- else if (if (H(E.description))
138- then !(I(E.description))
139- else false)
140- then throw("Name already in use")
141- else [StringEntry(m(E.description), l), StringEntry(k(l), E.description), IntegerEntry(p(E.description), lastBlock.timestamp), IntegerEntry(o(E.description), (lastBlock.timestamp + A))]
142- }
143-
144-
145-
146-@Callable(R)
80+@Callable(G)
14781 func registerOwnership (h) = {
148- let U = R.caller
149- let V = toString(U)
150- let W = {
151- let J = invoke(z, "getWinnerInfo", [h], nil)
152- if ($isInstanceOf(J, "(Int, String, String)"))
82+ let H = G.caller
83+ let I = toString(H)
84+ let J = {
85+ let F = invoke(v, "getWinnerInfo", [h], nil)
86+ if ($isInstanceOf(F, "(Int, String, String)"))
15387 then {
154- let X = J
155- X
88+ let K = F
89+ K
15690 }
15791 else throw("Unexpected getWinnerInfo result")
15892 }
159- let Y = W._1
160- let Z = W._2
161- let aa = W._3
162- if ((V != Z))
163- then throw(((("Winner address " + Z) + "doesn't match with caller address") + V))
164- else if (if (H(h))
165- then !(I(h))
93+ let L = J._1
94+ let M = J._2
95+ let N = J._3
96+ if ((I != M))
97+ then throw(((("Winner address " + M) + "doesn't match with caller address") + I))
98+ else if (if (D(h))
99+ then !(E(h))
166100 else false)
167101 then throw("Name already in use")
168102 else {
169- let ab = invoke(z, "finalizeOrigin", [h], nil)
170- let ac = Issue(if ((size(h) > 16))
103+ let O = invoke(v, "finalizeOrigin", [h], nil)
104+ let P = Issue(if ((size(h) > 16))
171105 then (take(h, 15) + "~")
172106 else take(h, 16), h, 1, 0, false)
173- let l = calculateAssetId(ac)
174- let ad = toUtf8String(l)
175- let ae = [ac, StringEntry(m(h), ad), StringEntry(k(ad), h), IntegerEntry(p(h), lastBlock.timestamp), IntegerEntry(o(h), (lastBlock.timestamp + A))]
176- let af = [StringEntry(n(h), V), ScriptTransfer(U, 1, l)]
177- (ae ++ af)
107+ let l = calculateAssetId(P)
108+ let Q = toUtf8String(l)
109+ let R = [P, StringEntry(m(h), Q), StringEntry(k(Q), h), IntegerEntry(p(h), lastBlock.timestamp), IntegerEntry(o(h), (lastBlock.timestamp + w))]
110+ let S = [StringEntry(n(h), I), ScriptTransfer(H, 1, l)]
111+ (R ++ S)
178112 }
179113 }
180114
181115
182116
183-@Callable(R)
117+@Callable(G)
184118 func approveOwnership (h) = {
185- let U = R.caller
186- let V = toString(U)
187- let F = valueOrErrorMessage(getString(this, n(h)), "Owner is not defined")
188- let ad = valueOrErrorMessage(getString(this, m(h)), "No token is issued for this name")
189- let l = fromBase58String(ad)
190- let E = {
191- let J = assetInfo(l)
192- if ($isInstanceOf(J, "Asset"))
119+ let H = G.caller
120+ let I = toString(H)
121+ let B = valueOrErrorMessage(getString(this, n(h)), "Owner is not defined")
122+ let Q = valueOrErrorMessage(getString(this, m(h)), "No token is issued for this name")
123+ let l = fromBase58String(Q)
124+ let A = {
125+ let F = assetInfo(l)
126+ if ($isInstanceOf(F, "Asset"))
193127 then {
194- let ag = J
195- ag
128+ let T = F
129+ T
196130 }
197131 else throw("Can't find asset")
198132 }
199- if ((V == F))
133+ if ((I == B))
200134 then throw("You already own this name")
201- else if (!(H(h)))
135+ else if (!(D(h)))
202136 then throw("Name is not registered")
203- else if (I(h))
137+ else if (E(h))
204138 then throw("The period of ownership has expired")
205- else if ((assetBalance(U, l) == 0))
139+ else if ((assetBalance(H, l) == 0))
206140 then throw("You don't have a named token")
207- else [StringEntry(n(h), V)]
141+ else [StringEntry(n(h), I)]
208142 }
209143
210-
211-@Verifier(N)
212-func ah () = {
213- let J = N
214- if ($isInstanceOf(J, "InvokeScriptTransaction"))
215- then {
216- let ai = J
217- let aj = if (if (K(N.proofs))
218- then M(ai)
219- else false)
220- then $Tuple2(N.proofs[1], v)
221- else $Tuple2(N.proofs[0], N.senderPublicKey)
222- let ak = aj._1
223- let al = aj._2
224- sigVerify_8Kb(N.bodyBytes, ak, al)
225- }
226- else if ($isInstanceOf(J, "IssueTransaction"))
227- then {
228- let am = J
229- let an = if (if (K(N.proofs))
230- then Q(am)
231- else false)
232- then $Tuple2(N.proofs[1], v)
233- else $Tuple2(N.proofs[0], N.senderPublicKey)
234- let ak = an._1
235- let al = an._2
236- sigVerify_8Kb(N.bodyBytes, ak, al)
237- }
238- else {
239- let ao = J
240- sigVerify_32Kb(N.bodyBytes, N.proofs[0], N.senderPublicKey)
241- }
242- }
243144
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, "expiresAt")
2626
2727
2828 func p (h) = g("Name", h, "createdAt")
2929
3030
3131 func q (b) = g("Owner", b, "name")
3232
3333
34-let r = "authorizedPublicKey"
34+let r = "auctionAddress"
3535
36-let s = "auctionAddress"
36+let s = "nameExpirationInterval"
3737
38-let t = "nameExpirationInterval"
38+let t = "maxAuthorizedFee"
3939
40-let u = "maxAuthorizedFee"
40+let u = a(this, r)
4141
42-let v = fromBase58String(a(this, r))
42+let v = e(u)
4343
44-let w = addressFromPublicKey(v)
44+let w = d(this, s)
4545
46-let x = toString(w)
46+let x = d(this, t)
4747
48-let y = a(this, s)
49-
50-let z = e(y)
51-
52-let A = d(this, t)
53-
54-let B = d(this, u)
55-
56-func C (h) = {
57- let D = d(this, o(h))
58- let E = a(this, m(h))
59- let F = a(this, n(h))
60- $Tuple3(F, D, E)
48+func y (h) = {
49+ let z = d(this, o(h))
50+ let A = a(this, m(h))
51+ let B = a(this, n(h))
52+ $Tuple3(B, z, A)
6153 }
6254
6355
64-func G (l) = isDefined(getString(this, k(l)))
56+func C (l) = isDefined(getString(this, k(l)))
6557
6658
67-func H (h) = isDefined(getString(this, m(h)))
59+func D (h) = isDefined(getString(this, m(h)))
6860
6961
70-func I (h) = {
71- let J = getInteger(this, o(h))
72- if ($isInstanceOf(J, "Int"))
62+func E (h) = {
63+ let F = getInteger(this, o(h))
64+ if ($isInstanceOf(F, "Int"))
7365 then {
74- let D = J
75- (D > lastBlock.timestamp)
66+ let z = F
67+ (z > lastBlock.timestamp)
7668 }
7769 else false
7870 }
7971
8072
81-func K (L) = if ((size(L) == 2))
82- then (L[0] == base58'')
83- else false
84-
85-
86-func M (N) = {
87- let O = addressFromRecipient(N.dApp)
88- let P = N.function
89- if (if (if ((O == this))
90- then (P == "registerNameToken")
91- else false)
92- then (B >= N.fee)
93- else false)
94- then !(isDefined(N.feeAssetId))
95- else false
96- }
97-
98-
99-func Q (N) = if (if (if ((N.decimals == 0))
100- then (N.quantity == 1)
101- else false)
102- then !(N.reissuable)
103- else false)
104- then (B >= N.fee)
105- else false
106-
107-
108-@Callable(R)
109-func init (v,z,A,B) = if ((R.caller != this))
73+@Callable(G)
74+func init (v,w) = if ((G.caller != this))
11075 then throw("Permission denied")
111- else [StringEntry(r, v), StringEntry(s, z), IntegerEntry(t, A), IntegerEntry(u, B)]
76+ else [StringEntry(r, v), IntegerEntry(s, w)]
11277
11378
11479
115-@Callable(R)
116-func registerNameToken (l) = if ((R.caller != this))
117- then throw("Permission denied")
118- else {
119- let E = {
120- let J = assetInfo(fromBase58String(l))
121- if ($isInstanceOf(J, "Asset"))
122- then {
123- let S = J
124- S
125- }
126- else throw("Can't find asset")
127- }
128- let T = if ((lastIndexOf(E.name, "~") == 15))
129- then 15
130- else 16
131- if ((E.issuer != this))
132- then throw("Name token is not issued by the Registrar")
133- else if ((take(E.name, T) != take(E.description, T)))
134- then throw("Trimmed and full names do not match")
135- else if (G(l))
136- then throw("Token already in use")
137- else if (if (H(E.description))
138- then !(I(E.description))
139- else false)
140- then throw("Name already in use")
141- else [StringEntry(m(E.description), l), StringEntry(k(l), E.description), IntegerEntry(p(E.description), lastBlock.timestamp), IntegerEntry(o(E.description), (lastBlock.timestamp + A))]
142- }
143-
144-
145-
146-@Callable(R)
80+@Callable(G)
14781 func registerOwnership (h) = {
148- let U = R.caller
149- let V = toString(U)
150- let W = {
151- let J = invoke(z, "getWinnerInfo", [h], nil)
152- if ($isInstanceOf(J, "(Int, String, String)"))
82+ let H = G.caller
83+ let I = toString(H)
84+ let J = {
85+ let F = invoke(v, "getWinnerInfo", [h], nil)
86+ if ($isInstanceOf(F, "(Int, String, String)"))
15387 then {
154- let X = J
155- X
88+ let K = F
89+ K
15690 }
15791 else throw("Unexpected getWinnerInfo result")
15892 }
159- let Y = W._1
160- let Z = W._2
161- let aa = W._3
162- if ((V != Z))
163- then throw(((("Winner address " + Z) + "doesn't match with caller address") + V))
164- else if (if (H(h))
165- then !(I(h))
93+ let L = J._1
94+ let M = J._2
95+ let N = J._3
96+ if ((I != M))
97+ then throw(((("Winner address " + M) + "doesn't match with caller address") + I))
98+ else if (if (D(h))
99+ then !(E(h))
166100 else false)
167101 then throw("Name already in use")
168102 else {
169- let ab = invoke(z, "finalizeOrigin", [h], nil)
170- let ac = Issue(if ((size(h) > 16))
103+ let O = invoke(v, "finalizeOrigin", [h], nil)
104+ let P = Issue(if ((size(h) > 16))
171105 then (take(h, 15) + "~")
172106 else take(h, 16), h, 1, 0, false)
173- let l = calculateAssetId(ac)
174- let ad = toUtf8String(l)
175- let ae = [ac, StringEntry(m(h), ad), StringEntry(k(ad), h), IntegerEntry(p(h), lastBlock.timestamp), IntegerEntry(o(h), (lastBlock.timestamp + A))]
176- let af = [StringEntry(n(h), V), ScriptTransfer(U, 1, l)]
177- (ae ++ af)
107+ let l = calculateAssetId(P)
108+ let Q = toUtf8String(l)
109+ let R = [P, StringEntry(m(h), Q), StringEntry(k(Q), h), IntegerEntry(p(h), lastBlock.timestamp), IntegerEntry(o(h), (lastBlock.timestamp + w))]
110+ let S = [StringEntry(n(h), I), ScriptTransfer(H, 1, l)]
111+ (R ++ S)
178112 }
179113 }
180114
181115
182116
183-@Callable(R)
117+@Callable(G)
184118 func approveOwnership (h) = {
185- let U = R.caller
186- let V = toString(U)
187- let F = valueOrErrorMessage(getString(this, n(h)), "Owner is not defined")
188- let ad = valueOrErrorMessage(getString(this, m(h)), "No token is issued for this name")
189- let l = fromBase58String(ad)
190- let E = {
191- let J = assetInfo(l)
192- if ($isInstanceOf(J, "Asset"))
119+ let H = G.caller
120+ let I = toString(H)
121+ let B = valueOrErrorMessage(getString(this, n(h)), "Owner is not defined")
122+ let Q = valueOrErrorMessage(getString(this, m(h)), "No token is issued for this name")
123+ let l = fromBase58String(Q)
124+ let A = {
125+ let F = assetInfo(l)
126+ if ($isInstanceOf(F, "Asset"))
193127 then {
194- let ag = J
195- ag
128+ let T = F
129+ T
196130 }
197131 else throw("Can't find asset")
198132 }
199- if ((V == F))
133+ if ((I == B))
200134 then throw("You already own this name")
201- else if (!(H(h)))
135+ else if (!(D(h)))
202136 then throw("Name is not registered")
203- else if (I(h))
137+ else if (E(h))
204138 then throw("The period of ownership has expired")
205- else if ((assetBalance(U, l) == 0))
139+ else if ((assetBalance(H, l) == 0))
206140 then throw("You don't have a named token")
207- else [StringEntry(n(h), V)]
141+ else [StringEntry(n(h), I)]
208142 }
209143
210-
211-@Verifier(N)
212-func ah () = {
213- let J = N
214- if ($isInstanceOf(J, "InvokeScriptTransaction"))
215- then {
216- let ai = J
217- let aj = if (if (K(N.proofs))
218- then M(ai)
219- else false)
220- then $Tuple2(N.proofs[1], v)
221- else $Tuple2(N.proofs[0], N.senderPublicKey)
222- let ak = aj._1
223- let al = aj._2
224- sigVerify_8Kb(N.bodyBytes, ak, al)
225- }
226- else if ($isInstanceOf(J, "IssueTransaction"))
227- then {
228- let am = J
229- let an = if (if (K(N.proofs))
230- then Q(am)
231- else false)
232- then $Tuple2(N.proofs[1], v)
233- else $Tuple2(N.proofs[0], N.senderPublicKey)
234- let ak = an._1
235- let al = an._2
236- sigVerify_8Kb(N.bodyBytes, ak, al)
237- }
238- else {
239- let ao = J
240- sigVerify_32Kb(N.bodyBytes, N.proofs[0], N.senderPublicKey)
241- }
242- }
243144

github/deemru/w8io/873ac7e 
186.74 ms