tx · DGg8hPuy1PRYd9GfUibtiWupgatE9QQDchaf2CMaVQDj

3Mye5M9KfeoHfWNZtWk5gXe3DJiWD1Wgps3:  -0.01500000 Waves

2021.02.09 16:45 [1390734] smart account 3Mye5M9KfeoHfWNZtWk5gXe3DJiWD1Wgps3 > SELF 0.00000000 Waves

{ "type": 13, "id": "DGg8hPuy1PRYd9GfUibtiWupgatE9QQDchaf2CMaVQDj", "fee": 1500000, "feeAssetId": null, "timestamp": 1612878370834, "version": 2, "chainId": 84, "sender": "3Mye5M9KfeoHfWNZtWk5gXe3DJiWD1Wgps3", "senderPublicKey": "Crax6jGgWtQYaBaDSjijPf7hNdS2UMdZAmmtrdXqGE4x", "proofs": [ "4zZoDnKExqQrb8hmtWJWF7YV3hLQWzbzoCuLgGJ6FsJgX2KjBi2W45rXvRkDYnSHNCSZcchbNZZgKyiocwXmf5vE" ], "script": "base64:AAIDAAAAAAAAAA0IARIHCgUBAQEBCBIAAAAAEAAAAAANbG90dGVyeWFtb3VudAIAAAAHX2Ftb3VudAAAAAASbG90dGVyeXByb2JhYmlsaXR5AgAAAAxfcHJvYmFiaWxpdHkAAAAAGWxvdHRlcnlwcm9iYWJpbGl0eWRlY2ltYWwCAAAAFF9wcm9iYWJpbGl0eV9kZWNpbWFsAAAAAAxsb3R0ZXJ5UHJpY2UCAAAABl9wcmljZQAAAAANbG90dGVyeVByaWNlcwIAAAAPX2xvdHRlcnlfcHJpY2VzAAAAAA5sb3R0ZXJ5QXNzZXRJZAIAAAARX2xvdHRlcnlfYXNzZXRfaWQAAAAADWNvdW50T2ZQcmljZXMCAAAADV9jb3VudF9wcmljZXMAAAAAFGxhc3RIYXNoUmFuZG9tTnVtYmVyAgAAABVsYXN0X3NwaW5fcmFuZG9tX2hhc2gAAAAAE2xhc3RUb2tlblJhbmRvbUhhc2gCAAAAFmxhc3RfdG9rZW5fcmFuZG9tX2hhc2gAAAAACmRBcHBBZGRyZXMCAAAALDNCS0ZRTGVvNUV4WjVZMXB0OUZ0enNubzdhUnd6RDk2em9ZVkhQM3RjTGdWAAAAABBhbGxvd1NpemVMb3R0ZXJ5AAAAAAAAAAAFAQAAAApyYW5kb21pemVyAAAAAQAAAANpbnYEAAAACGxhc3RQbGF5BAAAAAckbWF0Y2gwCQAEHAAAAAIFAAAABHRoaXMFAAAAFGxhc3RIYXNoUmFuZG9tTnVtYmVyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAApCeXRlVmVjdG9yBAAAAAFzBQAAAAckbWF0Y2gwBQAAAAFzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0AQAAAAxXYXZlc0xvdHRvVjIJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IEAAAABHJhbmQJAADLAAAAAgkAAMsAAAACCQAAywAAAAIJAADLAAAAAgkAAMsAAAACBQAAAAhsYXN0UGxheQgFAAAAA2ludgAAAA10cmFuc2FjdGlvbklkCAUAAAADaW52AAAAD2NhbGxlclB1YmxpY0tleQgFAAAACWxhc3RCbG9jawAAABNnZW5lcmF0aW9uU2lnbmF0dXJlCQABmgAAAAEIBQAAAAlsYXN0QmxvY2sAAAAJdGlt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AAIFAAAADSRzaXplODM3Nzg0MjcAAAAAAAAAAAIFAAAADSRhY2MyODM3Nzg0MjcEAAAADSRhY2MzODM3Nzg0MjcJAQAAABdnZW5lcmF0ZU5ld0xpc3RPZlByaWNlcwAAAAIFAAAADSRhY2MyODM3Nzg0MjcJAAGRAAAAAgUAAAANJGxpc3Q4Mzc3ODQyNwAAAAAAAAAAAgMJAAAAAAAAAgUAAAANJHNpemU4Mzc3ODQyNwAAAAAAAAAAAwUAAAANJGFjYzM4Mzc3ODQyNwQAAAANJGFjYzQ4Mzc3ODQyNwkBAAAAF2dlbmVyYXRlTmV3TGlzdE9mUHJpY2VzAAAAAgUAAAANJGFjYzM4Mzc3ODQyNwkAAZEAAAACBQAAAA0kbGlzdDgzNzc4NDI3AAAAAAAAAAADAwkAAAAAAAACBQAAAA0kc2l6ZTgzNzc4NDI3AAAAAAAAAAAEBQAAAA0kYWNjNDgzNzc4NDI3BAAAAA0kYWNjNTgzNzc4NDI3CQEAAAAXZ2VuZXJhdGVOZXdMaXN0T2ZQcmljZXMAAAACBQAAAA0kYWNjNDgzNzc4NDI3CQABkQAAAAIFAAAADSRsaXN0ODM3Nzg0MjcAAAAAAAAAAAQDCQAAAAAAAAIFAAAADSRzaXplODM3Nzg0MjcAAAAAAAAAAAUFAAAADSRhY2M1ODM3Nzg0MjcEAAAADSRhY2M2ODM3Nzg0MjcJAQAAABdnZW5lcmF0ZU5ld0xpc3RPZlByaWNlcwAAAAIFAAAADSRhY2M1ODM3Nzg0MjcJAAGRAAAAAgUAAAANJGxpc3Q4Mzc3ODQyNwAAAAAAAAAABQkAAAIAAAABAgAAABJMaXN0IHNpemUgZXhjZWVkIDUEAAAACXdyaXRlU2V0cwkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACAgAAAA53aW5uaW5nX3Rva2VuXwUAAAAFdG9rZW4FAAAABXRva2VuCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACmN1cnJlbnRLZXkCAAAAE193aW5pbm5pbmdfYWRkcmVzc18FAAAACmN1cnJlbnRLZXkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADWNvdW50T2ZQcmljZXMJAABlAAAAAgUAAAALY291bnRUb2tlbnMAAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADWxvdHRlcnlQcmljZXMFAAAAEnN0b3JlZFRva2Vuc1ZhbHVlcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAUbGFzdEhhc2hSYW5kb21OdW1iZXIFAAAACnJhbmROdW1iZXIFAAAAA25pbAMJAAAAAAAAAgUAAAAMdG9rZW5Bc3NldElkAgAAAAAEAAAAC3dpblRyYW5zZmVyCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAKdG9rZW5QcmljZQUAAAAEdW5pdAUAAAADbmlsCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgUAAAAJd3JpdGVTZXRzBQAAAAt3aW5UcmFuc2ZlcgQAAAANYWN0dWFsQXNzZXRJZAkAAlsAAAABBQAAAAx0b2tlbkFzc2V0SWQEAAAAC3dpblRyYW5zZmVyCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAKdG9rZW5QcmljZQUAAAANYWN0dWFsQXNzZXRJZAUAAAADbmlsCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgUAAAAJd3JpdGVTZXRzBQAAAAt3aW5UcmFuc2ZlcgQAAAAJd3JpdGVTZXRzCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACmN1cnJlbnRLZXkCAAAAD193aW5uaW5nX3Rva2VuXwUAAAAFdG9rZW4JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY3VycmVudEtleQIAAAATX3dpbmlubmluZ19hZGRyZXNzXwUAAAAKY3VycmVudEtleQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAV0b2tlbgUAAAANbG90dGVyeWFtb3VudAUAAAAMYWN0dWFsQW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABRsYXN0SGFzaFJhbmRvbU51bWJlcgUAAAAKcmFuZE51bWJlcgUAAAADbmlsAwkAAAAAAAACBQAAAAx0b2tlbkFzc2V0SWQCAAAAAAQAAAALd2luVHJhbnNmZXIJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAp0b2tlblByaWNlBQAAAAR1bml0BQAAAANuaWwJAQAAAAxTY3JpcHRSZXN1bHQAAAACBQAAAAl3cml0ZVNldHMFAAAAC3dpblRyYW5zZmVyBAAAAA1hY3R1YWxBc3NldElkCQACWwAAAAEFAAAADHRva2VuQXNzZXRJZAQAAAALd2luVHJhbnNmZXIJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAp0b2tlblByaWNlBQAAAA1hY3R1YWxBc3NldElkBQAAAANuaWwJAQAAAAxTY3JpcHRSZXN1bHQAAAACBQAAAAl3cml0ZVNldHMFAAAAC3dpblRyYW5zZmVyAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAQAAAAHJG1hdGNoMAUAAAACdHgDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAD0RhdGFUcmFuc2FjdGlvbgYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAFFNldFNjcmlwdFRyYW5zYWN0aW9uBgkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXleVVl6", "height": 1390734, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let lotteryamount = "_amount"
5+
6+let lotteryprobability = "_probability"
7+
8+let lotteryprobabilitydecimal = "_probability_decimal"
9+
10+let lotteryPrice = "_price"
11+
12+let lotteryPrices = "_lottery_prices"
13+
14+let lotteryAssetId = "_lottery_asset_id"
15+
16+let countOfPrices = "_count_prices"
17+
18+let lastHashRandomNumber = "last_spin_random_hash"
19+
20+let lastTokenRandomHash = "last_token_random_hash"
21+
22+let dAppAddres = "3BKFQLeo5ExZ5Y1pt9Ftzsno7aRwzD96zoYVHP3tcLgV"
23+
24+let allowSizeLottery = 5
25+
26+func randomizer (inv) = {
27+ let lastPlay = match getBinary(this, lastHashRandomNumber) {
28+ case s: ByteVector =>
29+ s
30+ case _: Unit =>
31+ base58'2ee4oFDYriWJ9EMeR'
32+ case _ =>
33+ throw("Match error")
34+ }
35+ let rand = (((((lastPlay + inv.transactionId) + inv.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height))
36+ sha256(rand)
37+ }
38+
39+
40+func generatorRandomHash (inv) = {
41+ let lastHashForToken = match getBinary(this, lastTokenRandomHash) {
42+ case s: ByteVector =>
43+ s
44+ case _: Unit =>
45+ base58'4dD7osCQzvuXJdTiGfKvTwnKT'
46+ case _ =>
47+ throw("Match error")
48+ }
49+ let rand = (((((lastHashForToken + inv.transactionId) + inv.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height))
50+ sha256(rand)
51+ }
52+
53+
54+func getPriceArray () = {
55+ let tempPrices = getStringValue(this, lotteryPrices)
56+ let trimPrices = take(tempPrices, (size(tempPrices) - 1))
57+ let newArray = split(trimPrices, ",")
58+ newArray
59+ }
60+
61+
62+func generateNewListOfPrices (token,val) = {
63+ let indexOfComma = indexOf(token, ",")
64+ if ((indexOfComma == unit))
65+ then (val + ",")
66+ else ((token + val) + ",")
67+ }
68+
69+
70+func procedLottery (win,token) = if (isDefined(token))
71+ then {
72+ let tokenProbability = getIntegerValue(this, (token + lotteryprobability))
73+ let tokenProbabilityDecimal = getIntegerValue(this, (token + lotteryprobabilitydecimal))
74+ let probabilityValue = (tokenProbabilityDecimal * 1000)
75+ let probCompare = (tokenProbabilityDecimal % probabilityValue)
76+ let sizeOfWin = size(win)
77+ if ((sizeOfWin == 1))
78+ then {
79+ let randomNumber = win[0]
80+ let comp = toInt(fromBase64String(randomNumber))
81+ if ((probCompare > comp))
82+ then token :: win
83+ else win
84+ }
85+ else win
86+ }
87+ else win
88+
89+
90+@Callable(i)
91+func updateprobability (probability,amount,poolprice,probDecimal,assetId) = {
92+ let token = toBase64String(generatorRandomHash(i))
93+ let paymentIsDefined = if (!(isDefined(i.payment)))
94+ then false
95+ else true
96+ let lotteryAssetTN = if ((assetId == ""))
97+ then true
98+ else false
99+ let totalRequiredAmount = (amount * poolprice)
100+ if ((paymentIsDefined == true))
101+ then {
102+ let payment = extract(i.payment)
103+ let paymentAssetId = match payment.assetId {
104+ case a: ByteVector =>
105+ toBase64String(a)
106+ case _: Unit =>
107+ ""
108+ case _ =>
109+ throw("Match error")
110+ }
111+ let paymentAmount = payment.amount
112+ if ((paymentAssetId != assetId))
113+ then throw("Asset Id not matching with Payment Asset Id")
114+ else if ((totalRequiredAmount > paymentAmount))
115+ then throw("Not enough Asset Amount")
116+ else {
117+ let tempValue = match getString(this, lotteryPrices) {
118+ case a: String =>
119+ a
120+ case _: Unit =>
121+ ""
122+ case _ =>
123+ throw("Match error")
124+ }
125+ let containKey = indexOf(tempValue, token)
126+ let storedTokensValues = match containKey {
127+ case _: Unit =>
128+ ((tempValue + token) + ",")
129+ case x: Int =>
130+ throw("Token is duplicated")
131+ case _ =>
132+ throw("Match error")
133+ }
134+ let countTokens = match getInteger(this, countOfPrices) {
135+ case a: Int =>
136+ a
137+ case _: Unit =>
138+ 0
139+ case _ =>
140+ throw("Match error")
141+ }
142+ if ((allowSizeLottery > countTokens))
143+ then {
144+ let updateLotteryPool = WriteSet([DataEntry((token + lotteryamount), amount), DataEntry((token + lotteryprobability), probability), DataEntry((token + lotteryPrice), poolprice), DataEntry(lotteryPrices, storedTokensValues), DataEntry(countOfPrices, (countTokens + 1)), DataEntry((token + lotteryprobabilitydecimal), probDecimal), DataEntry((token + lotteryAssetId), assetId), DataEntry(lastTokenRandomHash, token)])
145+ ScriptResult(updateLotteryPool, TransferSet(nil))
146+ }
147+ else throw(("Lottery prices has reached maximum " + toString(allowSizeLottery)))
148+ }
149+ }
150+ else {
151+ let tnBalance = if (lotteryAssetTN)
152+ then wavesBalance(this)
153+ else assetBalance(this, fromBase64String(assetId))
154+ if ((totalRequiredAmount > tnBalance))
155+ then throw("Not enough Asset Amount")
156+ else {
157+ let tempValue = match getString(this, lotteryPrices) {
158+ case a: String =>
159+ a
160+ case _: Unit =>
161+ ""
162+ case _ =>
163+ throw("Match error")
164+ }
165+ let containKey = indexOf(tempValue, token)
166+ let storedTokensValues = match containKey {
167+ case _: Unit =>
168+ ((tempValue + token) + ",")
169+ case x: Int =>
170+ throw("Token is duplicated")
171+ case _ =>
172+ throw("Match error")
173+ }
174+ let countTokens = match getInteger(this, countOfPrices) {
175+ case a: Int =>
176+ a
177+ case _: Unit =>
178+ 0
179+ case _ =>
180+ throw("Match error")
181+ }
182+ if ((allowSizeLottery > countTokens))
183+ then {
184+ let updateLotteryPool = WriteSet([DataEntry((token + lotteryamount), amount), DataEntry((token + lotteryprobability), probability), DataEntry((token + lotteryPrice), poolprice), DataEntry(lotteryPrices, storedTokensValues), DataEntry(countOfPrices, (countTokens + 1)), DataEntry((token + lotteryprobabilitydecimal), probDecimal), DataEntry((token + lotteryAssetId), assetId), DataEntry(lastTokenRandomHash, token)])
185+ ScriptResult(updateLotteryPool, TransferSet(nil))
186+ }
187+ else throw(("Lottery prices has reached maximum " + toString(allowSizeLottery)))
188+ }
189+ }
190+ }
191+
192+
193+
194+@Callable(i)
195+func startlotto () = {
196+ let currentKey = toBase58String(i.caller.bytes)
197+ let randhash = randomizer(i)
198+ let countTokens = match getInteger(this, countOfPrices) {
199+ case a: Int =>
200+ a
201+ case _: Unit =>
202+ 0
203+ case _ =>
204+ throw("Match error")
205+ }
206+ let priceList = getPriceArray()
207+ let randNumber = toBase64String(randhash)
208+ let winningToken = {
209+ let $list75077554 = priceList
210+ let $size75077554 = size($list75077554)
211+ let $acc075077554 = [randNumber]
212+ if (($size75077554 == 0))
213+ then $acc075077554
214+ else {
215+ let $acc175077554 = procedLottery($acc075077554, $list75077554[0])
216+ if (($size75077554 == 1))
217+ then $acc175077554
218+ else {
219+ let $acc275077554 = procedLottery($acc175077554, $list75077554[1])
220+ if (($size75077554 == 2))
221+ then $acc275077554
222+ else {
223+ let $acc375077554 = procedLottery($acc275077554, $list75077554[2])
224+ if (($size75077554 == 3))
225+ then $acc375077554
226+ else {
227+ let $acc475077554 = procedLottery($acc375077554, $list75077554[3])
228+ if (($size75077554 == 4))
229+ then $acc475077554
230+ else {
231+ let $acc575077554 = procedLottery($acc475077554, $list75077554[4])
232+ if (($size75077554 == 5))
233+ then $acc575077554
234+ else {
235+ let $acc675077554 = procedLottery($acc575077554, $list75077554[5])
236+ throw("List size exceed 5")
237+ }
238+ }
239+ }
240+ }
241+ }
242+ }
243+ }
244+ let sizeOfWinPrices = size(winningToken)
245+ if ((sizeOfWinPrices == 0))
246+ then {
247+ let writeSets = WriteSet(nil)
248+ ScriptResult(writeSets, TransferSet(nil))
249+ }
250+ else {
251+ let token = winningToken[0]
252+ let currentAmount = getIntegerValue(this, (token + lotteryamount))
253+ if ((currentAmount == 1))
254+ then throw("Amount exceeded")
255+ else {
256+ let actualAmount = -(1)
257+ let tokenPrice = getIntegerValue(this, (token + lotteryPrice))
258+ let tokenAssetId = getStringValue(this, (token + lotteryAssetId))
259+ if ((actualAmount == 0))
260+ then {
261+ let storedTokensValues = {
262+ let $list83778427 = priceList
263+ let $size83778427 = size($list83778427)
264+ let $acc083778427 = token
265+ if (($size83778427 == 0))
266+ then $acc083778427
267+ else {
268+ let $acc183778427 = generateNewListOfPrices($acc083778427, $list83778427[0])
269+ if (($size83778427 == 1))
270+ then $acc183778427
271+ else {
272+ let $acc283778427 = generateNewListOfPrices($acc183778427, $list83778427[1])
273+ if (($size83778427 == 2))
274+ then $acc283778427
275+ else {
276+ let $acc383778427 = generateNewListOfPrices($acc283778427, $list83778427[2])
277+ if (($size83778427 == 3))
278+ then $acc383778427
279+ else {
280+ let $acc483778427 = generateNewListOfPrices($acc383778427, $list83778427[3])
281+ if (($size83778427 == 4))
282+ then $acc483778427
283+ else {
284+ let $acc583778427 = generateNewListOfPrices($acc483778427, $list83778427[4])
285+ if (($size83778427 == 5))
286+ then $acc583778427
287+ else {
288+ let $acc683778427 = generateNewListOfPrices($acc583778427, $list83778427[5])
289+ throw("List size exceed 5")
290+ }
291+ }
292+ }
293+ }
294+ }
295+ }
296+ }
297+ let writeSets = WriteSet([DataEntry(("winning_token_" + token), token), DataEntry((currentKey + "_wininning_address_"), currentKey), DataEntry(countOfPrices, (countTokens - 1)), DataEntry(lotteryPrices, storedTokensValues), DataEntry(lastHashRandomNumber, randNumber)])
298+ if ((tokenAssetId == ""))
299+ then {
300+ let winTransfer = TransferSet([ScriptTransfer(i.caller, tokenPrice, unit)])
301+ ScriptResult(writeSets, winTransfer)
302+ }
303+ else {
304+ let actualAssetId = fromBase64String(tokenAssetId)
305+ let winTransfer = TransferSet([ScriptTransfer(i.caller, tokenPrice, actualAssetId)])
306+ ScriptResult(writeSets, winTransfer)
307+ }
308+ }
309+ else {
310+ let writeSets = WriteSet([DataEntry((currentKey + "_winning_token_"), token), DataEntry((currentKey + "_wininning_address_"), currentKey), DataEntry((token + lotteryamount), actualAmount), DataEntry(lastHashRandomNumber, randNumber)])
311+ if ((tokenAssetId == ""))
312+ then {
313+ let winTransfer = TransferSet([ScriptTransfer(i.caller, tokenPrice, unit)])
314+ ScriptResult(writeSets, winTransfer)
315+ }
316+ else {
317+ let actualAssetId = fromBase64String(tokenAssetId)
318+ let winTransfer = TransferSet([ScriptTransfer(i.caller, tokenPrice, actualAssetId)])
319+ ScriptResult(writeSets, winTransfer)
320+ }
321+ }
322+ }
323+ }
324+ }
325+
326+
327+@Verifier(tx)
328+func verify () = match tx {
329+ case _: DataTransaction =>
330+ true
331+ case _: SetScriptTransaction =>
332+ true
333+ case _ =>
334+ sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
335+}
336+

github/deemru/w8io/169f3d6 
45.36 ms