tx · G2gVFJYeg3RqNJYpFVcU5JnUKAigQ3bgxRMtaV8V9cyY

3PMSUpFkaCwVobF57gkNgQMtpz9hnRMaY3G:  -0.00900000 Waves

2023.03.07 21:45 [3545539] smart account 3PMSUpFkaCwVobF57gkNgQMtpz9hnRMaY3G > SELF 0.00000000 Waves

{ "type": 13, "id": "G2gVFJYeg3RqNJYpFVcU5JnUKAigQ3bgxRMtaV8V9cyY", "fee": 900000, "feeAssetId": null, "timestamp": 1678214643910, "version": 2, "chainId": 87, "sender": "3PMSUpFkaCwVobF57gkNgQMtpz9hnRMaY3G", "senderPublicKey": "24RfWVqC3utDSKA5GoSKJCJo5mFErm1aABFhpavJYbpW", "proofs": [ "xVFsdUPdzP1eKkf6nC1h1cTqT7Mf9rxZpRpDs5QdhBXxUoo22wp4ncWD7JZt1eX3vAzM7G1nVZ45P8hEsAaqReN", "2gLZqMWDMFASUbFrnPHVVBDQs27y2Q75AkeanWdBXXqCxtdqVYA11xu2mPmvRsMQJ4ZCCYHoRPqTCoyT7RJXVRSZ" ], "script": "base64:AAIFAAAAAAAAABYIAhIECgIICBIECgIIARIECgIIAhIAAAAADgEAAAAQZ2V0U3RyaW5nT3JUaHJvdwAAAAIAAAAHYWRkcmVzcwAAAANrZXkJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAdhZGRyZXNzBQAAAANrZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAADENhbid0IHJlYWQgJwUAAAADa2V5AgAAAA0nIGF0IGFkZHJlc3MgCQAEJQAAAAEFAAAAB2FkZHJlc3MBAAAAEWdldEludGVnZXJPclRocm93AAAAAgAAAAdhZGRyZXNzAAAAA2tleQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAMQ2FuJ3QgcmVhZCAnBQAAAANrZXkCAAAADScgYXQgYWRkcmVzcyAJAAQlAAAAAQUAAAAHYWRkcmVzcwEAAAATcGFyc2VBZGRyZXNzT3JUaHJvdwAAAAEAAAAMbWF5YmVBZGRyZXNzCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQmAAAAAQUAAAAMbWF5YmVBZGRyZXNzCQABLAAAAAIJAAEsAAAAAgIAAAAaQ2FuJ3QgcGFyc2UgYWRkcmVzcyBmcm9tICcFAAAADG1heWJlQWRkcmVzcwIAAAABJwEAAAAKa2V5X2VudGl0eQAAAAMAAAAEbmFtZQAAAAJwawAAAAhwcm9wZXJ0eQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARuYW1lAgAAAAFfBQAAAAJwawIAAAABXwUAAAAIcHJvcGVydHkBAAAADmtleV9OYW1lX3Rva2VuAAAAAQAAAARuYW1lCQEAAAAKa2V5X2VudGl0eQAAAAMCAAAABE5hbWUFAAAABG5hbWUCAAAABXRva2VuAAAAABFrZXlfbWVlZHVzQWRkcmVzcwIAAAANbWVlZHVzQWRkcmVzcwAAAAAUa2V5X3JlZ2lzdHJhckFkZHJlc3MCAAAAEHJlZ2lzdHJhckFkZHJlc3MAAAAAEWtleV9wdXp6bGVBZGRyZXNzAgAAAA1wdXp6bGVBZGRyZXNzAAAAAA1tZWVkdXNBZGRyZXNzCQEAAAAQZ2V0U3RyaW5nT3JUaHJvdwAAAAIFAAAABHRoaXMFAAAAEWtleV9tZWVkdXNBZGRyZXNzAAAAAAZtZWVkdXMJAQAAABNwYXJzZUFkZHJlc3NPclRocm93AAAAAQUAAAANbWVlZHVzQWRkcmVzcwAAAAANcHV6emxlQWRkcmVzcwkBAAAAEGdldFN0cmluZ09yVGhyb3cAAAACBQAAAAR0aGlzBQAAABFrZXlfcHV6emxlQWRkcmVzcwAAAAAGcHV6emxlCQEAAAATcGFyc2VBZGRyZXNzT3JUaHJvdwAAAAEFAAAADXB1enpsZUFkZHJlc3MAAAAAEHJlZ2lzdHJhckFkZHJlc3MJAQAAABBnZXRTdHJpbmdPclRocm93AAAAAgUAAAAEdGhpcwUAAAAUa2V5X3JlZ2lzdHJhckFkZHJlc3MAAAAACXJlZ2lzdHJhcgkBAAAAE3BhcnNlQWRkcmVzc09yVGhyb3cAAAABBQAAABByZWdpc3RyYXJBZGRyZXNzAAAABAAAAANpbnYBAAAABGluaXQAAAACAAAADW1lZWR1c0FkZHJlc3MAAAAQcmVnaXN0cmFyQWRkcmVzcwMJAQAAAAIhPQAAAAIIBQAAAANpbnYAAAAGY2FsbGVyBQAAAAR0aGlzCQAAAgAAAAECAAAAG09ubHkgc2VsZiBjYWxscyBhcmUgYWxsb3dlZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABFrZXlfbWVlZHVzQWRkcmVzcwUAAAANbWVlZHVzQWRkcmVzcwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABRrZXlfcmVnaXN0cmFyQWRkcmVzcwUAAAAQcmVnaXN0cmFyQWRkcmVzcwUAAAADbmlsAAAAA2ludgEAAAAHcmVzZXJ2ZQAAAAIAAAAEbmFtZQAAAA1pbml0VGltZXN0YW1wBAAAAAZjYWxsZXIIBQAAAANpbnYAAAAGY2FsbGVyBAAAAAljYWxsZXJTdHIJAAQlAAAAAQUAAAAGY2FsbGVyAwkBAAAAAiE9AAAAAgUAAAAEdGhpcwUAAAAGY2FsbGVyCQAAAgAAAAECAAAAG09ubHkgc2VsZiBjYWxscyBhcmUgYWxsb3dlZAQAAAALcmVz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", "height": 3545539, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3mWcGnJ3aCzp2G2XAFqr6j6oToAnhcrgDb9txwMeX1oR Next: none Diff:
OldNewDifferences
2020
2121 let m = "registrarAddress"
2222
23-let n = a(this, l)
23+let n = "puzzleAddress"
2424
25-let o = e(n)
25+let o = a(this, l)
2626
27-let p = a(this, m)
27+let p = e(o)
2828
29-let q = e(p)
29+let q = a(this, n)
3030
31-@Callable(r)
32-func init (n,p) = if ((r.caller != this))
31+let r = e(q)
32+
33+let s = a(this, m)
34+
35+let t = e(s)
36+
37+@Callable(u)
38+func init (o,s) = if ((u.caller != this))
3339 then throw("Only self calls are allowed")
34- else [StringEntry(l, n), StringEntry(m, p)]
40+ else [StringEntry(l, o), StringEntry(m, s)]
3541
3642
3743
38-@Callable(r)
39-func reserve (h,s) = {
40- let t = r.caller
41- let u = toString(t)
42- if ((this != t))
44+@Callable(u)
45+func reserve (h,v) = {
46+ let w = u.caller
47+ let x = toString(w)
48+ if ((this != w))
4349 then throw("Only self calls are allowed")
4450 else {
45- let v = invoke(q, "register", [h, u, s], nil)
46- if ((v == v))
51+ let y = invoke(t, "register", [h, x, v], nil)
52+ if ((y == y))
4753 then nil
4854 else throw("Strict value is not equal to itself.")
4955 }
5157
5258
5359
54-@Callable(r)
55-func transfer (w,x) = if ((r.caller != this))
60+@Callable(u)
61+func transfer (z,A) = if ((u.caller != this))
5662 then throw("Only self calls are allowed")
5763 else {
58- let b = e(w)
59-[ScriptTransfer(b, 1, x)]
64+ let b = e(z)
65+[ScriptTransfer(b, 1, A)]
6066 }
6167
6268
6369
64-@Callable(r)
70+@Callable(u)
6571 func exchange () = {
66- let t = r.originCaller
67- let u = toString(t)
68- let y = r.payments[0]
69- let z = valueOrErrorMessage(y.assetId, "Asset cannot be WAVES")
70- let x = valueOrErrorMessage(assetInfo(z), "Invalid asset")
71- let A = if (if (if ((x.issuer == o))
72- then (x.quantity == 1)
72+ let w = u.originCaller
73+ let x = toString(w)
74+ let B = u.payments[0]
75+ let C = valueOrErrorMessage(B.assetId, "Asset cannot be WAVES")
76+ let D = toBase58String(C)
77+ let A = valueOrErrorMessage(assetInfo(C), "Invalid asset")
78+ let E = valueOrElse(getString(r, (("nft_" + D) + "_issuer")), "~")
79+ let F = valueOrElse(getString(p, A.name), "~")
80+ let G = if (if (if (if (if ((A.issuer == r))
81+ then (A.quantity == 1)
7382 else false)
74- then (x.decimals == 0)
83+ then (A.decimals == 0)
7584 else false)
76- then (x.reissuable == false)
85+ then (A.reissuable == false)
86+ else false)
87+ then (E == o)
88+ else false)
89+ then (F == D)
7790 else false
78- if (if ((y.amount != 1))
91+ if (if ((B.amount != 1))
7992 then true
80- else !(A))
93+ else !(G))
8194 then throw("Payment should contain Meedus NFT")
82- else if ((5 > size(x.name)))
95+ else if ((5 > size(A.name)))
8396 then throw("You cannot exchange names that are less than 5 chars long")
8497 else {
85- let B = a(q, k(x.name))
86- let C = fromBase58String(B)
87- let D = invoke(this, "transfer", [u, C], nil)
88- if ((D == D))
98+ let H = a(t, k(A.name))
99+ let I = fromBase58String(H)
100+ let J = invoke(this, "transfer", [x, I], nil)
101+ if ((J == J))
89102 then {
90- let E = invoke(q, "reclaim", [x.name], nil)
91- if ((E == E))
103+ let K = invoke(t, "reclaim", [A.name], nil)
104+ if ((K == K))
92105 then nil
93106 else throw("Strict value is not equal to itself.")
94107 }
97110 }
98111
99112
100-@Verifier(F)
101-func G () = {
102- let H = addressFromString(valueOrElse(getString(this, "Oracle"), ""))
103- let I = if (isDefined(H))
104- then getString(value(H), "AdminKeys")
113+@Verifier(L)
114+func M () = {
115+ let N = addressFromString(valueOrElse(getString(this, "Oracle"), ""))
116+ let O = if (isDefined(N))
117+ then getString(value(N), "AdminKeys")
105118 else unit
106- let J = I
107- if ($isInstanceOf(J, "String"))
119+ let P = O
120+ if ($isInstanceOf(P, "String"))
108121 then {
109- let K = J
110- let L = {
111- let M = split(K, ",")
112-[fromBase58String(M[0]), fromBase58String(M[1]), fromBase58String(M[2])]
122+ let Q = P
123+ let R = {
124+ let S = split(Q, ",")
125+[fromBase58String(S[0]), fromBase58String(S[1]), fromBase58String(S[2])]
113126 }
114- func N (O) = if (sigVerify(F.bodyBytes, O, L[0]))
127+ func T (U) = if (sigVerify(L.bodyBytes, U, R[0]))
115128 then 1
116- else if (sigVerify(F.bodyBytes, O, L[1]))
129+ else if (sigVerify(L.bodyBytes, U, R[1]))
117130 then 10
118- else if (sigVerify(F.bodyBytes, O, L[2]))
131+ else if (sigVerify(L.bodyBytes, U, R[2]))
119132 then 100
120133 else 0
121134
122- containsElement([110, 101, 11], (N(F.proofs[0]) + N(F.proofs[1])))
135+ containsElement([110, 101, 11], (T(L.proofs[0]) + T(L.proofs[1])))
123136 }
124- else sigVerify(F.bodyBytes, F.proofs[0], F.senderPublicKey)
137+ else sigVerify(L.bodyBytes, L.proofs[0], L.senderPublicKey)
125138 }
126139
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 (h) = g("Name", h, "token")
1717
1818
1919 let l = "meedusAddress"
2020
2121 let m = "registrarAddress"
2222
23-let n = a(this, l)
23+let n = "puzzleAddress"
2424
25-let o = e(n)
25+let o = a(this, l)
2626
27-let p = a(this, m)
27+let p = e(o)
2828
29-let q = e(p)
29+let q = a(this, n)
3030
31-@Callable(r)
32-func init (n,p) = if ((r.caller != this))
31+let r = e(q)
32+
33+let s = a(this, m)
34+
35+let t = e(s)
36+
37+@Callable(u)
38+func init (o,s) = if ((u.caller != this))
3339 then throw("Only self calls are allowed")
34- else [StringEntry(l, n), StringEntry(m, p)]
40+ else [StringEntry(l, o), StringEntry(m, s)]
3541
3642
3743
38-@Callable(r)
39-func reserve (h,s) = {
40- let t = r.caller
41- let u = toString(t)
42- if ((this != t))
44+@Callable(u)
45+func reserve (h,v) = {
46+ let w = u.caller
47+ let x = toString(w)
48+ if ((this != w))
4349 then throw("Only self calls are allowed")
4450 else {
45- let v = invoke(q, "register", [h, u, s], nil)
46- if ((v == v))
51+ let y = invoke(t, "register", [h, x, v], nil)
52+ if ((y == y))
4753 then nil
4854 else throw("Strict value is not equal to itself.")
4955 }
5056 }
5157
5258
5359
54-@Callable(r)
55-func transfer (w,x) = if ((r.caller != this))
60+@Callable(u)
61+func transfer (z,A) = if ((u.caller != this))
5662 then throw("Only self calls are allowed")
5763 else {
58- let b = e(w)
59-[ScriptTransfer(b, 1, x)]
64+ let b = e(z)
65+[ScriptTransfer(b, 1, A)]
6066 }
6167
6268
6369
64-@Callable(r)
70+@Callable(u)
6571 func exchange () = {
66- let t = r.originCaller
67- let u = toString(t)
68- let y = r.payments[0]
69- let z = valueOrErrorMessage(y.assetId, "Asset cannot be WAVES")
70- let x = valueOrErrorMessage(assetInfo(z), "Invalid asset")
71- let A = if (if (if ((x.issuer == o))
72- then (x.quantity == 1)
72+ let w = u.originCaller
73+ let x = toString(w)
74+ let B = u.payments[0]
75+ let C = valueOrErrorMessage(B.assetId, "Asset cannot be WAVES")
76+ let D = toBase58String(C)
77+ let A = valueOrErrorMessage(assetInfo(C), "Invalid asset")
78+ let E = valueOrElse(getString(r, (("nft_" + D) + "_issuer")), "~")
79+ let F = valueOrElse(getString(p, A.name), "~")
80+ let G = if (if (if (if (if ((A.issuer == r))
81+ then (A.quantity == 1)
7382 else false)
74- then (x.decimals == 0)
83+ then (A.decimals == 0)
7584 else false)
76- then (x.reissuable == false)
85+ then (A.reissuable == false)
86+ else false)
87+ then (E == o)
88+ else false)
89+ then (F == D)
7790 else false
78- if (if ((y.amount != 1))
91+ if (if ((B.amount != 1))
7992 then true
80- else !(A))
93+ else !(G))
8194 then throw("Payment should contain Meedus NFT")
82- else if ((5 > size(x.name)))
95+ else if ((5 > size(A.name)))
8396 then throw("You cannot exchange names that are less than 5 chars long")
8497 else {
85- let B = a(q, k(x.name))
86- let C = fromBase58String(B)
87- let D = invoke(this, "transfer", [u, C], nil)
88- if ((D == D))
98+ let H = a(t, k(A.name))
99+ let I = fromBase58String(H)
100+ let J = invoke(this, "transfer", [x, I], nil)
101+ if ((J == J))
89102 then {
90- let E = invoke(q, "reclaim", [x.name], nil)
91- if ((E == E))
103+ let K = invoke(t, "reclaim", [A.name], nil)
104+ if ((K == K))
92105 then nil
93106 else throw("Strict value is not equal to itself.")
94107 }
95108 else throw("Strict value is not equal to itself.")
96109 }
97110 }
98111
99112
100-@Verifier(F)
101-func G () = {
102- let H = addressFromString(valueOrElse(getString(this, "Oracle"), ""))
103- let I = if (isDefined(H))
104- then getString(value(H), "AdminKeys")
113+@Verifier(L)
114+func M () = {
115+ let N = addressFromString(valueOrElse(getString(this, "Oracle"), ""))
116+ let O = if (isDefined(N))
117+ then getString(value(N), "AdminKeys")
105118 else unit
106- let J = I
107- if ($isInstanceOf(J, "String"))
119+ let P = O
120+ if ($isInstanceOf(P, "String"))
108121 then {
109- let K = J
110- let L = {
111- let M = split(K, ",")
112-[fromBase58String(M[0]), fromBase58String(M[1]), fromBase58String(M[2])]
122+ let Q = P
123+ let R = {
124+ let S = split(Q, ",")
125+[fromBase58String(S[0]), fromBase58String(S[1]), fromBase58String(S[2])]
113126 }
114- func N (O) = if (sigVerify(F.bodyBytes, O, L[0]))
127+ func T (U) = if (sigVerify(L.bodyBytes, U, R[0]))
115128 then 1
116- else if (sigVerify(F.bodyBytes, O, L[1]))
129+ else if (sigVerify(L.bodyBytes, U, R[1]))
117130 then 10
118- else if (sigVerify(F.bodyBytes, O, L[2]))
131+ else if (sigVerify(L.bodyBytes, U, R[2]))
119132 then 100
120133 else 0
121134
122- containsElement([110, 101, 11], (N(F.proofs[0]) + N(F.proofs[1])))
135+ containsElement([110, 101, 11], (T(L.proofs[0]) + T(L.proofs[1])))
123136 }
124- else sigVerify(F.bodyBytes, F.proofs[0], F.senderPublicKey)
137+ else sigVerify(L.bodyBytes, L.proofs[0], L.senderPublicKey)
125138 }
126139

github/deemru/w8io/3ef1775 
57.48 ms