tx · 2AnQUPScjXu7B8u5ETtoD7VLeAFPRozVwoThe5HBHnr6 3Mzep1R5kHeC1ecKFkWjuhU3Gw4LAdCib9N: -0.01000000 Waves 2023.11.14 09:01 [2842619] smart account 3Mzep1R5kHeC1ecKFkWjuhU3Gw4LAdCib9N > SELF 0.00000000 Waves
{ "type": 13, "id": "2AnQUPScjXu7B8u5ETtoD7VLeAFPRozVwoThe5HBHnr6", "fee": 1000000, "feeAssetId": null, "timestamp": 1699941664038, "version": 2, "chainId": 84, "sender": "3Mzep1R5kHeC1ecKFkWjuhU3Gw4LAdCib9N", "senderPublicKey": "41THq9VrFxHEvVGJyz2oMpJQErnSkkqJXpBypSDxa5Mv", "proofs": [ "bmqRy2qPvT769wGS9q8VAkGVZtFcrULs9ZmszGxN6mLAn2oPu7SsSjuX11caQM1Yh9tM4JRq3WfaPUZwh2nga4o" ], "script": "base64:BgIYCAISAwoBGBIDCgEYEgQKAgIYEgQKAgIYFQAJc2VwYXJhdG9yAgJfXwAHY2hhaW5JZAkAyQECCQDKAQIIBQR0aGlzBWJ5dGVzAAEAAQAIY2hhaW5JZFQBAVQACGNoYWluSWRXAQFXAQttdXN0QWRkcmVzcwIBaQdhZGRyZXNzAwkAAAIIBQFpBmNhbGxlcgUHYWRkcmVzcwYJAAIBAhFwZXJtaXNzaW9uIGRlbmllZAEIbXVzdFRoaXMBAWkJAQttdXN0QWRkcmVzcwIFAWkFBHRoaXMAA1NFUAICX18ABVdBVkVTAgVXQVZFUwAQY29udHJhY3RGaWxlbmFtZQIVd3hkYW9fY2FsY3VsYXRvci5yaWRlAQd3cmFwRXJyAQFzCQCsAgIJAKwCAgUQY29udHJhY3RGaWxlbmFtZQICOiAFAXMBCHRocm93RXJyAQFzCQACAQkBB3dyYXBFcnIBBQFzARVrZXlQb3dlckNvbmZpZ0FkZHJlc3MAAhYlc19fcG93ZXJDb25maWdBZGRyZXNzARJwb3dlckNvbmZpZ0FkZHJlc3MBDmZhY3RvcnlBZGRyZXNzCQETdmFsdWVPckVycm9yTWVzc2FnZQIEByRtYXRjaDAJAJ0IAgUOZmFjdG9yeUFkZHJlc3MJARVrZXlQb3dlckNvbmZpZ0FkZHJlc3MAAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkApggBBQFzAwkAAQIFByRtYXRjaDACBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgkBB3dyYXBFcnIBAhxpbnZhbGlkIHBvd2VyIGNvbmZpZyBhZGRyZXNzAQ9rZXlQb3dlckFzc2V0SWQAAgxwb3dlckFzc2V0SWQBDHBvd2VyQXNzZXRJZAEOZmFjdG9yeUFkZHJlc3MJANkEAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIJARJwb3dlckNvbmZpZ0FkZHJlc3MBBQ5mYWN0b3J5QWRkcmVzcwkBD2tleVBvd2VyQXNzZXRJZAAJAQd3cmFwRXJyAQIWaW52YWxpZCBwb3dlciBhc3NldCBpZAEXa2V5UG93ZXJDb250cmFjdEFkZHJlc3MAAhglc19fcG93ZXJDb250cmFjdEFkZHJlc3MBFHBvd2VyQ29udHJhY3RBZGRyZXNzAQ5mYWN0b3J5QWRkcmVzcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCBAckbWF0Y2gwCQCdCAIFDmZhY3RvcnlBZGRyZXNzCQEXa2V5UG93ZXJDb250cmFjdEFkZHJlc3MAAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkApggBBQFzAwkAAQIFByRtYXRjaDACBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgkBB3dyYXBFcnIBAh5pbnZhbGlkIHBvd2VyIGNvbnRyYWN0IGFkZHJlc3MBCWtleUFzc2V0cwACCiVzX19hc3NldHMBDGdldEFzc2V0c1N0cgEOZmFjdG9yeUFkZHJlc3MJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQ5mYWN0b3J5QWRkcmVzcwkBCWtleUFzc2V0cwAJAQd3cmFwRXJyAQIOaW52YWxpZCBhc3NldHMBDGtleUxwQXNzZXRJZAACDSVzX19scEFzc2V0SWQBDGdldExwQXNzZXRJZAEOZmFjdG9yeUFkZHJlc3MJANkEAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFDmZhY3RvcnlBZGRyZXNzCQEMa2V5THBBc3NldElkAAkBB3dyYXBFcnIBAhNpbnZhbGlkIGxwIGFzc2V0IGlkBAFpAQh3aXRoZHJhdwEEYXJncwQJcmVjaXBpZW50CQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFBGFyZ3MAAAQGYW1vdW50CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEYXJncwABBAZyZXN1bHQJAPwHBAgFAWkGY2FsbGVyAg10cmFuc2ZlcldhdmVzCQDMCAIIBQlyZWNpcGllbnQFYnl0ZXMJAMwIAgUGYW1vdW50BQNuaWwFA25pbAkAlAoCBQNuaWwFBnJlc3VsdAFpAQtzZXRJbnRQYXJhbQEEYXJncwQDa2V5CQCRAwIFBGFyZ3MAAAQDdmFsCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEYXJncwABBAZyZXN1bHQJAPwHBAgFAWkGY2FsbGVyAgxpbnRlZ2VyRW50cnkJAMwIAgUDa2V5CQDMCAIFA3ZhbAUDbmlsBQNuaWwJAJQKAgUDbmlsBQZyZXN1bHQBaQEEc3dhcAIPY2FsbGVyUHVibGljS2V5BGFyZ3MEDmZhY3RvcnlBZGRyZXNzCAUBaQZjYWxsZXIEC3VzZXJBZGRyZXNzCQCnCAEFD2NhbGxlclB1YmxpY0tleQQHcGF5bWVudAMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAEJAJEDAggFAWkIcGF5bWVudHMAAAkBCHRocm93RXJyAQIVMSBwYXltZW50IGlzIHJlcXVpcmVkBANlcnIJAQd3cmFwRXJyAQIYaW52YWxpZCBwYXltZW50IGFzc2V0IGlkBA5wYXltZW50QXNzZXRJZAMJAAACCQETdmFsdWVPckVycm9yTWVzc2FnZQIIBQdwYXltZW50B2Fzc2V0SWQFA2VycgkBDGdldExwQXNzZXRJZAEFDmZhY3RvcnlBZGRyZXNzCQEFdmFsdWUBCAUHcGF5bWVudAdhc3NldElkCQEIdGhyb3dFcnIBBQNlcnIECHB3clByaWNlAGQECXB3ckFtb3VudAkAaQIIBQdwYXltZW50BmFtb3VudAUIcHdyUHJpY2UECWFzc2V0c1N0cgkAtQkCCQEMZ2V0QXNzZXRzU3RyAQUOZmFjdG9yeUFkZHJlc3MFA1NFUAQKcHdyQmFsYW5jZQkA8AcCBQ5mYWN0b3J5QWRkcmVzcwkBDHBvd2VyQXNzZXRJZAEFDmZhY3RvcnlBZGRyZXNzAwkAAAIFCnB3ckJhbGFuY2UFCnB3ckJhbGFuY2UKAQNtYXACA2FjYwtuZXh0QXNzZXRJZAQHYXNzZXRJZAkA2QQBBQtuZXh0QXNzZXRJZAQHYmFsYW5jZQkA8AcCBQ5mYWN0b3J5QWRkcmVzcwUHYXNzZXRJZAMJAAACBQdiYWxhbmNlBQdiYWxhbmNlBAZhbW91bnQJAGsDBQdiYWxhbmNlBQlwd3JBbW91bnQFCnB3ckJhbGFuY2UDCQBmAgUGYW1vdW50AAAJAJQKAgkAzQgCCAUDYWNjAl8xBQdhc3NldElkCQDNCAIIBQNhY2MCXzIFBmFtb3VudAUDYWNjCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAl0cmFuc2ZlcnMKAAIkbAUJYXNzZXRzU3RyCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCBQNuaWwFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEDbWFwAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA2CQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAwkAAAIFCXRyYW5zZmVycwUJdHJhbnNmZXJzBBRhZGRpdGlvbmFsTG9ja1JvdW5kcwAABA5mYWN0b3J5QWN0aW9ucwkAzggCCQDMCAIJAPwHBAUOZmFjdG9yeUFkZHJlc3MCIGNvbW1pdEFmdGVyU3RhcnRXaXRoTG9ja1JvdW5kRm9yCQDMCAIJAKUIAQkBFHBvd2VyQ29udHJhY3RBZGRyZXNzAQUOZmFjdG9yeUFkZHJlc3MJAMwIAgkApQgBBQ5mYWN0b3J5QWRkcmVzcwkAzAgCCQClCAEFC3VzZXJBZGRyZXNzCQDMCAIFFGFkZGl0aW9uYWxMb2NrUm91bmRzCQDMCAIJAQxwb3dlckFzc2V0SWQBBQ5mYWN0b3J5QWRkcmVzcwkAzAgCBQlwd3JBbW91bnQFA25pbAUDbmlsBQNuaWwDCQAAAgkAkAMBCAUJdHJhbnNmZXJzAl8xAAAFA25pbAkAzAgCCQD8BwQFDmZhY3RvcnlBZGRyZXNzAg50cmFuc2ZlckFzc2V0cwkAzAgCCAULdXNlckFkZHJlc3MFYnl0ZXMJAMwIAggFCXRyYW5zZmVycwJfMQkAzAgCCAUJdHJhbnNmZXJzAl8yBQNuaWwFA25pbAUDbmlsCQCUCgIJAMwIAgkBBEJ1cm4CBQ5wYXltZW50QXNzZXRJZAgFB3BheW1lbnQGYW1vdW50BQNuaWwFDmZhY3RvcnlBY3Rpb25zCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBXByaWNlAg9jYWxsZXJQdWJsaWNLZXkEYXJncwkAlAoCBQNuaWwAAAECdHgBBnZlcmlmeQAJAAACBQdjaGFpbklkBQhjaGFpbklkVFAdM4E=", "height": 2842619, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: L5dEc1bUtmwWiQh1Ho2vr4FeSaASoWXhERhWsKD5y4T Next: CaqBX449oHEdueMRrQmTPCUVDrq7tY9fTmcGJZLAvXon Diff:
Old | New | Differences | |
---|---|---|---|
21 | 21 | ||
22 | 22 | let j = "WAVES" | |
23 | 23 | ||
24 | - | let k = "wxdao_ | |
24 | + | let k = "wxdao_calculator.ride" | |
25 | 25 | ||
26 | 26 | func l (m) = ((k + ": ") + m) | |
27 | 27 | ||
29 | 29 | func n (m) = throw(l(m)) | |
30 | 30 | ||
31 | 31 | ||
32 | - | func o (m) = if ((m == j)) | |
33 | - | then unit | |
34 | - | else fromBase58String(m) | |
32 | + | func o () = "%s__powerConfigAddress" | |
35 | 33 | ||
36 | 34 | ||
37 | - | let p = 5 | |
38 | - | ||
39 | - | let q = 3 | |
40 | - | ||
41 | - | let r = 32 | |
42 | - | ||
43 | - | func s (t) = makeString(["%s%s%s", "allowTxId", t], i) | |
35 | + | func p (q) = valueOrErrorMessage({ | |
36 | + | let r = getString(q, o()) | |
37 | + | if ($isInstanceOf(r, "String")) | |
38 | + | then { | |
39 | + | let m = r | |
40 | + | addressFromString(m) | |
41 | + | } | |
42 | + | else if ($isInstanceOf(r, "Unit")) | |
43 | + | then unit | |
44 | + | else throw("Match error") | |
45 | + | }, l("invalid power config address")) | |
44 | 46 | ||
45 | 47 | ||
46 | - | func | |
48 | + | func s () = "powerAssetId" | |
47 | 49 | ||
48 | 50 | ||
49 | - | func | |
51 | + | func t (q) = fromBase58String(valueOrErrorMessage(getString(p(q), s()), l("invalid power asset id"))) | |
50 | 52 | ||
51 | 53 | ||
52 | - | func | |
54 | + | func u () = "%s__powerContractAddress" | |
53 | 55 | ||
54 | 56 | ||
55 | - | func z (v,A) = { | |
56 | - | let B = u(v, A) | |
57 | - | valueOrElse(getInteger(B), 0) | |
57 | + | func v (q) = valueOrErrorMessage({ | |
58 | + | let r = getString(q, u()) | |
59 | + | if ($isInstanceOf(r, "String")) | |
60 | + | then { | |
61 | + | let m = r | |
62 | + | addressFromString(m) | |
63 | + | } | |
64 | + | else if ($isInstanceOf(r, "Unit")) | |
65 | + | then unit | |
66 | + | else throw("Match error") | |
67 | + | }, l("invalid power contract address")) | |
68 | + | ||
69 | + | ||
70 | + | func w () = "%s__assets" | |
71 | + | ||
72 | + | ||
73 | + | func x (q) = valueOrErrorMessage(getString(q, w()), l("invalid assets")) | |
74 | + | ||
75 | + | ||
76 | + | func y () = "%s__lpAssetId" | |
77 | + | ||
78 | + | ||
79 | + | func z (q) = fromBase58String(valueOrErrorMessage(getString(q, y()), l("invalid lp asset id"))) | |
80 | + | ||
81 | + | ||
82 | + | @Callable(f) | |
83 | + | func withdraw (A) = { | |
84 | + | let B = addressFromStringValue(A[0]) | |
85 | + | let C = parseIntValue(A[1]) | |
86 | + | let D = invoke(f.caller, "transferWaves", [B.bytes, C], nil) | |
87 | + | $Tuple2(nil, D) | |
58 | 88 | } | |
59 | 89 | ||
60 | 90 | ||
61 | - | func C () = { | |
62 | - | let D = getString(this, x()) | |
63 | - | if ($isInstanceOf(D, "String")) | |
64 | - | then { | |
65 | - | let m = D | |
66 | - | split(m, i) | |
67 | - | } | |
68 | - | else nil | |
91 | + | ||
92 | + | @Callable(f) | |
93 | + | func setIntParam (A) = { | |
94 | + | let E = A[0] | |
95 | + | let F = parseIntValue(A[1]) | |
96 | + | let D = invoke(f.caller, "integerEntry", [E, F], nil) | |
97 | + | $Tuple2(nil, D) | |
69 | 98 | } | |
70 | 99 | ||
71 | 100 | ||
72 | - | func E (g) = containsElement(C(), g) | |
73 | 101 | ||
102 | + | @Callable(f) | |
103 | + | func swap (G,A) = { | |
104 | + | let q = f.caller | |
105 | + | let H = addressFromPublicKey(G) | |
106 | + | let I = if ((size(f.payments) == 1)) | |
107 | + | then f.payments[0] | |
108 | + | else n("1 payment is required") | |
109 | + | let J = l("invalid payment asset id") | |
110 | + | let K = if ((valueOrErrorMessage(I.assetId, J) == z(q))) | |
111 | + | then value(I.assetId) | |
112 | + | else n(J) | |
113 | + | let L = 100 | |
114 | + | let M = (I.amount / L) | |
115 | + | let N = split(x(q), i) | |
116 | + | let O = assetBalance(q, t(q)) | |
117 | + | if ((O == O)) | |
118 | + | then { | |
119 | + | func P (Q,R) = { | |
120 | + | let S = fromBase58String(R) | |
121 | + | let T = assetBalance(q, S) | |
122 | + | if ((T == T)) | |
123 | + | then { | |
124 | + | let C = fraction(T, M, O) | |
125 | + | if ((C > 0)) | |
126 | + | then $Tuple2((Q._1 :+ S), (Q._2 :+ C)) | |
127 | + | else Q | |
128 | + | } | |
129 | + | else throw("Strict value is not equal to itself.") | |
130 | + | } | |
74 | 131 | ||
75 | - | func F (G,w) = { | |
76 | - | let H = G | |
77 | - | let I = H._1 | |
78 | - | let v = H._2 | |
79 | - | $Tuple2((I :+ u(v, w)), v) | |
80 | - | } | |
132 | + | let U = { | |
133 | + | let V = N | |
134 | + | let W = size(V) | |
135 | + | let X = $Tuple2(nil, nil) | |
136 | + | func Y (Z,aa) = if ((aa >= W)) | |
137 | + | then Z | |
138 | + | else P(Z, V[aa]) | |
81 | 139 | ||
140 | + | func ab (Z,aa) = if ((aa >= W)) | |
141 | + | then Z | |
142 | + | else throw("List size exceeds 6") | |
82 | 143 | ||
83 | - | func J (K) = { | |
84 | - | let L = x() | |
85 | - | let M = { | |
86 | - | let N = C() | |
87 | - | let O = size(N) | |
88 | - | let P = $Tuple2(nil, K) | |
89 | - | func Q (R,S) = if ((S >= O)) | |
90 | - | then R | |
91 | - | else F(R, N[S]) | |
92 | - | ||
93 | - | func T (R,S) = if ((S >= O)) | |
94 | - | then R | |
95 | - | else throw("List size exceeds 5") | |
96 | - | ||
97 | - | T(Q(Q(Q(Q(Q(P, 0), 1), 2), 3), 4), 5) | |
98 | - | } | |
99 | - | let I = M._1 | |
100 | - | let v = M._2 | |
101 | - | I | |
102 | - | } | |
103 | - | ||
104 | - | ||
105 | - | func U (I,B) = (I + valueOrElse(getInteger(B), 0)) | |
106 | - | ||
107 | - | ||
108 | - | func V (v) = { | |
109 | - | let W = J(v) | |
110 | - | let N = W | |
111 | - | let O = size(N) | |
112 | - | let P = 0 | |
113 | - | func Q (R,S) = if ((S >= O)) | |
114 | - | then R | |
115 | - | else U(R, N[S]) | |
116 | - | ||
117 | - | func T (R,S) = if ((S >= O)) | |
118 | - | then R | |
119 | - | else throw("List size exceeds 5") | |
120 | - | ||
121 | - | T(Q(Q(Q(Q(Q(P, 0), 1), 2), 3), 4), 5) | |
122 | - | } | |
123 | - | ||
124 | - | ||
125 | - | func X (I,Y) = (I :+ DeleteEntry(Y)) | |
126 | - | ||
127 | - | ||
128 | - | func Z (v) = { | |
129 | - | let W = J(v) | |
130 | - | let N = W | |
131 | - | let O = size(N) | |
132 | - | let P = nil | |
133 | - | func Q (R,S) = if ((S >= O)) | |
134 | - | then R | |
135 | - | else X(R, N[S]) | |
136 | - | ||
137 | - | func T (R,S) = if ((S >= O)) | |
138 | - | then R | |
139 | - | else throw("List size exceeds 5") | |
140 | - | ||
141 | - | T(Q(Q(Q(Q(Q(P, 0), 1), 2), 3), 4), 5) | |
142 | - | } | |
143 | - | ||
144 | - | ||
145 | - | func aa (ab,K,ac,ad) = { | |
146 | - | let B = u(K, ab) | |
147 | - | let ae = z(K, ab) | |
148 | - | let af = if (!(E(ab))) | |
149 | - | then n((("Address: " + ab) + " not in Admin list")) | |
150 | - | else if ((ae == 1)) | |
151 | - | then n((B + " you already voted")) | |
152 | - | else unit | |
153 | - | if ((af == af)) | |
154 | - | then { | |
155 | - | let W = V(K) | |
156 | - | if (((W + 1) >= ac)) | |
144 | + | ab(Y(Y(Y(Y(Y(Y(X, 0), 1), 2), 3), 4), 5), 6) | |
145 | + | } | |
146 | + | if ((U == U)) | |
157 | 147 | then { | |
158 | - | let ag = Z(K) | |
159 | - | (ag ++ ad) | |
148 | + | let ac = 0 | |
149 | + | let ad = ([invoke(q, "commitAfterStartWithLockRoundFor", [toString(v(q)), toString(q), toString(H), ac, t(q), M], nil)] ++ (if ((size(U._1) == 0)) | |
150 | + | then nil | |
151 | + | else [invoke(q, "transferAssets", [H.bytes, U._1, U._2], nil)])) | |
152 | + | $Tuple2([Burn(K, I.amount)], ad) | |
160 | 153 | } | |
161 | - | else | |
154 | + | else throw("Strict value is not equal to itself.") | |
162 | 155 | } | |
163 | 156 | else throw("Strict value is not equal to itself.") | |
164 | 157 | } | |
165 | 158 | ||
166 | 159 | ||
167 | - | func ah () = "%s__calculatorAddress" | |
160 | + | ||
161 | + | @Callable(f) | |
162 | + | func price (G,A) = $Tuple2(nil, 0) | |
168 | 163 | ||
169 | 164 | ||
170 | - | func ai () = "%s__lpAssetId" | |
171 | - | ||
172 | - | ||
173 | - | func aj () = makeString(["%s", "currentPeriod"], i) | |
174 | - | ||
175 | - | ||
176 | - | func ak (al) = makeString(["%s%d", "startHeight", toString(al)], i) | |
177 | - | ||
178 | - | ||
179 | - | func am () = makeString(["%s", "periodLength"], i) | |
180 | - | ||
181 | - | ||
182 | - | func an (al) = makeString(["%s%d", "treasuryValue", toString(al)], i) | |
183 | - | ||
184 | - | ||
185 | - | func ao () = makeString(["%s", "treasuryValue"], i) | |
186 | - | ||
187 | - | ||
188 | - | let ap = { | |
189 | - | let D = getString(this, ah()) | |
190 | - | if ($isInstanceOf(D, "String")) | |
191 | - | then { | |
192 | - | let m = D | |
193 | - | addressFromString(m) | |
194 | - | } | |
195 | - | else if ($isInstanceOf(D, "Unit")) | |
196 | - | then unit | |
197 | - | else throw("Match error") | |
198 | - | } | |
199 | - | ||
200 | - | let aq = valueOrErrorMessage(ap, l("invalid calculator address")) | |
201 | - | ||
202 | - | func ar () = "%s__powerConfigAddress" | |
203 | - | ||
204 | - | ||
205 | - | func as () = "%s__powerContractAddress" | |
206 | - | ||
207 | - | ||
208 | - | func at () = "contract_voting_result" | |
209 | - | ||
210 | - | ||
211 | - | func au (g,t) = ((("proposal_allow_broadcast_" + toString(g)) + "_") + toBase58String(t)) | |
212 | - | ||
213 | - | ||
214 | - | let av = { | |
215 | - | let D = getString(this, ar()) | |
216 | - | if ($isInstanceOf(D, "String")) | |
217 | - | then { | |
218 | - | let m = D | |
219 | - | addressFromString(m) | |
220 | - | } | |
221 | - | else if ($isInstanceOf(D, "Unit")) | |
222 | - | then unit | |
223 | - | else throw("Match error") | |
224 | - | } | |
225 | - | ||
226 | - | let aw = { | |
227 | - | let D = av | |
228 | - | if ($isInstanceOf(D, "Address")) | |
229 | - | then { | |
230 | - | let G = D | |
231 | - | let ax = getString(G, at()) | |
232 | - | if ($isInstanceOf(ax, "String")) | |
233 | - | then { | |
234 | - | let m = ax | |
235 | - | addressFromString(m) | |
236 | - | } | |
237 | - | else if ($isInstanceOf(ax, "Unit")) | |
238 | - | then unit | |
239 | - | else throw("Match error") | |
240 | - | } | |
241 | - | else if ($isInstanceOf(D, "Unit")) | |
242 | - | then unit | |
243 | - | else throw("Match error") | |
244 | - | } | |
245 | - | ||
246 | - | let ay = valueOrErrorMessage(aw, l("invalid voting result address")) | |
247 | - | ||
248 | - | let az = { | |
249 | - | let D = getString(this, ai()) | |
250 | - | if ($isInstanceOf(D, "String")) | |
251 | - | then { | |
252 | - | let m = D | |
253 | - | fromBase58String(m) | |
254 | - | } | |
255 | - | else if ($isInstanceOf(D, "Unit")) | |
256 | - | then unit | |
257 | - | else throw("Match error") | |
258 | - | } | |
259 | - | ||
260 | - | let aA = valueOrErrorMessage(az, l("invalid lpAssetId")) | |
261 | - | ||
262 | - | func aB (f,g) = if ((f.caller == g)) | |
263 | - | then true | |
264 | - | else n("permission denied") | |
265 | - | ||
266 | - | ||
267 | - | func aC (f) = aB(f, this) | |
268 | - | ||
269 | - | ||
270 | - | func aD (f) = aB(f, aq) | |
271 | - | ||
272 | - | ||
273 | - | @Callable(f) | |
274 | - | func stringEntry (Y,aE) = if (aD(f)) | |
275 | - | then $Tuple2([StringEntry(Y, aE)], Y) | |
276 | - | else $Tuple2(nil, unit) | |
277 | - | ||
278 | - | ||
279 | - | ||
280 | - | @Callable(f) | |
281 | - | func integerEntry (Y,aE) = if (aD(f)) | |
282 | - | then $Tuple2([IntegerEntry(Y, aE)], Y) | |
283 | - | else $Tuple2(nil, unit) | |
284 | - | ||
285 | - | ||
286 | - | ||
287 | - | @Callable(f) | |
288 | - | func booleanEntry (Y,aE) = if (aD(f)) | |
289 | - | then $Tuple2([BooleanEntry(Y, aE)], Y) | |
290 | - | else $Tuple2(nil, unit) | |
291 | - | ||
292 | - | ||
293 | - | ||
294 | - | @Callable(f) | |
295 | - | func binaryEntry (Y,aE) = if (aD(f)) | |
296 | - | then $Tuple2([BinaryEntry(Y, aE)], Y) | |
297 | - | else $Tuple2(nil, unit) | |
298 | - | ||
299 | - | ||
300 | - | ||
301 | - | @Callable(f) | |
302 | - | func deleteEntry (Y) = if (aD(f)) | |
303 | - | then $Tuple2([DeleteEntry(Y)], Y) | |
304 | - | else $Tuple2(nil, unit) | |
305 | - | ||
306 | - | ||
307 | - | ||
308 | - | @Callable(f) | |
309 | - | func reissue (aF) = if (aD(f)) | |
310 | - | then $Tuple2([Reissue(aA, aF, true)], aF) | |
311 | - | else $Tuple2(nil, unit) | |
312 | - | ||
313 | - | ||
314 | - | ||
315 | - | @Callable(f) | |
316 | - | func burn (aF) = if (aD(f)) | |
317 | - | then $Tuple2([Burn(aA, aF)], aF) | |
318 | - | else $Tuple2(nil, unit) | |
319 | - | ||
320 | - | ||
321 | - | ||
322 | - | @Callable(f) | |
323 | - | func transferAsset (aG,aF,aH) = if (aD(f)) | |
324 | - | then $Tuple2([ScriptTransfer(Address(aG), aF, aH)], aF) | |
325 | - | else $Tuple2(nil, unit) | |
326 | - | ||
327 | - | ||
328 | - | ||
329 | - | @Callable(f) | |
330 | - | func transferAssets (aG,aI,aJ) = if (aD(f)) | |
331 | - | then { | |
332 | - | func aK (aL,aM) = { | |
333 | - | let aN = aL | |
334 | - | let aO = aN._1 | |
335 | - | let aP = aN._2 | |
336 | - | let aQ = ScriptTransfer(Address(aG), parseIntValue(aJ[aP]), o(aI[aP])) | |
337 | - | let aR = (aO :+ aQ) | |
338 | - | $Tuple2(aR, (aP + 1)) | |
339 | - | } | |
340 | - | ||
341 | - | let aS = { | |
342 | - | let N = aI | |
343 | - | let O = size(N) | |
344 | - | let P = $Tuple2(nil, 0) | |
345 | - | func Q (R,S) = if ((S >= O)) | |
346 | - | then R | |
347 | - | else aK(R, N[S]) | |
348 | - | ||
349 | - | func T (R,S) = if ((S >= O)) | |
350 | - | then R | |
351 | - | else throw("List size exceeds 10") | |
352 | - | ||
353 | - | T(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(P, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
354 | - | } | |
355 | - | let aT = aS._1 | |
356 | - | let aU = aS._2 | |
357 | - | $Tuple2(aT, unit) | |
358 | - | } | |
359 | - | else $Tuple2(nil, unit) | |
360 | - | ||
361 | - | ||
362 | - | ||
363 | - | @Callable(f) | |
364 | - | func transferWaves (aG,aF) = if (aD(f)) | |
365 | - | then $Tuple2([ScriptTransfer(Address(aG), aF, unit)], aF) | |
366 | - | else $Tuple2(nil, unit) | |
367 | - | ||
368 | - | ||
369 | - | ||
370 | - | @Callable(f) | |
371 | - | func commitAfterStartWithLockRoundFor (aV,aW,g,aX,aY,aZ) = $Tuple2(nil, invoke(addressFromStringValue(aV), "commitAfterStartWithLockRoundFor", [aW, g, aX], [AttachedPayment(aY, aZ)])) | |
372 | - | ||
373 | - | ||
374 | - | ||
375 | - | @Callable(f) | |
376 | - | func call (ba,bb) = { | |
377 | - | let I = reentrantInvoke(aq, ba, [f.callerPublicKey, bb], f.payments) | |
378 | - | $Tuple2(nil, I) | |
379 | - | } | |
380 | - | ||
381 | - | ||
382 | - | ||
383 | - | @Callable(f) | |
384 | - | func voteForTxId (t) = { | |
385 | - | let ab = toBase58String(f.caller.bytes) | |
386 | - | let K = s(t) | |
387 | - | let I = [StringEntry(y(), t)] | |
388 | - | let bc = getString(this, y()) | |
389 | - | let af = [if ((size(fromBase58String(t)) == r)) | |
390 | - | then true | |
391 | - | else n((t + " is not valid txId")), if (if ((bc == unit)) | |
392 | - | then true | |
393 | - | else (value(bc) != t)) | |
394 | - | then true | |
395 | - | else n((t + " is already allowed"))] | |
396 | - | if ((af == af)) | |
397 | - | then aa(ab, K, q, I) | |
398 | - | else throw("Strict value is not equal to itself.") | |
399 | - | } | |
400 | - | ||
401 | - | ||
402 | - | @Verifier(bd) | |
403 | - | func be () = { | |
404 | - | let bf = { | |
405 | - | let D = aw | |
406 | - | if ($isInstanceOf(D, "Address")) | |
407 | - | then { | |
408 | - | let bg = D | |
409 | - | valueOrElse(getBoolean(bg, au(this, bd.id)), false) | |
410 | - | } | |
411 | - | else false | |
412 | - | } | |
413 | - | let bh = (bd.id == fromBase58String(valueOrElse(getString(this, y()), ""))) | |
414 | - | let bi = if ((size(C()) >= q)) | |
415 | - | then false | |
416 | - | else sigVerify(bd.bodyBytes, bd.proofs[0], bd.senderPublicKey) | |
417 | - | if (if (bf) | |
418 | - | then true | |
419 | - | else bh) | |
420 | - | then true | |
421 | - | else bi | |
422 | - | } | |
165 | + | @Verifier(ae) | |
166 | + | func af () = (b == c) | |
423 | 167 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "__" | |
5 | 5 | ||
6 | 6 | let b = take(drop(this.bytes, 1), 1) | |
7 | 7 | ||
8 | 8 | let c = base58'2T' | |
9 | 9 | ||
10 | 10 | let d = base58'2W' | |
11 | 11 | ||
12 | 12 | func e (f,g) = if ((f.caller == g)) | |
13 | 13 | then true | |
14 | 14 | else throw("permission denied") | |
15 | 15 | ||
16 | 16 | ||
17 | 17 | func h (f) = e(f, this) | |
18 | 18 | ||
19 | 19 | ||
20 | 20 | let i = "__" | |
21 | 21 | ||
22 | 22 | let j = "WAVES" | |
23 | 23 | ||
24 | - | let k = "wxdao_ | |
24 | + | let k = "wxdao_calculator.ride" | |
25 | 25 | ||
26 | 26 | func l (m) = ((k + ": ") + m) | |
27 | 27 | ||
28 | 28 | ||
29 | 29 | func n (m) = throw(l(m)) | |
30 | 30 | ||
31 | 31 | ||
32 | - | func o (m) = if ((m == j)) | |
33 | - | then unit | |
34 | - | else fromBase58String(m) | |
32 | + | func o () = "%s__powerConfigAddress" | |
35 | 33 | ||
36 | 34 | ||
37 | - | let p = 5 | |
38 | - | ||
39 | - | let q = 3 | |
40 | - | ||
41 | - | let r = 32 | |
42 | - | ||
43 | - | func s (t) = makeString(["%s%s%s", "allowTxId", t], i) | |
35 | + | func p (q) = valueOrErrorMessage({ | |
36 | + | let r = getString(q, o()) | |
37 | + | if ($isInstanceOf(r, "String")) | |
38 | + | then { | |
39 | + | let m = r | |
40 | + | addressFromString(m) | |
41 | + | } | |
42 | + | else if ($isInstanceOf(r, "Unit")) | |
43 | + | then unit | |
44 | + | else throw("Match error") | |
45 | + | }, l("invalid power config address")) | |
44 | 46 | ||
45 | 47 | ||
46 | - | func | |
48 | + | func s () = "powerAssetId" | |
47 | 49 | ||
48 | 50 | ||
49 | - | func | |
51 | + | func t (q) = fromBase58String(valueOrErrorMessage(getString(p(q), s()), l("invalid power asset id"))) | |
50 | 52 | ||
51 | 53 | ||
52 | - | func | |
54 | + | func u () = "%s__powerContractAddress" | |
53 | 55 | ||
54 | 56 | ||
55 | - | func z (v,A) = { | |
56 | - | let B = u(v, A) | |
57 | - | valueOrElse(getInteger(B), 0) | |
57 | + | func v (q) = valueOrErrorMessage({ | |
58 | + | let r = getString(q, u()) | |
59 | + | if ($isInstanceOf(r, "String")) | |
60 | + | then { | |
61 | + | let m = r | |
62 | + | addressFromString(m) | |
63 | + | } | |
64 | + | else if ($isInstanceOf(r, "Unit")) | |
65 | + | then unit | |
66 | + | else throw("Match error") | |
67 | + | }, l("invalid power contract address")) | |
68 | + | ||
69 | + | ||
70 | + | func w () = "%s__assets" | |
71 | + | ||
72 | + | ||
73 | + | func x (q) = valueOrErrorMessage(getString(q, w()), l("invalid assets")) | |
74 | + | ||
75 | + | ||
76 | + | func y () = "%s__lpAssetId" | |
77 | + | ||
78 | + | ||
79 | + | func z (q) = fromBase58String(valueOrErrorMessage(getString(q, y()), l("invalid lp asset id"))) | |
80 | + | ||
81 | + | ||
82 | + | @Callable(f) | |
83 | + | func withdraw (A) = { | |
84 | + | let B = addressFromStringValue(A[0]) | |
85 | + | let C = parseIntValue(A[1]) | |
86 | + | let D = invoke(f.caller, "transferWaves", [B.bytes, C], nil) | |
87 | + | $Tuple2(nil, D) | |
58 | 88 | } | |
59 | 89 | ||
60 | 90 | ||
61 | - | func C () = { | |
62 | - | let D = getString(this, x()) | |
63 | - | if ($isInstanceOf(D, "String")) | |
64 | - | then { | |
65 | - | let m = D | |
66 | - | split(m, i) | |
67 | - | } | |
68 | - | else nil | |
91 | + | ||
92 | + | @Callable(f) | |
93 | + | func setIntParam (A) = { | |
94 | + | let E = A[0] | |
95 | + | let F = parseIntValue(A[1]) | |
96 | + | let D = invoke(f.caller, "integerEntry", [E, F], nil) | |
97 | + | $Tuple2(nil, D) | |
69 | 98 | } | |
70 | 99 | ||
71 | 100 | ||
72 | - | func E (g) = containsElement(C(), g) | |
73 | 101 | ||
102 | + | @Callable(f) | |
103 | + | func swap (G,A) = { | |
104 | + | let q = f.caller | |
105 | + | let H = addressFromPublicKey(G) | |
106 | + | let I = if ((size(f.payments) == 1)) | |
107 | + | then f.payments[0] | |
108 | + | else n("1 payment is required") | |
109 | + | let J = l("invalid payment asset id") | |
110 | + | let K = if ((valueOrErrorMessage(I.assetId, J) == z(q))) | |
111 | + | then value(I.assetId) | |
112 | + | else n(J) | |
113 | + | let L = 100 | |
114 | + | let M = (I.amount / L) | |
115 | + | let N = split(x(q), i) | |
116 | + | let O = assetBalance(q, t(q)) | |
117 | + | if ((O == O)) | |
118 | + | then { | |
119 | + | func P (Q,R) = { | |
120 | + | let S = fromBase58String(R) | |
121 | + | let T = assetBalance(q, S) | |
122 | + | if ((T == T)) | |
123 | + | then { | |
124 | + | let C = fraction(T, M, O) | |
125 | + | if ((C > 0)) | |
126 | + | then $Tuple2((Q._1 :+ S), (Q._2 :+ C)) | |
127 | + | else Q | |
128 | + | } | |
129 | + | else throw("Strict value is not equal to itself.") | |
130 | + | } | |
74 | 131 | ||
75 | - | func F (G,w) = { | |
76 | - | let H = G | |
77 | - | let I = H._1 | |
78 | - | let v = H._2 | |
79 | - | $Tuple2((I :+ u(v, w)), v) | |
80 | - | } | |
132 | + | let U = { | |
133 | + | let V = N | |
134 | + | let W = size(V) | |
135 | + | let X = $Tuple2(nil, nil) | |
136 | + | func Y (Z,aa) = if ((aa >= W)) | |
137 | + | then Z | |
138 | + | else P(Z, V[aa]) | |
81 | 139 | ||
140 | + | func ab (Z,aa) = if ((aa >= W)) | |
141 | + | then Z | |
142 | + | else throw("List size exceeds 6") | |
82 | 143 | ||
83 | - | func J (K) = { | |
84 | - | let L = x() | |
85 | - | let M = { | |
86 | - | let N = C() | |
87 | - | let O = size(N) | |
88 | - | let P = $Tuple2(nil, K) | |
89 | - | func Q (R,S) = if ((S >= O)) | |
90 | - | then R | |
91 | - | else F(R, N[S]) | |
92 | - | ||
93 | - | func T (R,S) = if ((S >= O)) | |
94 | - | then R | |
95 | - | else throw("List size exceeds 5") | |
96 | - | ||
97 | - | T(Q(Q(Q(Q(Q(P, 0), 1), 2), 3), 4), 5) | |
98 | - | } | |
99 | - | let I = M._1 | |
100 | - | let v = M._2 | |
101 | - | I | |
102 | - | } | |
103 | - | ||
104 | - | ||
105 | - | func U (I,B) = (I + valueOrElse(getInteger(B), 0)) | |
106 | - | ||
107 | - | ||
108 | - | func V (v) = { | |
109 | - | let W = J(v) | |
110 | - | let N = W | |
111 | - | let O = size(N) | |
112 | - | let P = 0 | |
113 | - | func Q (R,S) = if ((S >= O)) | |
114 | - | then R | |
115 | - | else U(R, N[S]) | |
116 | - | ||
117 | - | func T (R,S) = if ((S >= O)) | |
118 | - | then R | |
119 | - | else throw("List size exceeds 5") | |
120 | - | ||
121 | - | T(Q(Q(Q(Q(Q(P, 0), 1), 2), 3), 4), 5) | |
122 | - | } | |
123 | - | ||
124 | - | ||
125 | - | func X (I,Y) = (I :+ DeleteEntry(Y)) | |
126 | - | ||
127 | - | ||
128 | - | func Z (v) = { | |
129 | - | let W = J(v) | |
130 | - | let N = W | |
131 | - | let O = size(N) | |
132 | - | let P = nil | |
133 | - | func Q (R,S) = if ((S >= O)) | |
134 | - | then R | |
135 | - | else X(R, N[S]) | |
136 | - | ||
137 | - | func T (R,S) = if ((S >= O)) | |
138 | - | then R | |
139 | - | else throw("List size exceeds 5") | |
140 | - | ||
141 | - | T(Q(Q(Q(Q(Q(P, 0), 1), 2), 3), 4), 5) | |
142 | - | } | |
143 | - | ||
144 | - | ||
145 | - | func aa (ab,K,ac,ad) = { | |
146 | - | let B = u(K, ab) | |
147 | - | let ae = z(K, ab) | |
148 | - | let af = if (!(E(ab))) | |
149 | - | then n((("Address: " + ab) + " not in Admin list")) | |
150 | - | else if ((ae == 1)) | |
151 | - | then n((B + " you already voted")) | |
152 | - | else unit | |
153 | - | if ((af == af)) | |
154 | - | then { | |
155 | - | let W = V(K) | |
156 | - | if (((W + 1) >= ac)) | |
144 | + | ab(Y(Y(Y(Y(Y(Y(X, 0), 1), 2), 3), 4), 5), 6) | |
145 | + | } | |
146 | + | if ((U == U)) | |
157 | 147 | then { | |
158 | - | let ag = Z(K) | |
159 | - | (ag ++ ad) | |
148 | + | let ac = 0 | |
149 | + | let ad = ([invoke(q, "commitAfterStartWithLockRoundFor", [toString(v(q)), toString(q), toString(H), ac, t(q), M], nil)] ++ (if ((size(U._1) == 0)) | |
150 | + | then nil | |
151 | + | else [invoke(q, "transferAssets", [H.bytes, U._1, U._2], nil)])) | |
152 | + | $Tuple2([Burn(K, I.amount)], ad) | |
160 | 153 | } | |
161 | - | else | |
154 | + | else throw("Strict value is not equal to itself.") | |
162 | 155 | } | |
163 | 156 | else throw("Strict value is not equal to itself.") | |
164 | 157 | } | |
165 | 158 | ||
166 | 159 | ||
167 | - | func ah () = "%s__calculatorAddress" | |
160 | + | ||
161 | + | @Callable(f) | |
162 | + | func price (G,A) = $Tuple2(nil, 0) | |
168 | 163 | ||
169 | 164 | ||
170 | - | func ai () = "%s__lpAssetId" | |
171 | - | ||
172 | - | ||
173 | - | func aj () = makeString(["%s", "currentPeriod"], i) | |
174 | - | ||
175 | - | ||
176 | - | func ak (al) = makeString(["%s%d", "startHeight", toString(al)], i) | |
177 | - | ||
178 | - | ||
179 | - | func am () = makeString(["%s", "periodLength"], i) | |
180 | - | ||
181 | - | ||
182 | - | func an (al) = makeString(["%s%d", "treasuryValue", toString(al)], i) | |
183 | - | ||
184 | - | ||
185 | - | func ao () = makeString(["%s", "treasuryValue"], i) | |
186 | - | ||
187 | - | ||
188 | - | let ap = { | |
189 | - | let D = getString(this, ah()) | |
190 | - | if ($isInstanceOf(D, "String")) | |
191 | - | then { | |
192 | - | let m = D | |
193 | - | addressFromString(m) | |
194 | - | } | |
195 | - | else if ($isInstanceOf(D, "Unit")) | |
196 | - | then unit | |
197 | - | else throw("Match error") | |
198 | - | } | |
199 | - | ||
200 | - | let aq = valueOrErrorMessage(ap, l("invalid calculator address")) | |
201 | - | ||
202 | - | func ar () = "%s__powerConfigAddress" | |
203 | - | ||
204 | - | ||
205 | - | func as () = "%s__powerContractAddress" | |
206 | - | ||
207 | - | ||
208 | - | func at () = "contract_voting_result" | |
209 | - | ||
210 | - | ||
211 | - | func au (g,t) = ((("proposal_allow_broadcast_" + toString(g)) + "_") + toBase58String(t)) | |
212 | - | ||
213 | - | ||
214 | - | let av = { | |
215 | - | let D = getString(this, ar()) | |
216 | - | if ($isInstanceOf(D, "String")) | |
217 | - | then { | |
218 | - | let m = D | |
219 | - | addressFromString(m) | |
220 | - | } | |
221 | - | else if ($isInstanceOf(D, "Unit")) | |
222 | - | then unit | |
223 | - | else throw("Match error") | |
224 | - | } | |
225 | - | ||
226 | - | let aw = { | |
227 | - | let D = av | |
228 | - | if ($isInstanceOf(D, "Address")) | |
229 | - | then { | |
230 | - | let G = D | |
231 | - | let ax = getString(G, at()) | |
232 | - | if ($isInstanceOf(ax, "String")) | |
233 | - | then { | |
234 | - | let m = ax | |
235 | - | addressFromString(m) | |
236 | - | } | |
237 | - | else if ($isInstanceOf(ax, "Unit")) | |
238 | - | then unit | |
239 | - | else throw("Match error") | |
240 | - | } | |
241 | - | else if ($isInstanceOf(D, "Unit")) | |
242 | - | then unit | |
243 | - | else throw("Match error") | |
244 | - | } | |
245 | - | ||
246 | - | let ay = valueOrErrorMessage(aw, l("invalid voting result address")) | |
247 | - | ||
248 | - | let az = { | |
249 | - | let D = getString(this, ai()) | |
250 | - | if ($isInstanceOf(D, "String")) | |
251 | - | then { | |
252 | - | let m = D | |
253 | - | fromBase58String(m) | |
254 | - | } | |
255 | - | else if ($isInstanceOf(D, "Unit")) | |
256 | - | then unit | |
257 | - | else throw("Match error") | |
258 | - | } | |
259 | - | ||
260 | - | let aA = valueOrErrorMessage(az, l("invalid lpAssetId")) | |
261 | - | ||
262 | - | func aB (f,g) = if ((f.caller == g)) | |
263 | - | then true | |
264 | - | else n("permission denied") | |
265 | - | ||
266 | - | ||
267 | - | func aC (f) = aB(f, this) | |
268 | - | ||
269 | - | ||
270 | - | func aD (f) = aB(f, aq) | |
271 | - | ||
272 | - | ||
273 | - | @Callable(f) | |
274 | - | func stringEntry (Y,aE) = if (aD(f)) | |
275 | - | then $Tuple2([StringEntry(Y, aE)], Y) | |
276 | - | else $Tuple2(nil, unit) | |
277 | - | ||
278 | - | ||
279 | - | ||
280 | - | @Callable(f) | |
281 | - | func integerEntry (Y,aE) = if (aD(f)) | |
282 | - | then $Tuple2([IntegerEntry(Y, aE)], Y) | |
283 | - | else $Tuple2(nil, unit) | |
284 | - | ||
285 | - | ||
286 | - | ||
287 | - | @Callable(f) | |
288 | - | func booleanEntry (Y,aE) = if (aD(f)) | |
289 | - | then $Tuple2([BooleanEntry(Y, aE)], Y) | |
290 | - | else $Tuple2(nil, unit) | |
291 | - | ||
292 | - | ||
293 | - | ||
294 | - | @Callable(f) | |
295 | - | func binaryEntry (Y,aE) = if (aD(f)) | |
296 | - | then $Tuple2([BinaryEntry(Y, aE)], Y) | |
297 | - | else $Tuple2(nil, unit) | |
298 | - | ||
299 | - | ||
300 | - | ||
301 | - | @Callable(f) | |
302 | - | func deleteEntry (Y) = if (aD(f)) | |
303 | - | then $Tuple2([DeleteEntry(Y)], Y) | |
304 | - | else $Tuple2(nil, unit) | |
305 | - | ||
306 | - | ||
307 | - | ||
308 | - | @Callable(f) | |
309 | - | func reissue (aF) = if (aD(f)) | |
310 | - | then $Tuple2([Reissue(aA, aF, true)], aF) | |
311 | - | else $Tuple2(nil, unit) | |
312 | - | ||
313 | - | ||
314 | - | ||
315 | - | @Callable(f) | |
316 | - | func burn (aF) = if (aD(f)) | |
317 | - | then $Tuple2([Burn(aA, aF)], aF) | |
318 | - | else $Tuple2(nil, unit) | |
319 | - | ||
320 | - | ||
321 | - | ||
322 | - | @Callable(f) | |
323 | - | func transferAsset (aG,aF,aH) = if (aD(f)) | |
324 | - | then $Tuple2([ScriptTransfer(Address(aG), aF, aH)], aF) | |
325 | - | else $Tuple2(nil, unit) | |
326 | - | ||
327 | - | ||
328 | - | ||
329 | - | @Callable(f) | |
330 | - | func transferAssets (aG,aI,aJ) = if (aD(f)) | |
331 | - | then { | |
332 | - | func aK (aL,aM) = { | |
333 | - | let aN = aL | |
334 | - | let aO = aN._1 | |
335 | - | let aP = aN._2 | |
336 | - | let aQ = ScriptTransfer(Address(aG), parseIntValue(aJ[aP]), o(aI[aP])) | |
337 | - | let aR = (aO :+ aQ) | |
338 | - | $Tuple2(aR, (aP + 1)) | |
339 | - | } | |
340 | - | ||
341 | - | let aS = { | |
342 | - | let N = aI | |
343 | - | let O = size(N) | |
344 | - | let P = $Tuple2(nil, 0) | |
345 | - | func Q (R,S) = if ((S >= O)) | |
346 | - | then R | |
347 | - | else aK(R, N[S]) | |
348 | - | ||
349 | - | func T (R,S) = if ((S >= O)) | |
350 | - | then R | |
351 | - | else throw("List size exceeds 10") | |
352 | - | ||
353 | - | T(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(P, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
354 | - | } | |
355 | - | let aT = aS._1 | |
356 | - | let aU = aS._2 | |
357 | - | $Tuple2(aT, unit) | |
358 | - | } | |
359 | - | else $Tuple2(nil, unit) | |
360 | - | ||
361 | - | ||
362 | - | ||
363 | - | @Callable(f) | |
364 | - | func transferWaves (aG,aF) = if (aD(f)) | |
365 | - | then $Tuple2([ScriptTransfer(Address(aG), aF, unit)], aF) | |
366 | - | else $Tuple2(nil, unit) | |
367 | - | ||
368 | - | ||
369 | - | ||
370 | - | @Callable(f) | |
371 | - | func commitAfterStartWithLockRoundFor (aV,aW,g,aX,aY,aZ) = $Tuple2(nil, invoke(addressFromStringValue(aV), "commitAfterStartWithLockRoundFor", [aW, g, aX], [AttachedPayment(aY, aZ)])) | |
372 | - | ||
373 | - | ||
374 | - | ||
375 | - | @Callable(f) | |
376 | - | func call (ba,bb) = { | |
377 | - | let I = reentrantInvoke(aq, ba, [f.callerPublicKey, bb], f.payments) | |
378 | - | $Tuple2(nil, I) | |
379 | - | } | |
380 | - | ||
381 | - | ||
382 | - | ||
383 | - | @Callable(f) | |
384 | - | func voteForTxId (t) = { | |
385 | - | let ab = toBase58String(f.caller.bytes) | |
386 | - | let K = s(t) | |
387 | - | let I = [StringEntry(y(), t)] | |
388 | - | let bc = getString(this, y()) | |
389 | - | let af = [if ((size(fromBase58String(t)) == r)) | |
390 | - | then true | |
391 | - | else n((t + " is not valid txId")), if (if ((bc == unit)) | |
392 | - | then true | |
393 | - | else (value(bc) != t)) | |
394 | - | then true | |
395 | - | else n((t + " is already allowed"))] | |
396 | - | if ((af == af)) | |
397 | - | then aa(ab, K, q, I) | |
398 | - | else throw("Strict value is not equal to itself.") | |
399 | - | } | |
400 | - | ||
401 | - | ||
402 | - | @Verifier(bd) | |
403 | - | func be () = { | |
404 | - | let bf = { | |
405 | - | let D = aw | |
406 | - | if ($isInstanceOf(D, "Address")) | |
407 | - | then { | |
408 | - | let bg = D | |
409 | - | valueOrElse(getBoolean(bg, au(this, bd.id)), false) | |
410 | - | } | |
411 | - | else false | |
412 | - | } | |
413 | - | let bh = (bd.id == fromBase58String(valueOrElse(getString(this, y()), ""))) | |
414 | - | let bi = if ((size(C()) >= q)) | |
415 | - | then false | |
416 | - | else sigVerify(bd.bodyBytes, bd.proofs[0], bd.senderPublicKey) | |
417 | - | if (if (bf) | |
418 | - | then true | |
419 | - | else bh) | |
420 | - | then true | |
421 | - | else bi | |
422 | - | } | |
165 | + | @Verifier(ae) | |
166 | + | func af () = (b == c) | |
423 | 167 |
github/deemru/w8io/169f3d6 55.11 ms ◑![]()