tx · 8D243UbyJgCrqEAd1c3c2rhuDjCa8sEfwR4e2VzRw8R4

3P6TwNU39Ykkbeqhn5TE4a2736xsA1vXemM:  -0.01400000 Waves

2022.04.09 18:07 [3066519] smart account 3P6TwNU39Ykkbeqhn5TE4a2736xsA1vXemM > SELF 0.00000000 Waves

{ "type": 13, "id": "8D243UbyJgCrqEAd1c3c2rhuDjCa8sEfwR4e2VzRw8R4", "fee": 1400000, "feeAssetId": null, "timestamp": 1649516910054, "version": 2, "chainId": 87, "sender": "3P6TwNU39Ykkbeqhn5TE4a2736xsA1vXemM", "senderPublicKey": "2u37SmDDZX3Ry9sDnA1umgjYSVQ51faPMAXtooDpx6yw", "proofs": [ "YFFMKrtC5X7vagbQjpyzbH3gLd8q7bMkUqxKS2pX3dc1y3ZpGhmvSA8ZDEbdDcUGRdmjaYgqJKEPjQDqPZrR4na" ], "script": "base64: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AAAAB3JlZkNhbGwFAAAAB3JlZkNhbGwJAAROAAAAAgUAAAAHcmVzdWx0cwkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIJAABlAAAAAggFAAAADGZpcnN0UGF5bWVudAAAAAZhbW91bnQFAAAACmVnZ3NOZWVkZWQFAAAAC2VnZ3NBc3NldElkBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAAG3N0YXJ0RHVja0hhdGNoaW5nRm9yQWRkcmVzcwAAAAEAAAAHYWRkcmVzcwMJAABmAAAAAgkBAAAACGlzTG9ja2VkAAAAAAAAAAAAAAAAAAkAAAIAAAABAgAAACVFR0cgb3BlcmF0aW9ucyBhcmUgdGVtcG9yYXJpbHkgbG9ja2VkAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyCQEAAAAHQWRkcmVzcwAAAAEFAAAAEHN3b3BQcm9tb0FkZHJlc3MJAAACAAAAAQIAAAARUGVybmlzc2lvbiBkZW5pZWQEAAAAEHRvdGFsRHVja3NBbW91bnQJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQIAAAAMZHVja3NfYW1vdW50BAAAAAplZ2dzTmVlZGVkCQEAAAAVY291bnRFZ2dzTmVlZGVkQW1vdW50AAAAAQUAAAAQdG90YWxEdWNrc0Ftb3VudAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAUZ2V0SGF0Y2hpbmdTdGF0dXNLZXkAAAACBQAAAAdhZGRyZXNzCAUAAAABaQAAAA10cmFuc2FjdGlvbklkBQAAAA9IYXRjaGluZ1N0YXJ0ZWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABpnZXRIYXRjaGluZ0ZpbmlzaEhlaWdodEtleQAAAAIFAAAAB2FkZHJlc3MIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQJAABkAAAAAgUAAAAGaGVpZ2h0BQAAABBkZWxheUZvckhhdGNoaW5nCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAxkdWNrc19hbW91bnQJAABkAAAAAgUAAAAQdG90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AAIFAAAAB2FkZHJlc3MFAAAABHR4SWQEAAAAD2ZpbmlzaEhlaWdodEtleQkBAAAAGmdldEhhdGNoaW5nRmluaXNoSGVpZ2h0S2V5AAAAAgUAAAAHYWRkcmVzcwUAAAAEdHhJZAQAAAAQdG90YWxEdWNrc0Ftb3VudAkBAAAADXRyeUdldEludGVnZXIAAAABAgAAAAxkdWNrc19hbW91bnQEAAAACmVnZ3NOZWVkZWQJAQAAABVjb3VudEVnZ3NOZWVkZWRBbW91bnQAAAABBQAAABB0b3RhbER1Y2tzQW1vdW50BAAAAAskdDA4NDAxODQ4NgkBAAAADWdldFJhbmRvbU5hbWUAAAACBQAAAAR0eElkCQAAZAAAAAIJAQAAAAV2YWx1ZQAAAAEJAAPpAAAAAQUAAAAEdHhJZAAAAAAAAAAAAQQAAAAHZHVja0dlbggFAAAACyR0MDg0MDE4NDg2AAAAAl8xBAAAAAdmYXJtR2VuCAUAAAALJHQwODQwMTg0ODYAAAACXzIEAAAAC2Rlc2NyaXB0aW9uCQABLAAAAAIJAAEsAAAAAgIAAAAOeyJnZW5vdHlwZSI6ICIFAAAAB2R1Y2tHZW4CAAAAGSIsICJjcm9zc2JyZWVkaW5nIjogdHJ1ZX0EAAAABWFzc2V0CQAEQwAAAAcFAAAAB2R1Y2tHZW4FAAAAC2Rlc2NyaXB0aW9uAAAAAAAAAAABAAAAAAAAAAAABwUAAAAEdW5pdAUAAAAGaGVpZ2h0BAAAAAdhc3NldElkCQAEOAAAAAEFAAAABWFzc2V0BAAAAAZhbW91bnQJAABkAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAAPZ2V0RHVja1N0YXRzS2V5AAAAAQUAAAAHZHVja0dlbgAAAAAAAAAAAQQAAAAJZHVja0lkS2V5CQEAAAAMZ2V0RHVja0lkS2V5AAAAAgUAAAAHYWRkcmVzcwUAAAAEdHhJZAkABRQAAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAaZ2V0SGF0Y2hpbmdGaW5pc2hIZWlnaHRLZXkAAAACBQAAAAdhZGRyZXNzBQAAAAR0eElkBQAAAAZoZWlnaHQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAADGR1Y2tzX2Ftb3VudAkAAGQAAAACBQAAABB0b3RhbER1Y2tzQW1vdW50AAAAAAAAAAABCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABBkdWNrc19sYXN0X3ByaWNlCQAAaQAAAAIFAAAACmVnZ3NOZWVkZWQAAAAAAAAPQkAJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAARaGF0Y2hpbmdTdGF0dXNLZXkFAAAAEEhhdGNoaW5nRmluaXNoZWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAJZHVja0lkS2V5CQACWAAAAAEFAAAAB2Fzc2V0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAAlgAAAABBQAAAAdhc3NldElkBQAAAAlkdWNrSWRLZXkJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAA9nZXREdWNrU3RhdHNLZXkAAAABBQAAAAdkdWNrR2VuBQAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZzdGF0c18FAAAAB2Zhcm1HZW4CAAAACV9xdWFudGl0eQkAAGQAAAACCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAZzdGF0c18FAAAAB2Zhcm1HZW4CAAAACV9xdWFudGl0eQAAAAAAAAAAAQkABEwAAAACBQAAAAVhc3NldAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAFdmFsdWUAAAABCQAEJgAAAAEFAAAAB2FkZHJlc3MAAAAAAAAAAAEFAAAAB2Fzc2V0SWQFAAAAA25pbAkAAlgAAAABBQAAAAdhc3NldElkAAAAAWkBAAAADGlzc3VlSmFja3BvdAAAAAMAAAAHYWRkcmVzcwAAAAd0eElkU3RyAAAAA2dlbgMDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIJAQAAAAdBZGRyZXNzAAAAAQUAAAAOcmViaXJ0aEFkZHJlc3MJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwcJAAACAAAAAQIAAAAVYWRtaW4gb3IgcmViaXJ0aCBvbmx5BAAAAAR0eElkCQACWQAAAAEFAAAAB3R4SWRTdHIEAAAAEWhhdGNoaW5nU3RhdHVzS2V5CQEAAAAUZ2V0SGF0Y2hpbmdTdGF0dXNLZXkAAAACBQAAAAdhZGRyZXNzBQAAAAR0eElkBAAAAA9maW5pc2hIZWlnaHRLZXkJAQAAABpnZXRIYXRjaGluZ0ZpbmlzaEhlaWdodEtleQAAAAIFAAAAB2FkZHJlc3MFAAAABHR4SWQEAAAAEHRvdGFsRHVja3NBbW91bnQJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQIAAAAMZHVja3NfYW1vdW50BAAAAAplZ2dzTmVlZGVkCQEAAAAVY291bnRFZ2dzTmVlZGVkQW1vdW50AAAAAQUAAAAQdG90YWxEdWNrc0Ftb3VudAQAAAALJHQwOTkzOTk5OTEJAAUUAAAAAgkAASwAAAACCQABLAAAAAICAAAABURVQ0stBQAAAANnZW4CAAAAAy1KVQIAAAAEOFctSgQAAAAHZHVja0dlbggFAAAACyR0MDk5Mzk5OTkxAAAAAl8xBAAAAAdmYXJtR2VuCAUAAAALJHQwOTkzOTk5OTEAAAACXzIEAAAAC2Rlc2NyaXB0aW9uCQABLAAAAAIJAAEsAAAAAgIAAAAOeyJnZW5vdHlwZSI6ICIFAAAAB2R1Y2tHZW4CAAAAGSIsICJjcm9zc2JyZWVkaW5nIjogdHJ1ZX0EAAAABWFzc2V0CQAEQwAAAAcFAAAAB2R1Y2tHZW4FAAAAC2Rlc2NyaXB0aW9uAAAAAAAAAAABAAAAAAAAAAAABwUAAAAEdW5pdAUAAAAGaGVpZ2h0BAAAAAdhc3NldElkCQAEOAAAAAEFAAAABWFzc2V0BAAAAAlkdWNrSWRLZXkJAQAAAAxnZXREdWNrSWRLZXkAAAACBQAAAAdhZGRyZXNzBQAAAAR0eElkCQAFFAAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABpnZXRIYXRjaGluZ0ZpbmlzaEhlaWdodEtleQAAAAIFAAAAB2FkZHJlc3MFAAAABHR4SWQFAAAABmhlaWdodAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAMZHVja3NfYW1vdW50CQAAZAAAAAIFAAAAEHRvdGFsRHVja3NBbW91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", "height": 3066519, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7ohKXebnkfQmkjsD3Ew5tRcDoF7Zx4yMajt2HTSgaXxn Next: FGGJVovhwgdugEs6jKkkGNcC9ZCLYYan6rcrqxzmKP4P Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let eggsAssetId = base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS'
4+let eggsAssetId = base58'3v7zGkeHS6KrsvmTRzEzvCxm5cdzkCtM7z5cM6efcjCB'
55
66 let delayForHatching = 2
77
88 let typesAmount = 9
99
10-let refContractAddress = base58'3P8ejTkfRpz9WqCwCuihesNXU5k3zmFFfVe'
10+let refContractAddress = base58'3PGZyyPg7Mx91yaNT8k3MWxSQzuzusMUyzX'
1111
1212 let RefererReward = 5
1313
1515
1616 let HatchingFinished = "HATCHING_FINISHED"
1717
18-let rebirthAddress = base58'3PCC6fVHNa6289DTDmcUo3RuLaFmteZZsmQ'
18+let rebirthAddress = base58'3PKL9tfUmNciXvbSA3zpXr6PnDNnhn936ba'
1919
20-let babyDucksAddress = base58'3PKmLiGEfqLWMC1H9xhzqvAZKUXfFm8uoeg'
20+let babyDucksAddress = base58'3PKwLVb8jYk58oYbfXxs2dUjD3YEKeqGWrX'
2121
22-let swopPromoAddress = base58'3P6s9C39Ak5FAQ3F5VapYJ3ULxgbsAReXWD'
22+let swopPromoAddress = base58'3PCUJBpMXtqYKxMiDtKcTeEQcKukfMeoctR'
2323
2424 func isLocked () = {
2525 let masterAddress = Address(base58'3PEPftf2kWZDmAaWBjs6BUJa9957kiA2PkU')
190190 else if ((hatchingFinishHeight > height))
191191 then throw((((("Hatching is not finished yet " + toString((hatchingFinishHeight - height))) + " blocks remaining, it will take around ") + toString((hatchingFinishHeight - height))) + " minutes"))
192192 else {
193- let $t071037169 = getRandomName(txId, hatchingFinishHeight)
194- let duckGen = $t071037169._1
195- let farmGen = $t071037169._2
193+ let $t070967162 = getRandomName(txId, hatchingFinishHeight)
194+ let duckGen = $t070967162._1
195+ let farmGen = $t070967162._2
196196 let description = (("{\"genotype\": \"" + duckGen) + "\", \"crossbreeding\": true}")
197197 let asset = Issue(duckGen, description, 1, 0, false, unit, hatchingFinishHeight)
198198 let assetId = calculateAssetId(asset)
212212 let finishHeightKey = getHatchingFinishHeightKey(address, txId)
213213 let totalDucksAmount = tryGetInteger("ducks_amount")
214214 let eggsNeeded = countEggsNeededAmount(totalDucksAmount)
215- let $t084088493 = getRandomName(txId, (value(transactionHeightById(txId)) + 1))
216- let duckGen = $t084088493._1
217- let farmGen = $t084088493._2
215+ let $t084018486 = getRandomName(txId, (value(transactionHeightById(txId)) + 1))
216+ let duckGen = $t084018486._1
217+ let farmGen = $t084018486._2
218218 let description = (("{\"genotype\": \"" + duckGen) + "\", \"crossbreeding\": true}")
219219 let asset = Issue(duckGen, description, 1, 0, false, unit, height)
220220 let assetId = calculateAssetId(asset)
236236 let finishHeightKey = getHatchingFinishHeightKey(address, txId)
237237 let totalDucksAmount = tryGetInteger("ducks_amount")
238238 let eggsNeeded = countEggsNeededAmount(totalDucksAmount)
239- let $t099469998 = $Tuple2((("DUCK-" + gen) + "-JU"), "8W-J")
240- let duckGen = $t099469998._1
241- let farmGen = $t099469998._2
239+ let $t099399991 = $Tuple2((("DUCK-" + gen) + "-JU"), "8W-J")
240+ let duckGen = $t099399991._1
241+ let farmGen = $t099399991._2
242242 let description = (("{\"genotype\": \"" + duckGen) + "\", \"crossbreeding\": true}")
243243 let asset = Issue(duckGen, description, 1, 0, false, unit, height)
244244 let assetId = calculateAssetId(asset)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let eggsAssetId = base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS'
4+let eggsAssetId = base58'3v7zGkeHS6KrsvmTRzEzvCxm5cdzkCtM7z5cM6efcjCB'
55
66 let delayForHatching = 2
77
88 let typesAmount = 9
99
10-let refContractAddress = base58'3P8ejTkfRpz9WqCwCuihesNXU5k3zmFFfVe'
10+let refContractAddress = base58'3PGZyyPg7Mx91yaNT8k3MWxSQzuzusMUyzX'
1111
1212 let RefererReward = 5
1313
1414 let HatchingStarted = "HATCHING_STARTED"
1515
1616 let HatchingFinished = "HATCHING_FINISHED"
1717
18-let rebirthAddress = base58'3PCC6fVHNa6289DTDmcUo3RuLaFmteZZsmQ'
18+let rebirthAddress = base58'3PKL9tfUmNciXvbSA3zpXr6PnDNnhn936ba'
1919
20-let babyDucksAddress = base58'3PKmLiGEfqLWMC1H9xhzqvAZKUXfFm8uoeg'
20+let babyDucksAddress = base58'3PKwLVb8jYk58oYbfXxs2dUjD3YEKeqGWrX'
2121
22-let swopPromoAddress = base58'3P6s9C39Ak5FAQ3F5VapYJ3ULxgbsAReXWD'
22+let swopPromoAddress = base58'3PCUJBpMXtqYKxMiDtKcTeEQcKukfMeoctR'
2323
2424 func isLocked () = {
2525 let masterAddress = Address(base58'3PEPftf2kWZDmAaWBjs6BUJa9957kiA2PkU')
2626 match getInteger(masterAddress, "egglock") {
2727 case b: Int =>
2828 b
2929 case _ =>
3030 0
3131 }
3232 }
3333
3434
3535 func getHatchingStatusKey (address,txId) = (((address + "_") + toBase58String(txId)) + "_status")
3636
3737
3838 func getHatchingFinishHeightKey (address,txId) = (((address + "_") + toBase58String(txId)) + "_fh")
3939
4040
4141 func getDuckIdKey (address,txId) = (((address + "_") + toBase58String(txId)) + "_di")
4242
4343
4444 func getDuckStatsKey (genString) = (("stats_" + genString) + "_amount")
4545
4646
4747 func tryGetInteger (key) = {
4848 let val = match getInteger(this, key) {
4949 case b: Int =>
5050 b
5151 case _ =>
5252 0
5353 }
5454 val
5555 }
5656
5757
5858 let discountCoefficient = tryGetInteger("discountCoefficient")
5959
6060 let saleCoefficient = tryGetInteger("saleCoefficient")
6161
6262 func getRandomNumber (variants,txId,hatchingFinishHeight,offset) = {
6363 let randomSeedBlock = value(blockInfoByHeight((hatchingFinishHeight - 1)))
6464 let randomHash = sha256((txId + value(randomSeedBlock.vrf)))
6565 (toInt(randomHash, (offset * 8)) % variants)
6666 }
6767
6868
6969 func wasUniqueBorn (gen) = tryGetInteger(getDuckStatsKey(gen))
7070
7171
7272 func getRandomName (txId,hatchingFinishHeight) = {
7373 let jackpotRandom = getRandomNumber(500, txId, hatchingFinishHeight, 0)
7474 if (if ((5 > jackpotRandom))
7575 then (wasUniqueBorn("DUCK-WWZETKIN-JU") == 0)
7676 else false)
7777 then $Tuple2("DUCK-WWZETKIN-JU", "1E1I1K1N1T1U2W1Z-J")
7878 else if (if ((10 > jackpotRandom))
7979 then (wasUniqueBorn("DUCK-WWWWMARG-JU") == 0)
8080 else false)
8181 then $Tuple2("DUCK-WWWWMARG-JU", "1A1G1M1R4W-J")
8282 else if (if ((15 > jackpotRandom))
8383 then (wasUniqueBorn("DUCK-WWWDAISY-JU") == 0)
8484 else false)
8585 then $Tuple2("DUCK-WWWDAISY-JU", "1A1D1I1S3W1Y-J")
8686 else {
8787 let typeRandom = getRandomNumber(4, txId, hatchingFinishHeight, 0)
8888 let colorRandom = getRandomNumber(4, txId, hatchingFinishHeight, 1)
8989 let color = if ((colorRandom == 0))
9090 then "Y"
9191 else if ((colorRandom == 1))
9292 then "G"
9393 else if ((colorRandom == 2))
9494 then "B"
9595 else "R"
9696 if ((typeRandom == 0))
9797 then $Tuple2(("DUCK-FFFFFFFF-G" + color), "8F-G")
9898 else if ((typeRandom == 1))
9999 then $Tuple2(("DUCK-HHHHHHHH-G" + color), "8H-G")
100100 else if ((typeRandom == 2))
101101 then $Tuple2(("DUCK-GGGGGGGG-G" + color), "8G-G")
102102 else $Tuple2(("DUCK-IIIIIIII-G" + color), "8I-G")
103103 }
104104 }
105105
106106
107107 func countEggsNeededAmount (totalDucksAmount) = {
108108 let n = totalDucksAmount
109109 let g = discountCoefficient
110110 let s = saleCoefficient
111111 let t = typesAmount
112112 let price = pow((100 + ((n * g) / (10 * t))), 2, 5, 1, 2, DOWN)
113113 if ((saleCoefficient == 0))
114114 then (price * 1000000)
115115 else (((price * 1000000) / 100) * (100 - saleCoefficient))
116116 }
117117
118118
119119 @Callable(i)
120120 func setDiscount (val) = if ((i.caller != this))
121121 then throw("admin_only")
122122 else [IntegerEntry("discountCoefficient", val)]
123123
124124
125125
126126 @Callable(i)
127127 func setSale (val) = if ((i.caller != this))
128128 then throw("admin_only")
129129 else [IntegerEntry("saleCoefficient", val)]
130130
131131
132132
133133 @Callable(i)
134134 func startDuckHatching (refererAddress) = if ((isLocked() > 0))
135135 then throw("EGG operations are temporarily locked")
136136 else {
137137 let totalDucksAmount = tryGetInteger("ducks_amount")
138138 let eggsNeeded = countEggsNeededAmount(totalDucksAmount)
139139 let firstPayment = value(i.payments[0])
140140 let results = [StringEntry(getHatchingStatusKey(toString(i.originCaller), i.transactionId), HatchingStarted), IntegerEntry(getHatchingFinishHeightKey(toString(i.originCaller), i.transactionId), (height + delayForHatching)), IntegerEntry("ducks_amount", (totalDucksAmount + 1)), IntegerEntry("ducks_last_price", (eggsNeeded / 1000000))]
141141 if ((i.caller == Address(babyDucksAddress)))
142142 then (results ++ [BooleanEntry((("hatching_" + toBase58String(i.transactionId)) + "_babyDuck"), true)])
143143 else if ((firstPayment.assetId != eggsAssetId))
144144 then throw(("You can attach only EGG tokens with the following asset id: " + toBase58String(eggsAssetId)))
145145 else if ((eggsNeeded > firstPayment.amount))
146146 then throw(("To hatch a duck you currently need the following amount of EGGlets: " + toString(eggsNeeded)))
147147 else {
148148 let refererReward = fraction(eggsNeeded, RefererReward, 100)
149149 let refCall = invoke(Address(refContractAddress), "refPayment", [refererAddress], [AttachedPayment(eggsAssetId, refererReward)])
150150 if ((refCall == refCall))
151151 then (results ++ [ScriptTransfer(i.caller, (firstPayment.amount - eggsNeeded), eggsAssetId)])
152152 else throw("Strict value is not equal to itself.")
153153 }
154154 }
155155
156156
157157
158158 @Callable(i)
159159 func startDuckHatchingForAddress (address) = if ((isLocked() > 0))
160160 then throw("EGG operations are temporarily locked")
161161 else if ((i.caller != Address(swopPromoAddress)))
162162 then throw("Pernission denied")
163163 else {
164164 let totalDucksAmount = tryGetInteger("ducks_amount")
165165 let eggsNeeded = countEggsNeededAmount(totalDucksAmount)
166166 [StringEntry(getHatchingStatusKey(address, i.transactionId), HatchingStarted), IntegerEntry(getHatchingFinishHeightKey(address, i.transactionId), (height + delayForHatching)), IntegerEntry("ducks_amount", (totalDucksAmount + 1)), IntegerEntry("ducks_last_price", (eggsNeeded / 1000000)), BooleanEntry((("hatching_" + toBase58String(i.transactionId)) + "_promo"), true)]
167167 }
168168
169169
170170
171171 @Callable(i)
172172 func finishDuckHatching (txIdStr) = {
173173 let txId = fromBase58String(txIdStr)
174174 let hatchingStatusKey = getHatchingStatusKey(toString(i.caller), txId)
175175 let finishHeightKey = getHatchingFinishHeightKey(toString(i.caller), txId)
176176 let duckIdKey = getDuckIdKey(toString(i.caller), txId)
177177 let duckFromBaby = match getBoolean((("hatching_" + txIdStr) + "_babyDuck")) {
178178 case t: Boolean =>
179179 t
180180 case _ =>
181181 false
182182 }
183183 let hatchingTxStatus = getStringValue(this, hatchingStatusKey)
184184 let hatchingFinishHeight = getIntegerValue(this, finishHeightKey)
185185 if ((hatchingTxStatus == HatchingFinished))
186186 then {
187187 let duckId = getStringValue(this, getDuckIdKey(toString(i.caller), txId))
188188 throw(("The duck was hatched and claimed already, here is the folowing: " + duckId))
189189 }
190190 else if ((hatchingFinishHeight > height))
191191 then throw((((("Hatching is not finished yet " + toString((hatchingFinishHeight - height))) + " blocks remaining, it will take around ") + toString((hatchingFinishHeight - height))) + " minutes"))
192192 else {
193- let $t071037169 = getRandomName(txId, hatchingFinishHeight)
194- let duckGen = $t071037169._1
195- let farmGen = $t071037169._2
193+ let $t070967162 = getRandomName(txId, hatchingFinishHeight)
194+ let duckGen = $t070967162._1
195+ let farmGen = $t070967162._2
196196 let description = (("{\"genotype\": \"" + duckGen) + "\", \"crossbreeding\": true}")
197197 let asset = Issue(duckGen, description, 1, 0, false, unit, hatchingFinishHeight)
198198 let assetId = calculateAssetId(asset)
199199 let amount = (tryGetInteger(getDuckStatsKey(duckGen)) + 1)
200200 [StringEntry(hatchingStatusKey, HatchingFinished), StringEntry(duckIdKey, toBase58String(assetId)), StringEntry(toBase58String(assetId), duckIdKey), BooleanEntry((("duck_" + toBase58String(assetId)) + "_grown"), duckFromBaby), IntegerEntry(getDuckStatsKey(duckGen), amount), IntegerEntry((("stats_" + farmGen) + "_quantity"), (tryGetInteger((("stats_" + farmGen) + "_quantity")) + 1)), asset, ScriptTransfer(i.caller, 1, assetId)]
201201 }
202202 }
203203
204204
205205
206206 @Callable(i)
207207 func issueFreeDuck (address,txIdStr) = if ((i.caller != Address(rebirthAddress)))
208208 then throw("rebirth only")
209209 else {
210210 let txId = fromBase58String(txIdStr)
211211 let hatchingStatusKey = getHatchingStatusKey(address, txId)
212212 let finishHeightKey = getHatchingFinishHeightKey(address, txId)
213213 let totalDucksAmount = tryGetInteger("ducks_amount")
214214 let eggsNeeded = countEggsNeededAmount(totalDucksAmount)
215- let $t084088493 = getRandomName(txId, (value(transactionHeightById(txId)) + 1))
216- let duckGen = $t084088493._1
217- let farmGen = $t084088493._2
215+ let $t084018486 = getRandomName(txId, (value(transactionHeightById(txId)) + 1))
216+ let duckGen = $t084018486._1
217+ let farmGen = $t084018486._2
218218 let description = (("{\"genotype\": \"" + duckGen) + "\", \"crossbreeding\": true}")
219219 let asset = Issue(duckGen, description, 1, 0, false, unit, height)
220220 let assetId = calculateAssetId(asset)
221221 let amount = (tryGetInteger(getDuckStatsKey(duckGen)) + 1)
222222 let duckIdKey = getDuckIdKey(address, txId)
223223 $Tuple2([IntegerEntry(getHatchingFinishHeightKey(address, txId), height), IntegerEntry("ducks_amount", (totalDucksAmount + 1)), IntegerEntry("ducks_last_price", (eggsNeeded / 1000000)), StringEntry(hatchingStatusKey, HatchingFinished), StringEntry(duckIdKey, toBase58String(assetId)), StringEntry(toBase58String(assetId), duckIdKey), IntegerEntry(getDuckStatsKey(duckGen), amount), IntegerEntry((("stats_" + farmGen) + "_quantity"), (tryGetInteger((("stats_" + farmGen) + "_quantity")) + 1)), asset, ScriptTransfer(value(addressFromString(address)), 1, assetId)], toBase58String(assetId))
224224 }
225225
226226
227227
228228 @Callable(i)
229229 func issueJackpot (address,txIdStr,gen) = if (if ((i.caller != Address(rebirthAddress)))
230230 then (i.caller != this)
231231 else false)
232232 then throw("admin or rebirth only")
233233 else {
234234 let txId = fromBase58String(txIdStr)
235235 let hatchingStatusKey = getHatchingStatusKey(address, txId)
236236 let finishHeightKey = getHatchingFinishHeightKey(address, txId)
237237 let totalDucksAmount = tryGetInteger("ducks_amount")
238238 let eggsNeeded = countEggsNeededAmount(totalDucksAmount)
239- let $t099469998 = $Tuple2((("DUCK-" + gen) + "-JU"), "8W-J")
240- let duckGen = $t099469998._1
241- let farmGen = $t099469998._2
239+ let $t099399991 = $Tuple2((("DUCK-" + gen) + "-JU"), "8W-J")
240+ let duckGen = $t099399991._1
241+ let farmGen = $t099399991._2
242242 let description = (("{\"genotype\": \"" + duckGen) + "\", \"crossbreeding\": true}")
243243 let asset = Issue(duckGen, description, 1, 0, false, unit, height)
244244 let assetId = calculateAssetId(asset)
245245 let duckIdKey = getDuckIdKey(address, txId)
246246 $Tuple2([IntegerEntry(getHatchingFinishHeightKey(address, txId), height), IntegerEntry("ducks_amount", (totalDucksAmount + 1)), IntegerEntry("ducks_last_price", (eggsNeeded / 1000000)), StringEntry(hatchingStatusKey, HatchingFinished), StringEntry(duckIdKey, toBase58String(assetId)), StringEntry(toBase58String(assetId), duckIdKey), IntegerEntry(getDuckStatsKey(duckGen), (tryGetInteger(getDuckStatsKey(duckGen)) + 1)), IntegerEntry((("stats_" + farmGen) + "_quantity"), (tryGetInteger((("stats_" + farmGen) + "_quantity")) + 1)), asset, ScriptTransfer(value(addressFromString(address)), 1, assetId)], toBase58String(assetId))
247247 }
248248
249249
250250
251251 @Callable(i)
252252 func reduceRarity (assetId,fGen) = {
253253 let asset = fromBase58String(assetId)
254254 if (if ((i.caller != Address(rebirthAddress)))
255255 then (i.caller != this)
256256 else false)
257257 then throw("admin or rebirth only")
258258 else {
259259 let duckGen = value(assetInfo(asset)).name
260260 let letter = takeRight(take(duckGen, 6), 1)
261261 let farmGen = (("8" + letter) + "-G")
262262 [IntegerEntry(getDuckStatsKey(duckGen), (tryGetInteger(getDuckStatsKey(duckGen)) - 1)), IntegerEntry((("stats_" + farmGen) + "_quantity"), (tryGetInteger((("stats_" + farmGen) + "_quantity")) - 1))]
263263 }
264264 }
265265
266266
267267 @Verifier(tx)
268268 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
269269

github/deemru/w8io/3ef1775 
50.74 ms