tx · 6DsfRwZAa9d9w31FQuoRZgg4dsR7b2gDGy9mVaVkDSbH

3NB6ViLiZv3r5EdQ2Q8GA8GKpuwmG3zevAt:  -0.05000000 Waves

2019.08.17 18:01 [635262] smart account 3NB6ViLiZv3r5EdQ2Q8GA8GKpuwmG3zevAt > SELF 0.00000000 Waves

{ "type": 13, "id": "6DsfRwZAa9d9w31FQuoRZgg4dsR7b2gDGy9mVaVkDSbH", "fee": 5000000, "feeAssetId": null, "timestamp": 1566054074330, "version": 1, "sender": "3NB6ViLiZv3r5EdQ2Q8GA8GKpuwmG3zevAt", "senderPublicKey": "3ghbp6Z5eXoKniLSE8XPjn5od7gT1K7qhk6zANBhv9C3", "proofs": [ "54gGGi1ZteSmEkiUE2KwPwaS9L2JRmNGFzUewo9Q4nnfs684JS1EMeRGwXUi5n87uigBETJWESKL3SShNWFuPKi2" ], "script": "base64:AAIDAAAAAAAAAAAAAAAlAAAAAA5vd25lclB1YmxpY2tleQEAAAAgJ+LupRtywYm1DtC2wa7+mcHTm1BkasCvRteam1vswWgAAAAADGFsbGljZVB1YmtleQEAAAAgdahQG7OF8VCvnmrXif7UUhoQjaCrm/2hFDfEk/59nDEAAAAACWJvYlB1YmtleQEAAAAgoHwmi+qXZSlN20yTARZQ9O8s6pUs/3qey7EnxhpjMk8AAAAADGNvb3BlclB1YmtleQEAAAAgU/w5K0kRwpKzXSOUcyJ72drbib04bPq1q9XqkXENjioAAAAABE5PTkUCAAAABG5vbmUAAAAABlZPVEVSUwAAAAAAAAAAAwAAAAAGUVVPUlVNAAAAAAAAAAACAAAAAAZWT1RJTkcCAAAABnZvdGluZwAAAAAGUkVWRUFMAgAAAAZyZXZlYWwAAAAACEZFQVRVUkVEAgAAAAhmZWF0dXJlZAAAAAAIREVMSVNURUQCAAAACGRlbGlzdGVkAAAAAAh2ZXJpZmllcgIAAAAjM01zOXNVYjdXM0w1NUxMR3hlSFdpcWdUZmRIOXluMm1heWIAAAAACFZFUklGSUVEAgAAAAh2ZXJpZmllZAAAAAALQkxBQ0tMSVNURUQCAAAACWJsYWNrbGlzdAAAAAASbWF4QXVjdGlvbkR1cmF0aW9uCQAAaAAAAAIAAAAAAAAABaAAAAAAAAAAAB4BAAAADmdldE51bWJlckJ5S2V5AAAAAQAAAANrZXkEAAAAA251bQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAUAAAADbnVtAQAAAAtnZXRTdHJCeUtleQAAAAEAAAADa2V5BAAAAANzdHIEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEFAAAABE5PTkUFAAAAA3N0cgEAAAAPZ2V0S2V5SXRlbVByaWNlAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAABl9wcmljZQEAAAARZ2V0VmFsdWVJdGVtUHJpY2UAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAA9nZXRLZXlJdGVtUHJpY2UAAAABBQAAAARpdGVtAQAAABVnZXRLZXlVc2VySXRlbUNvdW50ZXIAAAACAAAABHVzZXIAAAAEaXRlbQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAEaXRlbQIAAAABXwUAAAAEdXNlcgIAAAAEX2NudAEAAAAXZ2V0VmFsdWVVc2VySXRlbUNvdW50ZXIAAAACAAAABHVzZXIAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFWdldEtleVVzZXJJdGVtQ291bnRlcgAAAAIFAAAABHVzZXIFAAAABGl0ZW0BAAAACmdldEtleUl0ZW0AAAACAAAACHN1cHBsaWVyAAAABXRpdGxlCQABLAAAAAICAAAABWl0ZW1fCQACWAAAAAEJAAH3AAAAAQkAAZsAAAABCQABLAAAAAIFAAAACHN1cHBsaWVyBQAAAAV0aXRsZQEAAAAOZ2V0S2V5SXRlbURhdGEAAAABAAAABGl0ZW0JAAEsAAAAAgUAAAAEaXRlbQIAAAAFX2RhdGEBAAAAEmdldEtleUl0ZW1TdXBwbGllcgAAAAEAAAAEaXRlbQkAASwAAAACBQAAAARpdGVtAgAAAAZfb3duZXIBAAAAFGdldFZhbHVlSXRlbVN1cHBsaWVyAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQUAAAAEaXRlbQEAAAAVZ2V0S2V5QmFsYW5jZVN1cHBsaWVyAAAAAQAAAAdhY2NvdW50CQABLAAAAAIFAAAAB2FjY291bnQCAAAACF9iYWxhbmNlAQAAABdnZXRWYWx1ZUJhbGFuY2VTdXBwbGllcgAAAAEAAAAHYWNjb3VudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFWdldEtleUJhbGFuY2VTdXBwbGllcgAAAAEFAAAAB2FjY291bnQBAAAADGdldEtleUNvbW1pdAAAAAIAAAAEaXRlbQAAAAR1c2VyCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARpdGVtAgAAAAFfBQAAAAR1c2VyAgAAAAdfY29tbWl0AQAAAA5nZXRWYWx1ZUNvbW1pdAAAAAIAAAAEaXRlbQAAAAR1c2VyCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAMZ2V0S2V5Q29tbWl0AAAAAgUAAAAEaXRlbQUAAAAEdXNlcgEAAAASZ2V0S2V5Q29tbWl0c0NvdW50AAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAAB19jb21jbnQBAAAAFGdldFZhbHVlQ29tbWl0c0NvdW50AAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAASZ2V0S2V5Q29tbWl0c0NvdW50AAAAAQUAAAAEaXRlbQEAAAAMZ2V0S2V5UmV2ZWFsAAAAAgAAAARpdGVtAAAABHVzZXIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABGl0ZW0CAAAAAV8FAAAABHVzZXICAAAAB19yZXZlYWwBAAAADmdldFZhbHVlUmV2ZWFsAAAAAgAAAARpdGVtAAAABHVzZXIJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAAAxnZXRLZXlSZXZlYWwAAAACBQAAAARpdGVtBQAAAAR1c2VyAQAAABBnZXRLZXlJdGVtU3RhdHVzAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAAB19zdGF0dXMBAAAAEmdldFZhbHVlSXRlbVN0YXR1cwAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEGdldEtleUl0ZW1TdGF0dXMAAAABBQAAAARpdGVtAQAAAA9nZXRLZXlWb3RlQ291bnQAAAACAAAABGl0ZW0AAAAFdm91dGUJAAEsAAAAAgkAASwAAAACBQAAAARpdGVtAgAAAAVfcmVzOgUAAAAFdm91dGUBAAAAEmdldFZhbHVlVm91dGVDb3VudAAAAAIAAAAEaXRlbQAAAAV2b3V0ZQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAD2dldEtleVZvdGVDb3VudAAAAAIFAAAABGl0ZW0FAAAABXZvdXRlAAAACQAAAAFpAQAAAAxzdGFydEF1Y3Rpb24AAAAEAAAACGR1cmF0aW9uAAAACnN0YXJ0UHJpY2UAAAAJYXVjdGlvbklkAAAA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AAIFAAAAD3N1cHBsaWVyQWRkcmVzcwUAAAAETk9ORQkAAAIAAAABAgAAABVzdXBwbGllciBpcyBub3QgZXhpc3QJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRLZXlVc2VySXRlbUNvdW50ZXIAAAACBQAAAAt1c2VyQWRkcmVzcwUAAAAEaXRlbQkAAGQAAAACCQEAAAAXZ2V0VmFsdWVVc2VySXRlbUNvdW50ZXIAAAACBQAAAAt1c2VyQWRkcmVzcwUAAAAEaXRlbQAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFWdldEtleUJhbGFuY2VTdXBwbGllcgAAAAEFAAAAD3N1cHBsaWVyQWRkcmVzcwkAAGQAAAACCQEAAAAXZ2V0VmFsdWVCYWxhbmNlU3VwcGxpZXIAAAABBQAAAA9zdXBwbGllckFkZHJlc3MIBQAAAANwbXQAAAAGYW1vdW50BQAAAANuaWwAAAABaQEAAAAHYWRkSXRlbQAAAAMAAAAFdGl0bGUAAAAFcHJpY2UAAAAEZGF0YQQAAAAPc3VwcGxpZXJBZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAABGl0ZW0JAQAAAApnZXRLZXlJdGVtAAAAAgUAAAAPc3VwcGxpZXJBZGRyZXNzBQAAAAV0aXRsZQMJAABnAAAAAgAAAAAAAAAAAAUAAAAFcHJpY2UJAAACAAAAAQIAAAAucHVyY2hhc2UgYW1vdW50IGNhbm5vdCBiZSBsZXNzIHRoYW4gaXRlbSBwcmljZQMJAQAAAAIhPQAAAAIJAQAAABRnZXRWYWx1ZUl0ZW1TdXBwbGllcgAAAAEFAAAABGl0ZW0FAAAABE5PTkUJAAACAAAAAQIAAAAZQW4gaXRlbSBpcyBhbGxyZWFkeSBleGlzdAMJAAAAAAAAAgUAAAAPc3VwcGxpZXJBZGRyZXNzBQAAAAtCTEFDS0xJU1RFRAkAAAIAAAABAgAAACVzdXBwbGllcidzIGFjY291bnQgaGFzIGJlZW4gYmxhY2tsaXN0CQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAS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", "chainId": 84, "height": 635262, "spentComplexity": 0 } View: original | compacted Prev: 8ZMaoUFGeS4cFMunSUuVVhbRcrvZsk92WMBZDz2PJqUb Next: none Diff:
OldNewDifferences
143143
144144
145145 @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)])
149- }
146+func endAuction (auctionId,winner,endHeight,lotAmount,bid) = ScriptResult(WriteSet([DataEntry((auctionId + "_winner"), winner), DataEntry(auctionId, endHeight), DataEntry((auctionId + "_lot_amount"), lotAmount), DataEntry((auctionId + "_count"), bid)]), TransferSet([ScriptTransfer(Address(fromBase58String(winner)), 1, fromBase58String(auctionId))]))
150147
151148
152149
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)])
141141 }
142142
143143
144144
145145 @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)])
149- }
146+func endAuction (auctionId,winner,endHeight,lotAmount,bid) = ScriptResult(WriteSet([DataEntry((auctionId + "_winner"), winner), DataEntry(auctionId, endHeight), DataEntry((auctionId + "_lot_amount"), lotAmount), DataEntry((auctionId + "_count"), bid)]), TransferSet([ScriptTransfer(Address(fromBase58String(winner)), 1, fromBase58String(auctionId))]))
150147
151148
152149
153150 @Callable(i)
154151 func purchase (item) = {
155152 let pmt = extract(i.payment)
156153 if (isDefined(pmt.assetId))
157154 then throw("can use Waves only at the moment")
158155 else {
159156 let userAddress = toBase58String(i.caller.bytes)
160157 let price = getValueItemPrice(item)
161158 let supplierAddress = getValueItemSupplier(item)
162159 if ((price > pmt.amount))
163160 then throw("purchase amount cannot be less than item price")
164161 else if ((pmt.amount > price))
165162 then throw("purchase amount cannot be higher than item price")
166163 else if ((supplierAddress == NONE))
167164 then throw("supplier is not exist")
168165 else WriteSet([DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry(getKeyBalanceSupplier(supplierAddress), (getValueBalanceSupplier(supplierAddress) + pmt.amount))])
169166 }
170167 }
171168
172169
173170
174171 @Callable(i)
175172 func addItem (title,price,data) = {
176173 let supplierAddress = toBase58String(i.caller.bytes)
177174 let item = getKeyItem(supplierAddress, title)
178175 if ((0 >= price))
179176 then throw("purchase amount cannot be less than item price")
180177 else if ((getValueItemSupplier(item) != NONE))
181178 then throw("An item is allready exist")
182179 else if ((supplierAddress == BLACKLISTED))
183180 then throw("supplier's account has been blacklist")
184181 else WriteSet([DataEntry(getKeyItemSupplier(item), supplierAddress), DataEntry(getKeyItemPrice(item), price), DataEntry(getKeyItemData(item), data)])
185182 }
186183
187184
188185
189186 @Callable(i)
190187 func deposit () = {
191188 let pmt = extract(i.payment)
192189 let supplierAddress = toBase58String(i.caller.bytes)
193190 let balance = getValueBalanceSupplier(supplierAddress)
194191 let newBalance = (balance + pmt.amount)
195192 if (isDefined(pmt.assetId))
196193 then throw("can hodl waves only at the moment")
197194 else if ((0 > pmt.amount))
198195 then throw("Can not deposit negative amount")
199196 else WriteSet([DataEntry(getKeyBalanceSupplier(supplierAddress), newBalance)])
200197 }
201198
202199
203200
204201 @Callable(i)
205202 func withdraw (amount) = {
206203 let supplierAddress = toBase58String(i.caller.bytes)
207204 let balance = getValueBalanceSupplier(supplierAddress)
208205 let newBalance = (balance - amount)
209206 if ((0 > amount))
210207 then throw("Can not withdraw negative amount")
211208 else if ((0 > newBalance))
212209 then throw("not enough balance")
213210 else if ((0 >= balance))
214211 then throw("insufficient balance")
215212 else ScriptResult(WriteSet([DataEntry(getKeyBalanceSupplier(supplierAddress), newBalance)]), TransferSet([ScriptTransfer(addressFromStringValue(supplierAddress), amount, unit)]))
216213 }
217214
218215
219216
220217 @Callable(i)
221218 func voteCommit (item,hash) = {
222219 let user = toBase58String(i.caller.bytes)
223220 let commits = getValueCommitsCount(item)
224221 let status = getValueItemStatus(item)
225222 if ((commits >= VOTERS))
226223 then throw("reached max num of vouters")
227224 else if ((getValueCommit(item, user) != NONE))
228225 then throw("user has allready participated")
229226 else if ((getKeyItemSupplier(item) == NONE))
230227 then throw("item dose not exist")
231228 else if (if ((status != NONE))
232229 then (status != VOTING)
233230 else false)
234231 then throw("vouting is not posible")
235232 else WriteSet([DataEntry(getKeyCommit(item, user), hash), DataEntry(getKeyCommitsCount(item), (commits + 1)), DataEntry(getKeyItemStatus(item), if ((commits == VOTERS))
236233 then REVEAL
237234 else VOTING)])
238235 }
239236
240237
241238
242239 @Callable(i)
243240 func voteReveal (item,vote,salt) = {
244241 let user = toBase58String(i.caller.bytes)
245242 let status = getValueItemStatus(item)
246243 let newVoteCount = getValueVouteCount(item, vote)
247244 if ((toBase58String(sha256(toBytes((vote + salt)))) != getValueCommit(item, user)))
248245 then throw("reveal data is not valid")
249246 else if ((VOTERS > getValueCommitsCount(item)))
250247 then throw("max num of hasn't reached yet")
251248 else if ((getValueReveal(item, user) != NONE))
252249 then throw("user has already participated")
253250 else if (if ((status != VOTING))
254251 then (status != REVEAL)
255252 else false)
256253 then throw("wrong status")
257254 else if (if ((vote != FEATURED))
258255 then (vote != DELISTED)
259256 else false)
260257 then throw("wrong vote")
261258 else if (if ((status == FEATURED))
262259 then true
263260 else (status == DELISTED))
264261 then throw("vote has finished")
265262 else WriteSet([DataEntry(getKeyReveal(item, user), vote), DataEntry(getKeyVoteCount(item, vote), newVoteCount), DataEntry(getKeyItemStatus(item), if ((newVoteCount >= QUORUM))
266263 then vote
267264 else REVEAL)])
268265 }
269266
270267
271268 @Verifier(tx)
272269 func verify () = {
273270 let alice1 = sigVerify(tx.bodyBytes, tx.proofs[0], allicePubkey)
274271 let alice2 = sigVerify(tx.bodyBytes, tx.proofs[1], allicePubkey)
275272 let alice3 = sigVerify(tx.bodyBytes, tx.proofs[2], allicePubkey)
276273 let bob1 = sigVerify(tx.bodyBytes, tx.proofs[0], bobPubkey)
277274 let bob2 = sigVerify(tx.bodyBytes, tx.proofs[1], bobPubkey)
278275 let bob3 = sigVerify(tx.bodyBytes, tx.proofs[2], bobPubkey)
279276 let cooper1 = sigVerify(tx.bodyBytes, tx.proofs[0], cooperPubkey)
280277 let copper2 = sigVerify(tx.bodyBytes, tx.proofs[1], cooperPubkey)
281278 let copper3 = sigVerify(tx.bodyBytes, tx.proofs[2], cooperPubkey)
282279 let alliceAndBob = if (if (if (if (if (if (alice1)
283280 then bob2
284281 else false)
285282 then true
286283 else if (alice1)
287284 then bob3
288285 else false)
289286 then true
290287 else if (alice2)
291288 then bob1
292289 else false)
293290 then true
294291 else if (alice2)
295292 then bob3
296293 else false)
297294 then true
298295 else if (alice3)
299296 then bob1
300297 else false)
301298 then true
302299 else if (alice3)
303300 then bob2
304301 else false
305302 let alliceAndCooper = if (if (if (if (if (if (alice1)
306303 then copper2
307304 else false)
308305 then true
309306 else if (alice1)
310307 then copper3
311308 else false)
312309 then true
313310 else if (alice2)
314311 then cooper1
315312 else false)
316313 then true
317314 else if (alice2)
318315 then copper3
319316 else false)
320317 then true
321318 else if (alice3)
322319 then cooper1
323320 else false)
324321 then true
325322 else if (alice3)
326323 then copper2
327324 else false
328325 let bobeAndCooper = if (if (if (if (if (if (cooper1)
329326 then bob2
330327 else false)
331328 then true
332329 else if (cooper1)
333330 then bob3
334331 else false)
335332 then true
336333 else if (copper2)
337334 then bob1
338335 else false)
339336 then true
340337 else if (copper2)
341338 then bob3
342339 else false)
343340 then true
344341 else if (copper3)
345342 then bob1
346343 else false)
347344 then true
348345 else if (copper3)
349346 then bob2
350347 else false
351348 match tx {
352349 case d: SetScriptTransaction =>
353350 sigVerify(tx.bodyBytes, tx.proofs[0], ownerPublickey)
354351 case d: DataTransaction =>
355352 true
356353 case _ =>
357354 if (if (alliceAndBob)
358355 then true
359356 else alliceAndCooper)
360357 then true
361358 else bobeAndCooper
362359 }
363360 }
364361

github/deemru/w8io/169f3d6 
52.02 ms