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:
OldNewDifferences
2121
2222 let j = "WAVES"
2323
24-let k = "wxdao_factory.ride"
24+let k = "wxdao_calculator.ride"
2525
2626 func l (m) = ((k + ": ") + m)
2727
2929 func n (m) = throw(l(m))
3030
3131
32-func o (m) = if ((m == j))
33- then unit
34- else fromBase58String(m)
32+func o () = "%s__powerConfigAddress"
3533
3634
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"))
4446
4547
46-func u (v,w) = makeString([v, w], i)
48+func s () = "powerAssetId"
4749
4850
49-func x () = makeString(["%s", "adminAddressList"], i)
51+func t (q) = fromBase58String(valueOrErrorMessage(getString(p(q), s()), l("invalid power asset id")))
5052
5153
52-func y () = makeString(["%s", "txId"], i)
54+func u () = "%s__powerContractAddress"
5355
5456
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)
5888 }
5989
6090
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)
6998 }
7099
71100
72-func E (g) = containsElement(C(), g)
73101
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+ }
74131
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])
81139
140+ func ab (Z,aa) = if ((aa >= W))
141+ then Z
142+ else throw("List size exceeds 6")
82143
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))
157147 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)
160153 }
161- else [IntegerEntry(B, 1)]
154+ else throw("Strict value is not equal to itself.")
162155 }
163156 else throw("Strict value is not equal to itself.")
164157 }
165158
166159
167-func ah () = "%s__calculatorAddress"
160+
161+@Callable(f)
162+func price (G,A) = $Tuple2(nil, 0)
168163
169164
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)
423167
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = take(drop(this.bytes, 1), 1)
77
88 let c = base58'2T'
99
1010 let d = base58'2W'
1111
1212 func e (f,g) = if ((f.caller == g))
1313 then true
1414 else throw("permission denied")
1515
1616
1717 func h (f) = e(f, this)
1818
1919
2020 let i = "__"
2121
2222 let j = "WAVES"
2323
24-let k = "wxdao_factory.ride"
24+let k = "wxdao_calculator.ride"
2525
2626 func l (m) = ((k + ": ") + m)
2727
2828
2929 func n (m) = throw(l(m))
3030
3131
32-func o (m) = if ((m == j))
33- then unit
34- else fromBase58String(m)
32+func o () = "%s__powerConfigAddress"
3533
3634
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"))
4446
4547
46-func u (v,w) = makeString([v, w], i)
48+func s () = "powerAssetId"
4749
4850
49-func x () = makeString(["%s", "adminAddressList"], i)
51+func t (q) = fromBase58String(valueOrErrorMessage(getString(p(q), s()), l("invalid power asset id")))
5052
5153
52-func y () = makeString(["%s", "txId"], i)
54+func u () = "%s__powerContractAddress"
5355
5456
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)
5888 }
5989
6090
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)
6998 }
7099
71100
72-func E (g) = containsElement(C(), g)
73101
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+ }
74131
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])
81139
140+ func ab (Z,aa) = if ((aa >= W))
141+ then Z
142+ else throw("List size exceeds 6")
82143
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))
157147 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)
160153 }
161- else [IntegerEntry(B, 1)]
154+ else throw("Strict value is not equal to itself.")
162155 }
163156 else throw("Strict value is not equal to itself.")
164157 }
165158
166159
167-func ah () = "%s__calculatorAddress"
160+
161+@Callable(f)
162+func price (G,A) = $Tuple2(nil, 0)
168163
169164
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)
423167

github/deemru/w8io/169f3d6 
55.11 ms