tx · 3v2vgfwo5QMZcDa7to9gB8pU7Ax2fW8o98AtmJsZG5is

3MxssetYXJfiGwzo9pqChsSwYj3tCYq5FFH:  -0.01300000 Waves

2022.10.04 13:42 [2257482] smart account 3MxssetYXJfiGwzo9pqChsSwYj3tCYq5FFH > SELF 0.00000000 Waves

{ "type": 13, "id": "3v2vgfwo5QMZcDa7to9gB8pU7Ax2fW8o98AtmJsZG5is", "fee": 1300000, "feeAssetId": null, "timestamp": 1664880177848, "version": 2, "chainId": 84, "sender": "3MxssetYXJfiGwzo9pqChsSwYj3tCYq5FFH", "senderPublicKey": "46sMMaC9rMPQdyTE87RpcnevTY9oheuDqzfnuQzoyCtv", "proofs": [ "3s9zzkxKTUXq8t5SJbARZet1UxmHAMYWrGM4zQXmJ2RGXMzUYhQSsBzukt6DL4XQ7sk29bUbofTesrFjMiKhdbMX" ], "script": "base64:AAIFAAAAAAAAAC0IAhIDCgEBEgMKAQgSAwoBCBIHCgUBAQEBARIECgIBCBIFCgMBCAESBAoCARgAAAAeAQAAABFnZXRJbnRlZ2VyT3JUaHJvdwAAAAIAAAAHYWRkcmVzcwAAAANrZXkJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAdhZGRyZXNzBQAAAANrZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAADENhbid0IHJlYWQgJwUAAAADa2V5AgAAAA0nIGF0IGFkZHJlc3MgCQAEJQAAAAEFAAAAB2FkZHJlc3MBAAAAEGdldFN0cmluZ09yVGhyb3cAAAACAAAAB2FkZHJlc3MAAAADa2V5CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAxDYW4ndCByZWFkICcFAAAAA2tleQIAAAANJyBhdCBhZGRyZXNzIAkABCUAAAABBQAAAAdhZGRyZXNzAQAAABNnZXRJbnRlZ2VyT3JEZWZhdWx0AAAAAwAAAAdhZGRyZXNzAAAAA2tleQAAAAdkZWZhdWx0CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQUAAAAHZGVmYXVsdAEAAAAPcGFyc2VJbnRPclRocm93AAAAAQAAAAhtYXliZUludAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEtgAAAAEFAAAACG1heWJlSW50CQABLAAAAAIJAAEsAAAAAgIAAAAaQ2FuJ3QgcGFyc2UgaW50ZWdlciBmcm9tICcFAAAACG1heWJlSW50AgAAAAEnAQAAABNwYXJzZUFkZHJlc3NPclRocm93AAAAAQAAAAxtYXliZUFkZHJlc3MJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCYAAAABBQAAAAxtYXliZUFkZHJlc3MJAAEsAAAAAgkAASwAAAACAgAAABpDYW4ndCBwYXJzZSBhZGRyZXNzIGZyb20gJwUAAAAMbWF5YmVBZGRyZXNzAgAAAAEnAQAAABFwYXJzZUludE9yRGVmYXVsdAAAAAIAAAAIbWF5YmVJbnQAAAAHZGVmYXVsdAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABLYAAAABBQAAAAhtYXliZUludAUAAAAHZGVmYXVsdAEAAAAKa2V5X2VudGl0eQAAAAMAAAAEbmFtZQAAAAJwawAAAAhwcm9wZXJ0eQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARuYW1lAgAAAAFfBQAAAAJwawIAAAABXwUAAAAIcHJvcGVydHkBAAAAB2tleV90b3AAAAABAAAABG5hbWUJAAEsAAAAAgIAAAAEVG9wXwUAAAAEbmFtZQEAAAAOa2V5X2JpZGRlckhhc2gAAAADAAAACWF1Y3Rpb25JZAAAAAdhZGRyZXNzAAAABGhhc2gJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAFfBQAAAAdhZGRyZXNzAgAAAAFfBQAAAARoYXNoAQAAAAdrZXlfYmlkAAAAAQAAAApiaWRkZXJIYXNoCQABLAAAAAICAAAABEJpZF8FAAAACmJpZGRlckhhc2gBAAAACmtleV9yZXZlYWwAAAABAAAACmJpZGRlckhhc2gJAAEsAAAAAgIAAAAHUmV2ZWFsXwUAAAAKYmlkZGVySGFzaAAAAAARa2V5X2luaXRUaW1lc3RhbXACAAAADWluaXRUaW1lc3RhbXAAAAAAD2tleV9iaWREdXJhdGlvbgIAAAALYmlkRHVyYXRpb24AAAAAEmtleV9yZXZlYWxEdXJhdGlvbgIAAAAOcmV2ZWFsRHVyYXRpb24AAAAADGtleV9lcnJvckZlZQIAAAAIZXJyb3JGZWUAAAAADmtleV9taW5pbWFsQmlkAgAAAAptaW5pbWFsQmlkAAAAAAxhdWN0aW9uU3RhcnQJAQAAABFnZXRJbnRlZ2VyT3JUaHJvdwAAAAIFAAAABHRoaXMFAAAAEWtleV9pbml0VGltZXN0YW1wAAAAAAtiaWREdXJhdGlvbgkBAAAAEWdldEludGVnZXJPclRocm93AAAAAgUAAAAEdGhpcwUAAAAPa2V5X2JpZER1cmF0aW9uAAAAAA5yZXZlYWxEdXJhdGlvbgkBAAAAEWdldEludGVnZXJPclRocm93AAAAAgUAAAAEdGhpcwUAAAASa2V5X3JldmVhbER1cmF0aW9uAAAAAA9hdWN0aW9uRHVyYXRpb24JAABkAAAAAgUAAAALYmlkRHVyYXRpb24FAAAADnJldmVhbER1cmF0aW9uAAAAAAhlcnJvckZlZQkBAAAAEWdldEludGVnZXJPclRocm93AAAAAgUAAAAEdGhpcwUAAAAMa2V5X2Vycm9yRmVlAAAAAAptaW5pbWFsQmlkCQEAAAARZ2V0SW50ZWdlck9yVGhyb3cAAAACBQAAAAR0aGlzBQAAAA5rZXlfbWluaW1hbEJpZAAAAAAJUEhBU0VfQklEAgAAAANCSUQAAAAADFBIQVNFX1JFVkVBTAIAAAAGUkVWRUFMAQAAABZwcml2YXRlX2dldEF1Y3Rpb25CeUlkAAAAAQAAAAlhdWN0aW9uSWQEAAAACGJpZFN0YXJ0CQAAZAAAAAIFAAAADGF1Y3Rpb25TdGFydAkAAGgAAAACBQAAAAlhdWN0aW9uSWQFAAAAD2F1Y3Rpb25EdXJhdGlvbgQAAAALcmV2ZWFsU3RhcnQJAABkAAAAAgUAAAAIYmlkU3RhcnQFAAAAC2JpZER1cmF0aW9uBAAAAAphdWN0aW9uRW5kCQAAZAAAAAIFAAAAC3JldmVhbFN0YXJ0BQAAAA5yZXZlYWxEdXJhdGlvbgQAAAAFcGhhc2UDCQAAZgAAAAIIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wBQAAAAtyZXZlYWxTdGFydAUAAAAMUEhBU0VfUkVWRUFMBQAAAAlQSEFTRV9CSUQJAAUXAAAABQUAAAAJYXVjdGlvbklkBQAAAAVwaGFzZQUAAAAIYmlkU3RhcnQFAAAAC3JldmVhbFN0YXJ0BQAAAAphdWN0aW9uRW5kAQAAAApnZXRBdWN0aW9uAAAAAAQAAAAJYXVjdGlvbklkCQAAaQAAAAIJAABlAAAAAggFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAFAAAADGF1Y3Rpb25TdGFydAUAAAAPYXVjdGlvbkR1cmF0aW9uCQEAAAAWcHJpdmF0ZV9nZXRBdWN0aW9uQnlJZAAAAAEFAAAACWF1Y3Rpb25JZAEAAAAPZ2V0QXVjdGlvblBoYXNlAAAAAAQAAAAHJG1hdGNoMAkBAAAACmdldEF1Y3Rpb24AAAAAAwkAAAEAAAACBQAAAAck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XzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACBQAAAAUkYWNjMAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAgAAAAAAAAAAAwAAAAAAAAAABAAAAAAAAAAABQAAAAAAAAAABgAAAAAAAAAABwAAAAAAAAAACAAAAAAAAAAACQAAAAAAAAAACgAAAAAAAAAACwAAAAAAAAAADAAAAAAAAAAADQAAAAAAAAAADgAAAAAAAAAADwAAAAAAAAAAEAAAAAAAAAAAEQAAAAAAAAAAEgAAAAAAAAAAEwAAAAAAAAAAFAAAAAAAAAAAFQAAAAAAAAAAFgAAAAAAAAAAFwAAAAAAAAAAGAAAAAAAAAAAGQAAAAAAAAAAGgAAAAAAAAAAGwAAAAAAAAAAHAAAAAAAAAAAHQAAAAAAAAAAHgAAAAAAAAAAHwAAAAAAAAAAIAAAAAAAAAAAIQAAAAAAAAAAIgAAAAAAAAAAIwAAAAAAAAAAJAAAAAAAAAAAJQAA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", "height": 2257482, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AkpcQGH5fnbgJfBhmGksAuD8Yk11yyqY3gNwbGyBUoxE Next: 9kzFXayTxKYFV6mu9vLAxYbDervH7oVcMTwyb1TvKmcX Diff:
OldNewDifferences
6060
6161 let PHASE_REVEAL = "REVEAL"
6262
63-func getAuction () = {
64- let auctionId = ((lastBlock.timestamp - auctionStart) / auctionDuration)
63+func private_getAuctionById (auctionId) = {
6564 let bidStart = (auctionStart + (auctionId * auctionDuration))
6665 let revealStart = (bidStart + bidDuration)
6766 let auctionEnd = (revealStart + revealDuration)
6968 then PHASE_REVEAL
7069 else PHASE_BID
7170 $Tuple5(auctionId, phase, bidStart, revealStart, auctionEnd)
71+ }
72+
73+
74+func getAuction () = {
75+ let auctionId = ((lastBlock.timestamp - auctionStart) / auctionDuration)
76+ private_getAuctionById(auctionId)
7277 }
7378
7479
98103 case _ =>
99104 throw("Unexpected checkName result")
100105 }
106+
107+
108+@Callable(inv)
109+func getAuctionById (auctionId) = $Tuple2(nil, private_getAuctionById(auctionId))
110+
101111
102112
103113 @Callable(inv)
159169 else throw("Single payment required")
160170 let address = toString(inv.caller)
161171 let bidKey = key_bid(key_bidderHash(toString(auctionId), address, hash))
162- let $t049455002 = getAuctionPhase()
163- let currentAuctionId = $t049455002._1
164- let currentPeriod = $t049455002._2
172+ let $t051575214 = getAuctionPhase()
173+ let currentAuctionId = $t051575214._1
174+ let currentPeriod = $t051575214._2
165175 if ((currentAuctionId != auctionId))
166176 then throw("Auctions is already over")
167177 else if ((currentPeriod != PHASE_BID))
181191 let revealKey = key_reveal(bidderHashKey)
182192 let topKey = key_top(name)
183193 let deposit = valueOrErrorMessage(getInteger(this, key_bid(bidderHashKey)), ("Bid doesn't exists " + hash))
184- let $t057505807 = getAuctionPhase()
185- let currentAuctionId = $t057505807._1
186- let currentPeriod = $t057505807._2
194+ let $t059626019 = getAuctionPhase()
195+ let currentAuctionId = $t059626019._1
196+ let currentPeriod = $t059626019._2
187197 if ((currentAuctionId != auctionId))
188198 then throw("Auctions is already over")
189199 else if ((currentPeriod != PHASE_REVEAL))
238248 let bidKey = key_bid(bidderHashKey)
239249 let revealKey = key_reveal(bidderHashKey)
240250 let revealedBid = getString(this, revealKey)
241- let $t080228317 = {
251+ let $t082348529 = {
242252 let bidValues = split(valueOrErrorMessage(revealedBid, (("Bid with hash " + hash) + " not found")), ",")
243253 $Tuple3(parseIntValue(bidValues[0]), parseIntValue(bidValues[1]), bidValues[2])
244254 }
245- let deposit = $t080228317._1
246- let bid = $t080228317._2
247- let name = $t080228317._3
255+ let deposit = $t082348529._1
256+ let bid = $t082348529._2
257+ let name = $t082348529._3
248258 let topKey = key_top(name)
249259 let winnerInfo = split(valueOrErrorMessage(getString(this, topKey), "Auction winner has not been determined"), ",")
250- let $t084838564 = $Tuple2(winnerInfo[0], parseIntOrThrow(winnerInfo[1]))
251- let winnerLink = $t084838564._1
252- let secondTopBid = $t084838564._2
260+ let $t086958776 = $Tuple2(winnerInfo[0], parseIntOrThrow(winnerInfo[1]))
261+ let winnerLink = $t086958776._1
262+ let secondTopBid = $t086958776._2
253263 let winnerAuctionId = parseIntValue(split(winnerLink, "_")[1])
254264 let refundAmont = if (if (if (if ((minimalBid > bid))
255265 then true
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_bidderHash (auctionId,address,hash) = ((((auctionId + "_") + address) + "_") + hash)
2929
3030
3131 func key_bid (bidderHash) = ("Bid_" + bidderHash)
3232
3333
3434 func key_reveal (bidderHash) = ("Reveal_" + bidderHash)
3535
3636
3737 let key_initTimestamp = "initTimestamp"
3838
3939 let key_bidDuration = "bidDuration"
4040
4141 let key_revealDuration = "revealDuration"
4242
4343 let key_errorFee = "errorFee"
4444
4545 let key_minimalBid = "minimalBid"
4646
4747 let auctionStart = getIntegerOrThrow(this, key_initTimestamp)
4848
4949 let bidDuration = getIntegerOrThrow(this, key_bidDuration)
5050
5151 let revealDuration = getIntegerOrThrow(this, key_revealDuration)
5252
5353 let auctionDuration = (bidDuration + revealDuration)
5454
5555 let errorFee = getIntegerOrThrow(this, key_errorFee)
5656
5757 let minimalBid = getIntegerOrThrow(this, key_minimalBid)
5858
5959 let PHASE_BID = "BID"
6060
6161 let PHASE_REVEAL = "REVEAL"
6262
63-func getAuction () = {
64- let auctionId = ((lastBlock.timestamp - auctionStart) / auctionDuration)
63+func private_getAuctionById (auctionId) = {
6564 let bidStart = (auctionStart + (auctionId * auctionDuration))
6665 let revealStart = (bidStart + bidDuration)
6766 let auctionEnd = (revealStart + revealDuration)
6867 let phase = if ((lastBlock.timestamp > revealStart))
6968 then PHASE_REVEAL
7069 else PHASE_BID
7170 $Tuple5(auctionId, phase, bidStart, revealStart, auctionEnd)
71+ }
72+
73+
74+func getAuction () = {
75+ let auctionId = ((lastBlock.timestamp - auctionStart) / auctionDuration)
76+ private_getAuctionById(auctionId)
7277 }
7378
7479
7580 func getAuctionPhase () = match getAuction() {
7681 case auction: (Int, String, Int, Int, Int) =>
7782 let auctionId = auction._1
7883 let phase = auction._2
7984 $Tuple2(auctionId, phase)
8085 case _ =>
8186 throw("Invalid auction info")
8287 }
8388
8489
8590 func calcHash (name,amount) = toBase58String(blake2b256_16Kb(keccak256_16Kb((toBytes(name) + toBytes(amount)))))
8691
8792
8893 func getWinnerInfoWrap (name) = {
8994 let winnerInfo = split(valueOrErrorMessage(getString(this, key_top(name)), (("Auction winner, for " + name) + " has not been determined")), ",")
9095 let winnerLink = split(winnerInfo[0], "_")
9196 $Tuple3(parseIntOrThrow(winnerLink[1]), winnerLink[2], winnerLink[3])
9297 }
9398
9499
95100 func isCorrectName (name) = match invoke(this, "checkName", [name], nil) {
96101 case b: Boolean =>
97102 b
98103 case _ =>
99104 throw("Unexpected checkName result")
100105 }
106+
107+
108+@Callable(inv)
109+func getAuctionById (auctionId) = $Tuple2(nil, private_getAuctionById(auctionId))
110+
101111
102112
103113 @Callable(inv)
104114 func checkName (name) = {
105115 let symbols = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "-"]
106116 let nameSplited = split(name, "")
107117 if (if ((size(name) == 0))
108118 then true
109119 else (size(name) > 65))
110120 then $Tuple2(nil, false)
111121 else if (if (if ((nameSplited[0] == "-"))
112122 then true
113123 else (nameSplited[(size(nameSplited) - 1)] == "-"))
114124 then true
115125 else contains(name, "--"))
116126 then $Tuple2(nil, false)
117127 else {
118128 func foldCheckName (acc,char) = if (acc)
119129 then containsElement(symbols, char)
120130 else false
121131
122132 $Tuple2(nil, {
123133 let $l = nameSplited
124134 let $s = size($l)
125135 let $acc0 = true
126136 func $f0_1 ($a,$i) = if (($i >= $s))
127137 then $a
128138 else foldCheckName($a, $l[$i])
129139
130140 func $f0_2 ($a,$i) = if (($i >= $s))
131141 then $a
132142 else throw("List size exceeds 65")
133143
134144 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($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), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65)
135145 })
136146 }
137147 }
138148
139149
140150
141151 @Callable(inv)
142152 func getWinnerInfo (name) = $Tuple2(nil, getWinnerInfoWrap(name))
143153
144154
145155
146156 @Callable(inv)
147157 func init (timestamp,bidDuration,revealDuration,errorFee,minimalBid) = if ((this != inv.caller))
148158 then throw("only self calls are allowed")
149159 else [IntegerEntry(key_initTimestamp, timestamp), IntegerEntry(key_bidDuration, bidDuration), IntegerEntry(key_revealDuration, revealDuration), IntegerEntry(key_errorFee, errorFee), IntegerEntry(key_minimalBid, minimalBid)]
150160
151161
152162
153163 @Callable(inv)
154164 func bid (auctionId,hash) = {
155165 let pmt = if (if ((size(inv.payments) == 1))
156166 then (inv.payments[0].assetId == unit)
157167 else false)
158168 then inv.payments[0].amount
159169 else throw("Single payment required")
160170 let address = toString(inv.caller)
161171 let bidKey = key_bid(key_bidderHash(toString(auctionId), address, hash))
162- let $t049455002 = getAuctionPhase()
163- let currentAuctionId = $t049455002._1
164- let currentPeriod = $t049455002._2
172+ let $t051575214 = getAuctionPhase()
173+ let currentAuctionId = $t051575214._1
174+ let currentPeriod = $t051575214._2
165175 if ((currentAuctionId != auctionId))
166176 then throw("Auctions is already over")
167177 else if ((currentPeriod != PHASE_BID))
168178 then throw("Bid period is over")
169179 else if (isDefined(getInteger(this, bidKey)))
170180 then throw("Bid with exact amount already presented")
171181 else [IntegerEntry(bidKey, pmt)]
172182 }
173183
174184
175185
176186 @Callable(inv)
177187 func reveal (auctionId,name,bidAmount) = {
178188 let address = toString(inv.caller)
179189 let hash = calcHash(name, bidAmount)
180190 let bidderHashKey = key_bidderHash(toString(auctionId), address, hash)
181191 let revealKey = key_reveal(bidderHashKey)
182192 let topKey = key_top(name)
183193 let deposit = valueOrErrorMessage(getInteger(this, key_bid(bidderHashKey)), ("Bid doesn't exists " + hash))
184- let $t057505807 = getAuctionPhase()
185- let currentAuctionId = $t057505807._1
186- let currentPeriod = $t057505807._2
194+ let $t059626019 = getAuctionPhase()
195+ let currentAuctionId = $t059626019._1
196+ let currentPeriod = $t059626019._2
187197 if ((currentAuctionId != auctionId))
188198 then throw("Auctions is already over")
189199 else if ((currentPeriod != PHASE_REVEAL))
190200 then throw("Reveal period is over")
191201 else if (isDefined(getString(this, revealKey)))
192202 then throw("Bid is already revealed")
193203 else {
194204 let revealBid = [StringEntry(revealKey, ((((toString(deposit) + ",") + toString(bidAmount)) + ",") + name))]
195205 let topBidderRevealKey = getString(this, topKey)
196206 if (isDefined(topBidderRevealKey))
197207 then {
198208 let topBidderInfo = split(value(topBidderRevealKey), ",")
199209 let topBidderKey = topBidderInfo[0]
200210 let topAuctionId = parseIntValue(split(topBidderKey, "_")[1])
201211 let secondPlaceBid = parseIntOrThrow(topBidderInfo[0])
202212 if ((auctionId == topAuctionId))
203213 then revealBid
204214 else {
205215 let topBidderData = value(getString(this, topBidderKey))
206216 let currentTopBidAmount = parseIntValue(split(topBidderData, ",")[1])
207217 if (if (if (if (if ((bidAmount > minimalBid))
208218 then (bidAmount > currentTopBidAmount)
209219 else false)
210220 then (deposit >= bidAmount)
211221 else false)
212222 then (65 >= size(name))
213223 else false)
214224 then isCorrectName(name)
215225 else false)
216226 then (revealBid :+ StringEntry(topKey, ((revealKey + ",") + toString(currentTopBidAmount))))
217227 else if ((bidAmount > secondPlaceBid))
218228 then (revealBid :+ StringEntry(topKey, ((revealKey + ",") + toString(bidAmount))))
219229 else revealBid
220230 }
221231 }
222232 else if (if ((deposit >= bidAmount))
223233 then isCorrectName(name)
224234 else false)
225235 then (revealBid :+ StringEntry(topKey, ((revealKey + ",") + toString(bidAmount))))
226236 else revealBid
227237 }
228238 }
229239
230240
231241
232242 @Callable(inv)
233243 func finalize (auctionId,hashes) = {
234244 let caller = inv.caller
235245 let callerStr = toString(caller)
236246 func foldRefund (acc,hash) = {
237247 let bidderHashKey = key_bidderHash(toString(auctionId), callerStr, hash)
238248 let bidKey = key_bid(bidderHashKey)
239249 let revealKey = key_reveal(bidderHashKey)
240250 let revealedBid = getString(this, revealKey)
241- let $t080228317 = {
251+ let $t082348529 = {
242252 let bidValues = split(valueOrErrorMessage(revealedBid, (("Bid with hash " + hash) + " not found")), ",")
243253 $Tuple3(parseIntValue(bidValues[0]), parseIntValue(bidValues[1]), bidValues[2])
244254 }
245- let deposit = $t080228317._1
246- let bid = $t080228317._2
247- let name = $t080228317._3
255+ let deposit = $t082348529._1
256+ let bid = $t082348529._2
257+ let name = $t082348529._3
248258 let topKey = key_top(name)
249259 let winnerInfo = split(valueOrErrorMessage(getString(this, topKey), "Auction winner has not been determined"), ",")
250- let $t084838564 = $Tuple2(winnerInfo[0], parseIntOrThrow(winnerInfo[1]))
251- let winnerLink = $t084838564._1
252- let secondTopBid = $t084838564._2
260+ let $t086958776 = $Tuple2(winnerInfo[0], parseIntOrThrow(winnerInfo[1]))
261+ let winnerLink = $t086958776._1
262+ let secondTopBid = $t086958776._2
253263 let winnerAuctionId = parseIntValue(split(winnerLink, "_")[1])
254264 let refundAmont = if (if (if (if ((minimalBid > bid))
255265 then true
256266 else (bid > deposit))
257267 then true
258268 else (winnerAuctionId != auctionId))
259269 then true
260270 else !(isCorrectName(name)))
261271 then (deposit - fraction(deposit, 10, 100))
262272 else if ((winnerLink == revealKey))
263273 then (deposit - secondTopBid)
264274 else deposit
265275 let result = [DeleteEntry(revealKey), DeleteEntry(bidKey), ScriptTransfer(caller, refundAmont, unit)]
266276 (acc ++ result)
267277 }
268278
269279 let $l = hashes
270280 let $s = size($l)
271281 let $acc0 = nil
272282 func $f0_1 ($a,$i) = if (($i >= $s))
273283 then $a
274284 else foldRefund($a, $l[$i])
275285
276286 func $f0_2 ($a,$i) = if (($i >= $s))
277287 then $a
278288 else throw("List size exceeds 10")
279289
280290 $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)
281291 }
282292
283293

github/deemru/w8io/873ac7e 
51.85 ms