tx · 8ZMaoUFGeS4cFMunSUuVVhbRcrvZsk92WMBZDz2PJqUb

3NB6ViLiZv3r5EdQ2Q8GA8GKpuwmG3zevAt:  -0.05000000 Waves

2019.08.17 15:46 [635114] smart account 3NB6ViLiZv3r5EdQ2Q8GA8GKpuwmG3zevAt > SELF 0.00000000 Waves

{ "type": 13, "id": "8ZMaoUFGeS4cFMunSUuVVhbRcrvZsk92WMBZDz2PJqUb", "fee": 5000000, "feeAssetId": null, "timestamp": 1566045974127, "version": 1, "sender": "3NB6ViLiZv3r5EdQ2Q8GA8GKpuwmG3zevAt", "senderPublicKey": "3ghbp6Z5eXoKniLSE8XPjn5od7gT1K7qhk6zANBhv9C3", "proofs": [ "4V4x72nVZDVALPMHiposPy3NDtw1uG1W3cP6JhVmTqhPm5PBKSEiwv2em2ESQjyWhaiPwKUqd8Vn5rc8BMUE9FvU" ], "script": "base64:AAIDAAAAAAAAAAAAAAAlAAAAAA5vd25lclB1YmxpY2tleQEAAAAgJ+LupRtywYm1DtC2wa7+mcHTm1BkasCvRteam1vswWgAAAAADGFsbGljZVB1YmtleQEAAAAgdahQG7OF8VCvnmrXif7UUhoQjaCrm/2hFDfEk/59nDEAAAAACWJvYlB1YmtleQEAAAAgoHwmi+qXZSlN20yTARZQ9O8s6pUs/3qey7EnxhpjMk8AAAAADGNvb3BlclB1YmtleQEAAAAgU/w5K0kRwpKzXSOUcyJ72drbib04bPq1q9XqkXENjioAAAAABE5PTkUCAAAABG5vbmUAAAAABlZPVEVSUwAAAAAAAAAAAwAAAAAGUVVPUlVNAAAAAAAAAAACAAAAAAZWT1RJTkcCAAAABnZvdGluZwAAAAAGUkVWRUFMAgAAAAZyZXZlYWwAAAAACEZFQVRVUkVEAgAAAAhmZWF0dXJlZAAAAAAIREVMSVNURUQCAAAACGRlbGlzdGVkAAAAAAh2ZXJpZmllcgIAAAAjM01zOXNVYjdXM0w1NUxMR3hlSFdpcWdUZmRIOXluMm1heWIAAAAACFZFUklGSUVEAgAAAAh2ZXJpZmllZAAAAAALQkxBQ0tMSVNURUQCAAAACWJsYWNrbGlzdAAAAAASbWF4QXVjdGlvbkR1cmF0aW9uCQAAaAAAAAIAAAAAAAAABaAAAAAAAAAAAB4BAAAADmdldE51bWJlckJ5S2V5AAAAAQAAAANrZXkEAAAAA251bQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAUAAAADbnVtAQAAAAtnZXRTdHJCeUtleQAAAAEAAAADa2V5BAAAAANzdHIEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEFAAAABE5PTkUFAAAAA3N0cgEAAAAPZ2V0S2V5SXRlbVByaWNlAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAABl9wcmljZQEAAAARZ2V0VmFsdWVJdGVtUHJpY2UAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAA9nZXRLZXlJdGVtUHJpY2UAAAABBQAAAARpdGVtAQAAABVnZXRLZXlVc2VySXRlbUNvdW50ZXIAAAACAAAABHVzZXIAAAAEaXRlbQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAEaXRlbQIAAAABXwUAAAAEdXNlcgIAAAAEX2NudAEAAAAXZ2V0VmFsdWVVc2VySXRlbUNvdW50ZXIAAAACAAAABHVzZXIAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFWdldEtleVVzZXJJdGVtQ291bnRlcgAAAAIFAAAABHVzZXIFAAAABGl0ZW0BAAAACmdldEtleUl0ZW0AAAACAAAACHN1cHBsaWVyAAAABXRpdGxlCQABLAAAAAICAAAABWl0ZW1fCQACWAAAAAEJAAH3AAAAAQkAAZsAAAABCQABLAAAAAIFAAAACHN1cHBsaWVyBQAAAAV0aXRsZQEAAAAOZ2V0S2V5SXRlbURhdGEAAAABAAAABGl0ZW0JAAEsAAAAAgUAAAAEaXRlbQIAAAAFX2RhdGEBAAAAEmdldEtleUl0ZW1TdXBwbGllcgAAAAEAAAAEaXRlbQkAASwAAAACBQAAAARpdGVtAgAAAAZfb3duZXIBAAAAFGdldFZhbHVlSXRlbVN1cHBsaWVyAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQUAAAAEaXRlbQEAAAAVZ2V0S2V5QmFsYW5jZVN1cHBsaWVyAAAAAQAAAAdhY2NvdW50CQABLAAAAAIFAAAAB2FjY291bnQCAAAACF9iYWxhbmNlAQAAABdnZXRWYWx1ZUJhbGFuY2VTdXBwbGllcgAAAAEAAAAHYWNjb3VudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFWdldEtleUJhbGFuY2VTdXBwbGllcgAAAAEFAAAAB2FjY291bnQBAAAADGdldEtleUNvbW1pdAAAAAIAAAAEaXRlbQAAAAR1c2VyCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARpdGVtAgAAAAFfBQAAAAR1c2VyAgAAAAdfY29tbWl0AQAAAA5nZXRWYWx1ZUNvbW1pdAAAAAIAAAAEaXRlbQAAAAR1c2VyCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAMZ2V0S2V5Q29tbWl0AAAAAgUAAAAEaXRlbQUAAAAEdXNlcgEAAAASZ2V0S2V5Q29tbWl0c0NvdW50AAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAAB19jb21jbnQBAAAAFGdldFZhbHVlQ29tbWl0c0NvdW50AAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAASZ2V0S2V5Q29tbWl0c0NvdW50AAAAAQUAAAAEaXRlbQEAAAAMZ2V0S2V5UmV2ZWFsAAAAAgAAAARpdGVtAAAABHVzZXIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABGl0ZW0CAAAAAV8FAAAABHVzZXICAAAAB19yZXZlYWwBAAAADmdldFZhbHVlUmV2ZWFsAAAAAgAAAARpdGVtAAAABHVzZXIJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAAAxnZXRLZXlSZXZlYWwAAAACBQAAAARpdGVtBQAAAAR1c2VyAQAAABBnZXRLZXlJdGVtU3RhdHVzAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAAB19zdGF0dXMBAAAAEmdldFZhbHVlSXRlbVN0YXR1cwAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEGdldEtleUl0ZW1TdGF0dXMAAAABBQAAAARpdGVtAQAAAA9nZXRLZXlWb3RlQ291bnQAAAACAAAABGl0ZW0AAAAFdm91dGUJAAEsAAAAAgkAASwAAAACBQAAAARpdGVtAgAAAAVfcmVzOgUAAAAFdm91dGUBAAAAEmdldFZhbHVlVm91dGVDb3VudAAAAAIAAAAEaXRlbQAAAAV2b3V0ZQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAD2dldEtleVZvdGVDb3VudAAAAAIFAAAABGl0ZW0FAAAABXZvdXRlAAAACQAAAAFpAQAAAAxzdGFydEF1Y3Rpb24AAAAEAAAACGR1cmF0aW9uAAAACnN0YXJ0UHJpY2UAAAAJYXVjdGlvbklkAAAA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AAACCQEAAAAVZ2V0S2V5VXNlckl0ZW1Db3VudGVyAAAAAgUAAAALdXNlckFkZHJlc3MFAAAABGl0ZW0JAABkAAAAAgkBAAAAF2dldFZhbHVlVXNlckl0ZW1Db3VudGVyAAAAAgUAAAALdXNlckFkZHJlc3MFAAAABGl0ZW0AAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRLZXlCYWxhbmNlU3VwcGxpZXIAAAABBQAAAA9zdXBwbGllckFkZHJlc3MJAABkAAAAAgkBAAAAF2dldFZhbHVlQmFsYW5jZVN1cHBsaWVyAAAAAQUAAAAPc3VwcGxpZXJBZGRyZXNzCAUAAAADcG10AAAABmFtb3VudAUAAAADbmlsAAAAAWkBAAAAB2FkZEl0ZW0AAAADAAAABXRpdGxlAAAABXByaWNlAAAABGRhdGEEAAAAD3N1cHBsaWVyQWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAARpdGVtCQEAAAAKZ2V0S2V5SXRlbQAAAAIFAAAAD3N1cHBsaWVyQWRkcmVzcwUAAAAFdGl0bGUDCQAAZwAAAAIAAAAAAAAAAAAFAAAABXByaWNlCQAAAgAAAAECAAAALnB1cmNoYXNlIGFtb3VudCBjYW5ub3QgYmUgbGVzcyB0aGFuIGl0ZW0gcHJpY2UDCQEAAAACIT0AAAACCQEAAAAUZ2V0VmFsdWVJdGVtU3VwcGxpZXIAAAABBQAAAARpdGVtBQAAAAROT05FCQAAAgAAAAECAAAAGUFuIGl0ZW0gaXMgYWxscmVhZHkgZXhpc3QDCQAAAAAAAAIFAAAAD3N1cHBsaWVyQWRkcmVzcwUAAAALQkxBQ0tMSVNURUQJAAACAAAAAQIAAAAlc3VwcGxpZXIncyBhY2NvdW50IGhhcyBiZWVuIGJsYWNrbGlzdAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEmdldEtleUl0ZW1TdXBwbGllcgAAAAEFAAAABGl0ZW0FAAAAD3N1cHBsaWVyQWRkcmVzcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2dldEtleUl0ZW1QcmljZQAAAAEFAAAA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", "chainId": 84, "height": 635114, "spentComplexity": 0 } View: original | compacted Prev: BmWVuP5awUDJq3Lwuy8z71HMp8iTr3M8ZAft4fixBMFE Next: 6DsfRwZAa9d9w31FQuoRZgg4dsR7b2gDGy9mVaVkDSbH Diff:
OldNewDifferences
138138 then (value(winner) == callerAddressStr)
139139 else false
140140 WriteSet([DataEntry((auctionId + "_participant"), toBase58String(i.caller.bytes)), DataEntry((auctionId + "_lot_amount"), price), DataEntry((auctionId + "_count"), bid), DataEntry((auctionId + "_endHeight"), endHeight)])
141+ }
142+
143+
144+
145+@Callable(i)
146+func endAuction (auctionId,winner,endHeight,lotAmount,bid) = {
147+ let pmt = extract(i.payment)
148+ WriteSet([DataEntry((auctionId + "_winner"), winner), DataEntry(auctionId, endHeight), DataEntry((auctionId + "_lot_amount"), lotAmount), DataEntry((auctionId + "_count"), bid)])
141149 }
142150
143151
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let ownerPublickey = base58'3ghbp6Z5eXoKniLSE8XPjn5od7gT1K7qhk6zANBhv9C3'
55
66 let allicePubkey = base58'8vHZLEG3BmzYYVjQyNi1m11kh6FeSoVAKKwtsYXC3bqA'
77
88 let bobPubkey = base58'BoU2oQn7y52MZgT1Q7vJCJwUxov9tXb2zpC5gmWQbutJ'
99
1010 let cooperPubkey = base58'6equaSt4fnw6gEoLGiL3dTDDGxDc4PY5NyV3gVkEEr1F'
1111
1212 let NONE = "none"
1313
1414 let VOTERS = 3
1515
1616 let QUORUM = 2
1717
1818 let VOTING = "voting"
1919
2020 let REVEAL = "reveal"
2121
2222 let FEATURED = "featured"
2323
2424 let DELISTED = "delisted"
2525
2626 let verifier = "3Ms9sUb7W3L55LLGxeHWiqgTfdH9yn2mayb"
2727
2828 let VERIFIED = "verified"
2929
3030 let BLACKLISTED = "blacklist"
3131
3232 let maxAuctionDuration = (1440 * 30)
3333
3434 func getNumberByKey (key) = {
3535 let num = match getInteger(this, key) {
3636 case a: Int =>
3737 a
3838 case _ =>
3939 0
4040 }
4141 num
4242 }
4343
4444
4545 func getStrByKey (key) = {
4646 let str = match getString(this, key) {
4747 case a: String =>
4848 a
4949 case _ =>
5050 NONE
5151 }
5252 str
5353 }
5454
5555
5656 func getKeyItemPrice (item) = (item + "_price")
5757
5858
5959 func getValueItemPrice (item) = getNumberByKey(getKeyItemPrice(item))
6060
6161
6262 func getKeyUserItemCounter (user,item) = (((item + "_") + user) + "_cnt")
6363
6464
6565 func getValueUserItemCounter (user,item) = getNumberByKey(getKeyUserItemCounter(user, item))
6666
6767
6868 func getKeyItem (supplier,title) = ("item_" + toBase58String(sha256(toBytes((supplier + title)))))
6969
7070
7171 func getKeyItemData (item) = (item + "_data")
7272
7373
7474 func getKeyItemSupplier (item) = (item + "_owner")
7575
7676
7777 func getValueItemSupplier (item) = getStrByKey(getKeyItemSupplier(item))
7878
7979
8080 func getKeyBalanceSupplier (account) = (account + "_balance")
8181
8282
8383 func getValueBalanceSupplier (account) = getNumberByKey(getKeyBalanceSupplier(account))
8484
8585
8686 func getKeyCommit (item,user) = (((item + "_") + user) + "_commit")
8787
8888
8989 func getValueCommit (item,user) = getStrByKey(getKeyCommit(item, user))
9090
9191
9292 func getKeyCommitsCount (item) = (item + "_comcnt")
9393
9494
9595 func getValueCommitsCount (item) = getNumberByKey(getKeyCommitsCount(item))
9696
9797
9898 func getKeyReveal (item,user) = (((item + "_") + user) + "_reveal")
9999
100100
101101 func getValueReveal (item,user) = getStrByKey(getKeyReveal(item, user))
102102
103103
104104 func getKeyItemStatus (item) = (item + "_status")
105105
106106
107107 func getValueItemStatus (item) = getStrByKey(getKeyItemStatus(item))
108108
109109
110110 func getKeyVoteCount (item,voute) = ((item + "_res:") + voute)
111111
112112
113113 func getValueVouteCount (item,voute) = getNumberByKey(getKeyVoteCount(item, voute))
114114
115115
116116 @Callable(i)
117117 func startAuction (duration,startPrice,auctionId,priceAssetId) = {
118118 let endHeight = (lastBlock.height + duration)
119119 let pmt = extract(i.payment)
120120 WriteSet([DataEntry(auctionId, endHeight), DataEntry((auctionId + "_organizer"), toBase58String(i.caller.bytes)), DataEntry((auctionId + "_lot_assetId"), if (isDefined(pmt.assetId))
121121 then toBase58String(value(pmt.assetId))
122122 else "WAVES"), DataEntry((auctionId + "_lot_amount"), pmt.amount), DataEntry((auctionId + "_startPrice"), startPrice), DataEntry((auctionId + "_priceAssetId"), priceAssetId)])
123123 }
124124
125125
126126
127127 @Callable(i)
128128 func bid (auctionId,bid,price,endHeight) = {
129129 let pmt = extract(i.payment)
130130 let pmtAssetIdStr = if (isDefined(pmt.assetId))
131131 then toBase58String(value(pmt.assetId))
132132 else "WAVES"
133133 let callerAddressStr = toBase58String(i.caller.bytes)
134134 let priceAssetId = getStringValue(this, (auctionId + "_priceAssetId"))
135135 let winner = getString(this, (auctionId + "_winner"))
136136 let winAmount = getInteger(this, (auctionId + "_winAmount"))
137137 let bidFromTheSameUser = if (isDefined(winner))
138138 then (value(winner) == callerAddressStr)
139139 else false
140140 WriteSet([DataEntry((auctionId + "_participant"), toBase58String(i.caller.bytes)), DataEntry((auctionId + "_lot_amount"), price), DataEntry((auctionId + "_count"), bid), DataEntry((auctionId + "_endHeight"), endHeight)])
141+ }
142+
143+
144+
145+@Callable(i)
146+func endAuction (auctionId,winner,endHeight,lotAmount,bid) = {
147+ let pmt = extract(i.payment)
148+ WriteSet([DataEntry((auctionId + "_winner"), winner), DataEntry(auctionId, endHeight), DataEntry((auctionId + "_lot_amount"), lotAmount), DataEntry((auctionId + "_count"), bid)])
141149 }
142150
143151
144152
145153 @Callable(i)
146154 func purchase (item) = {
147155 let pmt = extract(i.payment)
148156 if (isDefined(pmt.assetId))
149157 then throw("can use Waves only at the moment")
150158 else {
151159 let userAddress = toBase58String(i.caller.bytes)
152160 let price = getValueItemPrice(item)
153161 let supplierAddress = getValueItemSupplier(item)
154162 if ((price > pmt.amount))
155163 then throw("purchase amount cannot be less than item price")
156164 else if ((pmt.amount > price))
157165 then throw("purchase amount cannot be higher than item price")
158166 else if ((supplierAddress == NONE))
159167 then throw("supplier is not exist")
160168 else WriteSet([DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry(getKeyBalanceSupplier(supplierAddress), (getValueBalanceSupplier(supplierAddress) + pmt.amount))])
161169 }
162170 }
163171
164172
165173
166174 @Callable(i)
167175 func addItem (title,price,data) = {
168176 let supplierAddress = toBase58String(i.caller.bytes)
169177 let item = getKeyItem(supplierAddress, title)
170178 if ((0 >= price))
171179 then throw("purchase amount cannot be less than item price")
172180 else if ((getValueItemSupplier(item) != NONE))
173181 then throw("An item is allready exist")
174182 else if ((supplierAddress == BLACKLISTED))
175183 then throw("supplier's account has been blacklist")
176184 else WriteSet([DataEntry(getKeyItemSupplier(item), supplierAddress), DataEntry(getKeyItemPrice(item), price), DataEntry(getKeyItemData(item), data)])
177185 }
178186
179187
180188
181189 @Callable(i)
182190 func deposit () = {
183191 let pmt = extract(i.payment)
184192 let supplierAddress = toBase58String(i.caller.bytes)
185193 let balance = getValueBalanceSupplier(supplierAddress)
186194 let newBalance = (balance + pmt.amount)
187195 if (isDefined(pmt.assetId))
188196 then throw("can hodl waves only at the moment")
189197 else if ((0 > pmt.amount))
190198 then throw("Can not deposit negative amount")
191199 else WriteSet([DataEntry(getKeyBalanceSupplier(supplierAddress), newBalance)])
192200 }
193201
194202
195203
196204 @Callable(i)
197205 func withdraw (amount) = {
198206 let supplierAddress = toBase58String(i.caller.bytes)
199207 let balance = getValueBalanceSupplier(supplierAddress)
200208 let newBalance = (balance - amount)
201209 if ((0 > amount))
202210 then throw("Can not withdraw negative amount")
203211 else if ((0 > newBalance))
204212 then throw("not enough balance")
205213 else if ((0 >= balance))
206214 then throw("insufficient balance")
207215 else ScriptResult(WriteSet([DataEntry(getKeyBalanceSupplier(supplierAddress), newBalance)]), TransferSet([ScriptTransfer(addressFromStringValue(supplierAddress), amount, unit)]))
208216 }
209217
210218
211219
212220 @Callable(i)
213221 func voteCommit (item,hash) = {
214222 let user = toBase58String(i.caller.bytes)
215223 let commits = getValueCommitsCount(item)
216224 let status = getValueItemStatus(item)
217225 if ((commits >= VOTERS))
218226 then throw("reached max num of vouters")
219227 else if ((getValueCommit(item, user) != NONE))
220228 then throw("user has allready participated")
221229 else if ((getKeyItemSupplier(item) == NONE))
222230 then throw("item dose not exist")
223231 else if (if ((status != NONE))
224232 then (status != VOTING)
225233 else false)
226234 then throw("vouting is not posible")
227235 else WriteSet([DataEntry(getKeyCommit(item, user), hash), DataEntry(getKeyCommitsCount(item), (commits + 1)), DataEntry(getKeyItemStatus(item), if ((commits == VOTERS))
228236 then REVEAL
229237 else VOTING)])
230238 }
231239
232240
233241
234242 @Callable(i)
235243 func voteReveal (item,vote,salt) = {
236244 let user = toBase58String(i.caller.bytes)
237245 let status = getValueItemStatus(item)
238246 let newVoteCount = getValueVouteCount(item, vote)
239247 if ((toBase58String(sha256(toBytes((vote + salt)))) != getValueCommit(item, user)))
240248 then throw("reveal data is not valid")
241249 else if ((VOTERS > getValueCommitsCount(item)))
242250 then throw("max num of hasn't reached yet")
243251 else if ((getValueReveal(item, user) != NONE))
244252 then throw("user has already participated")
245253 else if (if ((status != VOTING))
246254 then (status != REVEAL)
247255 else false)
248256 then throw("wrong status")
249257 else if (if ((vote != FEATURED))
250258 then (vote != DELISTED)
251259 else false)
252260 then throw("wrong vote")
253261 else if (if ((status == FEATURED))
254262 then true
255263 else (status == DELISTED))
256264 then throw("vote has finished")
257265 else WriteSet([DataEntry(getKeyReveal(item, user), vote), DataEntry(getKeyVoteCount(item, vote), newVoteCount), DataEntry(getKeyItemStatus(item), if ((newVoteCount >= QUORUM))
258266 then vote
259267 else REVEAL)])
260268 }
261269
262270
263271 @Verifier(tx)
264272 func verify () = {
265273 let alice1 = sigVerify(tx.bodyBytes, tx.proofs[0], allicePubkey)
266274 let alice2 = sigVerify(tx.bodyBytes, tx.proofs[1], allicePubkey)
267275 let alice3 = sigVerify(tx.bodyBytes, tx.proofs[2], allicePubkey)
268276 let bob1 = sigVerify(tx.bodyBytes, tx.proofs[0], bobPubkey)
269277 let bob2 = sigVerify(tx.bodyBytes, tx.proofs[1], bobPubkey)
270278 let bob3 = sigVerify(tx.bodyBytes, tx.proofs[2], bobPubkey)
271279 let cooper1 = sigVerify(tx.bodyBytes, tx.proofs[0], cooperPubkey)
272280 let copper2 = sigVerify(tx.bodyBytes, tx.proofs[1], cooperPubkey)
273281 let copper3 = sigVerify(tx.bodyBytes, tx.proofs[2], cooperPubkey)
274282 let alliceAndBob = if (if (if (if (if (if (alice1)
275283 then bob2
276284 else false)
277285 then true
278286 else if (alice1)
279287 then bob3
280288 else false)
281289 then true
282290 else if (alice2)
283291 then bob1
284292 else false)
285293 then true
286294 else if (alice2)
287295 then bob3
288296 else false)
289297 then true
290298 else if (alice3)
291299 then bob1
292300 else false)
293301 then true
294302 else if (alice3)
295303 then bob2
296304 else false
297305 let alliceAndCooper = if (if (if (if (if (if (alice1)
298306 then copper2
299307 else false)
300308 then true
301309 else if (alice1)
302310 then copper3
303311 else false)
304312 then true
305313 else if (alice2)
306314 then cooper1
307315 else false)
308316 then true
309317 else if (alice2)
310318 then copper3
311319 else false)
312320 then true
313321 else if (alice3)
314322 then cooper1
315323 else false)
316324 then true
317325 else if (alice3)
318326 then copper2
319327 else false
320328 let bobeAndCooper = if (if (if (if (if (if (cooper1)
321329 then bob2
322330 else false)
323331 then true
324332 else if (cooper1)
325333 then bob3
326334 else false)
327335 then true
328336 else if (copper2)
329337 then bob1
330338 else false)
331339 then true
332340 else if (copper2)
333341 then bob3
334342 else false)
335343 then true
336344 else if (copper3)
337345 then bob1
338346 else false)
339347 then true
340348 else if (copper3)
341349 then bob2
342350 else false
343351 match tx {
344352 case d: SetScriptTransaction =>
345353 sigVerify(tx.bodyBytes, tx.proofs[0], ownerPublickey)
346354 case d: DataTransaction =>
347355 true
348356 case _ =>
349357 if (if (alliceAndBob)
350358 then true
351359 else alliceAndCooper)
352360 then true
353361 else bobeAndCooper
354362 }
355363 }
356364

github/deemru/w8io/169f3d6 
47.84 ms