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:
Old | New | | Differences |
---|
20 | 20 | | |
---|
21 | 21 | | let m = "registrarAddress" |
---|
22 | 22 | | |
---|
23 | | - | let n = a(this, l) |
---|
| 23 | + | let n = "puzzleAddress" |
---|
24 | 24 | | |
---|
25 | | - | let o = e(n) |
---|
| 25 | + | let o = a(this, l) |
---|
26 | 26 | | |
---|
27 | | - | let p = a(this, m) |
---|
| 27 | + | let p = e(o) |
---|
28 | 28 | | |
---|
29 | | - | let q = e(p) |
---|
| 29 | + | let q = a(this, n) |
---|
30 | 30 | | |
---|
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)) |
---|
33 | 39 | | then throw("Only self calls are allowed") |
---|
34 | | - | else [StringEntry(l, n), StringEntry(m, p)] |
---|
| 40 | + | else [StringEntry(l, o), StringEntry(m, s)] |
---|
35 | 41 | | |
---|
36 | 42 | | |
---|
37 | 43 | | |
---|
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)) |
---|
43 | 49 | | then throw("Only self calls are allowed") |
---|
44 | 50 | | 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)) |
---|
47 | 53 | | then nil |
---|
48 | 54 | | else throw("Strict value is not equal to itself.") |
---|
49 | 55 | | } |
---|
|
51 | 57 | | |
---|
52 | 58 | | |
---|
53 | 59 | | |
---|
54 | | - | @Callable(r) |
---|
55 | | - | func transfer (w,x) = if ((r.caller != this)) |
---|
| 60 | + | @Callable(u) |
---|
| 61 | + | func transfer (z,A) = if ((u.caller != this)) |
---|
56 | 62 | | then throw("Only self calls are allowed") |
---|
57 | 63 | | else { |
---|
58 | | - | let b = e(w) |
---|
59 | | - | [ScriptTransfer(b, 1, x)] |
---|
| 64 | + | let b = e(z) |
---|
| 65 | + | [ScriptTransfer(b, 1, A)] |
---|
60 | 66 | | } |
---|
61 | 67 | | |
---|
62 | 68 | | |
---|
63 | 69 | | |
---|
64 | | - | @Callable(r) |
---|
| 70 | + | @Callable(u) |
---|
65 | 71 | | 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) |
---|
73 | 82 | | else false) |
---|
74 | | - | then (x.decimals == 0) |
---|
| 83 | + | then (A.decimals == 0) |
---|
75 | 84 | | 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) |
---|
77 | 90 | | else false |
---|
78 | | - | if (if ((y.amount != 1)) |
---|
| 91 | + | if (if ((B.amount != 1)) |
---|
79 | 92 | | then true |
---|
80 | | - | else !(A)) |
---|
| 93 | + | else !(G)) |
---|
81 | 94 | | then throw("Payment should contain Meedus NFT") |
---|
82 | | - | else if ((5 > size(x.name))) |
---|
| 95 | + | else if ((5 > size(A.name))) |
---|
83 | 96 | | then throw("You cannot exchange names that are less than 5 chars long") |
---|
84 | 97 | | 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)) |
---|
89 | 102 | | 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)) |
---|
92 | 105 | | then nil |
---|
93 | 106 | | else throw("Strict value is not equal to itself.") |
---|
94 | 107 | | } |
---|
|
97 | 110 | | } |
---|
98 | 111 | | |
---|
99 | 112 | | |
---|
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") |
---|
105 | 118 | | else unit |
---|
106 | | - | let J = I |
---|
107 | | - | if ($isInstanceOf(J, "String")) |
---|
| 119 | + | let P = O |
---|
| 120 | + | if ($isInstanceOf(P, "String")) |
---|
108 | 121 | | 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])] |
---|
113 | 126 | | } |
---|
114 | | - | func N (O) = if (sigVerify(F.bodyBytes, O, L[0])) |
---|
| 127 | + | func T (U) = if (sigVerify(L.bodyBytes, U, R[0])) |
---|
115 | 128 | | then 1 |
---|
116 | | - | else if (sigVerify(F.bodyBytes, O, L[1])) |
---|
| 129 | + | else if (sigVerify(L.bodyBytes, U, R[1])) |
---|
117 | 130 | | then 10 |
---|
118 | | - | else if (sigVerify(F.bodyBytes, O, L[2])) |
---|
| 131 | + | else if (sigVerify(L.bodyBytes, U, R[2])) |
---|
119 | 132 | | then 100 |
---|
120 | 133 | | else 0 |
---|
121 | 134 | | |
---|
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]))) |
---|
123 | 136 | | } |
---|
124 | | - | else sigVerify(F.bodyBytes, F.proofs[0], F.senderPublicKey) |
---|
| 137 | + | else sigVerify(L.bodyBytes, L.proofs[0], L.senderPublicKey) |
---|
125 | 138 | | } |
---|
126 | 139 | | |
---|
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 5 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | 4 | | func a (b,c) = valueOrErrorMessage(getString(b, c), ((("Can't read '" + c) + "' at address ") + toString(b))) |
---|
5 | 5 | | |
---|
6 | 6 | | |
---|
7 | 7 | | func d (b,c) = valueOrErrorMessage(getInteger(b, c), ((("Can't read '" + c) + "' at address ") + toString(b))) |
---|
8 | 8 | | |
---|
9 | 9 | | |
---|
10 | 10 | | func e (f) = valueOrErrorMessage(addressFromString(f), (("Can't parse address from '" + f) + "'")) |
---|
11 | 11 | | |
---|
12 | 12 | | |
---|
13 | 13 | | func g (h,i,j) = ((((h + "_") + i) + "_") + j) |
---|
14 | 14 | | |
---|
15 | 15 | | |
---|
16 | 16 | | func k (h) = g("Name", h, "token") |
---|
17 | 17 | | |
---|
18 | 18 | | |
---|
19 | 19 | | let l = "meedusAddress" |
---|
20 | 20 | | |
---|
21 | 21 | | let m = "registrarAddress" |
---|
22 | 22 | | |
---|
23 | | - | let n = a(this, l) |
---|
| 23 | + | let n = "puzzleAddress" |
---|
24 | 24 | | |
---|
25 | | - | let o = e(n) |
---|
| 25 | + | let o = a(this, l) |
---|
26 | 26 | | |
---|
27 | | - | let p = a(this, m) |
---|
| 27 | + | let p = e(o) |
---|
28 | 28 | | |
---|
29 | | - | let q = e(p) |
---|
| 29 | + | let q = a(this, n) |
---|
30 | 30 | | |
---|
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)) |
---|
33 | 39 | | then throw("Only self calls are allowed") |
---|
34 | | - | else [StringEntry(l, n), StringEntry(m, p)] |
---|
| 40 | + | else [StringEntry(l, o), StringEntry(m, s)] |
---|
35 | 41 | | |
---|
36 | 42 | | |
---|
37 | 43 | | |
---|
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)) |
---|
43 | 49 | | then throw("Only self calls are allowed") |
---|
44 | 50 | | 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)) |
---|
47 | 53 | | then nil |
---|
48 | 54 | | else throw("Strict value is not equal to itself.") |
---|
49 | 55 | | } |
---|
50 | 56 | | } |
---|
51 | 57 | | |
---|
52 | 58 | | |
---|
53 | 59 | | |
---|
54 | | - | @Callable(r) |
---|
55 | | - | func transfer (w,x) = if ((r.caller != this)) |
---|
| 60 | + | @Callable(u) |
---|
| 61 | + | func transfer (z,A) = if ((u.caller != this)) |
---|
56 | 62 | | then throw("Only self calls are allowed") |
---|
57 | 63 | | else { |
---|
58 | | - | let b = e(w) |
---|
59 | | - | [ScriptTransfer(b, 1, x)] |
---|
| 64 | + | let b = e(z) |
---|
| 65 | + | [ScriptTransfer(b, 1, A)] |
---|
60 | 66 | | } |
---|
61 | 67 | | |
---|
62 | 68 | | |
---|
63 | 69 | | |
---|
64 | | - | @Callable(r) |
---|
| 70 | + | @Callable(u) |
---|
65 | 71 | | 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) |
---|
73 | 82 | | else false) |
---|
74 | | - | then (x.decimals == 0) |
---|
| 83 | + | then (A.decimals == 0) |
---|
75 | 84 | | 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) |
---|
77 | 90 | | else false |
---|
78 | | - | if (if ((y.amount != 1)) |
---|
| 91 | + | if (if ((B.amount != 1)) |
---|
79 | 92 | | then true |
---|
80 | | - | else !(A)) |
---|
| 93 | + | else !(G)) |
---|
81 | 94 | | then throw("Payment should contain Meedus NFT") |
---|
82 | | - | else if ((5 > size(x.name))) |
---|
| 95 | + | else if ((5 > size(A.name))) |
---|
83 | 96 | | then throw("You cannot exchange names that are less than 5 chars long") |
---|
84 | 97 | | 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)) |
---|
89 | 102 | | 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)) |
---|
92 | 105 | | then nil |
---|
93 | 106 | | else throw("Strict value is not equal to itself.") |
---|
94 | 107 | | } |
---|
95 | 108 | | else throw("Strict value is not equal to itself.") |
---|
96 | 109 | | } |
---|
97 | 110 | | } |
---|
98 | 111 | | |
---|
99 | 112 | | |
---|
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") |
---|
105 | 118 | | else unit |
---|
106 | | - | let J = I |
---|
107 | | - | if ($isInstanceOf(J, "String")) |
---|
| 119 | + | let P = O |
---|
| 120 | + | if ($isInstanceOf(P, "String")) |
---|
108 | 121 | | 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])] |
---|
113 | 126 | | } |
---|
114 | | - | func N (O) = if (sigVerify(F.bodyBytes, O, L[0])) |
---|
| 127 | + | func T (U) = if (sigVerify(L.bodyBytes, U, R[0])) |
---|
115 | 128 | | then 1 |
---|
116 | | - | else if (sigVerify(F.bodyBytes, O, L[1])) |
---|
| 129 | + | else if (sigVerify(L.bodyBytes, U, R[1])) |
---|
117 | 130 | | then 10 |
---|
118 | | - | else if (sigVerify(F.bodyBytes, O, L[2])) |
---|
| 131 | + | else if (sigVerify(L.bodyBytes, U, R[2])) |
---|
119 | 132 | | then 100 |
---|
120 | 133 | | else 0 |
---|
121 | 134 | | |
---|
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]))) |
---|
123 | 136 | | } |
---|
124 | | - | else sigVerify(F.bodyBytes, F.proofs[0], F.senderPublicKey) |
---|
| 137 | + | else sigVerify(L.bodyBytes, L.proofs[0], L.senderPublicKey) |
---|
125 | 138 | | } |
---|
126 | 139 | | |
---|