tx · 6Hds66BLupA7ce6tf8QcMKM4nh8sQaoMUgy9EWLejLNT

3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv:  -0.01400000 Waves

2021.11.26 13:36 [2872840] smart account 3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv > SELF 0.00000000 Waves

{ "type": 13, "id": "6Hds66BLupA7ce6tf8QcMKM4nh8sQaoMUgy9EWLejLNT", "fee": 1400000, "feeAssetId": null, "timestamp": 1637923053722, "version": 2, "chainId": 87, "sender": "3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv", "senderPublicKey": "EBHsV7TQYm4qS2V7iZXEXwcbUdEYQyCSLEdY2AMvLPns", "proofs": [ "2N69uh3nEexfdLVcaQFeBxNyJNbDnpHfZ9HUWjDY25vrW5j9aKHzqukf6SAbwxydWkwRmwhdBV6UitnY2ysWZWBa" ], "script": "base64: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", "height": 2872840, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CYSsZpDQNdyox76emSfZ1niNmG6RyHQvGJxHrQM4RKEy Next: CSXRdRX1rhq669GKAGiKy8fXTU5sbrXUgJaBQDztCMLT Diff:
OldNewDifferences
44 let eggsAssetId = base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS'
55
66 let delayForHatching = 2
7-
8-let discountCoefficient = 10
97
108 let typesAmount = 9
119
5250 val
5351 }
5452
53+
54+let discountCoefficient = tryGetInteger("discountCoefficient")
5555
5656 func getRandomNumber (variants,txId,hatchingFinishHeight,offset) = {
5757 let randomSeedBlock = value(blockInfoByHeight((hatchingFinishHeight - 1)))
134134
135135
136136 @Callable(i)
137+func setDiscount (val) = if ((i.caller != this))
138+ then throw("admin_only")
139+ else [IntegerEntry("discountCoefficient", val)]
140+
141+
142+
143+@Callable(i)
137144 func startDuckHatching (refererAddress) = if ((isLocked() > 0))
138145 then throw("EGG operations are temporarily locked")
139146 else {
171178 else if ((hatchingFinishHeight > height))
172179 then throw((((("Hatching is not finished yet " + toString((hatchingFinishHeight - height))) + " blocks remaining, it will take around ") + toString((hatchingFinishHeight - height))) + " minutes"))
173180 else {
174- let $t057195785 = getRandomName(txId, hatchingFinishHeight)
175- let duckGen = $t057195785._1
176- let farmGen = $t057195785._2
181+ let $t059135979 = getRandomName(txId, hatchingFinishHeight)
182+ let duckGen = $t059135979._1
183+ let farmGen = $t059135979._2
177184 let description = (("{\"genotype\": \"" + duckGen) + "\", \"crossbreeding\": true}")
178185 let asset = Issue(duckGen, description, 1, 0, false, unit, hatchingFinishHeight)
179186 let assetId = calculateAssetId(asset)
193200 let finishHeightKey = getHatchingFinishHeightKey(address, txId)
194201 let totalDucksAmount = tryGetInteger("ducks_amount")
195202 let eggsNeeded = countEggsNeededAmount(totalDucksAmount)
196- let $t069417026 = getRandomName(txId, (value(transactionHeightById(txId)) + 1))
197- let duckGen = $t069417026._1
198- let farmGen = $t069417026._2
203+ let $t071357220 = getRandomName(txId, (value(transactionHeightById(txId)) + 1))
204+ let duckGen = $t071357220._1
205+ let farmGen = $t071357220._2
199206 let description = (("{\"genotype\": \"" + duckGen) + "\", \"crossbreeding\": true}")
200207 let asset = Issue(duckGen, description, 1, 0, false, unit, height)
201208 let assetId = calculateAssetId(asset)
217224 let finishHeightKey = getHatchingFinishHeightKey(address, txId)
218225 let totalDucksAmount = tryGetInteger("ducks_amount")
219226 let eggsNeeded = countEggsNeededAmount(totalDucksAmount)
220- let $t084798531 = $Tuple2((("DUCK-" + gen) + "-JU"), "8W-J")
221- let duckGen = $t084798531._1
222- let farmGen = $t084798531._2
227+ let $t086738725 = $Tuple2((("DUCK-" + gen) + "-JU"), "8W-J")
228+ let duckGen = $t086738725._1
229+ let farmGen = $t086738725._2
223230 let description = (("{\"genotype\": \"" + duckGen) + "\", \"crossbreeding\": true}")
224231 let asset = Issue(duckGen, description, 1, 0, false, unit, height)
225232 let assetId = calculateAssetId(asset)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let eggsAssetId = base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS'
55
66 let delayForHatching = 2
7-
8-let discountCoefficient = 10
97
108 let typesAmount = 9
119
1210 let refContractAddress = base58'3P8ejTkfRpz9WqCwCuihesNXU5k3zmFFfVe'
1311
1412 let RefererReward = 5
1513
1614 let HatchingStarted = "HATCHING_STARTED"
1715
1816 let HatchingFinished = "HATCHING_FINISHED"
1917
2018 let rebirthAddress = base58'3PCC6fVHNa6289DTDmcUo3RuLaFmteZZsmQ'
2119
2220 func isLocked () = {
2321 let masterAddress = Address(base58'3PEPftf2kWZDmAaWBjs6BUJa9957kiA2PkU')
2422 match getInteger(masterAddress, "egglock") {
2523 case b: Int =>
2624 b
2725 case _ =>
2826 0
2927 }
3028 }
3129
3230
3331 func getHatchingStatusKey (address,txId) = (((address + "_") + toBase58String(txId)) + "_status")
3432
3533
3634 func getHatchingFinishHeightKey (address,txId) = (((address + "_") + toBase58String(txId)) + "_fh")
3735
3836
3937 func getDuckIdKey (address,txId) = (((address + "_") + toBase58String(txId)) + "_di")
4038
4139
4240 func getDuckStatsKey (genString) = (("stats_" + genString) + "_amount")
4341
4442
4543 func tryGetInteger (key) = {
4644 let val = match getInteger(this, key) {
4745 case b: Int =>
4846 b
4947 case _ =>
5048 0
5149 }
5250 val
5351 }
5452
53+
54+let discountCoefficient = tryGetInteger("discountCoefficient")
5555
5656 func getRandomNumber (variants,txId,hatchingFinishHeight,offset) = {
5757 let randomSeedBlock = value(blockInfoByHeight((hatchingFinishHeight - 1)))
5858 let randomHash = sha256((txId + value(randomSeedBlock.vrf)))
5959 (toInt(randomHash, (offset * 8)) % variants)
6060 }
6161
6262
6363 func wasUniqueBorn (gen) = tryGetInteger(getDuckStatsKey(gen))
6464
6565
6666 func getRandomName (txId,hatchingFinishHeight) = {
6767 let jackpotRandom = getRandomNumber(500, txId, hatchingFinishHeight, 0)
6868 if (if ((jackpotRandom == 112))
6969 then (wasUniqueBorn("DUCK-WWWWWWWF-JU") == 0)
7070 else false)
7171 then $Tuple2("DUCK-WWWWWWWF-JU", "8W-J")
7272 else if (if ((jackpotRandom == 128))
7373 then (wasUniqueBorn("DUCK-WWWWWSX2-JU") == 0)
7474 else false)
7575 then $Tuple2("DUCK-WWWWWSX2-JU", "8W-J")
7676 else if (if (if (if (if (if (if (if (if (if (if ((jackpotRandom == 154))
7777 then true
7878 else (jackpotRandom == 155))
7979 then true
8080 else (jackpotRandom == 156))
8181 then true
8282 else (jackpotRandom == 157))
8383 then true
8484 else (jackpotRandom == 158))
8585 then true
8686 else (jackpotRandom == 159))
8787 then true
8888 else (jackpotRandom == 160))
8989 then true
9090 else (jackpotRandom == 161))
9191 then true
9292 else (jackpotRandom == 162))
9393 then true
9494 else (jackpotRandom == 163))
9595 then (wasUniqueBorn("DUCK-WWWWHELL-JU") == 0)
9696 else false)
9797 then $Tuple2("DUCK-WWWWHELL-JU", "8W-J")
9898 else if (if ((jackpotRandom == 401))
9999 then (wasUniqueBorn("DUCK-WWWWWSX4-JU") == 0)
100100 else false)
101101 then $Tuple2("DUCK-WWWWWSX4-JU", "8W-J")
102102 else if (if ((jackpotRandom == 402))
103103 then (wasUniqueBorn("DUCK-WWWSQUID-JU") == 0)
104104 else false)
105105 then $Tuple2("DUCK-WWWSQUID-JU", "8W-J")
106106 else {
107107 let typeRandom = getRandomNumber(4, txId, hatchingFinishHeight, 0)
108108 let colorRandom = getRandomNumber(4, txId, hatchingFinishHeight, 1)
109109 let color = if ((colorRandom == 0))
110110 then "Y"
111111 else if ((colorRandom == 1))
112112 then "G"
113113 else if ((colorRandom == 2))
114114 then "B"
115115 else "R"
116116 if ((typeRandom == 0))
117117 then $Tuple2(("DUCK-FFFFFFFF-G" + color), "8F-G")
118118 else if ((typeRandom == 1))
119119 then $Tuple2(("DUCK-HHHHHHHH-G" + color), "8H-G")
120120 else if ((typeRandom == 2))
121121 then $Tuple2(("DUCK-GGGGGGGG-G" + color), "8G-G")
122122 else $Tuple2(("DUCK-IIIIIIII-G" + color), "8I-G")
123123 }
124124 }
125125
126126
127127 func countEggsNeededAmount (totalDucksAmount) = {
128128 let n = totalDucksAmount
129129 let g = discountCoefficient
130130 let t = typesAmount
131131 let price = pow((100 + ((n * g) / (10 * t))), 2, 5, 1, 2, DOWN)
132132 (price * 1000000)
133133 }
134134
135135
136136 @Callable(i)
137+func setDiscount (val) = if ((i.caller != this))
138+ then throw("admin_only")
139+ else [IntegerEntry("discountCoefficient", val)]
140+
141+
142+
143+@Callable(i)
137144 func startDuckHatching (refererAddress) = if ((isLocked() > 0))
138145 then throw("EGG operations are temporarily locked")
139146 else {
140147 let totalDucksAmount = tryGetInteger("ducks_amount")
141148 let eggsNeeded = countEggsNeededAmount(totalDucksAmount)
142149 let firstPayment = value(i.payments[0])
143150 if ((firstPayment.assetId != eggsAssetId))
144151 then throw(("You can attach only EGG tokens with the following asset id: " + toBase58String(eggsAssetId)))
145152 else if ((eggsNeeded > firstPayment.amount))
146153 then throw(("To hatch a duck you currently need the following amount of EGGlets: " + toString(eggsNeeded)))
147154 else {
148155 let refererReward = fraction(eggsNeeded, RefererReward, 100)
149156 let refCall = invoke(Address(refContractAddress), "refPayment", [refererAddress], [AttachedPayment(eggsAssetId, refererReward)])
150157 if ((refCall == refCall))
151158 then [StringEntry(getHatchingStatusKey(toString(i.caller), i.transactionId), HatchingStarted), IntegerEntry(getHatchingFinishHeightKey(toString(i.caller), i.transactionId), (height + delayForHatching)), IntegerEntry("ducks_amount", (totalDucksAmount + 1)), IntegerEntry("ducks_last_price", (eggsNeeded / 1000000)), ScriptTransfer(i.caller, (firstPayment.amount - eggsNeeded), eggsAssetId)]
152159 else throw("Strict value is not equal to itself.")
153160 }
154161 }
155162
156163
157164
158165 @Callable(i)
159166 func finishDuckHatching (txIdStr) = {
160167 let txId = fromBase58String(txIdStr)
161168 let hatchingStatusKey = getHatchingStatusKey(toString(i.caller), txId)
162169 let finishHeightKey = getHatchingFinishHeightKey(toString(i.caller), txId)
163170 let duckIdKey = getDuckIdKey(toString(i.caller), txId)
164171 let hatchingTxStatus = getStringValue(this, hatchingStatusKey)
165172 let hatchingFinishHeight = getIntegerValue(this, finishHeightKey)
166173 if ((hatchingTxStatus == HatchingFinished))
167174 then {
168175 let duckId = getStringValue(this, getDuckIdKey(toString(i.caller), txId))
169176 throw(("The duck was hatched and claimed already, here is the folowing: " + duckId))
170177 }
171178 else if ((hatchingFinishHeight > height))
172179 then throw((((("Hatching is not finished yet " + toString((hatchingFinishHeight - height))) + " blocks remaining, it will take around ") + toString((hatchingFinishHeight - height))) + " minutes"))
173180 else {
174- let $t057195785 = getRandomName(txId, hatchingFinishHeight)
175- let duckGen = $t057195785._1
176- let farmGen = $t057195785._2
181+ let $t059135979 = getRandomName(txId, hatchingFinishHeight)
182+ let duckGen = $t059135979._1
183+ let farmGen = $t059135979._2
177184 let description = (("{\"genotype\": \"" + duckGen) + "\", \"crossbreeding\": true}")
178185 let asset = Issue(duckGen, description, 1, 0, false, unit, hatchingFinishHeight)
179186 let assetId = calculateAssetId(asset)
180187 let amount = (tryGetInteger(getDuckStatsKey(duckGen)) + 1)
181188 [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(i.caller, 1, assetId)]
182189 }
183190 }
184191
185192
186193
187194 @Callable(i)
188195 func issueFreeDuck (address,txIdStr) = if ((i.caller != Address(rebirthAddress)))
189196 then throw("rebirth only")
190197 else {
191198 let txId = fromBase58String(txIdStr)
192199 let hatchingStatusKey = getHatchingStatusKey(address, txId)
193200 let finishHeightKey = getHatchingFinishHeightKey(address, txId)
194201 let totalDucksAmount = tryGetInteger("ducks_amount")
195202 let eggsNeeded = countEggsNeededAmount(totalDucksAmount)
196- let $t069417026 = getRandomName(txId, (value(transactionHeightById(txId)) + 1))
197- let duckGen = $t069417026._1
198- let farmGen = $t069417026._2
203+ let $t071357220 = getRandomName(txId, (value(transactionHeightById(txId)) + 1))
204+ let duckGen = $t071357220._1
205+ let farmGen = $t071357220._2
199206 let description = (("{\"genotype\": \"" + duckGen) + "\", \"crossbreeding\": true}")
200207 let asset = Issue(duckGen, description, 1, 0, false, unit, height)
201208 let assetId = calculateAssetId(asset)
202209 let amount = (tryGetInteger(getDuckStatsKey(duckGen)) + 1)
203210 let duckIdKey = getDuckIdKey(address, txId)
204211 $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))
205212 }
206213
207214
208215
209216 @Callable(i)
210217 func issueJackpot (address,txIdStr,gen) = if (if ((i.caller != Address(rebirthAddress)))
211218 then (i.caller != this)
212219 else false)
213220 then throw("admin or rebirth only")
214221 else {
215222 let txId = fromBase58String(txIdStr)
216223 let hatchingStatusKey = getHatchingStatusKey(address, txId)
217224 let finishHeightKey = getHatchingFinishHeightKey(address, txId)
218225 let totalDucksAmount = tryGetInteger("ducks_amount")
219226 let eggsNeeded = countEggsNeededAmount(totalDucksAmount)
220- let $t084798531 = $Tuple2((("DUCK-" + gen) + "-JU"), "8W-J")
221- let duckGen = $t084798531._1
222- let farmGen = $t084798531._2
227+ let $t086738725 = $Tuple2((("DUCK-" + gen) + "-JU"), "8W-J")
228+ let duckGen = $t086738725._1
229+ let farmGen = $t086738725._2
223230 let description = (("{\"genotype\": \"" + duckGen) + "\", \"crossbreeding\": true}")
224231 let asset = Issue(duckGen, description, 1, 0, false, unit, height)
225232 let assetId = calculateAssetId(asset)
226233 let duckIdKey = getDuckIdKey(address, txId)
227234 $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))
228235 }
229236
230237
231238
232239 @Callable(i)
233240 func reduceRarity (assetId,fGen) = {
234241 let asset = fromBase58String(assetId)
235242 if (if ((i.caller != Address(rebirthAddress)))
236243 then (i.caller != this)
237244 else false)
238245 then throw("admin or rebirth only")
239246 else {
240247 let duckGen = value(assetInfo(asset)).name
241248 let letter = takeRight(take(duckGen, 6), 1)
242249 let farmGen = (("8" + letter) + "-G")
243250 [IntegerEntry(getDuckStatsKey(duckGen), (tryGetInteger(getDuckStatsKey(duckGen)) - 1)), IntegerEntry((("stats_" + farmGen) + "_quantity"), (tryGetInteger((("stats_" + farmGen) + "_quantity")) - 1))]
244251 }
245252 }
246253
247254
248255 @Verifier(tx)
249256 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
250257

github/deemru/w8io/6500d08 
73.83 ms