tx · 7mzgjB89G4pBenfS4dcTmr9z7mQJvmYPn3YXvJfuY27c

3MxssetYXJfiGwzo9pqChsSwYj3tCYq5FFH:  -0.01400000 Waves

2022.10.25 12:41 [2287751] smart account 3MxssetYXJfiGwzo9pqChsSwYj3tCYq5FFH > SELF 0.00000000 Waves

{ "type": 13, "id": "7mzgjB89G4pBenfS4dcTmr9z7mQJvmYPn3YXvJfuY27c", "fee": 1400000, "feeAssetId": null, "timestamp": 1666690956557, "version": 2, "chainId": 84, "sender": "3MxssetYXJfiGwzo9pqChsSwYj3tCYq5FFH", "senderPublicKey": "46sMMaC9rMPQdyTE87RpcnevTY9oheuDqzfnuQzoyCtv", "proofs": [ "39ZG3qJUN3rmKReGEj7Xj8p4DSJFut734NDb33k7cUbbQ3nHFzXx81iHduDF2jh3u6pMZNQrCoqQzf5asYLJZ2UV" ], "script": "base64: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EmtleV9yZXZlYWxEdXJhdGlvbgIAAAAOcmV2ZWFsRHVyYXRpb24AAAAADGtleV9lcnJvckZlZQIAAAAIZXJyb3JGZWUAAAAADmtleV9taW5pbWFsQmlkAgAAAAptaW5pbWFsQmlkAAAAABRrZXlfcmVnaXN0cmFyQWRkcmVzcwIAAAAQcmVnaXN0cmFyQWRkcmVzcwAAAAAVa2V5X25hbWVNaW5pbWFsTGVuZ3RoAgAAABFuYW1lTWluaW1hbExlbmd0aAAAAAAPa2V5X3BlcmNlbnRSYXRlAgAAAAtwZXJjZW50UmF0ZQAAAAAMYXVjdGlvblN0YXJ0CQEAAAARZ2V0SW50ZWdlck9yVGhyb3cAAAACBQAAAAR0aGlzBQAAABFrZXlfaW5pdFRpbWVzdGFtcAAAAAALYmlkRHVyYXRpb24JAQAAABFnZXRJbnRlZ2VyT3JUaHJvdwAAAAIFAAAABHRoaXMFAAAAD2tleV9iaWREdXJhdGlvbgAAAAAOcmV2ZWFsRHVyYXRpb24JAQAAABFnZXRJbnRlZ2VyT3JUaHJvdwAAAAIFAAAABHRoaXMFAAAAEmtleV9yZXZlYWxEdXJhdGlvbgAAAAAPYXVjdGlvbkR1cmF0aW9uCQAAZAAAAAIFAAAAC2JpZER1cmF0aW9uBQAAAA5yZXZlYWxEdXJhdGlvbgAAAAAIZXJyb3JGZWUJAQAAABFnZXRJbnRlZ2VyT3JUaHJvdwAAAAIFAAAABHRoaXMFAAAADGtleV9lcnJvckZlZQAAAAAKbWluaW1hbEJpZAkBAAAAEWdldEludGVnZXJPclRocm93AAAAAgUAAAAEdGhpcwUAAAAOa2V5X21pbmltYWxCaWQAAAAAEW5hbWVNaW5pbWFsTGVuZ3RoCQEAAAARZ2V0SW50ZWdlck9yVGhyb3cAAAACBQAAAAR0aGlzBQAAABVrZXlfbmFtZU1pbmltYWxMZW5ndGgAAAAAC3BlcmNlbnRSYXRlCQEAAAARZ2V0SW50ZWdlck9yVGhyb3cAAAACBQAAAAR0aGlzBQAAAA9rZXlfcGVyY2VudFJhdGUAAAAAEHJlZ2lzdHJhckFkZHJlc3MJAQAAABBnZXRTdHJpbmdPclRocm93AAAAAgUAAAAEdGhpcwUAAAAUa2V5X3JlZ2lzdHJhckFkZHJlc3MAAAAACXJlZ2lzdHJhcgkBAAAAE3BhcnNlQWRkcmVzc09yVGhyb3cAAAABBQAAABByZWdpc3RyYXJBZGRyZXNzAQAAAA9nZXRSZWZlcnJlckRhdGEAAAABAAAADHJlZmVycmVyTmFtZQQAAAAKcmVmQWRkcmVzcwkBAAAAE3BhcnNlQWRkcmVzc09yVGhyb3cAAAABCQEAAAAQZ2V0U3RyaW5nT3JUaHJvdwAAAAIFAAAABHRoaXMJAQAAABNrZXlfcmVmZXJyZXJBZGRyZXNzAAAAAQUAAAAMcmVmZXJyZXJOYW1lBAAAAApyZWZQZXJjZW50CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAQAAABNrZXlfcmVmZXJyZXJQZXJjZW50AAAAAQUAAAAMcmVmZXJyZXJOYW1lBQAAAAtwZXJjZW50UmF0ZQMDCQAAZgAAAAIAAAAAAAAAAAAFAAAACnJlZlBlcmNlbnQGCQAAZgAAAAIFAAAACnJlZlBlcmNlbnQAAAAAAAAAAGQJAAACAAAAAQIAAAAWSW5jb3JyZWN0IHBlcmNlbnQgcmF0ZQkABRQAAAACBQAAAApyZWZBZGRyZXNzBQAAAApyZWZQZXJjZW50AQAAAAhjYWxjSGFzaAAAAAIAAAAEbmFtZQAAAAZhbW91bnQJAAJYAAAAAQkACvAAAAABCQAKjAAAAAEJAADLAAAAAgkAAZsAAAABBQAAAARuYW1lCQABmgAAAAEFAAAABmFtb3VudAAAAAAJUEhBU0VfQklEAgAAAANCSUQAAAAADFBIQVNFX1JFVkVBTAIAAAAGUkVWRUFMAQAAAA9fZ2V0QXVjdGlvbkJ5SWQAAAABAAAACWF1Y3Rpb25JZAQAAAAIYmlkU3RhcnQJAABkAAAAAgUAAAAMYXVjdGlvblN0YXJ0CQAAaAAAAAIFAAAACWF1Y3Rpb25JZAUAAAAPYXVjdGlvbkR1cmF0aW9uBAAAAAtyZXZlYWxTdGFydAkAAGQAAAACBQAAAAhiaWRTdGFydAUAAAALYmlkRHVyYXRpb24EAAAACmF1Y3Rpb25FbmQJAABkAAAAAgUAAAALcmV2ZWFsU3RhcnQFAAAADnJldmVhbER1cmF0aW9uBAAAAAVwaGFzZQMJAABmAAAAAggFAAAACWxhc3RCbG9jawAAAAl0aW1l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AAAGYmlkS2V5CQEAAAAHa2V5X2JpZAAAAAEJAQAAAA5rZXlfYmlkZGVySGFzaAAAAAMJAAGkAAAAAQUAAAAJYXVjdGlvbklkBQAAAAdhZGRyZXNzBQAAAARoYXNoBAAAAAskdDA1MzAzNTM2MAkBAAAAD2dldEF1Y3Rpb25QaGFzZQAAAAAEAAAAEGN1cnJlbnRBdWN0aW9uSWQIBQAAAAskdDA1MzAzNTM2MAAAAAJfMQQAAAANY3VycmVudFBlcmlvZAgFAAAACyR0MDUzMDM1MzYwAAAAAl8yAwkBAAAAAiE9AAAAAgUAAAAQY3VycmVudEF1Y3Rpb25JZAUAAAAJYXVjdGlvbklkCQAAAgAAAAECAAAAGEF1Y3Rpb25zIGlzIGFscmVhZHkgb3ZlcgMJAQAAAAIhPQAAAAIFAAAADWN1cnJlbnRQZXJpb2QFAAAACVBIQVNFX0JJRAkAAAIAAAABAgAAABJCaWQgcGVyaW9kIGlzIG92ZXIDCQEAAAAJaXNEZWZpbmVkAAAAAQkABBoAAAACBQAAAAR0aGlzBQAAAAZiaWRLZXkJAAACAAAAAQIAAAAnQmlkIHdpdGggZXhhY3QgYW1vdW50IGFscmVhZHkgcHJlc2VudGVkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAZiaWRLZXkFAAAAA3BtdAUAAAADbmlsAAAACAAAAANpbnYBAAAABGluaXQAAAAIAAAACXRpbWVzdGFtcAAAAAtiaWREdXJhdGlvbgAAAA5yZXZlYWxEdXJhdGlvbgAAAAhlcnJvckZlZQAAAAptaW5pbWFsQmlkAAAAEHJlZ2lzdHJhckFkZHJlc3MAAAARbmFtZU1pbmltYWxMZW5ndGgAAAALcGVyY2VudFJhdGUDCQEAAAACIT0AAAACBQAAAAR0aGlzCAUAAAADaW52AAAABmNhbGxlcgkAAAIAAAABAgAAABtvbmx5IHNlbGYgY2FsbHMgYXJlIGFsbG93ZWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEWtleV9pbml0VGltZXN0YW1wBQAAAAl0aW1lc3RhbXAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAD2tleV9iaWREdXJhdGlvbgUAAAALYmlkRHVyYXRpb24JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEmtleV9yZXZlYWxEdXJhdGlvbgUAAAAOcmV2ZWFsRHVyYXRpb24JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADGtleV9lcnJvckZlZQUAAAAIZXJyb3JGZWUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADmtleV9taW5pbWFsQmlkBQAAAAptaW5pbWFsQmlkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAFGtleV9yZWdpc3RyYXJBZGRyZXNzBQAAABByZWdpc3RyYXJBZGRyZXNzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABVrZXlfbmFtZU1pbmltYWxMZW5ndGgFAAAAEW5hbWVNaW5pbWFsTGVuZ3RoCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA9rZXlfcGVyY2VudFJhdGUFAAAAC3BlcmNlbnRSYXRlBQAAAANuaWwAAAADaW52AQAAAA5nZXRBdWN0aW9uQnlJZAAAAAEAAAAJYXVjdGlvbklkCQAFFAAAAAIFAAAAA25pbAkBAAAAD19nZXRBdWN0aW9uQnlJZAAAAAEFAAAACWF1Y3Rpb25JZAAAAANpbnYBAAAAC2lzQXZhaWxhYmxlAAAAAQAAAARuYW1lCQAFFAAAAAIFAAAAA25pbAkBAAAAD2lzQXZhaWxhYmxlTmFtZQAAAAEFAAAABG5hbWUAAAADaW52AQAAAA9iaWRXaXRoUmVmZXJyZXIAAAADAAAACWF1Y3Rpb25JZAAAAARoYXNoAAAADHJlZmVycmVyTmFtZQQAAAAHYWRkcmVzcwkABCUAAAABCAUAAAADaW52AAAABmNhbGxlcgQAAAAIcmVmZXJyZXIJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAR0aGlzCQEAAAATa2V5X3JlZmVycmVyQWRkcmVzcwAAAAEFAAAADHJlZmVycmVyTmFtZQkAASwAAAACCQABLAAAAAICAAAAE3JlZmVycmVyIHdpdGggbmFtZSAFAAAADHJlZmVycmVyTmFtZQIAAAAKIG5vdCBmb3VuZAQAAAADYmlk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ZQAAAAEFAAAABG5hbWUHBAAAAAd0b3BCaWRzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAABnRvcEtleQUAAAAJcmV2ZWFsS2V5CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAB3RvcDJLZXkJAAEsAAAAAgkAASwAAAACBQAAAAlyZXZlYWxLZXkCAAAAASwJAAGkAAAAAQUAAAAJYmlkQW1vdW50BQAAAANuaWwJAAROAAAAAgUAAAAJcmV2ZWFsQmlkBQAAAAd0b3BCaWRzBQAAAAlyZXZlYWxCaWQAAAADaW52AQAAAAhmaW5hbGl6ZQAAAAIAAAAJYXVjdGlvbklkAAAABmhhc2hlcwQAAAALX2F1Y3Rpb25FbmQICQEAAAAPX2dldEF1Y3Rpb25CeUlkAAAAAQUAAAAJYXVjdGlvbklkAAAAAl81BAAAAAphdWN0aW9uRW5kAwkAAGYAAAACCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAUAAAALX2F1Y3Rpb25FbmQFAAAAC19hdWN0aW9uRW5kCQAAAgAAAAECAAAAKkNhbm5vdCBmaW5hbGl6ZSBhdWN0aW9uIHRoYXQgaGFzIG5vdCBlbmRlZAQAAAAGY2FsbGVyCAUAAAADaW52AAAABmNhbGxlcgQAAAAJY2FsbGVyU3RyCQAEJQAAAAEFAAAABmNhbGxlcgoBAAAACmZvbGRSZWZ1bmQAAAACAAAAA2FjYwAAAARoYXNoBAAAAA1iaWRkZXJIYXNoS2V5CQEAAAAOa2V5X2JpZGRlckhhc2gAAAADCQABpAAAAAEFAAAACWF1Y3Rpb25JZAUAAAAJY2FsbGVyU3RyBQAAAARoYXNoBAAAAAZiaWRLZXkJAQAAAAdrZXlfYmlkAAAAAQUAAAANYmlkZGVySGFzaEtleQQAAAAJcmV2ZWFsS2V5CQEAAAAKa2V5X3JldmVhbAAAAAEFAAAADWJpZGRlckhhc2hLZXkEAAAAC3JldmVhbGVkQmlkCQAEHQAAAAIFAAAABHRoaXMFAAAACXJldmVhbEtleQQAAAANJHQwMTA0NDMxMDczOAQAAAAJYmlkVmFsdWVzCQAEtQAAAAIJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgUAAAALcmV2ZWFsZWRCaWQJ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", "height": 2287751, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GYUcHAmLMTVHhRLyFWDazSFR8mNQ17YVNUiMdeQx4y2E Next: JCKyg1AKUK1yvx36xc3s8hrXjbxad9VddJB1WxE5Xt7H Diff:
OldNewDifferences
128128
129129
130130 func isValidName (name) = {
131- let valid = match invoke(registrar, "validate", [name], nil) {
131+ let valid = match invoke(registrar, "isValid", [name], nil) {
132132 case a: Boolean =>
133133 a
134134 case _ =>
140140 }
141141
142142
143-func isRegistrable (name) = match invoke(registrar, "available", [name], nil) {
143+func isRegistrable (name) = match invoke(registrar, "isAvailable", [name], nil) {
144144 case a: Boolean =>
145145 a
146146 case _ =>
161161 }
162162
163163
164-func isAvailable (name) = if (isRegistrable(name))
164+func isAvailableName (name) = if (isRegistrable(name))
165165 then isWinnable(name)
166166 else false
167167
174174 else throw("Single payment required")
175175 let address = toString(inv.caller)
176176 let bidKey = key_bid(key_bidderHash(toString(auctionId), address, hash))
177- let $t053005357 = getAuctionPhase()
178- let currentAuctionId = $t053005357._1
179- let currentPeriod = $t053005357._2
177+ let $t053035360 = getAuctionPhase()
178+ let currentAuctionId = $t053035360._1
179+ let currentPeriod = $t053035360._2
180180 if ((currentAuctionId != auctionId))
181181 then throw("Auctions is already over")
182182 else if ((currentPeriod != PHASE_BID))
200200
201201
202202 @Callable(inv)
203-func available (name) = $Tuple2(nil, isAvailable(name))
203+func isAvailable (name) = $Tuple2(nil, isAvailableName(name))
204204
205205
206206
228228 let topKey = key_top(name)
229229 let top2Key = key_top2(name)
230230 let deposit = valueOrErrorMessage(getInteger(this, key_bid(bidderHashKey)), ("Bid doesn't exists " + hash))
231- let $t076677724 = getAuctionPhase()
232- let currentAuctionId = $t076677724._1
233- let currentPeriod = $t076677724._2
231+ let $t076767733 = getAuctionPhase()
232+ let currentAuctionId = $t076767733._1
233+ let currentPeriod = $t076767733._2
234234 if ((currentAuctionId != auctionId))
235235 then throw("Auctions is already over")
236236 else if ((currentPeriod != PHASE_REVEAL))
251251 if (if (if (if ((bidAmount > minimalBid))
252252 then (deposit >= bidAmount)
253253 else false)
254- then isAvailable(name)
254+ then isAvailableName(name)
255255 else false)
256256 then (bidAmount > topBidAmount)
257257 else false)
272272 else revealBid
273273 }
274274 else if (if ((deposit >= bidAmount))
275- then isAvailable(name)
275+ then isAvailableName(name)
276276 else false)
277277 then {
278278 let topBids = [StringEntry(topKey, revealKey), StringEntry(top2Key, ((revealKey + ",") + toString(bidAmount)))]
297297 let bidKey = key_bid(bidderHashKey)
298298 let revealKey = key_reveal(bidderHashKey)
299299 let revealedBid = getString(this, revealKey)
300- let $t01042810723 = {
300+ let $t01044310738 = {
301301 let bidValues = split(valueOrErrorMessage(revealedBid, (("Bid with hash " + hash) + " not found")), ",")
302302 $Tuple3(parseIntValue(bidValues[0]), parseIntValue(bidValues[1]), bidValues[2])
303303 }
304- let deposit = $t01042810723._1
305- let bid = $t01042810723._2
306- let name = $t01042810723._3
304+ let deposit = $t01044310738._1
305+ let bid = $t01044310738._2
306+ let name = $t01044310738._3
307307 let topKey = key_top(name)
308308 let top2Key = key_top2(name)
309309 let winnerLink = valueOrErrorMessage(getString(this, topKey), "Auction winner has not been determined")
327327 let bidReferrerName = getString(this, referrerKey)
328328 let referrerTransfer = if (isDefined(bidReferrerName))
329329 then {
330- let $t01177011844 = getReferrerData(value(bidReferrerName))
331- let referrer = $t01177011844._1
332- let referrerPercent = $t01177011844._2
330+ let $t01178511859 = getReferrerData(value(bidReferrerName))
331+ let referrer = $t01178511859._1
332+ let referrerPercent = $t01178511859._2
333333 let referrerAmount = ((top2Bid * referrerPercent) / 100)
334334 [ScriptTransfer(referrer, referrerAmount, unit), DeleteEntry(referrerKey)]
335335 }
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 func key_referrer (bidderHash) = ("Referrer_" + bidderHash)
4141
4242
4343 func key_referrerAddress (name) = (("Referrer_" + name) + "_address")
4444
4545
4646 func key_referrerPercent (name) = (("Referrer_" + name) + "_percent")
4747
4848
4949 let key_initTimestamp = "initTimestamp"
5050
5151 let key_bidDuration = "bidDuration"
5252
5353 let key_revealDuration = "revealDuration"
5454
5555 let key_errorFee = "errorFee"
5656
5757 let key_minimalBid = "minimalBid"
5858
5959 let key_registrarAddress = "registrarAddress"
6060
6161 let key_nameMinimalLength = "nameMinimalLength"
6262
6363 let key_percentRate = "percentRate"
6464
6565 let auctionStart = getIntegerOrThrow(this, key_initTimestamp)
6666
6767 let bidDuration = getIntegerOrThrow(this, key_bidDuration)
6868
6969 let revealDuration = getIntegerOrThrow(this, key_revealDuration)
7070
7171 let auctionDuration = (bidDuration + revealDuration)
7272
7373 let errorFee = getIntegerOrThrow(this, key_errorFee)
7474
7575 let minimalBid = getIntegerOrThrow(this, key_minimalBid)
7676
7777 let nameMinimalLength = getIntegerOrThrow(this, key_nameMinimalLength)
7878
7979 let percentRate = getIntegerOrThrow(this, key_percentRate)
8080
8181 let registrarAddress = getStringOrThrow(this, key_registrarAddress)
8282
8383 let registrar = parseAddressOrThrow(registrarAddress)
8484
8585 func getReferrerData (referrerName) = {
8686 let refAddress = parseAddressOrThrow(getStringOrThrow(this, key_referrerAddress(referrerName)))
8787 let refPercent = valueOrElse(getInteger(this, key_referrerPercent(referrerName)), percentRate)
8888 if (if ((0 > refPercent))
8989 then true
9090 else (refPercent > 100))
9191 then throw("Incorrect percent rate")
9292 else $Tuple2(refAddress, refPercent)
9393 }
9494
9595
9696 func calcHash (name,amount) = toBase58String(blake2b256_16Kb(keccak256_16Kb((toBytes(name) + toBytes(amount)))))
9797
9898
9999 let PHASE_BID = "BID"
100100
101101 let PHASE_REVEAL = "REVEAL"
102102
103103 func _getAuctionById (auctionId) = {
104104 let bidStart = (auctionStart + (auctionId * auctionDuration))
105105 let revealStart = (bidStart + bidDuration)
106106 let auctionEnd = (revealStart + revealDuration)
107107 let phase = if ((lastBlock.timestamp > revealStart))
108108 then PHASE_REVEAL
109109 else PHASE_BID
110110 $Tuple5(auctionId, phase, bidStart, revealStart, auctionEnd)
111111 }
112112
113113
114114 func getAuction () = {
115115 let auctionId = ((lastBlock.timestamp - auctionStart) / auctionDuration)
116116 _getAuctionById(auctionId)
117117 }
118118
119119
120120 func getAuctionPhase () = match getAuction() {
121121 case auction: (Int, String, Int, Int, Int) =>
122122 let auctionId = auction._1
123123 let phase = auction._2
124124 $Tuple2(auctionId, phase)
125125 case _ =>
126126 throw("Invalid auction info")
127127 }
128128
129129
130130 func isValidName (name) = {
131- let valid = match invoke(registrar, "validate", [name], nil) {
131+ let valid = match invoke(registrar, "isValid", [name], nil) {
132132 case a: Boolean =>
133133 a
134134 case _ =>
135135 throw("Unsupported result format (available)")
136136 }
137137 if (valid)
138138 then (size(name) >= nameMinimalLength)
139139 else false
140140 }
141141
142142
143-func isRegistrable (name) = match invoke(registrar, "available", [name], nil) {
143+func isRegistrable (name) = match invoke(registrar, "isAvailable", [name], nil) {
144144 case a: Boolean =>
145145 a
146146 case _ =>
147147 throw("Unsupported result format (available)")
148148 }
149149
150150
151151 func isWinnable (name) = {
152152 let revealKey = getString(this, key_top(name))
153153 if (!(isDefined(revealKey)))
154154 then true
155155 else {
156156 let currentAuction = getAuctionPhase()._1
157157 let topAuctionId = split(value(revealKey), "_")[1]
158158 let auctionId = parseIntOrDefault(topAuctionId, 0)
159159 (auctionId == currentAuction)
160160 }
161161 }
162162
163163
164-func isAvailable (name) = if (isRegistrable(name))
164+func isAvailableName (name) = if (isRegistrable(name))
165165 then isWinnable(name)
166166 else false
167167
168168
169169 func bidWrap (inv,auctionId,hash) = {
170170 let pmt = if (if ((size(inv.payments) == 1))
171171 then (inv.payments[0].assetId == unit)
172172 else false)
173173 then inv.payments[0].amount
174174 else throw("Single payment required")
175175 let address = toString(inv.caller)
176176 let bidKey = key_bid(key_bidderHash(toString(auctionId), address, hash))
177- let $t053005357 = getAuctionPhase()
178- let currentAuctionId = $t053005357._1
179- let currentPeriod = $t053005357._2
177+ let $t053035360 = getAuctionPhase()
178+ let currentAuctionId = $t053035360._1
179+ let currentPeriod = $t053035360._2
180180 if ((currentAuctionId != auctionId))
181181 then throw("Auctions is already over")
182182 else if ((currentPeriod != PHASE_BID))
183183 then throw("Bid period is over")
184184 else if (isDefined(getInteger(this, bidKey)))
185185 then throw("Bid with exact amount already presented")
186186 else [IntegerEntry(bidKey, pmt)]
187187 }
188188
189189
190190 @Callable(inv)
191191 func init (timestamp,bidDuration,revealDuration,errorFee,minimalBid,registrarAddress,nameMinimalLength,percentRate) = if ((this != inv.caller))
192192 then throw("only self calls are allowed")
193193 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), IntegerEntry(key_percentRate, percentRate)]
194194
195195
196196
197197 @Callable(inv)
198198 func getAuctionById (auctionId) = $Tuple2(nil, _getAuctionById(auctionId))
199199
200200
201201
202202 @Callable(inv)
203-func available (name) = $Tuple2(nil, isAvailable(name))
203+func isAvailable (name) = $Tuple2(nil, isAvailableName(name))
204204
205205
206206
207207 @Callable(inv)
208208 func bidWithReferrer (auctionId,hash,referrerName) = {
209209 let address = toString(inv.caller)
210210 let referrer = valueOrErrorMessage(getString(this, key_referrerAddress(referrerName)), (("referrer with name " + referrerName) + " not found"))
211211 let bid = bidWrap(inv, auctionId, hash)
212212 (bid :+ StringEntry(key_referrer(key_bidderHash(toString(auctionId), address, hash)), referrerName))
213213 }
214214
215215
216216
217217 @Callable(inv)
218218 func bid (auctionId,hash) = bidWrap(inv, auctionId, hash)
219219
220220
221221
222222 @Callable(inv)
223223 func reveal (auctionId,name,bidAmount) = {
224224 let address = toString(inv.caller)
225225 let hash = calcHash(name, bidAmount)
226226 let bidderHashKey = key_bidderHash(toString(auctionId), address, hash)
227227 let revealKey = key_reveal(bidderHashKey)
228228 let topKey = key_top(name)
229229 let top2Key = key_top2(name)
230230 let deposit = valueOrErrorMessage(getInteger(this, key_bid(bidderHashKey)), ("Bid doesn't exists " + hash))
231- let $t076677724 = getAuctionPhase()
232- let currentAuctionId = $t076677724._1
233- let currentPeriod = $t076677724._2
231+ let $t076767733 = getAuctionPhase()
232+ let currentAuctionId = $t076767733._1
233+ let currentPeriod = $t076767733._2
234234 if ((currentAuctionId != auctionId))
235235 then throw("Auctions is already over")
236236 else if ((currentPeriod != PHASE_REVEAL))
237237 then throw("Reveal period is over")
238238 else if (isDefined(getString(this, revealKey)))
239239 then throw("Bid is already revealed")
240240 else {
241241 let revealBid = [StringEntry(revealKey, ((((toString(deposit) + ",") + toString(bidAmount)) + ",") + name))]
242242 let topBidderRevealKey = getString(this, topKey)
243243 if (isDefined(topBidderRevealKey))
244244 then {
245245 let topBidderKey = value(topBidderRevealKey)
246246 let topBidderData = value(getString(this, topBidderKey))
247247 let topBidAmount = parseIntValue(split(topBidderData, ",")[1])
248248 let top2BidderInfo = split(getStringOrThrow(this, top2Key), ",")
249249 let top2BidderKey = top2BidderInfo[0]
250250 let top2BidAmount = parseIntOrThrow(top2BidderInfo[1])
251251 if (if (if (if ((bidAmount > minimalBid))
252252 then (deposit >= bidAmount)
253253 else false)
254- then isAvailable(name)
254+ then isAvailableName(name)
255255 else false)
256256 then (bidAmount > topBidAmount)
257257 else false)
258258 then {
259259 let newTopBids = [StringEntry(topKey, revealKey), StringEntry(top2Key, ((topBidderKey + ",") + toString(topBidAmount)))]
260260 (revealBid ++ newTopBids)
261261 }
262262 else if (if (if ((top2BidAmount >= bidAmount))
263263 then (top2BidderKey == topBidderKey)
264264 else false)
265265 then (bidAmount > minimalBid)
266266 else false)
267267 then (revealBid :+ StringEntry(top2Key, ((revealKey + ",") + toString(bidAmount))))
268268 else if (if ((bidAmount > top2BidAmount))
269269 then (bidAmount > minimalBid)
270270 else false)
271271 then (revealBid :+ StringEntry(top2Key, ((revealKey + ",") + toString(bidAmount))))
272272 else revealBid
273273 }
274274 else if (if ((deposit >= bidAmount))
275- then isAvailable(name)
275+ then isAvailableName(name)
276276 else false)
277277 then {
278278 let topBids = [StringEntry(topKey, revealKey), StringEntry(top2Key, ((revealKey + ",") + toString(bidAmount)))]
279279 (revealBid ++ topBids)
280280 }
281281 else revealBid
282282 }
283283 }
284284
285285
286286
287287 @Callable(inv)
288288 func finalize (auctionId,hashes) = {
289289 let _auctionEnd = _getAuctionById(auctionId)._5
290290 let auctionEnd = if ((lastBlock.timestamp > _auctionEnd))
291291 then _auctionEnd
292292 else throw("Cannot finalize auction that has not ended")
293293 let caller = inv.caller
294294 let callerStr = toString(caller)
295295 func foldRefund (acc,hash) = {
296296 let bidderHashKey = key_bidderHash(toString(auctionId), callerStr, hash)
297297 let bidKey = key_bid(bidderHashKey)
298298 let revealKey = key_reveal(bidderHashKey)
299299 let revealedBid = getString(this, revealKey)
300- let $t01042810723 = {
300+ let $t01044310738 = {
301301 let bidValues = split(valueOrErrorMessage(revealedBid, (("Bid with hash " + hash) + " not found")), ",")
302302 $Tuple3(parseIntValue(bidValues[0]), parseIntValue(bidValues[1]), bidValues[2])
303303 }
304- let deposit = $t01042810723._1
305- let bid = $t01042810723._2
306- let name = $t01042810723._3
304+ let deposit = $t01044310738._1
305+ let bid = $t01044310738._2
306+ let name = $t01044310738._3
307307 let topKey = key_top(name)
308308 let top2Key = key_top2(name)
309309 let winnerLink = valueOrErrorMessage(getString(this, topKey), "Auction winner has not been determined")
310310 let winnerInfo = split(winnerLink, "_")
311311 let winnerAuctionId = parseIntValue(winnerInfo[1])
312312 let winnerAddress = winnerInfo[2]
313313 let top2BidderInfo = split(getStringOrThrow(this, top2Key), ",")
314314 let top2Bid = parseIntOrThrow(top2BidderInfo[1])
315315 let deleteEntries = [DeleteEntry(revealKey), DeleteEntry(bidKey)]
316316 let transferAndDeleteEntry = if (if (if (if ((minimalBid > bid))
317317 then true
318318 else (bid > deposit))
319319 then true
320320 else (winnerAuctionId != auctionId))
321321 then true
322322 else !(isValidName(name)))
323323 then [ScriptTransfer(caller, (deposit - fraction(deposit, 10, 100)), unit)]
324324 else if ((winnerLink == revealKey))
325325 then {
326326 let referrerKey = key_referrer(bidderHashKey)
327327 let bidReferrerName = getString(this, referrerKey)
328328 let referrerTransfer = if (isDefined(bidReferrerName))
329329 then {
330- let $t01177011844 = getReferrerData(value(bidReferrerName))
331- let referrer = $t01177011844._1
332- let referrerPercent = $t01177011844._2
330+ let $t01178511859 = getReferrerData(value(bidReferrerName))
331+ let referrer = $t01178511859._1
332+ let referrerPercent = $t01178511859._2
333333 let referrerAmount = ((top2Bid * referrerPercent) / 100)
334334 [ScriptTransfer(referrer, referrerAmount, unit), DeleteEntry(referrerKey)]
335335 }
336336 else nil
337337 let claimNft = invoke(registrar, "register", [name, winnerAddress, auctionEnd], nil)
338338 if ((claimNft == claimNft))
339339 then (referrerTransfer ++ [ScriptTransfer(caller, (deposit - top2Bid), unit), DeleteEntry(top2Key)])
340340 else throw("Strict value is not equal to itself.")
341341 }
342342 else [ScriptTransfer(caller, deposit, unit)]
343343 ((acc ++ deleteEntries) ++ transferAndDeleteEntry)
344344 }
345345
346346 let $l = hashes
347347 let $s = size($l)
348348 let $acc0 = nil
349349 func $f0_1 ($a,$i) = if (($i >= $s))
350350 then $a
351351 else foldRefund($a, $l[$i])
352352
353353 func $f0_2 ($a,$i) = if (($i >= $s))
354354 then $a
355355 else throw("List size exceeds 5")
356356
357357 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
358358 }
359359
360360
361361
362362 @Callable(inv)
363363 func addReferrer (referrerName,referrerAddress,percent) = {
364364 let address = parseAddressOrThrow(referrerAddress)
365365 if (if ((0 > percent))
366366 then true
367367 else (percent > 100))
368368 then throw("Incorrect percent rate")
369369 else if ((size(referrerName) == 0))
370370 then throw("Referrer name invalid")
371371 else if ((this != inv.caller))
372372 then throw("only self calls or by collector are allowed")
373373 else [StringEntry(key_referrerAddress(referrerName), referrerAddress), IntegerEntry(key_referrerPercent(referrerName), percent)]
374374 }
375375
376376

github/deemru/w8io/169f3d6 
61.36 ms