tx · 8WNFfa5SFP6PV1iRzgkFfzntnQ5DCrPv9vpivxNBV8tr

3MxssetYXJfiGwzo9pqChsSwYj3tCYq5FFH:  -0.01200000 Waves

2022.10.12 17:41 [2269271] smart account 3MxssetYXJfiGwzo9pqChsSwYj3tCYq5FFH > SELF 0.00000000 Waves

{ "type": 13, "id": "8WNFfa5SFP6PV1iRzgkFfzntnQ5DCrPv9vpivxNBV8tr", "fee": 1200000, "feeAssetId": null, "timestamp": 1665585768733, "version": 2, "chainId": 84, "sender": "3MxssetYXJfiGwzo9pqChsSwYj3tCYq5FFH", "senderPublicKey": "46sMMaC9rMPQdyTE87RpcnevTY9oheuDqzfnuQzoyCtv", "proofs": [ "58VM1tkJ113bt5fSYciKxdB8tBCiXXFCEBvBFBks4A72iGynqfiQ7C8cHptFZX4KM9sTWq9c5PG2ixCueWC8vfZH" ], "script": "base64:AAIFAAAAAAAAACoIAhIJCgcBAQEBAQgBEgMKAQESAwoBCBIECgIBCBIFCgMBCAESBAoCARgAAAAlAQAAABFnZXRJbnRlZ2VyT3JUaHJvdwAAAAIAAAAHYWRkcmVzcwAAAANrZXkJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAdhZGRyZXNzBQAAAANrZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAADENhbid0IHJlYWQgJwUAAAADa2V5AgAAAA0nIGF0IGFkZHJlc3MgCQAEJQAAAAEFAAAAB2FkZHJlc3MBAAAAEGdldFN0cmluZ09yVGhyb3cAAAACAAAAB2FkZHJlc3MAAAADa2V5CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAxDYW4ndCByZWFkICcFAAAAA2tleQIAAAANJyBhdCBhZGRyZXNzIAkABCUAAAABBQAAAAdhZGRyZXNzAQAAABNnZXRJbnRlZ2VyT3JEZWZhdWx0AAAAAwAAAAdhZGRyZXNzAAAAA2tleQAAAAdkZWZhdWx0CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQUAAAAHZGVmYXVsdAEAAAAPcGFyc2VJbnRPclRocm93AAAAAQAAAAhtYXliZUludAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEtgAAAAEFAAAACG1heWJlSW50CQABLAAAAAIJAAEsAAAAAgIAAAAaQ2FuJ3QgcGFyc2UgaW50ZWdlciBmcm9tICcFAAAACG1heWJlSW50AgAAAAEnAQAAABNwYXJzZUFkZHJlc3NPclRocm93AAAAAQAAAAxtYXliZUFkZHJlc3MJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCYAAAABBQAAAAxtYXliZUFkZHJlc3MJAAEsAAAAAgkAASwAAAACAgAAABpDYW4ndCBwYXJzZSBhZGRyZXNzIGZyb20gJwUAAAAMbWF5YmVBZGRyZXNzAgAAAAEnAQAAABFwYXJzZUludE9yRGVmYXVsdAAAAAIAAAAIbWF5YmVJbnQAAAAHZGVmYXVsdAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABLYAAAABBQAAAAhtYXliZUludAUAAAAHZGVmYXVsdAEAAAAKa2V5X2VudGl0eQAAAAMAAAAEbmFtZQAAAAJwawAAAAhwcm9wZXJ0eQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARuYW1lAgAAAAFfBQAAAAJwawIAAAABXwUAAAAIcHJvcGVydHkBAAAAB2tleV90b3AAAAABAAAABG5hbWUJAAEsAAAAAgIAAAAEVG9wXwUAAAAEbmFtZQEAAAAIa2V5X3RvcDIAAAABAAAABG5hbWUJAAEsAAAAAgIAAAAFVG9wMl8FAAAABG5hbWUBAAAADmtleV9iaWRkZXJIYXNoAAAAAwAAAAlhdWN0aW9uSWQAAAAHYWRkcmVzcwAAAARoYXNoCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAABXwUAAAAHYWRkcmVzcwIAAAABXwUAAAAEaGFzaAEAAAAHa2V5X2JpZAAAAAEAAAAKYmlkZGVySGFzaAkAASwAAAACAgAAAARCaWRfBQAAAApiaWRkZXJIYXNoAQAAAAprZXlfcmV2ZWFsAAAAAQAAAApiaWRkZXJIYXNoCQABLAAAAAICAAAAB1JldmVhbF8FAAAACmJpZGRlckhhc2gAAAAAEWtleV9pbml0VGltZXN0YW1wAgAAAA1pbml0VGltZXN0YW1wAAAAAA9rZXlfYmlkRHVyYXRpb24CAAAAC2JpZER1cmF0aW9uAAAAABJrZXlfcmV2ZWFsRHVyYXRpb24CAAAADnJldmVhbER1cmF0aW9uAAAAAAxrZXlfZXJyb3JGZWUCAAAACGVycm9yRmVlAAAAAA5rZXlfbWluaW1hbEJpZAIAAAAKbWluaW1hbEJpZAAAAAAUa2V5X3JlZ2lzdHJhckFkZHJlc3MCAAAAEHJlZ2lzdHJhckFkZHJlc3MAAAAAFWtleV9uYW1lTWluaW1hbExlbmd0aAIAAAARbmFtZU1pbmltYWxMZW5ndGgAAAAADGF1Y3Rpb25TdGFydAkBAAAAEWdldEludGVnZXJPclRocm93AAAAAgUAAAAEdGhpcwUAAAARa2V5X2luaXRUaW1lc3RhbXAAAAAAC2JpZER1cmF0aW9uCQEAAAARZ2V0SW50ZWdlck9yVGhyb3cAAAACBQAAAAR0aGlzBQAAAA9rZXlfYmlkRHVyYXRpb24AAAAADnJldmVhbER1cmF0aW9uCQEAAAARZ2V0SW50ZWdlck9yVGhyb3cAAAACBQAAAAR0aGlzBQAAABJrZXlfcmV2ZWFsRHVyYXRpb24AAAAAD2F1Y3Rpb25EdXJhdGlvbgkAAGQAAAACBQAAAAtiaWREdXJhdGlvbgUAAAAOcmV2ZWFsRHVyYXRpb24AAAAACGVycm9yRmVlCQEAAAARZ2V0SW50ZWdlck9yVGhyb3cAAAACBQAAAAR0aGlzBQAAAAxrZXlfZXJyb3JGZWUAAAAACm1pbmltYWxCaWQJAQAAABFnZXRJbnRlZ2VyT3JUaHJvdwAAAAIFAAAABHRoaXMFAAAADmtleV9taW5pbWFsQmlkAAAAABFuYW1lTWluaW1hbExlbmd0aAkBAAAAEWdldEludGVnZXJPclRocm93AAAAAgUAAAAEdGhpcwUAAAAVa2V5X25hbWVNaW5pbWFsTGVuZ3RoAAAAABByZWdpc3RyYXJBZGRyZXNzCQEAAAAQZ2V0U3RyaW5nT3JUaHJvdwAAAAIFAAAABHRoaXMFAAAAFGtleV9yZWdpc3RyYXJBZGRyZXNzAAAAAAlyZWdpc3RyYXIJAQAAABNwYXJzZUFkZHJlc3NPclRocm93AAAAAQUAAAAQcmVnaXN0cmFyQWRkcmVzcwEAAAAIY2FsY0hhc2gAAAACAAAABG5hbWUAAAAGYW1vdW50CQACWAAAAAEJAArwAAAAAQkACowAAAABCQAAywAAAAIJAAGbAAAAAQUAAAAEbmFtZQkAAZoAAAABBQAAAAZhbW91bnQAAAAACVBIQVNFX0JJRAIAAAADQklEAAAAAAxQSEFTRV9SRVZFQUwCAAAABlJFVkVBTAEAAAAPX2dldEF1Y3Rpb25CeUlkAAAAAQAAAAlhdWN0aW9uSWQEAAAACGJpZFN0YXJ0CQAAZAAAAAIFAAAADGF1Y3Rpb25TdGFydAkAAGgAAAACBQAAAAlhdWN0aW9uSWQFAAAAD2F1Y3Rpb25EdXJhdGlvbgQAAAALcmV2ZWFsU3RhcnQJAABkAAAAAgUAAAAIYmlkU3RhcnQFAAAAC2JpZER1cmF0aW9uBAAAAAphdWN0aW9uRW5kCQAAZAAAAAIFAAAAC3JldmVhbFN0YXJ0BQAAAA5yZXZlYWxEdXJhdGlvbgQAAAAFcGhhc2UDCQAAZgAAAAIIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wBQAAAAtyZXZlYWxTdGFydAUAAAAMUEhBU0VfUkVWRUFMBQAAAAlQSEFTRV9CSUQJAAUXAAAABQUAAAAJYXVjdGlvbklkBQAAAAVwaGFzZQUAAAAIYmlkU3RhcnQFAAAAC3JldmVhbFN0YXJ0BQAAAAphdWN0aW9uRW5kAQAAAApnZXRBdWN0aW9uAAAAAAQAAAAJYXVjdGlvbklkCQAAaQAAAAIJAABlAAAAAggFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAFAAAADGF1Y3Rpb25TdGFydAUAAAAPYXVjdGlvbkR1cmF0aW9uCQEAAAAPX2dldEF1Y3Rpb25CeUlkAAAAAQUAAAAJYXVjdGlvbklkAQAAAA9nZXRBdWN0aW9uUGhhc2UAAAAABAAAAAckbWF0Y2gwCQEAAAAKZ2V0QXVjdGlvbgAAAAADCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAHChJbnQsIFN0cmluZywgSW50LCBJbnQsIEludCkEAAAAB2F1Y3Rpb24FAAAAByRtYXRjaDAEAAAACWF1Y3Rpb25JZAgFAAAAB2F1Y3Rpb24AAAACXzEEAAAABXBoYXNlCAUAAAAHYXVjdGlvbgAAAAJfMgkABRQAAAACBQAAAAlhdWN0aW9uSWQFAAAABXBoYXNlCQAAAgAAAAECAAAAFEludmFsaWQgYXVjdGlvbiBpbmZvAQAAAAlpc0NvcnJlY3QAAAABAAAABG5hbWUEAAAACWF2YWlsYWJsZQQAAAAHJG1hdGNoMAkAA/wAAAAEBQAAAAlyZWdpc3RyYXICAAAACWF2YWlsYWJsZQkABEwAAAACBQAAAARuYW1lBQAAAANuaWwFAAAAA25pbAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAHQm9vbGVhbgQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAACVVbnN1cHBvcnRlZCByZXN1bHQgZm9ybWF0IChhdmFpbGFibGUpAwUAAAAJYXZhaWxhYmxlCQAAZwAAAAIJAAExAAAAAQUAAAAEbmFtZQUAAAARbmFtZU1pbmltYWxMZW5ndGgHAQAAAAppc1dpbm5hYmxlAAAAAQAAAARuYW1lBAAAAAlyZXZlYWxLZXkJAAQdAAAAAgUAAAAEdGhpcwkBAAAAB2tleV90b3AAAAABBQAAAARuYW1lAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAAJcmV2ZWFsS2V5BgQAAAAOY3VycmVudEF1Y3Rpb24ICQEAAAAPZ2V0QXVjdGlvblBoYXNlAAAAAAAAAAJfMQQAAAAMdG9wQXVjdGlvbklkCQABkQAAAAIJAAS1AAAAAgkBAAAABXZhbHVlAAAAAQUAAAAJcmV2ZWFsS2V5AgAAAAFfAAAAAAAAAAABBAAAAAlhdWN0aW9uSWQJAQAAABFwYXJzZUludE9yRGVmYXVsdAAAAAIFAAAADHRvcEF1Y3Rpb25JZAAAAAAAAAAAAAkAAAAAAAACBQAAAAlhdWN0aW9uSWQFAAAADmN1cnJlbnRBdWN0aW9uAQAAAAtpc0F2YWlsYWJsZQAAAAEAAAAEbmFtZQMJAQAAAAlpc0NvcnJlY3QAAAABBQAAAARuYW1lCQEAAAAKaXNXaW5uYWJsZQAAAAEFAAAABG5hbWUHAAAABgAAAANpbnYBAAAABGluaXQAAAAHAAAACXRpbWVzdGFtcAAAAAtiaWREdXJhdGlvbgAAAA5yZXZlYWxEdXJhdGlvbgAAAAhlcnJvckZlZQAAAAptaW5pbWFsQmlkAAAAEHJlZ2lzdHJhckFkZHJlc3MAAAARbmFtZU1pbmltYWxMZW5ndGgDCQEAAAACIT0AAAACBQAAAAR0aGlzCAUAAAADaW52AAAABmNhbGxlcgkAAAIAAAABAgAAABtvbmx5IHNlbGYgY2FsbHMgYXJlIGFsbG93ZWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEWtleV9pbml0VGltZXN0YW1wBQAAAAl0aW1lc3RhbXAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAD2tleV9iaWREdXJhdGlvbgUAAAALYmlkRHVyYXRpb24JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEmtleV9yZXZlYWxEdXJhdGlvbgUA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", "height": 2269271, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FrcFEPe3c2Q4biky73t689YDHHV4fk1sqFgRGE3hfddD Next: BkQcKRvjb3cSSd64XEifK2XrAtGYjJnxaJM6HrjTMaAK Diff:
OldNewDifferences
211211 then (bidAmount > topBidAmount)
212212 else false)
213213 then {
214- let newTopBids = [StringEntry(topKey, revealKey), StringEntry(topKey, ((topBidderKey + ",") + toString(topBidAmount)))]
214+ let newTopBids = [StringEntry(topKey, revealKey), StringEntry(top2Key, ((topBidderKey + ",") + toString(topBidAmount)))]
215215 (revealBid ++ newTopBids)
216216 }
217217 else if (if (if ((top2BidAmount >= bidAmount))
252252 let bidKey = key_bid(bidderHashKey)
253253 let revealKey = key_reveal(bidderHashKey)
254254 let revealedBid = getString(this, revealKey)
255- let $t089689263 = {
255+ let $t089699264 = {
256256 let bidValues = split(valueOrErrorMessage(revealedBid, (("Bid with hash " + hash) + " not found")), ",")
257257 $Tuple3(parseIntValue(bidValues[0]), parseIntValue(bidValues[1]), bidValues[2])
258258 }
259- let deposit = $t089689263._1
260- let bid = $t089689263._2
261- let name = $t089689263._3
259+ let deposit = $t089699264._1
260+ let bid = $t089699264._2
261+ let name = $t089699264._3
262262 let topKey = key_top(name)
263263 let top2Key = key_top2(name)
264264 let winnerLink = valueOrErrorMessage(getString(this, topKey), "Auction winner has not been determined")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func getIntegerOrThrow (address,key) = valueOrErrorMessage(getInteger(address, key), ((("Can't read '" + key) + "' at address ") + toString(address)))
55
66
77 func getStringOrThrow (address,key) = valueOrErrorMessage(getString(address, key), ((("Can't read '" + key) + "' at address ") + toString(address)))
88
99
1010 func getIntegerOrDefault (address,key,default) = valueOrElse(getInteger(address, key), default)
1111
1212
1313 func parseIntOrThrow (maybeInt) = valueOrErrorMessage(parseInt(maybeInt), (("Can't parse integer from '" + maybeInt) + "'"))
1414
1515
1616 func parseAddressOrThrow (maybeAddress) = valueOrErrorMessage(addressFromString(maybeAddress), (("Can't parse address from '" + maybeAddress) + "'"))
1717
1818
1919 func parseIntOrDefault (maybeInt,default) = valueOrElse(parseInt(maybeInt), default)
2020
2121
2222 func key_entity (name,pk,property) = ((((name + "_") + pk) + "_") + property)
2323
2424
2525 func key_top (name) = ("Top_" + name)
2626
2727
2828 func key_top2 (name) = ("Top2_" + name)
2929
3030
3131 func key_bidderHash (auctionId,address,hash) = ((((auctionId + "_") + address) + "_") + hash)
3232
3333
3434 func key_bid (bidderHash) = ("Bid_" + bidderHash)
3535
3636
3737 func key_reveal (bidderHash) = ("Reveal_" + bidderHash)
3838
3939
4040 let key_initTimestamp = "initTimestamp"
4141
4242 let key_bidDuration = "bidDuration"
4343
4444 let key_revealDuration = "revealDuration"
4545
4646 let key_errorFee = "errorFee"
4747
4848 let key_minimalBid = "minimalBid"
4949
5050 let key_registrarAddress = "registrarAddress"
5151
5252 let key_nameMinimalLength = "nameMinimalLength"
5353
5454 let auctionStart = getIntegerOrThrow(this, key_initTimestamp)
5555
5656 let bidDuration = getIntegerOrThrow(this, key_bidDuration)
5757
5858 let revealDuration = getIntegerOrThrow(this, key_revealDuration)
5959
6060 let auctionDuration = (bidDuration + revealDuration)
6161
6262 let errorFee = getIntegerOrThrow(this, key_errorFee)
6363
6464 let minimalBid = getIntegerOrThrow(this, key_minimalBid)
6565
6666 let nameMinimalLength = getIntegerOrThrow(this, key_nameMinimalLength)
6767
6868 let registrarAddress = getStringOrThrow(this, key_registrarAddress)
6969
7070 let registrar = parseAddressOrThrow(registrarAddress)
7171
7272 func calcHash (name,amount) = toBase58String(blake2b256_16Kb(keccak256_16Kb((toBytes(name) + toBytes(amount)))))
7373
7474
7575 let PHASE_BID = "BID"
7676
7777 let PHASE_REVEAL = "REVEAL"
7878
7979 func _getAuctionById (auctionId) = {
8080 let bidStart = (auctionStart + (auctionId * auctionDuration))
8181 let revealStart = (bidStart + bidDuration)
8282 let auctionEnd = (revealStart + revealDuration)
8383 let phase = if ((lastBlock.timestamp > revealStart))
8484 then PHASE_REVEAL
8585 else PHASE_BID
8686 $Tuple5(auctionId, phase, bidStart, revealStart, auctionEnd)
8787 }
8888
8989
9090 func getAuction () = {
9191 let auctionId = ((lastBlock.timestamp - auctionStart) / auctionDuration)
9292 _getAuctionById(auctionId)
9393 }
9494
9595
9696 func getAuctionPhase () = match getAuction() {
9797 case auction: (Int, String, Int, Int, Int) =>
9898 let auctionId = auction._1
9999 let phase = auction._2
100100 $Tuple2(auctionId, phase)
101101 case _ =>
102102 throw("Invalid auction info")
103103 }
104104
105105
106106 func isCorrect (name) = {
107107 let available = match invoke(registrar, "available", [name], nil) {
108108 case a: Boolean =>
109109 a
110110 case _ =>
111111 throw("Unsupported result format (available)")
112112 }
113113 if (available)
114114 then (size(name) >= nameMinimalLength)
115115 else false
116116 }
117117
118118
119119 func isWinnable (name) = {
120120 let revealKey = getString(this, key_top(name))
121121 if (!(isDefined(revealKey)))
122122 then true
123123 else {
124124 let currentAuction = getAuctionPhase()._1
125125 let topAuctionId = split(value(revealKey), "_")[1]
126126 let auctionId = parseIntOrDefault(topAuctionId, 0)
127127 (auctionId == currentAuction)
128128 }
129129 }
130130
131131
132132 func isAvailable (name) = if (isCorrect(name))
133133 then isWinnable(name)
134134 else false
135135
136136
137137 @Callable(inv)
138138 func init (timestamp,bidDuration,revealDuration,errorFee,minimalBid,registrarAddress,nameMinimalLength) = if ((this != inv.caller))
139139 then throw("only self calls are allowed")
140140 else [IntegerEntry(key_initTimestamp, timestamp), IntegerEntry(key_bidDuration, bidDuration), IntegerEntry(key_revealDuration, revealDuration), IntegerEntry(key_errorFee, errorFee), IntegerEntry(key_minimalBid, minimalBid), StringEntry(key_registrarAddress, registrarAddress), IntegerEntry(key_nameMinimalLength, nameMinimalLength)]
141141
142142
143143
144144 @Callable(inv)
145145 func getAuctionById (auctionId) = $Tuple2(nil, _getAuctionById(auctionId))
146146
147147
148148
149149 @Callable(inv)
150150 func available (name) = $Tuple2(nil, isAvailable(name))
151151
152152
153153
154154 @Callable(inv)
155155 func bid (auctionId,hash) = {
156156 let pmt = if (if ((size(inv.payments) == 1))
157157 then (inv.payments[0].assetId == unit)
158158 else false)
159159 then inv.payments[0].amount
160160 else throw("Single payment required")
161161 let address = toString(inv.caller)
162162 let bidKey = key_bid(key_bidderHash(toString(auctionId), address, hash))
163163 let $t053715428 = getAuctionPhase()
164164 let currentAuctionId = $t053715428._1
165165 let currentPeriod = $t053715428._2
166166 if ((currentAuctionId != auctionId))
167167 then throw("Auctions is already over")
168168 else if ((currentPeriod != PHASE_BID))
169169 then throw("Bid period is over")
170170 else if (isDefined(getInteger(this, bidKey)))
171171 then throw("Bid with exact amount already presented")
172172 else [IntegerEntry(bidKey, pmt)]
173173 }
174174
175175
176176
177177 @Callable(inv)
178178 func reveal (auctionId,name,bidAmount) = {
179179 let address = toString(inv.caller)
180180 let hash = calcHash(name, bidAmount)
181181 let bidderHashKey = key_bidderHash(toString(auctionId), address, hash)
182182 let revealKey = key_reveal(bidderHashKey)
183183 let topKey = key_top(name)
184184 let top2Key = key_top2(name)
185185 let deposit = valueOrErrorMessage(getInteger(this, key_bid(bidderHashKey)), ("Bid doesn't exists " + hash))
186186 let $t062086265 = getAuctionPhase()
187187 let currentAuctionId = $t062086265._1
188188 let currentPeriod = $t062086265._2
189189 if ((currentAuctionId != auctionId))
190190 then throw("Auctions is already over")
191191 else if ((currentPeriod != PHASE_REVEAL))
192192 then throw("Reveal period is over")
193193 else if (isDefined(getString(this, revealKey)))
194194 then throw("Bid is already revealed")
195195 else {
196196 let revealBid = [StringEntry(revealKey, ((((toString(deposit) + ",") + toString(bidAmount)) + ",") + name))]
197197 let topBidderRevealKey = getString(this, topKey)
198198 if (isDefined(topBidderRevealKey))
199199 then {
200200 let topBidderKey = value(topBidderRevealKey)
201201 let topBidderData = value(getString(this, topBidderKey))
202202 let topBidAmount = parseIntValue(split(topBidderData, ",")[1])
203203 let top2BidderInfo = split(getStringOrThrow(this, top2Key), ",")
204204 let top2BidderKey = top2BidderInfo[0]
205205 let top2BidAmount = parseIntOrThrow(top2BidderInfo[1])
206206 if (if (if (if ((bidAmount > minimalBid))
207207 then (deposit >= bidAmount)
208208 else false)
209209 then isAvailable(name)
210210 else false)
211211 then (bidAmount > topBidAmount)
212212 else false)
213213 then {
214- let newTopBids = [StringEntry(topKey, revealKey), StringEntry(topKey, ((topBidderKey + ",") + toString(topBidAmount)))]
214+ let newTopBids = [StringEntry(topKey, revealKey), StringEntry(top2Key, ((topBidderKey + ",") + toString(topBidAmount)))]
215215 (revealBid ++ newTopBids)
216216 }
217217 else if (if (if ((top2BidAmount >= bidAmount))
218218 then (top2BidderKey == topBidderKey)
219219 else false)
220220 then (bidAmount > minimalBid)
221221 else false)
222222 then (revealBid :+ StringEntry(top2Key, ((revealKey + ",") + toString(bidAmount))))
223223 else if (if ((bidAmount > top2BidAmount))
224224 then (bidAmount > minimalBid)
225225 else false)
226226 then (revealBid :+ StringEntry(top2Key, ((revealKey + ",") + toString(bidAmount))))
227227 else revealBid
228228 }
229229 else if (if ((deposit >= bidAmount))
230230 then isAvailable(name)
231231 else false)
232232 then {
233233 let topBids = [StringEntry(topKey, revealKey), StringEntry(top2Key, ((revealKey + ",") + toString(bidAmount)))]
234234 (revealBid ++ topBids)
235235 }
236236 else revealBid
237237 }
238238 }
239239
240240
241241
242242 @Callable(inv)
243243 func finalize (auctionId,hashes) = {
244244 let _auctionEnd = _getAuctionById(auctionId)._5
245245 let auctionEnd = if ((lastBlock.timestamp > _auctionEnd))
246246 then _auctionEnd
247247 else throw("Cannot finalize auction that has not ended")
248248 let caller = inv.caller
249249 let callerStr = toString(caller)
250250 func foldRefund (acc,hash) = {
251251 let bidderHashKey = key_bidderHash(toString(auctionId), callerStr, hash)
252252 let bidKey = key_bid(bidderHashKey)
253253 let revealKey = key_reveal(bidderHashKey)
254254 let revealedBid = getString(this, revealKey)
255- let $t089689263 = {
255+ let $t089699264 = {
256256 let bidValues = split(valueOrErrorMessage(revealedBid, (("Bid with hash " + hash) + " not found")), ",")
257257 $Tuple3(parseIntValue(bidValues[0]), parseIntValue(bidValues[1]), bidValues[2])
258258 }
259- let deposit = $t089689263._1
260- let bid = $t089689263._2
261- let name = $t089689263._3
259+ let deposit = $t089699264._1
260+ let bid = $t089699264._2
261+ let name = $t089699264._3
262262 let topKey = key_top(name)
263263 let top2Key = key_top2(name)
264264 let winnerLink = valueOrErrorMessage(getString(this, topKey), "Auction winner has not been determined")
265265 let winnerInfo = split(winnerLink, "_")
266266 let winnerAuctionId = parseIntValue(winnerInfo[1])
267267 let winnerAddress = winnerInfo[2]
268268 let top2BidderInfo = split(getStringOrThrow(this, top2Key), ",")
269269 let top2Bid = parseIntOrThrow(top2BidderInfo[1])
270270 let deleteEntries = [DeleteEntry(revealKey), DeleteEntry(bidKey)]
271271 let transferAndDeleteEntry = if (if (if (if ((minimalBid > bid))
272272 then true
273273 else (bid > deposit))
274274 then true
275275 else (winnerAuctionId != auctionId))
276276 then true
277277 else !(isCorrect(name)))
278278 then [ScriptTransfer(caller, (deposit - fraction(deposit, 10, 100)), unit)]
279279 else if ((winnerLink == revealKey))
280280 then {
281281 let claimNft = invoke(registrar, "register", [name, winnerAddress, auctionEnd], nil)
282282 if ((claimNft == claimNft))
283283 then [ScriptTransfer(caller, (deposit - top2Bid), unit), DeleteEntry(top2Key)]
284284 else throw("Strict value is not equal to itself.")
285285 }
286286 else [ScriptTransfer(caller, deposit, unit)]
287287 ((acc ++ deleteEntries) ++ transferAndDeleteEntry)
288288 }
289289
290290 let $l = hashes
291291 let $s = size($l)
292292 let $acc0 = nil
293293 func $f0_1 ($a,$i) = if (($i >= $s))
294294 then $a
295295 else foldRefund($a, $l[$i])
296296
297297 func $f0_2 ($a,$i) = if (($i >= $s))
298298 then $a
299299 else throw("List size exceeds 10")
300300
301301 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
302302 }
303303
304304

github/deemru/w8io/169f3d6 
54.73 ms