tx · DXU1Wep861RcHzPLEFFrxaLi2q8fmXH4sEZCByogS1cg 3Muw1aRbeKgLqAS264AakECyQAvDsnweHLu: -0.01300000 Waves 2022.06.08 17:21 [2087507] smart account 3Muw1aRbeKgLqAS264AakECyQAvDsnweHLu > SELF 0.00000000 Waves
{ "type": 13, "id": "DXU1Wep861RcHzPLEFFrxaLi2q8fmXH4sEZCByogS1cg", "fee": 1300000, "feeAssetId": null, "timestamp": 1654698106868, "version": 1, "sender": "3Muw1aRbeKgLqAS264AakECyQAvDsnweHLu", "senderPublicKey": "668WwQVaWxezbvLEK3FccCSTbjst4zYAJDPrfLFRj9b9", "proofs": [ "4m2txKqPH2mcsn1QDKNBpUYrTdY9VVLWN6R4eji7RfG2TTApgvJkzMExAaYAWuqaauiZQkjknNntzQWagRANnLuQ" ], "script": "base64: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ZXlDcmVhdGVkAAAAAQUAAAAHYXNzZXRJZAcGCQEAAAAIdGhyb3dFcnIAAAABAgAAADlhdHRhY2hlZCBwYXltZW50IGFzc2V0IG11c3QgYmUgcmVnaXN0ZXJlZCBpbiB0aGUgY29udHJhY3QJAARMAAAAAgMJAQAAAAIhPQAAAAIFAAAAEnBlbmRpbmdXaXRoZHJhd2FscwAAAAAAAAAAAAYJAQAAAAh0aHJvd0VycgAAAAECAAAAKnplcm8gcGVuZGluZ1dpdGhkcmF3YWxzLCBub3RoaW5nIHRvIHRvcCB1cAkABEwAAAACAwkAAGcAAAACBQAAABJwZW5kaW5nV2l0aGRyYXdhbHMFAAAABmFtb3VudAYCAAAAPmFtb3VudCB0byB0b3AgdXAgbXVzdCBiZSBsZXNzIG9yIGVxdWFsIHRoYW4gcGVuZGluZ1dpdGhkcmF3YWxzBQAAAANuaWwDCQAAAAAAAAIFAAAABmNoZWNrcwUAAAAGY2hlY2tzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAVa2V5UGVuZGluZ1dpdGhkcmF3YWxzAAAAAQUAAAAHYXNzZXRJZAkAAGUAAAACBQAAABJwZW5kaW5nV2l0aGRyYXdhbHMFAAAABmFtb3VudAUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAAZzZXRUVkwAAAACAAAAB2Fzc2V0SWQAAAAGbmV3VFZMBAAAAAtjaGVja0NhbGxlcgkBAAAAEG11c3RQcm94eUFkZHJlc3MAAAACBQAAAAFpBQAAAAdhc3NldElkAwkAAAAAAAACBQAAAAtjaGVja0NhbGxlcgUAAAALY2hlY2tDYWxsZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAZrZXlUVkwAAAABBQAAAAdhc3NldElkBQAAAAZuZXdUVkwJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAA1rZXlUVkxIaXN0b3J5AAAAAgUAAAAHYXNzZXRJZAUAAAAGaGVpZ2h0BQAAAAZuZXdUVkwFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAKc2V0TWFuYWdlcgAAAAEAAAAXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkEAAAAC2NoZWNrQ2FsbGVyCQEAAAALbXVzdE1hbmFnZXIAAAABBQAAAAFpAwkAAAAAAAACBQAAAAtjaGVja0NhbGxlcgUAAAALY2hlY2tDYWxsZXIEAAAAFWNoZWNrTWFuYWdlclB1YmxpY0tleQkAAlkAAAABBQAAABdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQMJAAAAAAAAAgUAAAAVY2hlY2tNYW5hZ2VyUHVibGljS2V5BQAAABVjaGVja01hbmFnZXJQdWJsaWNLZXkJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAAAAAUAAAAXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAADmNvbmZpcm1NYW5hZ2VyAAAAAAQAAAACcG0JAQAAAB1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdAAAAAAEAAAABWhhc1BNAwkBAAAACWlzRGVmaW5lZAAAAAEFAAAAAnBtBgkBAAAACHRocm93RXJyAAAAAQIAAAASbm8gcGVuZGluZyBtYW5hZ2VyAwkAAAAAAAACBQAAAAVoYXNQTQUAAAAFaGFzUE0EAAAAB2NoZWNrUE0DCQAAAAAAAAIIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkBAAAABXZhbHVlAAAAAQUAAAACcG0GCQEAAAAIdGhyb3dFcnIAAAABAgAAABt5b3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAAAAAAIFAAAAB2NoZWNrUE0FAAAAB2NoZWNrUE0JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAE2tleU1hbmFnZXJQdWJsaWNLZXkAAAAACQACWAAAAAEJAQAAAAV2YWx1ZQAAAAEFAAAAAnBtCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAABprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQAAAAAFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAQAAAAPdGFyZ2V0UHVibGljS2V5BAAAAAckbWF0Y2gwCQEAAAAWbWFuYWdlclB1YmxpY0tleU9yVW5pdAAAAAADCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAnBrBQAAAAckbWF0Y2gwBQAAAAJwawMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleQkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAFAAAAD3RhcmdldFB1YmxpY0tlebVEQMU=", "chainId": 84, "height": 2087507, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CReS8PrayB5DJtBTePWPVWXVgwZxtVK8CZ6fL64YbBt1 Next: 9LA7qr8ZwkVPtVgErL9XCej1ZuCqeWCi6btZbdQZHBVY Diff:
Old | New | Differences | |
---|---|---|---|
66 | 66 | } | |
67 | 67 | ||
68 | 68 | ||
69 | - | func v (w) = { | |
70 | - | let x = throw("Permission denied") | |
69 | + | func v (w) = throw((c + w)) | |
70 | + | ||
71 | + | ||
72 | + | func x (y) = { | |
73 | + | let z = v("permission denied") | |
71 | 74 | let s = r() | |
72 | 75 | if ($isInstanceOf(s, "ByteVector")) | |
73 | 76 | then { | |
74 | - | let | |
75 | - | if (( | |
77 | + | let A = s | |
78 | + | if ((y.callerPublicKey == A)) | |
76 | 79 | then true | |
77 | - | else | |
80 | + | else z | |
78 | 81 | } | |
79 | 82 | else if ($isInstanceOf(s, "Unit")) | |
80 | - | then if (( | |
83 | + | then if ((y.caller == this)) | |
81 | 84 | then true | |
82 | - | else | |
85 | + | else z | |
83 | 86 | else throw("Match error") | |
84 | 87 | } | |
85 | - | ||
86 | - | ||
87 | - | func z (A) = throw((c + A)) | |
88 | 88 | ||
89 | 89 | ||
90 | 90 | func B () = addressFromStringValue(value(getString(q()))) | |
91 | 91 | ||
92 | 92 | ||
93 | - | func C ( | |
94 | - | let D = (toString( | |
93 | + | func C (y,g) = { | |
94 | + | let D = (toString(y.caller) == valueOrElse(getString(p(g)), b)) | |
95 | 95 | if (D) | |
96 | 96 | then true | |
97 | 97 | else { | |
98 | - | let E = | |
98 | + | let E = x(y) | |
99 | 99 | if ((E == E)) | |
100 | 100 | then true | |
101 | 101 | else throw("Strict value is not equal to itself.") | |
103 | 103 | } | |
104 | 104 | ||
105 | 105 | ||
106 | - | @Callable( | |
106 | + | @Callable(y) | |
107 | 107 | func constructor (B) = { | |
108 | - | let E = | |
108 | + | let E = x(y) | |
109 | 109 | if ((E == E)) | |
110 | 110 | then [StringEntry(q(), B)] | |
111 | 111 | else throw("Strict value is not equal to itself.") | |
113 | 113 | ||
114 | 114 | ||
115 | 115 | ||
116 | - | @Callable(w) | |
116 | + | @Callable(y) | |
117 | + | func put () = nil | |
118 | + | ||
119 | + | ||
120 | + | ||
121 | + | @Callable(y) | |
117 | 122 | func submitGetRequest () = nil | |
118 | 123 | ||
119 | 124 | ||
120 | 125 | ||
121 | - | @Callable( | |
126 | + | @Callable(y) | |
122 | 127 | func executeGetRequest (g,F,G) = nil | |
123 | 128 | ||
124 | 129 | ||
125 | 130 | ||
126 | - | @Callable( | |
131 | + | @Callable(y) | |
127 | 132 | func registerAsset (g,H,I,J,K,L) = { | |
128 | - | let M = [ | |
133 | + | let M = [x(y), if ((K >= 0)) | |
129 | 134 | then true | |
130 | - | else | |
135 | + | else v("invalid delayInBlocks"), if ((addressFromString(L) != unit)) | |
131 | 136 | then true | |
132 | - | else | |
137 | + | else v("invalid proxyAddress"), if ((valueOrElse(getBoolean(l(g)), false) == false)) | |
133 | 138 | then true | |
134 | - | else | |
139 | + | else v("asset already registered")] | |
135 | 140 | if ((M == M)) | |
136 | 141 | then { | |
137 | 142 | let N = value(assetInfo(fromBase58String(g))).decimals | |
153 | 158 | ||
154 | 159 | ||
155 | 160 | ||
156 | - | @Callable( | |
161 | + | @Callable(y) | |
157 | 162 | func topUpBalance () = { | |
158 | - | let S = valueOrErrorMessage( | |
163 | + | let S = valueOrErrorMessage(y.payments[0], (c + "payment must be attached")) | |
159 | 164 | let g = toBase58String(value(S.assetId)) | |
160 | 165 | let T = S.amount | |
161 | 166 | let U = valueOrElse(getInteger(j(g)), 0) | |
162 | - | let M = [C( | |
167 | + | let M = [C(y, g), if ((size(y.payments) == 1)) | |
163 | 168 | then true | |
164 | - | else | |
169 | + | else v("only one payment must be attached"), if (valueOrElse(getBoolean(l(g)), false)) | |
165 | 170 | then true | |
166 | - | else | |
171 | + | else v("attached payment asset must be registered in the contract"), if ((U != 0)) | |
167 | 172 | then true | |
168 | - | else | |
173 | + | else v("zero pendingWithdrawals, nothing to top up"), if ((U >= T)) | |
169 | 174 | then true | |
170 | 175 | else "amount to top up must be less or equal than pendingWithdrawals"] | |
171 | 176 | if ((M == M)) | |
175 | 180 | ||
176 | 181 | ||
177 | 182 | ||
178 | - | @Callable( | |
183 | + | @Callable(y) | |
179 | 184 | func setTVL (g,V) = { | |
180 | - | let E = C( | |
185 | + | let E = C(y, g) | |
181 | 186 | if ((E == E)) | |
182 | 187 | then [IntegerEntry(f(g), V), IntegerEntry(h(g, height), V)] | |
183 | 188 | else throw("Strict value is not equal to itself.") | |
185 | 190 | ||
186 | 191 | ||
187 | 192 | ||
188 | - | @Callable( | |
193 | + | @Callable(y) | |
189 | 194 | func setManager (W) = { | |
190 | - | let E = | |
195 | + | let E = x(y) | |
191 | 196 | if ((E == E)) | |
192 | 197 | then { | |
193 | 198 | let X = fromBase58String(W) | |
200 | 205 | ||
201 | 206 | ||
202 | 207 | ||
203 | - | @Callable( | |
208 | + | @Callable(y) | |
204 | 209 | func confirmManager () = { | |
205 | 210 | let Y = u() | |
206 | 211 | let Z = if (isDefined(Y)) | |
207 | 212 | then true | |
208 | - | else | |
213 | + | else v("no pending manager") | |
209 | 214 | if ((Z == Z)) | |
210 | 215 | then { | |
211 | - | let aa = if (( | |
216 | + | let aa = if ((y.callerPublicKey == value(Y))) | |
212 | 217 | then true | |
213 | - | else | |
218 | + | else v("you are not pending manager") | |
214 | 219 | if ((aa == aa)) | |
215 | 220 | then [StringEntry(d(), toBase58String(value(Y))), DeleteEntry(e())] | |
216 | 221 | else throw("Strict value is not equal to itself.") | |
225 | 230 | let s = r() | |
226 | 231 | if ($isInstanceOf(s, "ByteVector")) | |
227 | 232 | then { | |
228 | - | let | |
229 | - | | |
233 | + | let A = s | |
234 | + | A | |
230 | 235 | } | |
231 | 236 | else if ($isInstanceOf(s, "Unit")) | |
232 | 237 | then ab.senderPublicKey |
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 = "" | |
7 | 7 | ||
8 | 8 | let c = "lp_staking_v2: " | |
9 | 9 | ||
10 | 10 | func d () = makeString(["%s", "managerPublicKey"], a) | |
11 | 11 | ||
12 | 12 | ||
13 | 13 | func e () = makeString(["%s", "pendingManagerPublicKey"], a) | |
14 | 14 | ||
15 | 15 | ||
16 | 16 | func f (g) = makeString(["%s%s", "tvl", g], a) | |
17 | 17 | ||
18 | 18 | ||
19 | 19 | func h (g,i) = makeString(["%s%s%d", "tvlHistory", g, toString(i)], a) | |
20 | 20 | ||
21 | 21 | ||
22 | 22 | func j (g) = makeString(["%s%s", "pendingWithdrawals", g], a) | |
23 | 23 | ||
24 | 24 | ||
25 | 25 | func k (g) = makeString(["%s%s", "delayInBlocks", g], a) | |
26 | 26 | ||
27 | 27 | ||
28 | 28 | func l (g) = makeString(["%s%s", "created", g], a) | |
29 | 29 | ||
30 | 30 | ||
31 | 31 | func m (g) = makeString(["%s%s", "assetIdToLPId", g], a) | |
32 | 32 | ||
33 | 33 | ||
34 | 34 | func n (o) = makeString(["%s%s", "lpIdToAssetId", o], a) | |
35 | 35 | ||
36 | 36 | ||
37 | 37 | func p (g) = makeString(["%s%s", "proxyAddress", g], a) | |
38 | 38 | ||
39 | 39 | ||
40 | 40 | func q () = makeString(["%s", "assetsStoreContract"], a) | |
41 | 41 | ||
42 | 42 | ||
43 | 43 | func r () = { | |
44 | 44 | let s = getString(d()) | |
45 | 45 | if ($isInstanceOf(s, "String")) | |
46 | 46 | then { | |
47 | 47 | let t = s | |
48 | 48 | fromBase58String(t) | |
49 | 49 | } | |
50 | 50 | else if ($isInstanceOf(s, "Unit")) | |
51 | 51 | then unit | |
52 | 52 | else throw("Match error") | |
53 | 53 | } | |
54 | 54 | ||
55 | 55 | ||
56 | 56 | func u () = { | |
57 | 57 | let s = getString(e()) | |
58 | 58 | if ($isInstanceOf(s, "String")) | |
59 | 59 | then { | |
60 | 60 | let t = s | |
61 | 61 | fromBase58String(t) | |
62 | 62 | } | |
63 | 63 | else if ($isInstanceOf(s, "Unit")) | |
64 | 64 | then unit | |
65 | 65 | else throw("Match error") | |
66 | 66 | } | |
67 | 67 | ||
68 | 68 | ||
69 | - | func v (w) = { | |
70 | - | let x = throw("Permission denied") | |
69 | + | func v (w) = throw((c + w)) | |
70 | + | ||
71 | + | ||
72 | + | func x (y) = { | |
73 | + | let z = v("permission denied") | |
71 | 74 | let s = r() | |
72 | 75 | if ($isInstanceOf(s, "ByteVector")) | |
73 | 76 | then { | |
74 | - | let | |
75 | - | if (( | |
77 | + | let A = s | |
78 | + | if ((y.callerPublicKey == A)) | |
76 | 79 | then true | |
77 | - | else | |
80 | + | else z | |
78 | 81 | } | |
79 | 82 | else if ($isInstanceOf(s, "Unit")) | |
80 | - | then if (( | |
83 | + | then if ((y.caller == this)) | |
81 | 84 | then true | |
82 | - | else | |
85 | + | else z | |
83 | 86 | else throw("Match error") | |
84 | 87 | } | |
85 | - | ||
86 | - | ||
87 | - | func z (A) = throw((c + A)) | |
88 | 88 | ||
89 | 89 | ||
90 | 90 | func B () = addressFromStringValue(value(getString(q()))) | |
91 | 91 | ||
92 | 92 | ||
93 | - | func C ( | |
94 | - | let D = (toString( | |
93 | + | func C (y,g) = { | |
94 | + | let D = (toString(y.caller) == valueOrElse(getString(p(g)), b)) | |
95 | 95 | if (D) | |
96 | 96 | then true | |
97 | 97 | else { | |
98 | - | let E = | |
98 | + | let E = x(y) | |
99 | 99 | if ((E == E)) | |
100 | 100 | then true | |
101 | 101 | else throw("Strict value is not equal to itself.") | |
102 | 102 | } | |
103 | 103 | } | |
104 | 104 | ||
105 | 105 | ||
106 | - | @Callable( | |
106 | + | @Callable(y) | |
107 | 107 | func constructor (B) = { | |
108 | - | let E = | |
108 | + | let E = x(y) | |
109 | 109 | if ((E == E)) | |
110 | 110 | then [StringEntry(q(), B)] | |
111 | 111 | else throw("Strict value is not equal to itself.") | |
112 | 112 | } | |
113 | 113 | ||
114 | 114 | ||
115 | 115 | ||
116 | - | @Callable(w) | |
116 | + | @Callable(y) | |
117 | + | func put () = nil | |
118 | + | ||
119 | + | ||
120 | + | ||
121 | + | @Callable(y) | |
117 | 122 | func submitGetRequest () = nil | |
118 | 123 | ||
119 | 124 | ||
120 | 125 | ||
121 | - | @Callable( | |
126 | + | @Callable(y) | |
122 | 127 | func executeGetRequest (g,F,G) = nil | |
123 | 128 | ||
124 | 129 | ||
125 | 130 | ||
126 | - | @Callable( | |
131 | + | @Callable(y) | |
127 | 132 | func registerAsset (g,H,I,J,K,L) = { | |
128 | - | let M = [ | |
133 | + | let M = [x(y), if ((K >= 0)) | |
129 | 134 | then true | |
130 | - | else | |
135 | + | else v("invalid delayInBlocks"), if ((addressFromString(L) != unit)) | |
131 | 136 | then true | |
132 | - | else | |
137 | + | else v("invalid proxyAddress"), if ((valueOrElse(getBoolean(l(g)), false) == false)) | |
133 | 138 | then true | |
134 | - | else | |
139 | + | else v("asset already registered")] | |
135 | 140 | if ((M == M)) | |
136 | 141 | then { | |
137 | 142 | let N = value(assetInfo(fromBase58String(g))).decimals | |
138 | 143 | let O = Issue(H, I, 1, N, true) | |
139 | 144 | let P = calculateAssetId(O) | |
140 | 145 | let o = toBase58String(P) | |
141 | 146 | let Q = invoke(B(), "createOrUpdate", [o, J, false], nil) | |
142 | 147 | if ((Q == Q)) | |
143 | 148 | then { | |
144 | 149 | let R = invoke(B(), "addLabel", [o, "DEFI"], nil) | |
145 | 150 | if ((R == R)) | |
146 | 151 | then [BooleanEntry(l(g), true), IntegerEntry(f(g), 0), IntegerEntry(h(g, height), 0), IntegerEntry(k(g), K), StringEntry(n(o), g), StringEntry(m(g), o), StringEntry(p(g), L), O, Burn(P, 1)] | |
147 | 152 | else throw("Strict value is not equal to itself.") | |
148 | 153 | } | |
149 | 154 | else throw("Strict value is not equal to itself.") | |
150 | 155 | } | |
151 | 156 | else throw("Strict value is not equal to itself.") | |
152 | 157 | } | |
153 | 158 | ||
154 | 159 | ||
155 | 160 | ||
156 | - | @Callable( | |
161 | + | @Callable(y) | |
157 | 162 | func topUpBalance () = { | |
158 | - | let S = valueOrErrorMessage( | |
163 | + | let S = valueOrErrorMessage(y.payments[0], (c + "payment must be attached")) | |
159 | 164 | let g = toBase58String(value(S.assetId)) | |
160 | 165 | let T = S.amount | |
161 | 166 | let U = valueOrElse(getInteger(j(g)), 0) | |
162 | - | let M = [C( | |
167 | + | let M = [C(y, g), if ((size(y.payments) == 1)) | |
163 | 168 | then true | |
164 | - | else | |
169 | + | else v("only one payment must be attached"), if (valueOrElse(getBoolean(l(g)), false)) | |
165 | 170 | then true | |
166 | - | else | |
171 | + | else v("attached payment asset must be registered in the contract"), if ((U != 0)) | |
167 | 172 | then true | |
168 | - | else | |
173 | + | else v("zero pendingWithdrawals, nothing to top up"), if ((U >= T)) | |
169 | 174 | then true | |
170 | 175 | else "amount to top up must be less or equal than pendingWithdrawals"] | |
171 | 176 | if ((M == M)) | |
172 | 177 | then [IntegerEntry(j(g), (U - T))] | |
173 | 178 | else throw("Strict value is not equal to itself.") | |
174 | 179 | } | |
175 | 180 | ||
176 | 181 | ||
177 | 182 | ||
178 | - | @Callable( | |
183 | + | @Callable(y) | |
179 | 184 | func setTVL (g,V) = { | |
180 | - | let E = C( | |
185 | + | let E = C(y, g) | |
181 | 186 | if ((E == E)) | |
182 | 187 | then [IntegerEntry(f(g), V), IntegerEntry(h(g, height), V)] | |
183 | 188 | else throw("Strict value is not equal to itself.") | |
184 | 189 | } | |
185 | 190 | ||
186 | 191 | ||
187 | 192 | ||
188 | - | @Callable( | |
193 | + | @Callable(y) | |
189 | 194 | func setManager (W) = { | |
190 | - | let E = | |
195 | + | let E = x(y) | |
191 | 196 | if ((E == E)) | |
192 | 197 | then { | |
193 | 198 | let X = fromBase58String(W) | |
194 | 199 | if ((X == X)) | |
195 | 200 | then [StringEntry(e(), W)] | |
196 | 201 | else throw("Strict value is not equal to itself.") | |
197 | 202 | } | |
198 | 203 | else throw("Strict value is not equal to itself.") | |
199 | 204 | } | |
200 | 205 | ||
201 | 206 | ||
202 | 207 | ||
203 | - | @Callable( | |
208 | + | @Callable(y) | |
204 | 209 | func confirmManager () = { | |
205 | 210 | let Y = u() | |
206 | 211 | let Z = if (isDefined(Y)) | |
207 | 212 | then true | |
208 | - | else | |
213 | + | else v("no pending manager") | |
209 | 214 | if ((Z == Z)) | |
210 | 215 | then { | |
211 | - | let aa = if (( | |
216 | + | let aa = if ((y.callerPublicKey == value(Y))) | |
212 | 217 | then true | |
213 | - | else | |
218 | + | else v("you are not pending manager") | |
214 | 219 | if ((aa == aa)) | |
215 | 220 | then [StringEntry(d(), toBase58String(value(Y))), DeleteEntry(e())] | |
216 | 221 | else throw("Strict value is not equal to itself.") | |
217 | 222 | } | |
218 | 223 | else throw("Strict value is not equal to itself.") | |
219 | 224 | } | |
220 | 225 | ||
221 | 226 | ||
222 | 227 | @Verifier(ab) | |
223 | 228 | func ac () = { | |
224 | 229 | let ad = { | |
225 | 230 | let s = r() | |
226 | 231 | if ($isInstanceOf(s, "ByteVector")) | |
227 | 232 | then { | |
228 | - | let | |
229 | - | | |
233 | + | let A = s | |
234 | + | A | |
230 | 235 | } | |
231 | 236 | else if ($isInstanceOf(s, "Unit")) | |
232 | 237 | then ab.senderPublicKey | |
233 | 238 | else throw("Match error") | |
234 | 239 | } | |
235 | 240 | sigVerify(ab.bodyBytes, ab.proofs[0], ad) | |
236 | 241 | } | |
237 | 242 |
github/deemru/w8io/169f3d6 67.17 ms ◑