tx · 4v2sTWWE6eWicKiGtzK46j5qao16bktZKRgrVPYToURs 3NA3LRSigk6knLZ16uTzcdLNow2EQZtXTaJ: -0.01400000 Waves 2022.05.18 12:47 [2056937] smart account 3NA3LRSigk6knLZ16uTzcdLNow2EQZtXTaJ > SELF 0.00000000 Waves
{ "type": 13, "id": "4v2sTWWE6eWicKiGtzK46j5qao16bktZKRgrVPYToURs", "fee": 1400000, "feeAssetId": null, "timestamp": 1652867264255, "version": 2, "chainId": 84, "sender": "3NA3LRSigk6knLZ16uTzcdLNow2EQZtXTaJ", "senderPublicKey": "ApEZSyUFWsckB3mZSWm3spfm6UPyDhMdrpxNhydohYs1", "proofs": [ "BSqUw9Hye8rno8F2j6D1zbgc7CZDtrhBKpQBxwETnQj8SZKFz5dibQze3CJqMa6knECp85W6KT2aD5VWtGVzfnv" ], "script": "base64:AAIFAAAAAAAAAAQIAhIAAAAAFwAAAAAJc2VwYXJhdG9yAgAAAAFfAAAAAA1rZXlDaGFyc0NvdW50AgAAAAtjaGFyc19jb3VudAAAAAAIa2V5T3duZXICAAAABW93bmVyAAAAAA1rZXlBcHBlYXJhbmNlAgAAAAphcHBlYXJhbmNlAAAAABNrZXlOYXR1cmFsUHlyb0JvbnVzAgAAABJuYXR1cmFsX3B5cm9fYm9udXMAAAAAE2tleU5hdHVyYWxBcXVhQm9udXMCAAAAEm5hdHVyYWxfYXF1YV9ib251cwAAAAAUa2V5TmF0dXJhbFRlcnJhQm9udXMCAAAAE25hdHVyYWxfdGVycmFfYm9udXMAAAAAE2tleU5hdHVyYWxBZXJvQm9udXMCAAAAEm5hdHVyYWxfYWVyb19ib251cwAAAAAUa2V5TmF0dXJhbExvb3RzQm9udXMCAAAAE25hdHVyYWxfbG9vdHNfYm9udXMAAAAAGWtleU5hdHVyYWxHZW5lcmF0aW5nQm9udXMCAAAAGG5hdHVyYWxfZ2VuZXJhdGluZ19ib251cwAAAAAGZ292QXBwCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzTXl4Znd2YnVlVUJ5bllIZlFzdXROWFpOcU5vekdpTW5zRwAAAAAVa2V5RWNvc3lzdGVtQWRkcmVzc2VzAgAAABNlY29zeXN0ZW1fYWRkcmVzc2VzAAAAABJrZXlDaGFyc0JvZHlBbW91bnQCAAAAEWNoYXJzX2JvZHlfYW1vdW50AAAAABJrZXlDaGFyc0V5ZXNBbW91bnQCAAAAEWNoYXJzX2V5ZXNfYW1vdW50AAAAABNrZXlDaGFyc01vdXRoQW1vdW50AgAAABJjaGFyc19tb3V0aF9hbW91bnQAAAAAGGtleUNoYXJzU3RhdHNUaWVyc1JhbmdlcwIAAAAYY2hhcnNfc3RhdHNfdGllcnNfcmFuZ2VzAAAAAB5rZXlDaGFyc05hdHVyYWxFbGVtQm9udXNSYW5nZXMCAAAAH2NoYXJzX25hdHVyYWxfZWxlbV9ib251c19yYW5nZXMAAAAAH2tleUNoYXJzTmF0dXJhbExvb3RzQm9udXNSYW5nZXMCAAAAIGNoYXJzX25hdHVyYWxfbG9vdHNfYm9udXNfcmFuZ2VzAAAAACRr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AAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAGZ292QXBwBQAAAB9rZXlDaGFyc05hdHVyYWxMb290c0JvbnVzUmFuZ2VzBQAAAAlzZXBhcmF0b3IEAAAAGG5hdEdlbmVyYXRpbmdCb251c1JhbmdlcwkABLUAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAZnb3ZBcHAFAAAAJGtleUNoYXJzTmF0dXJhbEdlbmVyYXRpbmdCb251c1JhbmdlcwUAAAAJc2VwYXJhdG9yBAAAAAphcHBlYXJhbmNlCQAEuQAAAAIJAARMAAAAAgkAAaQAAAABCQEAAAAHcmFuZEludAAAAAQAAAAAAAAAAAEFAAAADGJvZGllc0Ftb3VudAUAAAAEdHhJZAAAAAAAAAAAAAkABEwAAAACCQABpAAAAAEJAQAAAAdyYW5kSW50AAAABAAAAAAAAAAAAQUAAAAKZXllc0Ftb3VudAUAAAAEdHhJZAAAAAAAAAAAAQkABEwAAAACCQABpAAAAAEJAQAAAAdyYW5kSW50AAAABAAAAAAAAAAAAQUAAAAMbW91dGhzQW1vdW50BQAAAAR0eElkAAAAAAAAAAACBQAAAANuaWwFAAAACXNlcGFyYXRvcgQAAAAMbmF0UHlyb0JvbnVzCQEAAAAVZ2VuUmFuZG9tTmF0dXJhbEJvbnVzAAAABAUAAAAQc3RhdHNUaWVyc1JhbmdlcwUAAAASbmF0RWxlbUJvbnVzUmFuZ2VzAAAAAAAAAAADBQAAAAR0eElkBAAAAAxuYXRBcXVhQm9udXMJAQAAABVnZW5SYW5kb21OYXR1cmFsQm9udXMAAAAEBQAAABBzdGF0c1RpZXJzUmFuZ2VzBQAAABJuYXRFbGVtQm9udXNSYW5nZXMAAAAAAAAAAAoFAAAABHR4SWQEAAAADW5hdFRlcnJhQm9udXMJAQAAABVnZW5SYW5kb21OYXR1cmFsQm9udXMAAAAEBQAAABBzdGF0c1RpZXJzUmFuZ2VzBQAAABJuYXRFbGVtQm9udXNSYW5nZXMAAAAAAAAAABEFAAAABHR4SWQEAAAADG5hdEFlcm9Cb251cwkBAAAAFWdlblJhbmRvbU5hdHVyYWxCb251cwAAAAQFAAAAEHN0YXRzVGllcnNSYW5nZXMFAAAAEm5hdEVsZW1Cb251c1JhbmdlcwAAAAAAAAAAGAUAAAAEdHhJZAQAAAASbmF0R2VuZXJhdGluZ0JvbnVzCQEAAAAVZ2VuUmFuZG9tTmF0dXJhbEJvbnVzAAAABAUAAAAQc3RhdHNUaWVyc1JhbmdlcwUAAAAYbmF0R2VuZXJhdGluZ0JvbnVzUmFuZ2VzAAAAAAAAAAAfBQAAAAR0eElkBAAAAA1uYXRMb290c0JvbnVzCQEAAAAVZ2VuUmFuZG9tTmF0dXJhbEJvbnVzAAAABAUAAAAQc3RhdHNUaWVyc1JhbmdlcwUAAAATbmF0TG9vdHNCb251c1JhbmdlcwAAAAAAAAAAJgUAAAAEdHhJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAACGtleU93bmVyBQAAAAZjaGFySWQFAAAACmNhbGxlckFkZHIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAAA1rZXlBcHBlYXJhbmNlBQAAAAZjaGFySWQFAAAACmFwcGVhcmFuY2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAATa2V5TmF0dXJhbFB5cm9Cb251cwUAAAAGY2hhcklkBQAAAAxuYXRQeXJvQm9udXMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAATa2V5TmF0dXJhbEFxdWFCb251cwUAAAAGY2hhcklkBQAAAAxuYXRBcXVhQm9udXMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAUa2V5TmF0dXJhbFRlcnJhQm9udXMFAAAABmNoYXJJZAUAAAANbmF0VGVycmFCb251cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABNrZXlOYXR1cmFsQWVyb0JvbnVzBQAAAAZjaGFySWQFAAAADG5hdEFlcm9Cb251cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABRrZXlOYXR1cmFsTG9vdHNCb251cwUAAAAGY2hhcklkBQAAAA1uYXRMb290c0JvbnVzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAGWtleU5hdHVyYWxHZW5lcmF0aW5nQm9udXMFAAAABmNoYXJJZAUAAAASbmF0R2VuZXJhdGluZ0JvbnVzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA1rZXlDaGFyc0NvdW50CQAAZAAAAAIFAAAABmNoYXJJZAAAAAAAAAAAAQUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXk8kZDQ", "height": 2056937, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: E1wS6nSTx4FKYUCbv3JNMwYumLTuNcgLWbm6nr4HwkMo Next: EH6F1nYWZQHZZXjnwRsM9abBC79iw7zqgFtdv48bLezg Diff:
Old | New | Differences | |
---|---|---|---|
9 | 9 | ||
10 | 10 | let d = "appearance" | |
11 | 11 | ||
12 | - | let e = "pyro_bonus" | |
12 | + | let e = "natural_pyro_bonus" | |
13 | 13 | ||
14 | - | let f = "aqua_bonus" | |
14 | + | let f = "natural_aqua_bonus" | |
15 | 15 | ||
16 | - | let g = "terra_bonus" | |
16 | + | let g = "natural_terra_bonus" | |
17 | 17 | ||
18 | - | let h = "aero_bonus" | |
18 | + | let h = "natural_aero_bonus" | |
19 | 19 | ||
20 | - | let i = "loots_bonus" | |
20 | + | let i = "natural_loots_bonus" | |
21 | 21 | ||
22 | - | let j = "generating_bonus" | |
22 | + | let j = "natural_generating_bonus" | |
23 | 23 | ||
24 | 24 | let k = addressFromStringValue("3MyxfwvbueUBynYHfQsutNXZNqNozGiMnsG") | |
25 | 25 | ||
26 | 26 | let l = "ecosystem_addresses" | |
27 | 27 | ||
28 | - | let m = "chars_ | |
28 | + | let m = "chars_body_amount" | |
29 | 29 | ||
30 | 30 | let n = "chars_eyes_amount" | |
31 | 31 | ||
32 | - | let o = "chars_ | |
32 | + | let o = "chars_mouth_amount" | |
33 | 33 | ||
34 | 34 | let p = "chars_stats_tiers_ranges" | |
35 | 35 | ||
45 | 45 | let v = getStringValue(k, l) | |
46 | 46 | if ((contains(v, toString(u)) != false)) | |
47 | 47 | then throw("Access denied") | |
48 | - | else | |
48 | + | else true | |
49 | 49 | } | |
50 | 50 | ||
51 | 51 | ||
52 | - | func w (x,y,z,A) = { | |
53 | - | let B = value(sha256_16Kb(((value(value(blockInfoByHeight(height)).vrf) + z) + toBytes(A)))) | |
54 | - | value(((value(toInt(B)) % ((y - x) + 1)) + x)) | |
52 | + | func w (x,y) = { | |
53 | + | let z = { | |
54 | + | let A = y | |
55 | + | if ($isInstanceOf(A, "Int")) | |
56 | + | then { | |
57 | + | let B = A | |
58 | + | toString(B) | |
59 | + | } | |
60 | + | else if ($isInstanceOf(A, "String")) | |
61 | + | then { | |
62 | + | let C = A | |
63 | + | C | |
64 | + | } | |
65 | + | else throw("Matching issue in with function") | |
66 | + | } | |
67 | + | ((z + a) + x) | |
55 | 68 | } | |
56 | 69 | ||
57 | 70 | ||
58 | - | func C (D,E) = ((toString(E) + a) + D) | |
71 | + | func D (E,F,G,H) = { | |
72 | + | let I = value(sha256_16Kb(((value(value(blockInfoByHeight(height)).vrf) + G) + toBytes(H)))) | |
73 | + | value(((value(toInt(I)) % ((F - E) + 1)) + E)) | |
74 | + | } | |
59 | 75 | ||
60 | 76 | ||
61 | - | func | |
62 | - | let | |
63 | - | let | |
64 | - | let | |
65 | - | let | |
66 | - | let | |
67 | - | let | |
68 | - | let | |
69 | - | let | |
70 | - | let | |
71 | - | let | |
72 | - | let | |
73 | - | let | |
74 | - | let | |
75 | - | if (if (( | |
76 | - | then ( | |
77 | + | func J (K,L,M,G) = { | |
78 | + | let N = parseIntValue(K[0]) | |
79 | + | let O = parseIntValue(K[1]) | |
80 | + | let P = parseIntValue(K[2]) | |
81 | + | let Q = parseIntValue(K[3]) | |
82 | + | let R = parseIntValue(K[4]) | |
83 | + | let S = parseIntValue(K[5]) | |
84 | + | let T = parseIntValue(L[0]) | |
85 | + | let U = parseIntValue(L[1]) | |
86 | + | let V = parseIntValue(L[2]) | |
87 | + | let W = parseIntValue(L[3]) | |
88 | + | let X = parseIntValue(L[4]) | |
89 | + | let Y = parseIntValue(L[5]) | |
90 | + | let Z = D(0, 10000, G, M) | |
91 | + | if (if ((Z >= 0)) | |
92 | + | then (N >= Z) | |
77 | 93 | else false) | |
78 | - | then | |
79 | - | else if (if (( | |
80 | - | then ( | |
94 | + | then D(0, T, G, (M + 1)) | |
95 | + | else if (if ((Z > N)) | |
96 | + | then (O >= Z) | |
81 | 97 | else false) | |
82 | - | then | |
83 | - | else if (if (( | |
84 | - | then ( | |
98 | + | then D((T + 1), U, G, (M + 2)) | |
99 | + | else if (if ((Z > O)) | |
100 | + | then (P >= Z) | |
85 | 101 | else false) | |
86 | - | then | |
87 | - | else if (if (( | |
88 | - | then ( | |
102 | + | then D((U + 1), V, G, (M + 3)) | |
103 | + | else if (if ((Z > P)) | |
104 | + | then (Q >= Z) | |
89 | 105 | else false) | |
90 | - | then | |
91 | - | else if (if (( | |
92 | - | then ( | |
106 | + | then D((V + 1), W, G, (M + 4)) | |
107 | + | else if (if ((Z > Q)) | |
108 | + | then (R >= Z) | |
93 | 109 | else false) | |
94 | - | then | |
95 | - | else if (if (( | |
96 | - | then ( | |
110 | + | then D((W + 1), X, G, (M + 5)) | |
111 | + | else if (if ((Z > R)) | |
112 | + | then (S >= Z) | |
97 | 113 | else false) | |
98 | - | then | |
114 | + | then D((X + 1), Y, G, (M + 6)) | |
99 | 115 | else throw("Unexpected error") | |
100 | 116 | } | |
101 | 117 | ||
102 | 118 | ||
103 | - | @Callable(W) | |
104 | - | func createChar () = valueOrElse(t(W.caller), { | |
105 | - | let z = W.transactionId | |
106 | - | let u = toBase58String(W.caller.bytes) | |
107 | - | let X = valueOrElse(getInteger(this, b), 1) | |
108 | - | let Y = getIntegerValue(k, m) | |
109 | - | let Z = getIntegerValue(k, n) | |
110 | - | let aa = getIntegerValue(k, o) | |
111 | - | let ab = split(getStringValue(k, p), a) | |
112 | - | let ac = split(getStringValue(k, q), a) | |
113 | - | let ad = split(getStringValue(k, r), a) | |
114 | - | let ae = split(getStringValue(k, s), a) | |
115 | - | let af = makeString([toString(w(1, Y, z, 0)), toString(w(1, Z, z, 1)), toString(w(1, aa, z, 2))], a) | |
116 | - | let ag = F(ab, ac, 3, z) | |
117 | - | let ah = F(ab, ac, 10, z) | |
118 | - | let ai = F(ab, ac, 17, z) | |
119 | - | let aj = F(ab, ac, 24, z) | |
120 | - | let ak = F(ab, ae, 31, z) | |
121 | - | let al = F(ab, ad, 38, z) | |
122 | - | [StringEntry(C(c, X), u), StringEntry(C(d, X), af), IntegerEntry(C(e, X), ag), IntegerEntry(C(f, X), ah), IntegerEntry(C(g, X), ai), IntegerEntry(C(h, X), aj), IntegerEntry(C(i, X), al), IntegerEntry(C(j, X), ak), IntegerEntry(b, (X + 1))] | |
123 | - | }) | |
119 | + | @Callable(aa) | |
120 | + | func createChar () = if ((t(aa.caller) != true)) | |
121 | + | then throw() | |
122 | + | else { | |
123 | + | let G = aa.transactionId | |
124 | + | let u = toBase58String(aa.caller.bytes) | |
125 | + | let ab = valueOrElse(getInteger(this, b), 1) | |
126 | + | let ac = getIntegerValue(k, m) | |
127 | + | let ad = getIntegerValue(k, n) | |
128 | + | let ae = getIntegerValue(k, o) | |
129 | + | let af = split(getStringValue(k, p), a) | |
130 | + | let ag = split(getStringValue(k, q), a) | |
131 | + | let ah = split(getStringValue(k, r), a) | |
132 | + | let ai = split(getStringValue(k, s), a) | |
133 | + | let aj = makeString([toString(D(1, ac, G, 0)), toString(D(1, ad, G, 1)), toString(D(1, ae, G, 2))], a) | |
134 | + | let ak = J(af, ag, 3, G) | |
135 | + | let al = J(af, ag, 10, G) | |
136 | + | let am = J(af, ag, 17, G) | |
137 | + | let an = J(af, ag, 24, G) | |
138 | + | let ao = J(af, ai, 31, G) | |
139 | + | let ap = J(af, ah, 38, G) | |
140 | + | [StringEntry(w(c, ab), u), StringEntry(w(d, ab), aj), IntegerEntry(w(e, ab), ak), IntegerEntry(w(f, ab), al), IntegerEntry(w(g, ab), am), IntegerEntry(w(h, ab), an), IntegerEntry(w(i, ab), ap), IntegerEntry(w(j, ab), ao), IntegerEntry(b, (ab + 1))] | |
141 | + | } | |
124 | 142 | ||
125 | 143 | ||
126 | - | @Verifier( | |
127 | - | func | |
144 | + | @Verifier(aq) | |
145 | + | func ar () = sigVerify(aq.bodyBytes, aq.proofs[0], aq.senderPublicKey) | |
128 | 146 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "_" | |
5 | 5 | ||
6 | 6 | let b = "chars_count" | |
7 | 7 | ||
8 | 8 | let c = "owner" | |
9 | 9 | ||
10 | 10 | let d = "appearance" | |
11 | 11 | ||
12 | - | let e = "pyro_bonus" | |
12 | + | let e = "natural_pyro_bonus" | |
13 | 13 | ||
14 | - | let f = "aqua_bonus" | |
14 | + | let f = "natural_aqua_bonus" | |
15 | 15 | ||
16 | - | let g = "terra_bonus" | |
16 | + | let g = "natural_terra_bonus" | |
17 | 17 | ||
18 | - | let h = "aero_bonus" | |
18 | + | let h = "natural_aero_bonus" | |
19 | 19 | ||
20 | - | let i = "loots_bonus" | |
20 | + | let i = "natural_loots_bonus" | |
21 | 21 | ||
22 | - | let j = "generating_bonus" | |
22 | + | let j = "natural_generating_bonus" | |
23 | 23 | ||
24 | 24 | let k = addressFromStringValue("3MyxfwvbueUBynYHfQsutNXZNqNozGiMnsG") | |
25 | 25 | ||
26 | 26 | let l = "ecosystem_addresses" | |
27 | 27 | ||
28 | - | let m = "chars_ | |
28 | + | let m = "chars_body_amount" | |
29 | 29 | ||
30 | 30 | let n = "chars_eyes_amount" | |
31 | 31 | ||
32 | - | let o = "chars_ | |
32 | + | let o = "chars_mouth_amount" | |
33 | 33 | ||
34 | 34 | let p = "chars_stats_tiers_ranges" | |
35 | 35 | ||
36 | 36 | let q = "chars_natural_elem_bonus_ranges" | |
37 | 37 | ||
38 | 38 | let r = "chars_natural_loots_bonus_ranges" | |
39 | 39 | ||
40 | 40 | let s = "chars_natural_generating_bonus_ranges" | |
41 | 41 | ||
42 | 42 | func t (u) = if ((isDataStorageUntouched(k) != false)) | |
43 | 43 | then throw("Governing app not ready") | |
44 | 44 | else { | |
45 | 45 | let v = getStringValue(k, l) | |
46 | 46 | if ((contains(v, toString(u)) != false)) | |
47 | 47 | then throw("Access denied") | |
48 | - | else | |
48 | + | else true | |
49 | 49 | } | |
50 | 50 | ||
51 | 51 | ||
52 | - | func w (x,y,z,A) = { | |
53 | - | let B = value(sha256_16Kb(((value(value(blockInfoByHeight(height)).vrf) + z) + toBytes(A)))) | |
54 | - | value(((value(toInt(B)) % ((y - x) + 1)) + x)) | |
52 | + | func w (x,y) = { | |
53 | + | let z = { | |
54 | + | let A = y | |
55 | + | if ($isInstanceOf(A, "Int")) | |
56 | + | then { | |
57 | + | let B = A | |
58 | + | toString(B) | |
59 | + | } | |
60 | + | else if ($isInstanceOf(A, "String")) | |
61 | + | then { | |
62 | + | let C = A | |
63 | + | C | |
64 | + | } | |
65 | + | else throw("Matching issue in with function") | |
66 | + | } | |
67 | + | ((z + a) + x) | |
55 | 68 | } | |
56 | 69 | ||
57 | 70 | ||
58 | - | func C (D,E) = ((toString(E) + a) + D) | |
71 | + | func D (E,F,G,H) = { | |
72 | + | let I = value(sha256_16Kb(((value(value(blockInfoByHeight(height)).vrf) + G) + toBytes(H)))) | |
73 | + | value(((value(toInt(I)) % ((F - E) + 1)) + E)) | |
74 | + | } | |
59 | 75 | ||
60 | 76 | ||
61 | - | func | |
62 | - | let | |
63 | - | let | |
64 | - | let | |
65 | - | let | |
66 | - | let | |
67 | - | let | |
68 | - | let | |
69 | - | let | |
70 | - | let | |
71 | - | let | |
72 | - | let | |
73 | - | let | |
74 | - | let | |
75 | - | if (if (( | |
76 | - | then ( | |
77 | + | func J (K,L,M,G) = { | |
78 | + | let N = parseIntValue(K[0]) | |
79 | + | let O = parseIntValue(K[1]) | |
80 | + | let P = parseIntValue(K[2]) | |
81 | + | let Q = parseIntValue(K[3]) | |
82 | + | let R = parseIntValue(K[4]) | |
83 | + | let S = parseIntValue(K[5]) | |
84 | + | let T = parseIntValue(L[0]) | |
85 | + | let U = parseIntValue(L[1]) | |
86 | + | let V = parseIntValue(L[2]) | |
87 | + | let W = parseIntValue(L[3]) | |
88 | + | let X = parseIntValue(L[4]) | |
89 | + | let Y = parseIntValue(L[5]) | |
90 | + | let Z = D(0, 10000, G, M) | |
91 | + | if (if ((Z >= 0)) | |
92 | + | then (N >= Z) | |
77 | 93 | else false) | |
78 | - | then | |
79 | - | else if (if (( | |
80 | - | then ( | |
94 | + | then D(0, T, G, (M + 1)) | |
95 | + | else if (if ((Z > N)) | |
96 | + | then (O >= Z) | |
81 | 97 | else false) | |
82 | - | then | |
83 | - | else if (if (( | |
84 | - | then ( | |
98 | + | then D((T + 1), U, G, (M + 2)) | |
99 | + | else if (if ((Z > O)) | |
100 | + | then (P >= Z) | |
85 | 101 | else false) | |
86 | - | then | |
87 | - | else if (if (( | |
88 | - | then ( | |
102 | + | then D((U + 1), V, G, (M + 3)) | |
103 | + | else if (if ((Z > P)) | |
104 | + | then (Q >= Z) | |
89 | 105 | else false) | |
90 | - | then | |
91 | - | else if (if (( | |
92 | - | then ( | |
106 | + | then D((V + 1), W, G, (M + 4)) | |
107 | + | else if (if ((Z > Q)) | |
108 | + | then (R >= Z) | |
93 | 109 | else false) | |
94 | - | then | |
95 | - | else if (if (( | |
96 | - | then ( | |
110 | + | then D((W + 1), X, G, (M + 5)) | |
111 | + | else if (if ((Z > R)) | |
112 | + | then (S >= Z) | |
97 | 113 | else false) | |
98 | - | then | |
114 | + | then D((X + 1), Y, G, (M + 6)) | |
99 | 115 | else throw("Unexpected error") | |
100 | 116 | } | |
101 | 117 | ||
102 | 118 | ||
103 | - | @Callable(W) | |
104 | - | func createChar () = valueOrElse(t(W.caller), { | |
105 | - | let z = W.transactionId | |
106 | - | let u = toBase58String(W.caller.bytes) | |
107 | - | let X = valueOrElse(getInteger(this, b), 1) | |
108 | - | let Y = getIntegerValue(k, m) | |
109 | - | let Z = getIntegerValue(k, n) | |
110 | - | let aa = getIntegerValue(k, o) | |
111 | - | let ab = split(getStringValue(k, p), a) | |
112 | - | let ac = split(getStringValue(k, q), a) | |
113 | - | let ad = split(getStringValue(k, r), a) | |
114 | - | let ae = split(getStringValue(k, s), a) | |
115 | - | let af = makeString([toString(w(1, Y, z, 0)), toString(w(1, Z, z, 1)), toString(w(1, aa, z, 2))], a) | |
116 | - | let ag = F(ab, ac, 3, z) | |
117 | - | let ah = F(ab, ac, 10, z) | |
118 | - | let ai = F(ab, ac, 17, z) | |
119 | - | let aj = F(ab, ac, 24, z) | |
120 | - | let ak = F(ab, ae, 31, z) | |
121 | - | let al = F(ab, ad, 38, z) | |
122 | - | [StringEntry(C(c, X), u), StringEntry(C(d, X), af), IntegerEntry(C(e, X), ag), IntegerEntry(C(f, X), ah), IntegerEntry(C(g, X), ai), IntegerEntry(C(h, X), aj), IntegerEntry(C(i, X), al), IntegerEntry(C(j, X), ak), IntegerEntry(b, (X + 1))] | |
123 | - | }) | |
119 | + | @Callable(aa) | |
120 | + | func createChar () = if ((t(aa.caller) != true)) | |
121 | + | then throw() | |
122 | + | else { | |
123 | + | let G = aa.transactionId | |
124 | + | let u = toBase58String(aa.caller.bytes) | |
125 | + | let ab = valueOrElse(getInteger(this, b), 1) | |
126 | + | let ac = getIntegerValue(k, m) | |
127 | + | let ad = getIntegerValue(k, n) | |
128 | + | let ae = getIntegerValue(k, o) | |
129 | + | let af = split(getStringValue(k, p), a) | |
130 | + | let ag = split(getStringValue(k, q), a) | |
131 | + | let ah = split(getStringValue(k, r), a) | |
132 | + | let ai = split(getStringValue(k, s), a) | |
133 | + | let aj = makeString([toString(D(1, ac, G, 0)), toString(D(1, ad, G, 1)), toString(D(1, ae, G, 2))], a) | |
134 | + | let ak = J(af, ag, 3, G) | |
135 | + | let al = J(af, ag, 10, G) | |
136 | + | let am = J(af, ag, 17, G) | |
137 | + | let an = J(af, ag, 24, G) | |
138 | + | let ao = J(af, ai, 31, G) | |
139 | + | let ap = J(af, ah, 38, G) | |
140 | + | [StringEntry(w(c, ab), u), StringEntry(w(d, ab), aj), IntegerEntry(w(e, ab), ak), IntegerEntry(w(f, ab), al), IntegerEntry(w(g, ab), am), IntegerEntry(w(h, ab), an), IntegerEntry(w(i, ab), ap), IntegerEntry(w(j, ab), ao), IntegerEntry(b, (ab + 1))] | |
141 | + | } | |
124 | 142 | ||
125 | 143 | ||
126 | - | @Verifier( | |
127 | - | func | |
144 | + | @Verifier(aq) | |
145 | + | func ar () = sigVerify(aq.bodyBytes, aq.proofs[0], aq.senderPublicKey) | |
128 | 146 |
github/deemru/w8io/169f3d6 102.73 ms ◑![]()