2020.04.15 00:00 [2017828] smart account 3PPtVNdMCSwaLiT9FkTMeLrW9P7Nq9ZNyXJ > SELF 0.00000000 Waves

{ "type": 13, "id": "ES967KtCMBSeMBdQ9XYpda1i3GUzkbXn9yQsSgkJ8WBq", "fee": 1400000, "feeAssetId": null, "timestamp": 1586898091421, "version": 1, "sender": "3PPtVNdMCSwaLiT9FkTMeLrW9P7Nq9ZNyXJ", "senderPublicKey": "9GatzuwfKHipUVyuzCmN9reUi5cr2CCuSvUxtwN8PbBh", "proofs": [ "5ka35oDVdf1FC9JuNpytXCotrkGiuuYQx1kFewQhmBrLcSXi7E1ppFVqA45YfsZCV2bEsjf8jGLe5miN9Jr6E1bT" ], "script": "base64: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dGhpcwIAAAANYmFsYW5jZV90b3RhbAQAAAAKc3Rha1Byb2ZpdAkAAGUAAAACBQAAAAxxdW90ZUJhbGFuY2UJAABrAAAAAwUAAAAPb2xkUXVvdGVCYWxhbmNlBQAAAA5vbGRCYXNlQmFsYW5jZQUAAAALYmFzZUJhbGFuY2UEAAAACnN0YWtBbW91bnQDCQAAZgAAAAIAAAAAAAAAAAAFAAAACnN0YWtQcm9maXQAAAAAAAAAAAADCQAAZgAAAAIFAAAACnN0YWtQcm9maXQFAAAADHF1b3RlQmFsYW5jZQUAAAAMcXVvdGVCYWxhbmNlBQAAAApzdGFrUHJvZml0BAAAAApuZXdCYWxhbmNlCQAAZQAAAAIFAAAADHF1b3RlQmFsYW5jZQUAAAAKc3Rha0Ftb3VudAQAAAAKbG9uZ1Byb2ZpdAkAAGUAAAACCQAAZAAAAAIFAAAADHF1b3RlQmFsYW5jZQUAAAAKbmV3QmFsYW5jZQUAAAAPb2xkVG90YWxCYWxhbmNlBAAAAApsb25nQW1vdW50AwkAAGYAAAACAAAAAAAAAAAABQAAAApsb25nUHJvZml0AAAAAAAAAAAAAwkAAGYAAAACBQAAAApsb25nUHJvZml0BQAAAApuZXdCYWxhbmNlBQAAAApuZXdCYWxhbmNlBQAAAApsb25nUHJvZml0BAAAAApyZXN0QW1vdW50AwkAAGYAAAACBQAAAApsb25nQW1vdW50BQAAAAZhbW91bnQAAAAAAAAAAAADCQAAZgAAAAIFAAAABmFtb3VudAUAAAAKbmV3QmFsYW5jZQkAAGUAAAACBQAAAApuZXdCYWxhbmNlBQAAAApsb25nQW1vdW50CQAAZQAAAAIFAAAABmFtb3VudAUAAAAKbG9uZ0Ftb3VudAQAAAAKZGFwcEFtb3VudAkAAGQAAAACBQAAAApsb25nQW1vdW50BQAAAApyZXN0QW1vdW50BAAAAANkczAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAADGJhbGFuY2VfYmFzZQUAAAALYmFzZUJhbGFuY2UFAAAAA25pbAQAAAADZHMxCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAA1iYWxhbmNlX3F1b3RlCQAAZQAAAAIFAAAACm5ld0JhbGFuY2UFAAAACmRhcHBB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AAAAAAAAAAABAAAAAAAAAAAAAwkBAAAAB2lzVmFsaWQAAAACCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAIFAAAAE2d1YXJhbnRvclB1YmxpY0tleXMAAAAAAAAAAAEAAAAAAAAAAAADCQEAAAAHaXNWYWxpZAAAAAIJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAwUAAAATZ3VhcmFudG9yUHVibGljS2V5cwAAAAAAAAAAAQAAAAAAAAAAAAkAAGkAAAACCQAAZAAAAAIJAAGQAAAAAQUAAAATZ3VhcmFudG9yUHVibGljS2V5cwAAAAAAAAAAAQAAAAAAAAAAAgQAAAAHJG1hdGNoMAUAAAACdHgDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABU9yZGVyBAAAAAFvBQAAAAckbWF0Y2gwAwMFAAAAC3JpZ2h0VHJhZGVyBgUAAAAMcmlnaHRNYW5hZ2VyAwMDCQAAAAAAAAIIBQAAAAFvAAAAEW1hdGNoZXJGZWVBc3NldElkBQAAAAxxdW90ZUFzc2V0SWQDAwkAAAAAAAACCAgFAAAAAW8AAAAJYXNzZXRQYWlyAAAAC2Ftb3VudEFzc2V0BQAAAAtiYXNlQXNzZXRJZAkAAAAAAAACCAgFAAAAAW8AAAAJYXNzZXRQYWlyAAAACnByaWNlQXNzZXQFAAAADHF1b3RlQXNzZXRJZAcGAwkAAAAAAAACCAgFAAAAAW8AAAAJYXNzZXRQYWlyAAAAC2Ftb3VudEFzc2V0BQAAAAxxdW90ZUFzc2V0SWQJAAAAAAAAAggIBQAAAAFvAAAACWFzc2V0UGFpcgAAAApwcmljZUFzc2V0BQAAAAtiYXNlQXNzZXRJZAcHBgMDCQAAAAAAAAIIBQAAAAFvAAAACW9yZGVyVHlwZQUAAAADQnV5CQAAAAAAAAIIBQAAAAFvAAAAEW1hdGNoZXJGZWVBc3NldElkBQAAAAxxdW90ZUFzc2V0SWQHCQAAAAAAAAIICAUAAAABbwAAAAlhc3NldFBhaXIAAAALYW1vdW50QXNzZXQFAAAADHF1b3RlQXNzZXRJZAcGAwkAAAAAAAACCAUAAAABbwAAAAlvcmRlclR5cGUFAAAABFNlbGwDAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAAW8AAAARbWF0Y2hlckZlZUFzc2V0SWQJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEICAUAAAABbwAAAAlhc3NldFBhaXIAAAAKcHJpY2VBc3NldAcGAwkAAAAAAAACCAUAAAABbwAAABFtYXRjaGVyRmVlQXNzZXRJZAUAAAAMcXVvdGVBc3NldElkCQAAAAAAAAIICAUAAAABbwAAAAlhc3NldFBhaXIAAAAKcHJpY2VBc3NldAUAAAAMcXVvdGVBc3NldElkBwcHAwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAUU2V0U2NyaXB0VHJhbnNhY3Rpb24GCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAD0RhdGFUcmFuc2FjdGlvbgQAAAABcwUAAAAHJG1hdGNoMAMFAAAADHJpZ2h0TWFuYWdlcgUAAAAPcmlnaHRHdWFyYW50b3JzBwcXOGdj", "chainId": 87, "height": 2017828, "spentComplexity": 0 } View: original | compacted Prev: 7M4P5t6zNSDcHZyMSD9WnAB2SnpQjCRBrLC9rG3dYjum Next: 6YC5WuKZTaYbFkrQjW4Rq1cagzhWNX5taFxQdDYCisBe Diff:
OldNewDifferences
123123 then true
124124 else (pub == key)
125125
126- let $list69296956 = keys
127- let $size69296956 = size($list69296956)
128- let $acc069296956 = false
129- if (($size69296956 == 0))
130- then $acc069296956
126+ let $list67846811 = keys
127+ let $size67846811 = size($list67846811)
128+ let $acc067846811 = false
129+ if (($size67846811 == 0))
130+ then $acc067846811
131131 else {
132- let $acc169296956 = check($acc069296956, $list69296956[0])
133- if (($size69296956 == 1))
134- then $acc169296956
132+ let $acc167846811 = check($acc067846811, $list67846811[0])
133+ if (($size67846811 == 1))
134+ then $acc167846811
135135 else {
136- let $acc269296956 = check($acc169296956, $list69296956[1])
137- if (($size69296956 == 2))
138- then $acc269296956
136+ let $acc267846811 = check($acc167846811, $list67846811[1])
137+ if (($size67846811 == 2))
138+ then $acc267846811
139139 else {
140- let $acc369296956 = check($acc269296956, $list69296956[2])
141- if (($size69296956 == 3))
142- then $acc369296956
140+ let $acc367846811 = check($acc267846811, $list67846811[2])
141+ if (($size67846811 == 3))
142+ then $acc367846811
143143 else {
144- let $acc469296956 = check($acc369296956, $list69296956[3])
145- if (($size69296956 == 4))
146- then $acc469296956
144+ let $acc467846811 = check($acc367846811, $list67846811[3])
145+ if (($size67846811 == 4))
146+ then $acc467846811
147147 else {
148- let $acc569296956 = check($acc469296956, $list69296956[4])
149- if (($size69296956 == 5))
150- then $acc569296956
148+ let $acc567846811 = check($acc467846811, $list67846811[4])
149+ if (($size67846811 == 5))
150+ then $acc567846811
151151 else {
152- let $acc669296956 = check($acc569296956, $list69296956[5])
153- if (($size69296956 == 6))
154- then $acc669296956
152+ let $acc667846811 = check($acc567846811, $list67846811[5])
153+ if (($size67846811 == 6))
154+ then $acc667846811
155155 else {
156- let $acc769296956 = check($acc669296956, $list69296956[6])
156+ let $acc767846811 = check($acc667846811, $list67846811[6])
157157 throw("List size exceed 6")
158158 }
159159 }
175175 else false)
176176 then throw((("Time for emergencies will be after " + toString((emergencyTime / 1000))) + " Unix timestamp."))
177177 else {
178- let ds0 = [DataEntry("last_update", lastBlockTime)]
179- let records = ds0
180178 let ts0 = if ((baseBalance == 0))
181179 then nil
182180 else [ScriptTransfer(exitAddress, baseBalance, baseAssetId)]
186184 let transfers = ts1
187185 if ((size(transfers) == 0))
188186 then throw("There is nothing on the balances!")
189- else ScriptResult(WriteSet(records), TransferSet(transfers))
187+ else TransferSet(transfers)
190188 }
191189 }
192190
198196 then true
199197 else sigVerify(tx.bodyBytes, sig, key)
200198
201- let $list87058732 = keys
202- let $size87058732 = size($list87058732)
203- let $acc087058732 = false
204- if (($size87058732 == 0))
205- then $acc087058732
199+ let $list84278454 = keys
200+ let $size84278454 = size($list84278454)
201+ let $acc084278454 = false
202+ if (($size84278454 == 0))
203+ then $acc084278454
206204 else {
207- let $acc187058732 = check($acc087058732, $list87058732[0])
208- if (($size87058732 == 1))
209- then $acc187058732
205+ let $acc184278454 = check($acc084278454, $list84278454[0])
206+ if (($size84278454 == 1))
207+ then $acc184278454
210208 else {
211- let $acc287058732 = check($acc187058732, $list87058732[1])
212- if (($size87058732 == 2))
213- then $acc287058732
209+ let $acc284278454 = check($acc184278454, $list84278454[1])
210+ if (($size84278454 == 2))
211+ then $acc284278454
214212 else {
215- let $acc387058732 = check($acc287058732, $list87058732[2])
216- if (($size87058732 == 3))
217- then $acc387058732
213+ let $acc384278454 = check($acc284278454, $list84278454[2])
214+ if (($size84278454 == 3))
215+ then $acc384278454
218216 else {
219- let $acc487058732 = check($acc387058732, $list87058732[3])
220- if (($size87058732 == 4))
221- then $acc487058732
217+ let $acc484278454 = check($acc384278454, $list84278454[3])
218+ if (($size84278454 == 4))
219+ then $acc484278454
222220 else {
223- let $acc587058732 = check($acc487058732, $list87058732[4])
224- if (($size87058732 == 5))
225- then $acc587058732
221+ let $acc584278454 = check($acc484278454, $list84278454[4])
222+ if (($size84278454 == 5))
223+ then $acc584278454
226224 else {
227- let $acc687058732 = check($acc587058732, $list87058732[5])
225+ let $acc684278454 = check($acc584278454, $list84278454[5])
228226 throw("List size exceed 5")
229227 }
230228 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let baseAssetId = base58'EYz8Zvs62D4d7F5ZgXHCWuzuFaZg63FYnfVQrTWQoLSK'
55
66 let quoteAssetId = Unit()
77
88 let dappAddress = Address(base58'3PNyTtHEnQkVUhRy6YuTa2bGLHL2ccaqjBG')
99
1010 let stakAddress = Address(base58'3PLe1EGXcx2yNrNH7KvtmKW2B9uKvxm148A')
1111
1212 let exitAddress = Address(base58'3PMoQkZyawdWbm6a8o75tzDHQRNCvXFgSN6')
1313
1414 let traderPublicKey = base58'5dQbzkYkh2UWtcR1cDwxZVzkduK1SVEeVa1TyLmD6eVU'
1515
1616 let managerPublicKey = base58'66BGZcJJ9yAWcHKZZeiuA71wAvC5GWTmdQWArjt1g6jC'
1717
1818 let guarantorPublicKeys = nil
1919
2020 let month = (2629746 * 1000)
2121
2222 let timeout3 = (month / 10)
2323
2424 let timeout10 = (month / 3)
2525
2626 let lastBlockTime = lastBlock.timestamp
2727
2828 let monthOpenTime = ((lastBlockTime / month) * month)
2929
3030 let baseBalance = assetBalance(this, baseAssetId)
3131
3232 let quoteBalance = assetBalance(this, quoteAssetId)
3333
3434 @Callable(i)
3535 func setBalances (amount) = if ((i.callerPublicKey != managerPublicKey))
3636 then throw("Only the administrator can adjust the balances!")
3737 else if (isDefined(i.payment))
3838 then throw("Please do not attach payment when setting balances...")
3939 else if ((lastBlockTime >= (monthOpenTime + timeout10)))
4040 then throw((("The balance should be fixed after " + toString(((monthOpenTime + month) / 1000))) + " Unix timestamp."))
4141 else if ((0 > amount))
4242 then throw("Negative amount are not allowed...")
4343 else {
4444 let oldTotalBalance = match getInteger(this, "balance_total") {
4545 case x: Int =>
4646 x
4747 case _ =>
4848 0
4949 }
5050 let ds0 = [DataEntry("balance_base", baseBalance)]
5151 let ds1 = DataEntry("balance_quote", quoteBalance) :: ds0
5252 let ds2 = if ((amount == 0))
5353 then ds1
5454 else DataEntry("balance_total", amount) :: ds1
5555 let ds3 = DataEntry("last_update", lastBlockTime) :: ds2
5656 let records = ds3
5757 if (if ((amount == 0))
5858 then (oldTotalBalance == 0)
5959 else false)
6060 then throw("Zero total balance are not allowed...")
6161 else WriteSet(records)
6262 }
6363
6464
6565
6666 @Callable(i)
6767 func sendRewards (amount) = if ((i.callerPublicKey != managerPublicKey))
6868 then throw("Only administrator can send rewards!")
6969 else if (isDefined(i.payment))
7070 then throw("Please do not attach payment when sending rewards...")
7171 else if ((lastBlockTime >= (monthOpenTime + timeout3)))
7272 then throw((("Rewards must be sent after " + toString(((monthOpenTime + month) / 1000))) + " Unix timestamp."))
7373 else if ((0 > amount))
7474 then throw("Negative amount are not allowed...")
7575 else {
7676 let oldBaseBalance = getIntegerValue(this, "balance_base")
7777 let oldQuoteBalance = getIntegerValue(this, "balance_quote")
7878 let oldTotalBalance = getIntegerValue(this, "balance_total")
7979 let stakProfit = (quoteBalance - fraction(oldQuoteBalance, oldBaseBalance, baseBalance))
8080 let stakAmount = if ((0 > stakProfit))
8181 then 0
8282 else if ((stakProfit > quoteBalance))
8383 then quoteBalance
8484 else stakProfit
8585 let newBalance = (quoteBalance - stakAmount)
8686 let longProfit = ((quoteBalance + newBalance) - oldTotalBalance)
8787 let longAmount = if ((0 > longProfit))
8888 then 0
8989 else if ((longProfit > newBalance))
9090 then newBalance
9191 else longProfit
9292 let restAmount = if ((longAmount > amount))
9393 then 0
9494 else if ((amount > newBalance))
9595 then (newBalance - longAmount)
9696 else (amount - longAmount)
9797 let dappAmount = (longAmount + restAmount)
9898 let ds0 = [DataEntry("balance_base", baseBalance)]
9999 let ds1 = DataEntry("balance_quote", (newBalance - dappAmount)) :: ds0
100100 let ds2 = if ((restAmount == 0))
101101 then ds1
102102 else DataEntry("balance_total", (oldTotalBalance - restAmount)) :: ds1
103103 let ds3 = DataEntry("last_update", lastBlockTime) :: ds2
104104 let records = ds3
105105 let ts0 = if ((stakAmount == 0))
106106 then nil
107107 else [ScriptTransfer(stakAddress, stakAmount, quoteAssetId)]
108108 let ts1 = if ((dappAmount == 0))
109109 then ts0
110110 else ScriptTransfer(dappAddress, dappAmount, quoteAssetId) :: ts0
111111 let transfers = ts1
112112 if ((size(transfers) == 0))
113113 then throw("Unable to withdraw funds this month!")
114114 else ScriptResult(WriteSet(records), TransferSet(transfers))
115115 }
116116
117117
118118
119119 @Callable(i)
120120 func emergencyExit () = {
121121 func isValid (pub,keys) = {
122122 func check (acc,key) = if (acc)
123123 then true
124124 else (pub == key)
125125
126- let $list69296956 = keys
127- let $size69296956 = size($list69296956)
128- let $acc069296956 = false
129- if (($size69296956 == 0))
130- then $acc069296956
126+ let $list67846811 = keys
127+ let $size67846811 = size($list67846811)
128+ let $acc067846811 = false
129+ if (($size67846811 == 0))
130+ then $acc067846811
131131 else {
132- let $acc169296956 = check($acc069296956, $list69296956[0])
133- if (($size69296956 == 1))
134- then $acc169296956
132+ let $acc167846811 = check($acc067846811, $list67846811[0])
133+ if (($size67846811 == 1))
134+ then $acc167846811
135135 else {
136- let $acc269296956 = check($acc169296956, $list69296956[1])
137- if (($size69296956 == 2))
138- then $acc269296956
136+ let $acc267846811 = check($acc167846811, $list67846811[1])
137+ if (($size67846811 == 2))
138+ then $acc267846811
139139 else {
140- let $acc369296956 = check($acc269296956, $list69296956[2])
141- if (($size69296956 == 3))
142- then $acc369296956
140+ let $acc367846811 = check($acc267846811, $list67846811[2])
141+ if (($size67846811 == 3))
142+ then $acc367846811
143143 else {
144- let $acc469296956 = check($acc369296956, $list69296956[3])
145- if (($size69296956 == 4))
146- then $acc469296956
144+ let $acc467846811 = check($acc367846811, $list67846811[3])
145+ if (($size67846811 == 4))
146+ then $acc467846811
147147 else {
148- let $acc569296956 = check($acc469296956, $list69296956[4])
149- if (($size69296956 == 5))
150- then $acc569296956
148+ let $acc567846811 = check($acc467846811, $list67846811[4])
149+ if (($size67846811 == 5))
150+ then $acc567846811
151151 else {
152- let $acc669296956 = check($acc569296956, $list69296956[5])
153- if (($size69296956 == 6))
154- then $acc669296956
152+ let $acc667846811 = check($acc567846811, $list67846811[5])
153+ if (($size67846811 == 6))
154+ then $acc667846811
155155 else {
156- let $acc769296956 = check($acc669296956, $list69296956[6])
156+ let $acc767846811 = check($acc667846811, $list67846811[6])
157157 throw("List size exceed 6")
158158 }
159159 }
160160 }
161161 }
162162 }
163163 }
164164 }
165165 }
166166
167167 let lastUpdate = getIntegerValue(this, "last_update")
168168 let emergencyTime = ((((lastUpdate / month) + 1) * month) + timeout3)
169169 if (!(isValid(i.callerPublicKey, managerPublicKey :: guarantorPublicKeys)))
170170 then throw("Only an administrator or guarantor can trigger an emergency exit!")
171171 else if (isDefined(i.payment))
172172 then throw("Please do not attach payment in an emergency exit...")
173173 else if (if ((i.callerPublicKey != managerPublicKey))
174174 then (emergencyTime > lastBlockTime)
175175 else false)
176176 then throw((("Time for emergencies will be after " + toString((emergencyTime / 1000))) + " Unix timestamp."))
177177 else {
178- let ds0 = [DataEntry("last_update", lastBlockTime)]
179- let records = ds0
180178 let ts0 = if ((baseBalance == 0))
181179 then nil
182180 else [ScriptTransfer(exitAddress, baseBalance, baseAssetId)]
183181 let ts1 = if ((quoteBalance == 0))
184182 then ts0
185183 else ScriptTransfer(exitAddress, quoteBalance, quoteAssetId) :: ts0
186184 let transfers = ts1
187185 if ((size(transfers) == 0))
188186 then throw("There is nothing on the balances!")
189- else ScriptResult(WriteSet(records), TransferSet(transfers))
187+ else TransferSet(transfers)
190188 }
191189 }
192190
193191
194192 @Verifier(tx)
195193 func verify () = {
196194 func isValid (sig,keys) = {
197195 func check (acc,key) = if (acc)
198196 then true
199197 else sigVerify(tx.bodyBytes, sig, key)
200198
201- let $list87058732 = keys
202- let $size87058732 = size($list87058732)
203- let $acc087058732 = false
204- if (($size87058732 == 0))
205- then $acc087058732
199+ let $list84278454 = keys
200+ let $size84278454 = size($list84278454)
201+ let $acc084278454 = false
202+ if (($size84278454 == 0))
203+ then $acc084278454
206204 else {
207- let $acc187058732 = check($acc087058732, $list87058732[0])
208- if (($size87058732 == 1))
209- then $acc187058732
205+ let $acc184278454 = check($acc084278454, $list84278454[0])
206+ if (($size84278454 == 1))
207+ then $acc184278454
210208 else {
211- let $acc287058732 = check($acc187058732, $list87058732[1])
212- if (($size87058732 == 2))
213- then $acc287058732
209+ let $acc284278454 = check($acc184278454, $list84278454[1])
210+ if (($size84278454 == 2))
211+ then $acc284278454
214212 else {
215- let $acc387058732 = check($acc287058732, $list87058732[2])
216- if (($size87058732 == 3))
217- then $acc387058732
213+ let $acc384278454 = check($acc284278454, $list84278454[2])
214+ if (($size84278454 == 3))
215+ then $acc384278454
218216 else {
219- let $acc487058732 = check($acc387058732, $list87058732[3])
220- if (($size87058732 == 4))
221- then $acc487058732
217+ let $acc484278454 = check($acc384278454, $list84278454[3])
218+ if (($size84278454 == 4))
219+ then $acc484278454
222220 else {
223- let $acc587058732 = check($acc487058732, $list87058732[4])
224- if (($size87058732 == 5))
225- then $acc587058732
221+ let $acc584278454 = check($acc484278454, $list84278454[4])
222+ if (($size84278454 == 5))
223+ then $acc584278454
226224 else {
227- let $acc687058732 = check($acc587058732, $list87058732[5])
225+ let $acc684278454 = check($acc584278454, $list84278454[5])
228226 throw("List size exceed 5")
229227 }
230228 }
231229 }
232230 }
233231 }
234232 }
235233 }
236234
237235 let rightTrader = sigVerify(tx.bodyBytes, tx.proofs[0], traderPublicKey)
238236 let rightManager = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
239237 let rightGuarantors = ((((if (isValid(tx.proofs[1], guarantorPublicKeys))
240238 then 1
241239 else 0) + (if (isValid(tx.proofs[2], guarantorPublicKeys))
242240 then 1
243241 else 0)) + (if (isValid(tx.proofs[3], guarantorPublicKeys))
244242 then 1
245243 else 0)) >= ((size(guarantorPublicKeys) + 1) / 2))
246244 match tx {
247245 case o: Order =>
248246 if (if (rightTrader)
249247 then true
250248 else rightManager)
251249 then if (if (if ((o.matcherFeeAssetId == quoteAssetId))
252250 then if (if ((o.assetPair.amountAsset == baseAssetId))
253251 then (o.assetPair.priceAsset == quoteAssetId)
254252 else false)
255253 then true
256254 else if ((o.assetPair.amountAsset == quoteAssetId))
257255 then (o.assetPair.priceAsset == baseAssetId)
258256 else false
259257 else false)
260258 then true
261259 else if (if ((o.orderType == Buy))
262260 then (o.matcherFeeAssetId == quoteAssetId)
263261 else false)
264262 then (o.assetPair.amountAsset == quoteAssetId)
265263 else false)
266264 then true
267265 else if ((o.orderType == Sell))
268266 then if (if (!(isDefined(o.matcherFeeAssetId)))
269267 then !(isDefined(o.assetPair.priceAsset))
270268 else false)
271269 then true
272270 else if ((o.matcherFeeAssetId == quoteAssetId))
273271 then (o.assetPair.priceAsset == quoteAssetId)
274272 else false
275273 else false
276274 else false
277275 case s: SetScriptTransaction|DataTransaction =>
278276 if (rightManager)
279277 then rightGuarantors
280278 else false
281279 case _ =>
282280 false
283281 }
284282 }
285283

github/deemru/w8io/786bc32 
90.80 ms