tx · GP7zCiZUGeMaMTFAgDbcGSBYXEpXo9SoeEu2aRX8woPC

3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv:  -0.02000000 Waves

2022.07.23 13:14 [3217820] smart account 3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv > SELF 0.00000000 Waves

{ "type": 13, "id": "GP7zCiZUGeMaMTFAgDbcGSBYXEpXo9SoeEu2aRX8woPC", "fee": 2000000, "feeAssetId": null, "timestamp": 1658571285471, "version": 2, "chainId": 87, "sender": "3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv", "senderPublicKey": "EBHsV7TQYm4qS2V7iZXEXwcbUdEYQyCSLEdY2AMvLPns", "proofs": [ "31SyVsukY7gybhh8RygPr8TGwwLXvKLDxyNM239BzPujdwHSJU8vppKMFPYyZEnNAVGYGu4FR4MY5KbvoH29UAwt" ], "script": "base64:AAIFAAAAAAAAADMIAhIDCgEIEgMKAQESAwoBARIDCgEIEgMKAQgSAwoBCBIECgIICBIFCgMICAgSBAoCCAgAAAAcAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIAAAAHYWRkcmVzcwAAAANrZXkEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWECAAAAAAEAAAAMdHJ5R2V0U3RyaW5nAAAAAQAAAANrZXkJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIFAAAABHRoaXMFAAAAA2tleQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAAAx0cnlHZXRTdHJpbmcAAAABAgAAABRzdGF0aWNfb3JhY2xlQWRkcmVzcwEAAAANZ2V0RWdnQXNzZXRJZAAAAAAJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAACAAAAEXN0YXRpY19lZ2dBc3NldElkAQAAABFnZXRSZWJpcnRoQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAIAAAAVc3RhdGljX3JlYmlydGhBZGRyZXNzAQAAABNnZXRTd29wUHJvbW9BZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAAAgAAABdzdGF0aWNfc3dvcFByb21vQWRkcmVzcwEAAAASZ2V0QmFieUR1Y2tBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAAAgAAABZzdGF0aWNfYmFieUR1Y2tBZGRyZXNzAQAAABVnZXRSZWZDb250cmFjdEFkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAACAAAAGXN0YXRpY19yZWZDb250cmFjdEFkZHJlc3MBAAAAEWdldENvdXBvbnNBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAAAgAAABVzdGF0aWNfY291cG9uc0FkZHJlc3MBAAAADmdldEJ1cm5BZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAAAgAAABJzdGF0aWNfYnVybkFkZHJlc3MAAAAAEGRlbGF5Rm9ySGF0Y2hpbmcAAAAAAAAAAAIAAAAAC3R5cGVzQW1vdW50AAAAAAAAAAAKAAAAAA1SZWZlcmVyUmV3YXJkAAAAAAAAAAAFAAAAAA9IYXRjaGluZ1N0YXJ0ZWQCAAAAEEhBVENISU5HX1NUQVJURUQAAAAAEEhhdGNoaW5nRmluaXNoZWQCAAAAEUhBVENISU5HX0ZJTklTSEVEAQAAAAhpc0xvY2tlZAAAAAAEAAAADW1hc3RlckFkZHJlc3MJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVeIsgYh8IDKQaIyACMe/6mJIkg53XAWyQkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAANbWFzdGVyQWRkcmVzcwIAAAAHZWdnbG9jawMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAAAAAAAAAAAAAQAAABRnZXRIYXRjaGluZ1N0YXR1c0tleQAAAAIAAAAHYWRkcmVzcwAAAAR0eElkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdhZGRyZXNzAgAAAAFfCQACWAAAAAEFAAAABHR4SWQCAAAAB19zdGF0dXMBAAAAGmdldEhhdGNoaW5nRmluaXNoSGVpZ2h0S2V5AAAAAgAAAAdhZGRyZXNzAAAABHR4SWQJAAEsAAAAAgkAASwAAAACCQABLAAA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AAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4FAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQAAAAAAAAIFAAAABWVudHJ5BQAAAAVlbnRyeQkABE4AAAACBQAAAAdyZXN1bHRzBQAAAAVlbnRyeQkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAbc3RhcnREdWNrSGF0Y2hpbmdGb3JBZGRyZXNzAAAAAQAAAAdhZGRyZXNzAwkAAGYAAAACCQEAAAAIaXNMb2NrZWQAAAAAAAAAAAAAAAAACQAAAgAAAAECAAAALUlTREhGQTogRUdHIG9wZXJhdGlvbnMgYXJlIHRlbXBvcmFyaWx5IGxvY2tlZAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgkBAAAAE2dldFN3b3BQcm9tb0FkZHJlc3MAAAAACQAAAgAAAAECAAAAGUlTREhGQTogUGVybWlzc2lvbiBkZW5pZWQEAAAAEHRvdGFsRHVja3NBbW91bnQJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQIAAAAMZHVja3NfYW1vdW50BAAAAAplZ2dzTmVlZGVkCQEAAAAVY291bnRFZ2dzTmVlZGVkQW1vdW50AAAAAQUAAAAQdG90YWxEdWNrc0Ftb3VudAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAUZ2V0SGF0Y2hpbmdTdGF0dXNLZXkAAAACBQAAAAdhZGRyZXNzCAUAAAABaQAAAA10cmFuc2FjdGlvbklkBQAAAA9IYXRjaGluZ1N0YXJ0ZWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABpnZXRIYXRjaGluZ0ZpbmlzaEhlaWdodEtleQAAAAIFAAAAB2FkZHJlc3MIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQJAABkAAAAAgUAAAAGaGVpZ2h0BQAAABBkZWxheUZvckhhdGNoaW5nCQAE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bGVyCQEAAAARZ2V0UmViaXJ0aEFkZHJlc3MAAAAACQAAAgAAAAECAAAAEklTRkQ6IHJlYmlydGggb25seQQAAAAEdHhJZAkAAlkAAAABBQAAAAd0eElkU3RyBAAAABFoYXRjaGluZ1N0YXR1c0tleQkBAAAAFGdldEhhdGNoaW5nU3RhdHVzS2V5AAAAAgUAAAAHYWRkcmVzcwUAAAAEdHhJZAQAAAAPZmluaXNoSGVpZ2h0S2V5CQEAAAAaZ2V0SGF0Y2hpbmdGaW5pc2hIZWlnaHRLZXkAAAACBQAAAAdhZGRyZXNzBQAAAAR0eElkBAAAABB0b3RhbER1Y2tzQW1vdW50CQEAAAANdHJ5R2V0SW50ZWdlcgAAAAECAAAADGR1Y2tzX2Ftb3VudAQAAAAKZWdnc05lZWRlZAkBAAAAFWNvdW50RWdnc05lZWRlZEFtb3VudAAAAAEFAAAAEHRvdGFsRHVja3NBbW91bnQEAAAADSR0MDEwMTg3MTAzNDkJAQAAAA1nZXRSYW5kb21OYW1lAAAAAgUAAAAEdHhJZAkAAGQAAAACCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAPpAAAAAQUAAAAEdHhJZAkAASwAAAACCQABLAAAAAIFAAAAB3R4SWRTdHICAAAACyBub3QgZm91bmQgCQACWAAAAAEFAAAABHR4SWQAAAAAAAAAAAEEAAAAB2R1Y2tHZW4IBQAAAA0kdDAxMDE4NzEwMzQ5AAAAAl8xBAAAAAdmYXJtR2VuCAUAAAANJHQwMTAxODcxMDM0OQAAAAJfMgQAAAASamFja3BvdFJhbmRvbUVudHJ5CAUAAAANJHQwMTAxODcxMDM0OQAAAAJfMwQAAAALZGVzY3JpcHRpb24JAAEsAAAAAgkAASwAAAACAgAAAA57Imdlbm90eXBlIjogIgUAAAAHZHVja0dlbgIAAAAZIiwgImNyb3NzYnJlZWRpbmciOiB0cnVlfQQAAAAFYXNzZXQJAARDAAAABwUAAAAHZHVja0dlbgUAAAALZGVzY3JpcHRpb24AAAAAAAAAAAEAAAAAAAAAAAAHBQAAAAR1bml0BQAAAAZoZWlnaHQEAAAAB2Fzc2V0SWQJAAQ4AAAAAQUAAAAFYXNzZXQEAAAABmFtb3VudAkAAGQAAAACCQEAAAANdHJ5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", "height": 3217820, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HB9P3ALLXfFqT62nKEHbjiUZPt7dzXfJUWw8rBnNR37G Next: FWCr7BUNsk28RhNHyX3CR8PFjxV4wUFQtu3UUxLNWXPv Diff:
OldNewDifferences
3131
3232
3333 func getCouponsAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_couponsAddress")))
34+
35+
36+func getBurnAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_burnAddress")))
3437
3538
3639 let delayForHatching = 2
9497 func getRandomName (txId,hatchingFinishHeight) = {
9598 let jackpotRandom = getRandomNumber(1000, txId, hatchingFinishHeight, 4)
9699 let entry = IntegerEntry("last_jackpot_random", jackpotRandom)
97- if (if (if ((jackpotRandom > 495))
98- then (505 > jackpotRandom)
99- else false)
100+ if (if ((jackpotRandom == 512))
100101 then (wasUniqueBorn("DUCK-WWWWGOLD-JU") == 0)
101102 else false)
102103 then $Tuple3("DUCK-WWWWGOLD-JU", "1D1G1L1O4W-J", entry)
188189 let refCall = invoke(getRefContractAddress(), "refPayment", [refererAddress], [AttachedPayment(getEggAssetId(), refererReward)])
189190 if ((refCall == refCall))
190191 then {
191- let payback = (firstPayment.amount - leftToPay)
192- if ((payback > 0))
193- then [ScriptTransfer(i.caller, payback, getEggAssetId())]
194- else nil
192+ let burnCall = invoke(getBurnAddress(), "burnAttachedPayments", nil, [AttachedPayment(getEggAssetId(), (leftToPay - refererReward))])
193+ if ((burnCall == burnCall))
194+ then {
195+ let payback = (firstPayment.amount - leftToPay)
196+ if ((payback > 0))
197+ then [ScriptTransfer(i.caller, payback, getEggAssetId())]
198+ else nil
199+ }
200+ else throw("Strict value is not equal to itself.")
195201 }
196202 else throw("Strict value is not equal to itself.")
197203 }
242248 else if ((hatchingFinishHeight > height))
243249 then throw((((("Hatching is not finished yet " + toString((hatchingFinishHeight - height))) + " blocks remaining, it will take around ") + toString((hatchingFinishHeight - height))) + " minutes"))
244250 else {
245- let $t086118697 = getRandomName(txId, hatchingFinishHeight)
246- let duckGen = $t086118697._1
247- let farmGen = $t086118697._2
248- let jackpotRandomEntry = $t086118697._3
251+ let $t088328918 = getRandomName(txId, hatchingFinishHeight)
252+ let duckGen = $t088328918._1
253+ let farmGen = $t088328918._2
254+ let jackpotRandomEntry = $t088328918._3
249255 let description = (("{\"genotype\": \"" + duckGen) + "\", \"crossbreeding\": true}")
250256 let asset = Issue(duckGen, description, 1, 0, false, unit, hatchingFinishHeight)
251257 let assetId = calculateAssetId(asset)
265271 let finishHeightKey = getHatchingFinishHeightKey(address, txId)
266272 let totalDucksAmount = tryGetInteger("ducks_amount")
267273 let eggsNeeded = countEggsNeededAmount(totalDucksAmount)
268- let $t0996610128 = getRandomName(txId, (valueOrErrorMessage(transactionHeightById(txId), ((txIdStr + " not found ") + toBase58String(txId))) + 1))
269- let duckGen = $t0996610128._1
270- let farmGen = $t0996610128._2
271- let jackpotRandomEntry = $t0996610128._3
274+ let $t01018710349 = getRandomName(txId, (valueOrErrorMessage(transactionHeightById(txId), ((txIdStr + " not found ") + toBase58String(txId))) + 1))
275+ let duckGen = $t01018710349._1
276+ let farmGen = $t01018710349._2
277+ let jackpotRandomEntry = $t01018710349._3
272278 let description = (("{\"genotype\": \"" + duckGen) + "\", \"crossbreeding\": true}")
273279 let asset = Issue(duckGen, description, 1, 0, false, unit, height)
274280 let assetId = calculateAssetId(asset)
290296 let finishHeightKey = getHatchingFinishHeightKey(address, txId)
291297 let totalDucksAmount = tryGetInteger("ducks_amount")
292298 let eggsNeeded = countEggsNeededAmount(totalDucksAmount)
293- let $t01160311655 = $Tuple2((("DUCK-" + gen) + "-JU"), "8W-J")
294- let duckGen = $t01160311655._1
295- let farmGen = $t01160311655._2
299+ let $t01182411876 = $Tuple2((("DUCK-" + gen) + "-JU"), "8W-J")
300+ let duckGen = $t01182411876._1
301+ let farmGen = $t01182411876._2
296302 let description = (("{\"genotype\": \"" + duckGen) + "\", \"crossbreeding\": true}")
297303 let asset = Issue(duckGen, description, 1, 0, false, unit, height)
298304 let assetId = calculateAssetId(asset)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func tryGetStringExternal (address,key) = match getString(address, key) {
55 case a: String =>
66 a
77 case _ =>
88 ""
99 }
1010
1111
1212 func tryGetString (key) = tryGetStringExternal(this, key)
1313
1414
1515 func getOracle () = Address(fromBase58String(tryGetString("static_oracleAddress")))
1616
1717
1818 func getEggAssetId () = fromBase58String(tryGetStringExternal(getOracle(), "static_eggAssetId"))
1919
2020
2121 func getRebirthAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_rebirthAddress")))
2222
2323
2424 func getSwopPromoAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_swopPromoAddress")))
2525
2626
2727 func getBabyDuckAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_babyDuckAddress")))
2828
2929
3030 func getRefContractAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_refContractAddress")))
3131
3232
3333 func getCouponsAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_couponsAddress")))
34+
35+
36+func getBurnAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_burnAddress")))
3437
3538
3639 let delayForHatching = 2
3740
3841 let typesAmount = 10
3942
4043 let RefererReward = 5
4144
4245 let HatchingStarted = "HATCHING_STARTED"
4346
4447 let HatchingFinished = "HATCHING_FINISHED"
4548
4649 func isLocked () = {
4750 let masterAddress = Address(base58'3PEPftf2kWZDmAaWBjs6BUJa9957kiA2PkU')
4851 match getInteger(masterAddress, "egglock") {
4952 case b: Int =>
5053 b
5154 case _ =>
5255 0
5356 }
5457 }
5558
5659
5760 func getHatchingStatusKey (address,txId) = (((address + "_") + toBase58String(txId)) + "_status")
5861
5962
6063 func getHatchingFinishHeightKey (address,txId) = (((address + "_") + toBase58String(txId)) + "_fh")
6164
6265
6366 func getDuckIdKey (address,txId) = (((address + "_") + toBase58String(txId)) + "_di")
6467
6568
6669 func getDuckStatsKey (genString) = (("stats_" + genString) + "_amount")
6770
6871
6972 func tryGetInteger (key) = {
7073 let val = match getInteger(this, key) {
7174 case b: Int =>
7275 b
7376 case _ =>
7477 0
7578 }
7679 val
7780 }
7881
7982
8083 let discountCoefficient = tryGetInteger("discountCoefficient")
8184
8285 let saleCoefficient = tryGetInteger("saleCoefficient")
8386
8487 func getRandomNumber (variants,txId,hatchingFinishHeight,offset) = {
8588 let randomSeedBlock = value(blockInfoByHeight((hatchingFinishHeight - 1)))
8689 let randomHash = sha256(((base58'incubator' + txId) + value(randomSeedBlock.vrf)))
8790 (toInt(randomHash, offset) % variants)
8891 }
8992
9093
9194 func wasUniqueBorn (gen) = tryGetInteger(getDuckStatsKey(gen))
9295
9396
9497 func getRandomName (txId,hatchingFinishHeight) = {
9598 let jackpotRandom = getRandomNumber(1000, txId, hatchingFinishHeight, 4)
9699 let entry = IntegerEntry("last_jackpot_random", jackpotRandom)
97- if (if (if ((jackpotRandom > 495))
98- then (505 > jackpotRandom)
99- else false)
100+ if (if ((jackpotRandom == 512))
100101 then (wasUniqueBorn("DUCK-WWWWGOLD-JU") == 0)
101102 else false)
102103 then $Tuple3("DUCK-WWWWGOLD-JU", "1D1G1L1O4W-J", entry)
103104 else {
104105 let typeRandom = getRandomNumber(4, txId, hatchingFinishHeight, 5)
105106 let colorRandom = getRandomNumber(4, txId, hatchingFinishHeight, 6)
106107 let color = if ((colorRandom == 0))
107108 then "Y"
108109 else if ((colorRandom == 1))
109110 then "G"
110111 else if ((colorRandom == 2))
111112 then "B"
112113 else "R"
113114 if ((typeRandom == 0))
114115 then $Tuple3(("DUCK-HHHHHHHH-G" + color), "8H-G", entry)
115116 else if ((typeRandom == 1))
116117 then $Tuple3(("DUCK-GGGGGGGG-G" + color), "8G-G", entry)
117118 else if ((typeRandom == 2))
118119 then $Tuple3(("DUCK-IIIIIIII-G" + color), "8I-G", entry)
119120 else $Tuple3(("DUCK-KKKKKKKK-G" + color), "8K-G", entry)
120121 }
121122 }
122123
123124
124125 func countEggsNeededAmount (totalDucksAmount) = {
125126 let n = totalDucksAmount
126127 let g = discountCoefficient
127128 let s = saleCoefficient
128129 let t = typesAmount
129130 let price = pow((100 + ((n * g) / (10 * t))), 2, 5, 1, 2, DOWN)
130131 if ((saleCoefficient == 0))
131132 then (price * 1000000)
132133 else (((price * 1000000) / 100) * (100 - saleCoefficient))
133134 }
134135
135136
136137 func asInt (value) = match value {
137138 case int: Int =>
138139 int
139140 case _ =>
140141 throw("IAI: wrong type, expected: Int")
141142 }
142143
143144
144145 @Callable(i)
145146 func configureOracle (oracle) = if ((i.caller != this))
146147 then throw("ICU: admin only")
147148 else [StringEntry("static_oracleAddress", oracle)]
148149
149150
150151
151152 @Callable(i)
152153 func setDiscount (val) = if ((i.caller != this))
153154 then throw("ISD: admin_only")
154155 else [IntegerEntry("discountCoefficient", val)]
155156
156157
157158
158159 @Callable(i)
159160 func setSale (val) = if ((i.caller != this))
160161 then throw("ISS: admin_only")
161162 else [IntegerEntry("saleCoefficient", val)]
162163
163164
164165
165166 @Callable(i)
166167 func startDuckHatching (refererAddress) = if ((isLocked() > 0))
167168 then throw("ISDH: EGG operations are temporarily locked")
168169 else {
169170 let totalDucksAmount = tryGetInteger("ducks_amount")
170171 let eggsNeeded = countEggsNeededAmount(totalDucksAmount)
171172 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))]
172173 let entry = if ((i.caller == getBabyDuckAddress()))
173174 then [BooleanEntry((("hatching_" + toBase58String(i.transactionId)) + "_babyDuck"), true)]
174175 else {
175176 let amountPaidByCoupons = asInt(invoke(getCouponsAddress(), "useCoupons", [eggsNeeded], nil))
176177 if ((amountPaidByCoupons == amountPaidByCoupons))
177178 then {
178179 let leftToPay = (eggsNeeded - amountPaidByCoupons)
179180 if ((leftToPay != 0))
180181 then {
181182 let firstPayment = value(i.payments[0])
182183 if ((firstPayment.assetId != getEggAssetId()))
183184 then throw(("ISDH: You can attach only EGG tokens with the following asset id: " + toBase58String(getEggAssetId())))
184185 else if ((leftToPay > firstPayment.amount))
185186 then throw(("ISDH: To hatch a duck you currently need the following amount of EGGlets: " + toString(leftToPay)))
186187 else {
187188 let refererReward = fraction(leftToPay, RefererReward, 100)
188189 let refCall = invoke(getRefContractAddress(), "refPayment", [refererAddress], [AttachedPayment(getEggAssetId(), refererReward)])
189190 if ((refCall == refCall))
190191 then {
191- let payback = (firstPayment.amount - leftToPay)
192- if ((payback > 0))
193- then [ScriptTransfer(i.caller, payback, getEggAssetId())]
194- else nil
192+ let burnCall = invoke(getBurnAddress(), "burnAttachedPayments", nil, [AttachedPayment(getEggAssetId(), (leftToPay - refererReward))])
193+ if ((burnCall == burnCall))
194+ then {
195+ let payback = (firstPayment.amount - leftToPay)
196+ if ((payback > 0))
197+ then [ScriptTransfer(i.caller, payback, getEggAssetId())]
198+ else nil
199+ }
200+ else throw("Strict value is not equal to itself.")
195201 }
196202 else throw("Strict value is not equal to itself.")
197203 }
198204 }
199205 else nil
200206 }
201207 else throw("Strict value is not equal to itself.")
202208 }
203209 if ((entry == entry))
204210 then (results ++ entry)
205211 else throw("Strict value is not equal to itself.")
206212 }
207213
208214
209215
210216 @Callable(i)
211217 func startDuckHatchingForAddress (address) = if ((isLocked() > 0))
212218 then throw("ISDHFA: EGG operations are temporarily locked")
213219 else if ((i.caller != getSwopPromoAddress()))
214220 then throw("ISDHFA: Permission denied")
215221 else {
216222 let totalDucksAmount = tryGetInteger("ducks_amount")
217223 let eggsNeeded = countEggsNeededAmount(totalDucksAmount)
218224 [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)]
219225 }
220226
221227
222228
223229 @Callable(i)
224230 func finishDuckHatching (txIdStr) = {
225231 let txId = fromBase58String(txIdStr)
226232 let hatchingStatusKey = getHatchingStatusKey(toString(i.caller), txId)
227233 let finishHeightKey = getHatchingFinishHeightKey(toString(i.caller), txId)
228234 let duckIdKey = getDuckIdKey(toString(i.caller), txId)
229235 let duckFromBaby = match getBoolean((("hatching_" + txIdStr) + "_babyDuck")) {
230236 case t: Boolean =>
231237 t
232238 case _ =>
233239 false
234240 }
235241 let hatchingTxStatus = getStringValue(this, hatchingStatusKey)
236242 let hatchingFinishHeight = getIntegerValue(this, finishHeightKey)
237243 if ((hatchingTxStatus == HatchingFinished))
238244 then {
239245 let duckId = getStringValue(this, getDuckIdKey(toString(i.caller), txId))
240246 throw(("IFDH: The duck was hatched and claimed already, here is the folowing: " + duckId))
241247 }
242248 else if ((hatchingFinishHeight > height))
243249 then throw((((("Hatching is not finished yet " + toString((hatchingFinishHeight - height))) + " blocks remaining, it will take around ") + toString((hatchingFinishHeight - height))) + " minutes"))
244250 else {
245- let $t086118697 = getRandomName(txId, hatchingFinishHeight)
246- let duckGen = $t086118697._1
247- let farmGen = $t086118697._2
248- let jackpotRandomEntry = $t086118697._3
251+ let $t088328918 = getRandomName(txId, hatchingFinishHeight)
252+ let duckGen = $t088328918._1
253+ let farmGen = $t088328918._2
254+ let jackpotRandomEntry = $t088328918._3
249255 let description = (("{\"genotype\": \"" + duckGen) + "\", \"crossbreeding\": true}")
250256 let asset = Issue(duckGen, description, 1, 0, false, unit, hatchingFinishHeight)
251257 let assetId = calculateAssetId(asset)
252258 let amount = (tryGetInteger(getDuckStatsKey(duckGen)) + 1)
253259 [StringEntry(hatchingStatusKey, HatchingFinished), StringEntry(duckIdKey, toBase58String(assetId)), StringEntry(toBase58String(assetId), duckIdKey), BooleanEntry((("duck_" + toBase58String(assetId)) + "_grown"), duckFromBaby), IntegerEntry(getDuckStatsKey(duckGen), amount), jackpotRandomEntry, IntegerEntry((("stats_" + farmGen) + "_quantity"), (tryGetInteger((("stats_" + farmGen) + "_quantity")) + 1)), asset, ScriptTransfer(i.caller, 1, assetId)]
254260 }
255261 }
256262
257263
258264
259265 @Callable(i)
260266 func issueFreeDuck (address,txIdStr) = if ((i.caller != getRebirthAddress()))
261267 then throw("ISFD: rebirth only")
262268 else {
263269 let txId = fromBase58String(txIdStr)
264270 let hatchingStatusKey = getHatchingStatusKey(address, txId)
265271 let finishHeightKey = getHatchingFinishHeightKey(address, txId)
266272 let totalDucksAmount = tryGetInteger("ducks_amount")
267273 let eggsNeeded = countEggsNeededAmount(totalDucksAmount)
268- let $t0996610128 = getRandomName(txId, (valueOrErrorMessage(transactionHeightById(txId), ((txIdStr + " not found ") + toBase58String(txId))) + 1))
269- let duckGen = $t0996610128._1
270- let farmGen = $t0996610128._2
271- let jackpotRandomEntry = $t0996610128._3
274+ let $t01018710349 = getRandomName(txId, (valueOrErrorMessage(transactionHeightById(txId), ((txIdStr + " not found ") + toBase58String(txId))) + 1))
275+ let duckGen = $t01018710349._1
276+ let farmGen = $t01018710349._2
277+ let jackpotRandomEntry = $t01018710349._3
272278 let description = (("{\"genotype\": \"" + duckGen) + "\", \"crossbreeding\": true}")
273279 let asset = Issue(duckGen, description, 1, 0, false, unit, height)
274280 let assetId = calculateAssetId(asset)
275281 let amount = (tryGetInteger(getDuckStatsKey(duckGen)) + 1)
276282 let duckIdKey = getDuckIdKey(address, txId)
277283 $Tuple2([IntegerEntry(getHatchingFinishHeightKey(address, txId), height), IntegerEntry("ducks_amount", (totalDucksAmount + 1)), IntegerEntry("ducks_last_price", (eggsNeeded / 1000000)), jackpotRandomEntry, 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))
278284 }
279285
280286
281287
282288 @Callable(i)
283289 func issueJackpot (address,txIdStr,gen) = if (if ((i.caller != getRebirthAddress()))
284290 then (i.caller != this)
285291 else false)
286292 then throw("ISJ: admin or rebirth only")
287293 else {
288294 let txId = fromBase58String(txIdStr)
289295 let hatchingStatusKey = getHatchingStatusKey(address, txId)
290296 let finishHeightKey = getHatchingFinishHeightKey(address, txId)
291297 let totalDucksAmount = tryGetInteger("ducks_amount")
292298 let eggsNeeded = countEggsNeededAmount(totalDucksAmount)
293- let $t01160311655 = $Tuple2((("DUCK-" + gen) + "-JU"), "8W-J")
294- let duckGen = $t01160311655._1
295- let farmGen = $t01160311655._2
299+ let $t01182411876 = $Tuple2((("DUCK-" + gen) + "-JU"), "8W-J")
300+ let duckGen = $t01182411876._1
301+ let farmGen = $t01182411876._2
296302 let description = (("{\"genotype\": \"" + duckGen) + "\", \"crossbreeding\": true}")
297303 let asset = Issue(duckGen, description, 1, 0, false, unit, height)
298304 let assetId = calculateAssetId(asset)
299305 let duckIdKey = getDuckIdKey(address, txId)
300306 let valueDuckIdKeyExits = tryGetString(duckIdKey)
301307 if ((valueDuckIdKeyExits != ""))
302308 then throw((("ISJ: You will override following duckId :" + duckIdKey) + " make sure that your txId is unique!"))
303309 else $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))
304310 }
305311
306312
307313
308314 @Callable(i)
309315 func reduceRarity (assetId,fGen) = {
310316 let asset = fromBase58String(assetId)
311317 if (if ((i.caller != getRebirthAddress()))
312318 then (i.caller != this)
313319 else false)
314320 then throw("IRR: admin or rebirth only")
315321 else {
316322 let duckGen = value(assetInfo(asset)).name
317323 let letter = takeRight(take(duckGen, 6), 1)
318324 let farmGen = (("8" + letter) + "-G")
319325 [IntegerEntry(getDuckStatsKey(duckGen), (tryGetInteger(getDuckStatsKey(duckGen)) - 1)), IntegerEntry((("stats_" + farmGen) + "_quantity"), (tryGetInteger((("stats_" + farmGen) + "_quantity")) - 1))]
320326 }
321327 }
322328
323329
324330 @Verifier(tx)
325331 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
326332

github/deemru/w8io/6500d08 
70.93 ms