tx · BNzWoHPCugXhU7QE7RYJd4ttoMy1soYdEnxHoE1pqdpJ

3Mp5JgVSHA9iziujC9Kmnf2rCN5SYFE97yC:  -0.01400000 Waves

2021.11.30 16:56 [1813861] smart account 3Mp5JgVSHA9iziujC9Kmnf2rCN5SYFE97yC > SELF 0.00000000 Waves

{ "type": 13, "id": "BNzWoHPCugXhU7QE7RYJd4ttoMy1soYdEnxHoE1pqdpJ", "fee": 1400000, "feeAssetId": null, "timestamp": 1638280574950, "version": 2, "chainId": 84, "sender": "3Mp5JgVSHA9iziujC9Kmnf2rCN5SYFE97yC", "senderPublicKey": "CSx1y2ADZAi6KvFZT2LoqQmX5qBxDVVGGZ6heDAGngHM", "proofs": [ "eHL1JPUQebcaVRJrogpzSfDEDw8xzKrdiZmZiS3i7EbLMncwCbTS64FCrgJkew5H1eUeNoBiiPfAkCEbbWj9jzw", "2k8Moc25wFarRGq6Hmwm1SCJAiWCBK2HHh6fQ9AD4j2Ct6oVt9k5CbnsGiqFvKFsZJ8CqGVfrndaR2bvZC3HgNTK" ], "script": "base64:AAIFAAAAAAAAABwIAhIHCgUBERgRGBIAEgMKAQgSBAoCAQgSABIAAAAAHQAAAAAJa2V5QWN0aXZlAgAAAAZhY3RpdmUAAAAADGtleUVuZEhlaWdodAIAAAAKZW5kX2hlaWdodAAAAAAPa2V5UHJpemVzUHJpY2VzAgAAAA1wcml6ZXNfcHJpY2VzAAAAAA1rZXlQcml6ZXNBSWRzAgAAABdwcml6ZXNfYWNoaWV2ZW1lbnRzX2lkcwAAAAAQa2V5UHJpemVzQW1vdW50cwIAAAANcHJpemVzX2Ftb3VudAAAAAAOa2V5TGV2ZWxQcmljZXMCAAAADGxldmVsX3ByaWNlcwAAAAAWa2V5TGV2ZWxBY2hpZXZlbW50c0lkcwIAAAAWbGV2ZWxfYWNoaWV2ZW1lbnRzX2lkcwAAAAAJa2V5U1dPUGlkAgAAAAdTV09QX2lkAAAAAA5rZXlUb3RhbEJ1cm5lZAIAAAAMdG90YWxfYnVybmVkAAAAAA1rZXlWZXJpZnlIYXNoAgAAAAt2ZXJpZnlfaGFzaAAAAAARa2V5RmluYWxpemVIZWlnaHQCAAAAD2ZpbmFsaXplX2hlaWdodAAAAAASa2V5VXNlclRvdGFsQnVybmVkAgAAAA1fdG90YWxfYnVybmVkAAAAAAZvcmFjbGUJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVTpRaoekC86rvG6DuYumpJfGpiE4fNiswgAAAAAB2Zhcm1pbmcJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVQsS4J2Ro3vGTI9KakEzAv69iHSjreZL2YAAAAADGFjaGlldmVtZW50cwkBAAAAB0FkZHJlc3MAAAABAQAAABoBVJK5fKIHIb/pZr3vGi+pG6QkOinYZMH4PwAAAAAPa2V5QWRtaW5QdWJLZXkxAgAAAAthZG1pbl9wdWJfMQAAAAAPa2V5QWRtaW5QdWJLZXkyAgAAAAthZG1pbl9wdWJfMgAAAAAPa2V5QWRtaW5QdWJLZXkzAgAAAAthZG1pbl9wdWJfMwEAAAALZ2V0QWRtaW5QdWIAAAABAAAAC2tleUFkbWluUHViBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABm9yYWNsZQUAAAALa2V5QWRtaW5QdWIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQA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", "height": 1813861, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Hua2f7BfCucfFYtafS3mFSNuAyAL5XH7BENnbNVpcMav Next: 7ma6AvG2FZvWeCpEhTvT4aAKZ2q1x8cwiN8xZErNE9i Diff:
OldNewDifferences
6666
6767
6868 func calcPrizesAmounts (acc,next) = {
69- let $t016581683 = acc
70- let total = $t016581683._1
71- let result = $t016581683._2
69+ let $t016511676 = acc
70+ let total = $t016511676._1
71+ let result = $t016511676._2
7272 $Tuple2(total, (result :+ (total / next)))
7373 }
7474
154154
155155 @Callable(i)
156156 func add () = {
157- let $t035323607 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
158- let pmtAmount = $t035323607._1
159- let pmtAssetId = $t035323607._2
157+ let $t035253600 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
158+ let pmtAmount = $t035253600._1
159+ let pmtAssetId = $t035253600._2
160160 let endHeight = valueOrElse(getInteger(this, keyEndHeight), 0)
161161 if (!(isActive))
162162 then throw("DApp is inactive at this moment")
268268 else 0
269269 if ((inv4 == inv4))
270270 then {
271+ let baseEntry = [IntegerEntry(keyTotalBurned, newTotalBurned), IntegerEntry((toString(i.caller) + keyUserTotalBurned), (userTotalBurned + pmtAmount)), StringEntry(keyPrizesAmounts, newPrizesAmountsStr)]
271272 let oldLevel = calcLevel(userTotalBurned)
272- let newLevel = calcLevel((userTotalBurned + pmtAmount))
273- let inv5 = if ((oldLevel != newLevel))
274- then invoke(achievements, "add", [levelAchievementsIds[(newLevel - 1)], 1], nil)
275- else 0
276-[IntegerEntry(keyTotalBurned, newTotalBurned), IntegerEntry((toString(i.caller) + keyUserTotalBurned), (userTotalBurned + pmtAmount)), StringEntry(keyPrizesAmounts, newPrizesAmountsStr)]
273+ let newLevel = calcLevel(newTotalBurned)
274+ let levelDiff = (newLevel - oldLevel)
275+ if ((levelDiff > 0))
276+ then {
277+ let inv5 = if ((levelDiff == 1))
278+ then invoke(achievements, "add", [levelAchievementsIds[(newLevel - 1)], 1], nil)
279+ else 0
280+ if ((inv5 == inv5))
281+ then {
282+ let inv6 = if ((levelDiff >= 2))
283+ then invoke(achievements, "add", [levelAchievementsIds[(newLevel - 1)], 1], nil)
284+ else 0
285+ if ((inv6 == inv6))
286+ then {
287+ let inv7 = if ((levelDiff >= 3))
288+ then invoke(achievements, "add", [levelAchievementsIds[(newLevel - 1)], 1], nil)
289+ else 0
290+ if ((inv7 == inv7))
291+ then {
292+ let inv8 = if ((levelDiff == 4))
293+ then invoke(achievements, "add", [levelAchievementsIds[(newLevel - 1)], 1], nil)
294+ else 0
295+ if ((inv8 == inv8))
296+ then baseEntry
297+ else throw("Strict value is not equal to itself.")
298+ }
299+ else throw("Strict value is not equal to itself.")
300+ }
301+ else throw("Strict value is not equal to itself.")
302+ }
303+ else throw("Strict value is not equal to itself.")
304+ }
305+ else baseEntry
277306 }
278307 else throw("Strict value is not equal to itself.")
279308 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let keyActive = "active"
55
66 let keyEndHeight = "end_height"
77
88 let keyPrizesPrices = "prizes_prices"
99
1010 let keyPrizesAIds = "prizes_achievements_ids"
1111
1212 let keyPrizesAmounts = "prizes_amount"
1313
1414 let keyLevelPrices = "level_prices"
1515
1616 let keyLevelAchievemntsIds = "level_achievements_ids"
1717
1818 let keySWOPid = "SWOP_id"
1919
2020 let keyTotalBurned = "total_burned"
2121
2222 let keyVerifyHash = "verify_hash"
2323
2424 let keyFinalizeHeight = "finalize_height"
2525
2626 let keyUserTotalBurned = "_total_burned"
2727
2828 let oracle = Address(base58'3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9')
2929
3030 let farming = Address(base58'3MsxHxruYWoddB4HRiPBYAWtMXMtCF1V9XT')
3131
3232 let achievements = Address(base58'3N3HtdnBkqSSc16DaydiwtrMBUv3DfqKjSW')
3333
3434 let keyAdminPubKey1 = "admin_pub_1"
3535
3636 let keyAdminPubKey2 = "admin_pub_2"
3737
3838 let keyAdminPubKey3 = "admin_pub_3"
3939
4040 func getAdminPub (keyAdminPub) = match getString(oracle, keyAdminPub) {
4141 case string: String =>
4242 fromBase58String(string)
4343 case nothing =>
4444 throw("Admin public key is empty")
4545 }
4646
4747
4848 let adminPubKey1 = getAdminPub(keyAdminPubKey1)
4949
5050 let adminPubKey2 = getAdminPub(keyAdminPubKey2)
5151
5252 let adminPubKey3 = getAdminPub(keyAdminPubKey3)
5353
5454 let adminPubKeyStaking = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
5555
5656 let swopId = fromBase58String(getStringValue(farming, keySWOPid))
5757
5858 let isActive = valueOrElse(getBoolean(this, keyActive), true)
5959
6060 func inListToStr (acc,next) = if ((acc == ""))
6161 then (acc + toString(next))
6262 else ((acc + ",") + toString(next))
6363
6464
6565 func inListToInt (acc,next) = (acc :+ parseIntValue(next))
6666
6767
6868 func calcPrizesAmounts (acc,next) = {
69- let $t016581683 = acc
70- let total = $t016581683._1
71- let result = $t016581683._2
69+ let $t016511676 = acc
70+ let total = $t016511676._1
71+ let result = $t016511676._2
7272 $Tuple2(total, (result :+ (total / next)))
7373 }
7474
7575
7676 func calcLevel (burned) = {
7777 let levelPrices = {
7878 let $l = split(getStringValue(this, keyLevelPrices), ",")
7979 let $s = size($l)
8080 let $acc0 = nil
8181 func 1 ($a,$i) = if (($i >= $s))
8282 then $a
8383 else inListToInt($a, $l[$i])
8484
8585 func 2 ($a,$i) = if (($i >= $s))
8686 then $a
8787 else throw("List size exceeds 5")
8888
8989 2(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5)
9090 }
9191 if ((levelPrices[3] >= burned))
9292 then 4
9393 else if ((levelPrices[2] >= burned))
9494 then 3
9595 else if ((levelPrices[1] >= burned))
9696 then 2
9797 else if ((levelPrices[0] >= burned))
9898 then 1
9999 else 0
100100 }
101101
102102
103103 @Callable(i)
104104 func init (endHeight,prizePrices,prizeAchievmentsIds,levelPrices,levelAchievmentsIds) = if (!(containsElement([adminPubKey1, adminPubKey2, adminPubKey3], i.callerPublicKey)))
105105 then throw("Only admin can call this function")
106106 else if (isDefined(getInteger(this, keyEndHeight)))
107107 then throw("DApp is already inited")
108108 else if ((height > endHeight))
109109 then throw("Burning ending must be greater than current height")
110110 else if (if ((size(prizePrices) != 5))
111111 then true
112112 else (size(prizeAchievmentsIds) != 5))
113113 then throw("Amount of prizes achievemts lists must equal to 5")
114114 else if (if ((size(levelPrices) != 4))
115115 then true
116116 else (size(levelAchievmentsIds) != 4))
117117 then throw("Amount of levels lists must equal to 4")
118118 else {
119119 let prizePricesStr = {
120120 let $l = prizePrices
121121 let $s = size($l)
122122 let $acc0 = ""
123123 func 1 ($a,$i) = if (($i >= $s))
124124 then $a
125125 else inListToStr($a, $l[$i])
126126
127127 func 2 ($a,$i) = if (($i >= $s))
128128 then $a
129129 else throw("List size exceeds 5")
130130
131131 2(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5)
132132 }
133133 let prizeAchievmentsIdsStr = makeString(prizeAchievmentsIds, ",")
134134 let levelPricesStr = {
135135 let $l = levelPrices
136136 let $s = size($l)
137137 let $acc0 = ""
138138 func 1 ($a,$i) = if (($i >= $s))
139139 then $a
140140 else inListToStr($a, $l[$i])
141141
142142 func 2 ($a,$i) = if (($i >= $s))
143143 then $a
144144 else throw("List size exceeds 5")
145145
146146 2(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5)
147147 }
148148 let levelAchievmentsIdsStr = makeString(levelAchievmentsIds, ",")
149149 let prizesAmountStr = "0,0,0,0,0"
150150 [IntegerEntry(keyEndHeight, endHeight), StringEntry(keyPrizesPrices, prizePricesStr), StringEntry(keyPrizesAIds, prizeAchievmentsIdsStr), StringEntry(keyLevelPrices, levelPricesStr), StringEntry(keyLevelAchievemntsIds, levelAchievmentsIdsStr), StringEntry(keyPrizesAmounts, prizesAmountStr)]
151151 }
152152
153153
154154
155155 @Callable(i)
156156 func add () = {
157- let $t035323607 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
158- let pmtAmount = $t035323607._1
159- let pmtAssetId = $t035323607._2
157+ let $t035253600 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
158+ let pmtAmount = $t035253600._1
159+ let pmtAssetId = $t035253600._2
160160 let endHeight = valueOrElse(getInteger(this, keyEndHeight), 0)
161161 if (!(isActive))
162162 then throw("DApp is inactive at this moment")
163163 else if (if ((height > endHeight))
164164 then true
165165 else (endHeight == 0))
166166 then throw("Swop burning are ended or not started yet")
167167 else if ((pmtAssetId != swopId))
168168 then throw("You can add only SWOP token")
169169 else {
170170 let newTotalBurned = (valueOrElse(getInteger(this, keyTotalBurned), 0) + pmtAmount)
171171 let userTotalBurned = valueOrElse(getInteger(this, (toString(i.caller) + keyUserTotalBurned)), 0)
172172 let prizesAmounts = {
173173 let $l = split(getStringValue(this, keyPrizesAmounts), ",")
174174 let $s = size($l)
175175 let $acc0 = nil
176176 func 1 ($a,$i) = if (($i >= $s))
177177 then $a
178178 else inListToInt($a, $l[$i])
179179
180180 func 2 ($a,$i) = if (($i >= $s))
181181 then $a
182182 else throw("List size exceeds 5")
183183
184184 2(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5)
185185 }
186186 let prizesPrices = {
187187 let $l = split(getStringValue(this, keyPrizesPrices), ",")
188188 let $s = size($l)
189189 let $acc0 = nil
190190 func 1 ($a,$i) = if (($i >= $s))
191191 then $a
192192 else inListToInt($a, $l[$i])
193193
194194 func 2 ($a,$i) = if (($i >= $s))
195195 then $a
196196 else throw("List size exceeds 5")
197197
198198 2(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5)
199199 }
200200 let prizesAchievementsIds = split(getStringValue(this, keyPrizesAIds), ",")
201201 let levelAchievementsIds = split(getStringValue(this, keyLevelAchievemntsIds), ",")
202202 let res = {
203203 let $l = prizesPrices
204204 let $s = size($l)
205205 let $acc0 = $Tuple2(newTotalBurned, nil)
206206 func 1 ($a,$i) = if (($i >= $s))
207207 then $a
208208 else calcPrizesAmounts($a, $l[$i])
209209
210210 func 2 ($a,$i) = if (($i >= $s))
211211 then $a
212212 else throw("List size exceeds 5")
213213
214214 2(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5)
215215 }
216216 let newPrizesAmounts = res._2
217217 let newPrizesAmountsStr = {
218218 let $l = newPrizesAmounts
219219 let $s = size($l)
220220 let $acc0 = ""
221221 func 1 ($a,$i) = if (($i >= $s))
222222 then $a
223223 else inListToStr($a, $l[$i])
224224
225225 func 2 ($a,$i) = if (($i >= $s))
226226 then $a
227227 else throw("List size exceeds 5")
228228
229229 2(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5)
230230 }
231231 let inv0 = if ((newPrizesAmounts[0] != prizesAmounts[0]))
232232 then {
233233 let achievementAmount = (newPrizesAmounts[0] - prizesAmounts[0])
234234 invoke(achievements, "add", [prizesAchievementsIds[0], achievementAmount], nil)
235235 }
236236 else 0
237237 if ((inv0 == inv0))
238238 then {
239239 let inv1 = if ((newPrizesAmounts[1] != prizesAmounts[1]))
240240 then {
241241 let achievementAmount = (newPrizesAmounts[1] - prizesAmounts[1])
242242 invoke(achievements, "add", [prizesAchievementsIds[1], achievementAmount], nil)
243243 }
244244 else 0
245245 if ((inv1 == inv1))
246246 then {
247247 let inv2 = if ((newPrizesAmounts[2] != prizesAmounts[2]))
248248 then {
249249 let achievementAmount = (newPrizesAmounts[2] - prizesAmounts[2])
250250 invoke(achievements, "add", [prizesAchievementsIds[2], achievementAmount], nil)
251251 }
252252 else 0
253253 if ((inv2 == inv2))
254254 then {
255255 let inv3 = if ((newPrizesAmounts[3] != prizesAmounts[3]))
256256 then {
257257 let achievementAmount = (newPrizesAmounts[3] - prizesAmounts[3])
258258 invoke(achievements, "add", [prizesAchievementsIds[3], achievementAmount], nil)
259259 }
260260 else 0
261261 if ((inv3 == inv3))
262262 then {
263263 let inv4 = if ((newPrizesAmounts[4] != prizesAmounts[4]))
264264 then {
265265 let achievementAmount = (newPrizesAmounts[4] - prizesAmounts[4])
266266 invoke(achievements, "add", [prizesAchievementsIds[4], achievementAmount], nil)
267267 }
268268 else 0
269269 if ((inv4 == inv4))
270270 then {
271+ let baseEntry = [IntegerEntry(keyTotalBurned, newTotalBurned), IntegerEntry((toString(i.caller) + keyUserTotalBurned), (userTotalBurned + pmtAmount)), StringEntry(keyPrizesAmounts, newPrizesAmountsStr)]
271272 let oldLevel = calcLevel(userTotalBurned)
272- let newLevel = calcLevel((userTotalBurned + pmtAmount))
273- let inv5 = if ((oldLevel != newLevel))
274- then invoke(achievements, "add", [levelAchievementsIds[(newLevel - 1)], 1], nil)
275- else 0
276-[IntegerEntry(keyTotalBurned, newTotalBurned), IntegerEntry((toString(i.caller) + keyUserTotalBurned), (userTotalBurned + pmtAmount)), StringEntry(keyPrizesAmounts, newPrizesAmountsStr)]
273+ let newLevel = calcLevel(newTotalBurned)
274+ let levelDiff = (newLevel - oldLevel)
275+ if ((levelDiff > 0))
276+ then {
277+ let inv5 = if ((levelDiff == 1))
278+ then invoke(achievements, "add", [levelAchievementsIds[(newLevel - 1)], 1], nil)
279+ else 0
280+ if ((inv5 == inv5))
281+ then {
282+ let inv6 = if ((levelDiff >= 2))
283+ then invoke(achievements, "add", [levelAchievementsIds[(newLevel - 1)], 1], nil)
284+ else 0
285+ if ((inv6 == inv6))
286+ then {
287+ let inv7 = if ((levelDiff >= 3))
288+ then invoke(achievements, "add", [levelAchievementsIds[(newLevel - 1)], 1], nil)
289+ else 0
290+ if ((inv7 == inv7))
291+ then {
292+ let inv8 = if ((levelDiff == 4))
293+ then invoke(achievements, "add", [levelAchievementsIds[(newLevel - 1)], 1], nil)
294+ else 0
295+ if ((inv8 == inv8))
296+ then baseEntry
297+ else throw("Strict value is not equal to itself.")
298+ }
299+ else throw("Strict value is not equal to itself.")
300+ }
301+ else throw("Strict value is not equal to itself.")
302+ }
303+ else throw("Strict value is not equal to itself.")
304+ }
305+ else baseEntry
277306 }
278307 else throw("Strict value is not equal to itself.")
279308 }
280309 else throw("Strict value is not equal to itself.")
281310 }
282311 else throw("Strict value is not equal to itself.")
283312 }
284313 else throw("Strict value is not equal to itself.")
285314 }
286315 else throw("Strict value is not equal to itself.")
287316 }
288317 }
289318
290319
291320
292321 @Callable(i)
293322 func hashingRandom (hash) = if (!(isActive))
294323 then throw("DApp is inactive at this moment")
295324 else if (!(containsElement([adminPubKey1, adminPubKey2, adminPubKey3], i.callerPublicKey)))
296325 then throw("Only admin can call this function")
297326 else [StringEntry(keyVerifyHash, hash)]
298327
299328
300329
301330 @Callable(i)
302331 func finalize (vrfHeight,secretWord) = {
303332 let savedHash = getStringValue(this, keyVerifyHash)
304333 let calcHash = toBase58String(sha256((toBytes(vrfHeight) + toBytes(secretWord))))
305334 if (!(isActive))
306335 then throw("DApp is inactive at this moment")
307336 else if (!(containsElement([adminPubKey1, adminPubKey2, adminPubKey3], i.callerPublicKey)))
308337 then throw("Only admin can call this function")
309338 else if ((calcHash != savedHash))
310339 then throw("vrf Height hash not matching")
311340 else {
312341 let burnAmount = getIntegerValue(this, keyTotalBurned)
313342 [Burn(swopId, burnAmount), IntegerEntry(keyFinalizeHeight, height)]
314343 }
315344 }
316345
317346
318347
319348 @Callable(i)
320349 func shutdown () = if (!(isActive))
321350 then throw("DApp already inactive")
322351 else if (!(containsElement([adminPubKey1, adminPubKey2, adminPubKey3], i.callerPublicKey)))
323352 then throw("Only admin can call this function")
324353 else [BooleanEntry(keyActive, false)]
325354
326355
327356
328357 @Callable(i)
329358 func activate () = if (isActive)
330359 then throw("DApp already active")
331360 else if (!(containsElement([adminPubKey1, adminPubKey2, adminPubKey3], i.callerPublicKey)))
332361 then throw("Only admin can call this function")
333362 else [BooleanEntry(keyActive, true)]
334363
335364
336365 @Verifier(tx)
337366 func verify () = {
338367 let multiSignedByAdmins = {
339368 let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey1))
340369 then 1
341370 else 0
342371 let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[1], adminPubKey2))
343372 then 1
344373 else 0
345374 let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[2], adminPubKey3))
346375 then 1
347376 else 0
348377 (((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) >= 2)
349378 }
350379 let signedByAdmin = if (if (if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey1))
351380 then true
352381 else sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey2))
353382 then true
354383 else sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey3))
355384 then true
356385 else sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKeyStaking)
357386 match tx {
358387 case _ =>
359388 multiSignedByAdmins
360389 }
361390 }
362391

github/deemru/w8io/169f3d6 
70.58 ms