tx · 7BR1ha9p7xPprHfNta8erN3o281MozMUYxnv6Eev8PXy

3MrzBHoTCQZEyP5yUGbHw4n6mHz7TzJo49r:  -0.02100000 Waves

2025.01.10 15:12 [3453051] smart account 3MrzBHoTCQZEyP5yUGbHw4n6mHz7TzJo49r > SELF 0.00000000 Waves

{ "type": 13, "id": "7BR1ha9p7xPprHfNta8erN3o281MozMUYxnv6Eev8PXy", "fee": 2100000, "feeAssetId": null, "timestamp": 1736511214573, "version": 2, "chainId": 84, "sender": "3MrzBHoTCQZEyP5yUGbHw4n6mHz7TzJo49r", "senderPublicKey": "6MVtbrRtyyap5cPj69TBD8W4H3Ln7cTPfMJSWd8VfvVB", "proofs": [ "2D7ZwmDs8Y46FHfaNnCn19Y7YWJJhg7drmrmkZqwsELvgd1j2h8rRdaibZfzMx4KL5a43ptPMDyDnsjmfuZBGdeV" ], "script": "base64:AAIFAAAAAAAAAC8IAhIECgIICBIECgIICBIDCgEIEgUKAwgICBIECgIICBIDCgEBEgMKAQgSAwoBCAAAACYBAAAAB2dldEJvb2wAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABBsAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0Jvb2xlYW4EAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIHAQAAAAhhc1N0cmluZwAAAAEAAAAFdmFsdWUEAAAAByRtYXRjaDAFAAAABXZhbHVlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXMFAAAAByRtYXRjaDAFAAAAAXMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABcwUAAAAHJG1hdGNoMAkAAAIAAAABAgAAACZ3cm9uZyB0eXBlLCBleHBlY3RlZDogU3RyaW5nLCBnb3Q6IEludAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAQAAAABcwUAAAAHJG1hdGNoMAkAAAIAAAABAgAAACd3cm9uZyB0eXBlLCBleHBlY3RlZDogU3RyaW5nLCBnb3Q6IFVuaXQJAAACAAAAAQIAAAAcd3JvbmcgdHlwZSwgZXhwZWN0ZWQ6IFN0cmluZwEAAAAJaXNUZXN0RW52AAAAAAkBAAAAB2dldEJvb2wAAAABAgAAAAdURVNURU5WAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIAAAAHYWRkcmVzcwAAAANrZXkEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWECAAAAAAEAAAAMdHJ5R2V0U3RyaW5nAAAAAQAAAANrZXkJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIFAAAABHRoaXMFAAAAA2tleQEAAAAXc3RhdGljS2V5X29yYWNsZUFkZHJlc3MAAAAAAgAAABRzdGF0aWNfb3JhY2xlQWRkcmVzcwEAAAASc3RhdGljS2V5X2V4dHJhRmVlAAAAAAIAAAAPc3RhdGljX2V4dHJhRmVlAQAAABdzdGF0aWNLZXlfZmVlQWdncmVnYXRvcgAAAAACAAAAFHN0YXRpY19mZWVBZ2dyZWdhdG9yAQAAABxzdGF0aWNLZXlfcmVmQ29udHJhY3RBZGRyZXNzAAAAAAIAAAAZc3RhdGljX3JlZkNvbnRyYWN0QWRkcmVzcwEAAAAcc3RhdGljS2V5X2VhZ2xSZWJpcnRoQWRkcmVzcwAAAAACAAAAGXN0YXRpY19lYWdsUmViaXJ0aEFkZHJlc3MBAAAAHHN0YXRpY0tleV9lYWdsRmFybWluZ0FkZHJlc3MAAAAAAgAAABlzdGF0aWNfZWFnbFN0YWtpbmdBZGRyZXNzAQAAABZzdGF0aWNLZXlfaXRlbXNBZGRyZXNzAAAAAAIAAAATc3RhdGljX2l0ZW1zQWRkcmVzcwEAAAAXc3RhdGljS2V5X3B1enpsZUFzc2V0SWQAAAAAAgAAABRzdGF0aWNfcHV6emxlQXNzZXRJZAEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQEAAAAXc3RhdGljS2V5X29yYWNsZUFkZHJlc3MAAAAAAQAAABBnZXRGZWVBZ2dyZWdhdG9yAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAXc3RhdGljS2V5X2ZlZUFnZ3JlZ2F0b3IAAAAAAQAAAA5nZXRNaW50QXNzZXRJZAAAAAAJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABdzdGF0aWNLZXlfcHV6emxlQXNzZXRJZAAAAAABAAAADmdldEJ1cm5BZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAAAgAAABJzdGF0aWNfYnVybkFkZHJlc3MBAAAAFWdldFJlZkNvbnRyYWN0QWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAHHN0YXRpY0tleV9yZWZDb250cmFjdEFkZHJlc3MAAAAAAQAAABVnZXRFYWdsUmViaXJ0aEFkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABxzdGF0aWNLZXlfZWFnbFJlYmlydGhBZGRyZXNzAAAAAAEAAAAVZ2V0RWFnbEZhcm1pbmdBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAcc3RhdGljS2V5X2VhZ2xGYXJtaW5nQWRkcmVzcwAAAAABAAAAD2dldEl0ZW1zQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAFnN0YXRpY0tleV9pdGVtc0FkZHJlc3MAAAAAAQAAABZjaGVja0FkZGl0aW9uYWxQYXltZW50AAAAAQAAAAdwYXltZW50AwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQJAAACAAAAAQIAAAAaQkRDQVA6IFBsZWFzZSBhdHRhY2ggd2F2ZXMEAAAACWZlZUFtb3VudAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABJzdGF0aWNLZXlfZXh0cmFGZWUAAAAAAwkBAAAAAiE9AAAAAggFAAAAB3BheW1lbnQAAAAGYW1vdW50BQAAAAlmZWVBbW91bnQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAHUJEQ0FQOiBQbGVhc2UgYXR0YWNoIGV4YWN0bHkgCQABpAAAAAEFAAAACWZlZUFtb3VudAIAAAATIGFtb3VudCBvZiB3YXZlbGV0cwkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAQZ2V0RmVlQWdn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YWxsZXIFAAAABHRoaXMHCQAAAgAAAAECAAAAGklTSjogYWRtaW4gb3IgcmViaXJ0aCBvbmx5BAAAAAR0eElkCQACWQAAAAEFAAAAB3R4SWRTdHIEAAAAEWhhdGNoaW5nU3RhdHVzS2V5CQEAAAAUZ2V0SGF0Y2hpbmdTdGF0dXNLZXkAAAACBQAAAAdhZGRyZXNzBQAAAAR0eElkBAAAAA9maW5pc2hIZWlnaHRLZXkJAQAAABpnZXRIYXRjaGluZ0ZpbmlzaEhlaWdodEtleQAAAAIFAAAAB2FkZHJlc3MFAAAABHR4SWQEAAAAEHRvdGFsRHVja3NBbW91bnQJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQIAAAALZWFnbF9hbW91bnQEAAAACmVnZ3NOZWVkZWQJAQAAABVjb3VudEVnZ3NOZWVkZWRBbW91bnQAAAABBQAAABB0b3RhbER1Y2tzQW1vdW50BAAAAAskdDA3MDYzNzExNQkABRQAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAFRUFHTC0FAAAAA2dlbgIAAAADLUpVAgAAAAQ4Vy1KBAAAAAdkdWNrR2VuCAUAAAALJHQwNzA2MzcxMTUAAAACXzEEAAAAB2Zhcm1HZW4IBQAAAAskdDA3MDYzNzExNQAAAAJfMgQAAAALZGVzY3JpcHRpb24JAAEsAAAAAgkAASwAAAACAgAAAA57Imdlbm90eXBlIjogIgUAAAAHZHVja0dlbgIAAAAZIiwgImNyb3NzYnJlZWRpbmciOiB0cnVlfQQAAAAFYXNzZXQJAARDAAAABwUAAAAHZHVja0dlbgUAAAALZGVzY3JpcHRpb24AAAAAAAAAAAEAAAAAAAAAAAAHBQAAAAR1bml0BQAAAAZoZWlnaHQEAAAAB2Fzc2V0SWQJAAQ4AAAAAQUAAAAFYXNzZXQEAAAACWR1Y2tJZEtleQkBAAAADGdldEVBR0xJZEtleQAAAAIFAAAAB2FkZHJlc3MFAAAABHR4SWQEAAAAE3ZhbHVlRHVja0lkS2V5RXhpdHMJAQAAAAx0cnlHZXRTdHJpbmcAAAABBQAAAAlkdWNrSWRLZXkDCQEAAAACIT0AAAACBQAAABN2YWx1ZUR1Y2tJZEtleUV4aXRzAgAAAAAJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAA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aGlzBQAAABFoYXRjaGluZ1N0YXR1c0tleQQAAAAUaGF0Y2hpbmdGaW5pc2hIZWlnaHQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMFAAAAD2ZpbmlzaEhlaWdodEtleQMJAAAAAAAAAgUAAAAQaGF0Y2hpbmdUeFN0YXR1cwUAAAAQSGF0Y2hpbmdGaW5pc2hlZAQAAAAGRUFHTElkCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzCQEAAAAMZ2V0RUFHTElkS2V5AAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAABHR4SWQJAAACAAAAAQkAASwAAAACAgAAAEFUaGUgRWFnbGUgd2FzIGhhdGNoZWQgYW5kIGNsYWltZWQgYWxyZWFkeSwgaGVyZSBpcyB0aGUgZm9sb3dpbmc6IAUAAAAGRUFHTElkAwkAAGYAAAACBQAAABRoYXRjaGluZ0ZpbmlzaEhlaWdodAUAAAAGaGVpZ2h0CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAdSGF0Y2hpbmcgaXMgbm90IGZpbmlzaGVkIHlldCAJAAGkAAAAAQkAAGUAAAACBQAAABRoYXRjaGluZ0ZpbmlzaEhlaWdodAUAAAAGaGVpZ2h0AgAAACcgYmxvY2tzIHJlbWFpbmluZywgaXQgd2lsbCB0YWtlIGFyb3VuZCAJAAGkAAAAAQkAAGUAAAACBQAAABRoYXRjaGluZ0ZpbmlzaEhlaWdodAUAAAAGaGVpZ2h0AgAAAAggbWludXRlcwQAAAANJHQwMTI3MTcxMjc5MAkBAAAADWdldFJhbmRvbU5hbWUAAAADBQAAAAR0eElkBQAAABRoYXRjaGluZ0ZpbmlzaEhlaWdodAcEAAAAB0VBR0xHZW4IBQAAAA0kdDAxMjcxNzEyNzkwAAAAAl8xBAAAAAdmYXJtR2VuCAUAAAANJHQwMTI3MTcxMjc5MAAAAAJfMgQAAAALZGVzY3JpcHRpb24JAAEsAAAAAgkAASwAAAACAgAAAA57Imdlbm90eXBlIjogIgUAAAAHRUFHTEdlbgIAAAAZIiwgImNyb3NzYnJlZWRpbmciOiB0cnVlfQQAAAAFYXNzZXQJAARDAAAABwUA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", "height": 3453051, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 43u3ZWQGD7vp9t36AdCD73nK4ruxSAxvefLeW2caupkK Next: none Diff:
OldNewDifferences
293293 else if ((leftToPay > firstPayment.amount))
294294 then throw(((("TB: To breed a Canine you following amount of Puzzle: " + toString(leftToPay)) + " ") + toString(i.caller)))
295295 else {
296- let addMore = invoke(getEaglFarmingAddress(), "addPuzzleAndStakeMore", nil, [AttachedPayment(unit, leftToPay)])
296+ let addMore = invoke(getEaglFarmingAddress(), "addPuzzleAndStakeMore", nil, [AttachedPayment(getMintAssetId(), leftToPay)])
297297 if ((addMore == addMore))
298298 then {
299299 let refund = if ((size(i.payments) == 2))
328328 else if ((hatchingFinishHeight > height))
329329 then throw((((("Hatching is not finished yet " + toString((hatchingFinishHeight - height))) + " blocks remaining, it will take around ") + toString((hatchingFinishHeight - height))) + " minutes"))
330330 else {
331- let $t01270512778 = getRandomName(txId, hatchingFinishHeight, false)
332- let EAGLGen = $t01270512778._1
333- let farmGen = $t01270512778._2
331+ let $t01271712790 = getRandomName(txId, hatchingFinishHeight, false)
332+ let EAGLGen = $t01271712790._1
333+ let farmGen = $t01271712790._2
334334 let description = (("{\"genotype\": \"" + EAGLGen) + "\", \"crossbreeding\": true}")
335335 let asset = Issue(EAGLGen, description, 1, 0, false, unit, hatchingFinishHeight)
336336 let assetId = calculateAssetId(asset)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func getBool (key) = match getBoolean(this, key) {
55 case b: Boolean =>
66 b
77 case _ =>
88 false
99 }
1010
1111
1212 func asString (value) = match value {
1313 case s: String =>
1414 s
1515 case s: Int =>
1616 throw("wrong type, expected: String, got: Int")
1717 case s: Unit =>
1818 throw("wrong type, expected: String, got: Unit")
1919 case _ =>
2020 throw("wrong type, expected: String")
2121 }
2222
2323
2424 func isTestEnv () = getBool("TESTENV")
2525
2626
2727 func tryGetStringExternal (address,key) = match getString(address, key) {
2828 case a: String =>
2929 a
3030 case _ =>
3131 ""
3232 }
3333
3434
3535 func tryGetString (key) = tryGetStringExternal(this, key)
3636
3737
3838 func staticKey_oracleAddress () = "static_oracleAddress"
3939
4040
4141 func staticKey_extraFee () = "static_extraFee"
4242
4343
4444 func staticKey_feeAggregator () = "static_feeAggregator"
4545
4646
4747 func staticKey_refContractAddress () = "static_refContractAddress"
4848
4949
5050 func staticKey_eaglRebirthAddress () = "static_eaglRebirthAddress"
5151
5252
5353 func staticKey_eaglFarmingAddress () = "static_eaglStakingAddress"
5454
5555
5656 func staticKey_itemsAddress () = "static_itemsAddress"
5757
5858
5959 func staticKey_puzzleAssetId () = "static_puzzleAssetId"
6060
6161
6262 func getOracle () = Address(fromBase58String(tryGetString(staticKey_oracleAddress())))
6363
6464
6565 func getFeeAggregator () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_feeAggregator())))
6666
6767
6868 func getMintAssetId () = fromBase58String(tryGetStringExternal(getOracle(), staticKey_puzzleAssetId()))
6969
7070
7171 func getBurnAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_burnAddress")))
7272
7373
7474 func getRefContractAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_refContractAddress())))
7575
7676
7777 func getEaglRebirthAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_eaglRebirthAddress())))
7878
7979
8080 func getEaglFarmingAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_eaglFarmingAddress())))
8181
8282
8383 func getItemsAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_itemsAddress())))
8484
8585
8686 func checkAdditionalPayment (payment) = if (isDefined(payment.assetId))
8787 then throw("BDCAP: Please attach waves")
8888 else {
8989 let feeAmount = getIntegerValue(getOracle(), staticKey_extraFee())
9090 if ((payment.amount != feeAmount))
9191 then throw((("BDCAP: Please attach exactly " + toString(feeAmount)) + " amount of wavelets"))
9292 else [ScriptTransfer(getFeeAggregator(), feeAmount, unit)]
9393 }
9494
9595
9696 let delayForHatching = 2
9797
9898 let HatchingStarted = "HATCHING_STARTED"
9999
100100 let HatchingFinished = "HATCHING_FINISHED"
101101
102102 func isLocked () = {
103103 let masterAddress = Address(base58'3PEPftf2kWZDmAaWBjs6BUJa9957kiA2PkU')
104104 match getInteger(masterAddress, "egglock") {
105105 case b: Int =>
106106 b
107107 case _ =>
108108 0
109109 }
110110 }
111111
112112
113113 func getHatchingStatusKey (address,txId) = (((address + "_") + toBase58String(txId)) + "_status")
114114
115115
116116 func getHatchingFinishHeightKey (address,txId) = (((address + "_") + toBase58String(txId)) + "_fh")
117117
118118
119119 func getEAGLIdKey (address,txId) = (((address + "_") + toBase58String(txId)) + "_di")
120120
121121
122122 func getEAGLStatsKey (genString) = (("stats_" + genString) + "_amount")
123123
124124
125125 func tryGetInteger (key) = {
126126 let val = match getInteger(this, key) {
127127 case b: Int =>
128128 b
129129 case _ =>
130130 0
131131 }
132132 val
133133 }
134134
135135
136136 let discountCoefficient = tryGetInteger("discountCoefficient")
137137
138138 func getRandomNumber (variants,txId,hatchingFinishHeight,offset) = {
139139 let randomSeedBlock = value(blockInfoByHeight((hatchingFinishHeight - 1)))
140140 let randomHash = sha256((txId + value(randomSeedBlock.vrf)))
141141 (toInt(randomHash, (offset * 8)) % variants)
142142 }
143143
144144
145145 func select (color) = {
146146 let oldGenes = nil
147147 let newGenes = [$Tuple2(("EAGL-AAAAAAAA-G" + color), "8A-G"), $Tuple2(("EAGL-CCCCCCCC-G" + color), "8C-G"), $Tuple2(("EAGL-DDDDDDDD-G" + color), "8D-G"), $Tuple2(("EAGL-EEEEEEEE-G" + color), "8E-G")]
148148 $Tuple2((oldGenes ++ newGenes), newGenes)
149149 }
150150
151151
152152 func getRandomName (txId,hatchingFinishHeight,all) = {
153153 let colorRandom = getRandomNumber(4, txId, hatchingFinishHeight, 1)
154154 let color = ["A", "B", "C", "D"][colorRandom]
155155 let colorSelect = select(color)
156156 let toPickFrom = if (all)
157157 then colorSelect._1
158158 else colorSelect._2
159159 let typeRandom = getRandomNumber(size(toPickFrom), txId, hatchingFinishHeight, 0)
160160 toPickFrom[typeRandom]
161161 }
162162
163163
164164 let typesAmount = (size(select("R")._2) - 1)
165165
166166 func countEggsNeededAmount (totalEAGLsAmount) = {
167167 let n = totalEAGLsAmount
168168 let g = discountCoefficient
169169 let t = typesAmount
170170 let price = (pow((100 + ((n * g) / (10 * t))), 2, 5, 1, 2, DOWN) + 120)
171171 (price * 1500000)
172172 }
173173
174174
175175 func asBoolean (value) = match value {
176176 case boolean: Boolean =>
177177 boolean
178178 case _ =>
179179 throw("TI: wrong type, expected: Boolean")
180180 }
181181
182182
183183 @Callable(i)
184184 func reduceRarity (assetId,fGen) = {
185185 let asset = fromBase58String(assetId)
186186 if (if ((i.caller != getEaglRebirthAddress()))
187187 then (i.caller != this)
188188 else false)
189189 then throw("IRR: admin or rebirth only")
190190 else {
191191 let duckGen = value(assetInfo(asset)).name
192192 let letter = takeRight(take(duckGen, 6), 1)
193193 let farmGen = (("8" + letter) + "-G")
194194 [IntegerEntry(getEAGLStatsKey(duckGen), (tryGetInteger(getEAGLStatsKey(duckGen)) - 1)), IntegerEntry((("stats_" + farmGen) + "_quantity"), (tryGetInteger((("stats_" + farmGen) + "_quantity")) - 1))]
195195 }
196196 }
197197
198198
199199
200200 @Callable(i)
201201 func increaseRarity (assetId,fGen) = {
202202 let asset = fromBase58String(assetId)
203203 if (if ((i.caller != getEaglRebirthAddress()))
204204 then (i.caller != this)
205205 else false)
206206 then throw("IRR: admin or rebirth only")
207207 else {
208208 let duckGen = value(assetInfo(asset)).name
209209 let letter = takeRight(take(duckGen, 6), 1)
210210 let farmGen = (("8" + letter) + "-G")
211211 [IntegerEntry(getEAGLStatsKey(duckGen), (tryGetInteger(getEAGLStatsKey(duckGen)) + 1)), IntegerEntry((("stats_" + farmGen) + "_quantity"), (tryGetInteger((("stats_" + farmGen) + "_quantity")) + 1))]
212212 }
213213 }
214214
215215
216216
217217 @Callable(i)
218218 func configureOracle (oracle) = if ((i.caller != this))
219219 then throw("ICU: admin only")
220220 else [StringEntry("static_oracleAddress", oracle)]
221221
222222
223223
224224 @Callable(i)
225225 func issueJackpot (address,txIdStr,gen) = if (if ((i.caller != getEaglRebirthAddress()))
226226 then (i.caller != this)
227227 else false)
228228 then throw("ISJ: admin or rebirth only")
229229 else {
230230 let txId = fromBase58String(txIdStr)
231231 let hatchingStatusKey = getHatchingStatusKey(address, txId)
232232 let finishHeightKey = getHatchingFinishHeightKey(address, txId)
233233 let totalDucksAmount = tryGetInteger("eagl_amount")
234234 let eggsNeeded = countEggsNeededAmount(totalDucksAmount)
235235 let $t070637115 = $Tuple2((("EAGL-" + gen) + "-JU"), "8W-J")
236236 let duckGen = $t070637115._1
237237 let farmGen = $t070637115._2
238238 let description = (("{\"genotype\": \"" + duckGen) + "\", \"crossbreeding\": true}")
239239 let asset = Issue(duckGen, description, 1, 0, false, unit, height)
240240 let assetId = calculateAssetId(asset)
241241 let duckIdKey = getEAGLIdKey(address, txId)
242242 let valueDuckIdKeyExits = tryGetString(duckIdKey)
243243 if ((valueDuckIdKeyExits != ""))
244244 then throw((("ISJ: You will override following duckId :" + duckIdKey) + " make sure that your txId is unique!"))
245245 else $Tuple2([IntegerEntry(getHatchingFinishHeightKey(address, txId), height), IntegerEntry("eagl_amount", (totalDucksAmount + 1)), IntegerEntry("eagl_last_price", (eggsNeeded / 1500000)), StringEntry(hatchingStatusKey, HatchingFinished), StringEntry(duckIdKey, toBase58String(assetId)), StringEntry(toBase58String(assetId), duckIdKey), IntegerEntry(getEAGLStatsKey(duckGen), (tryGetInteger(getEAGLStatsKey(duckGen)) + 1)), IntegerEntry((("stats_" + farmGen) + "_quantity"), (tryGetInteger((("stats_" + farmGen) + "_quantity")) + 1)), asset, ScriptTransfer(value(addressFromString(address)), 1, assetId)], toBase58String(assetId))
246246 }
247247
248248
249249
250250 @Callable(i)
251251 func issueFree (address,txIdStr) = if ((i.caller != getEaglRebirthAddress()))
252252 then throw("CIF: rebirth only")
253253 else {
254254 let txId = fromBase58String(txIdStr)
255255 let hatchingStatusKey = getHatchingStatusKey(address, txId)
256256 let finishHeightKey = getHatchingFinishHeightKey(address, txId)
257257 let totalDucksAmount = tryGetInteger("eagl_amount")
258258 let eggsNeeded = countEggsNeededAmount(totalDucksAmount)
259259 let $t086978845 = getRandomName(txId, (valueOrErrorMessage(transactionHeightById(txId), ((txIdStr + " not found ") + toBase58String(txId))) + 1), true)
260260 let EAGLGen = $t086978845._1
261261 let farmGen = $t086978845._2
262262 let description = (("{\"genotype\": \"" + EAGLGen) + "\", \"crossbreeding\": true}")
263263 let asset = Issue(EAGLGen, description, 1, 0, false, unit, height)
264264 let assetId = calculateAssetId(asset)
265265 let amount = (tryGetInteger(getEAGLStatsKey(EAGLGen)) + 1)
266266 let duckIdKey = getEAGLIdKey(address, txId)
267267 $Tuple2([IntegerEntry(getHatchingFinishHeightKey(address, txId), height), IntegerEntry("eagl_amount", (totalDucksAmount + 1)), IntegerEntry("eagl_last_price", (eggsNeeded / 1500000)), StringEntry(hatchingStatusKey, HatchingFinished), StringEntry(duckIdKey, toBase58String(assetId)), StringEntry(toBase58String(assetId), duckIdKey), IntegerEntry(getEAGLStatsKey(EAGLGen), amount), IntegerEntry((("stats_" + farmGen) + "_quantity"), (tryGetInteger((("stats_" + farmGen) + "_quantity")) + 1)), asset, ScriptTransfer(value(addressFromString(address)), 1, assetId)], toBase58String(assetId))
268268 }
269269
270270
271271
272272 @Callable(i)
273273 func setDiscount (val) = if ((i.caller != this))
274274 then throw("admin_only")
275275 else [IntegerEntry("discountCoefficient", val)]
276276
277277
278278
279279 @Callable(i)
280280 func startHatching (refererAddress) = {
281281 let feeValidate = checkAdditionalPayment(i.payments[0])
282282 if ((feeValidate == feeValidate))
283283 then if ((isLocked() > 0))
284284 then throw("EGG operations are temporarily locked")
285285 else {
286286 let totalCaniAmount = tryGetInteger("eagl_amount")
287287 let eggsNeeded = countEggsNeededAmount(totalCaniAmount)
288288 let results = [StringEntry(getHatchingStatusKey(toString(i.originCaller), i.transactionId), HatchingStarted), IntegerEntry(getHatchingFinishHeightKey(toString(i.originCaller), i.transactionId), (height + delayForHatching)), IntegerEntry("eagl_amount", (totalCaniAmount + 1)), IntegerEntry("eagl_last_price", (eggsNeeded / 1500000))]
289289 let firstPayment = value(i.payments[1])
290290 let leftToPay = eggsNeeded
291291 if ((firstPayment.assetId != getMintAssetId()))
292292 then throw("TB: You can attach only Puzzle")
293293 else if ((leftToPay > firstPayment.amount))
294294 then throw(((("TB: To breed a Canine you following amount of Puzzle: " + toString(leftToPay)) + " ") + toString(i.caller)))
295295 else {
296- let addMore = invoke(getEaglFarmingAddress(), "addPuzzleAndStakeMore", nil, [AttachedPayment(unit, leftToPay)])
296+ let addMore = invoke(getEaglFarmingAddress(), "addPuzzleAndStakeMore", nil, [AttachedPayment(getMintAssetId(), leftToPay)])
297297 if ((addMore == addMore))
298298 then {
299299 let refund = if ((size(i.payments) == 2))
300300 then [ScriptTransfer(i.caller, (i.payments[1].amount - leftToPay), getMintAssetId())]
301301 else nil
302302 ((results ++ refund) ++ feeValidate)
303303 }
304304 else throw("Strict value is not equal to itself.")
305305 }
306306 }
307307 else throw("Strict value is not equal to itself.")
308308 }
309309
310310
311311
312312 @Callable(i)
313313 func finishHatching (txIdStr) = {
314314 let feeValidate = checkAdditionalPayment(i.payments[0])
315315 if ((feeValidate == feeValidate))
316316 then {
317317 let txId = fromBase58String(txIdStr)
318318 let hatchingStatusKey = getHatchingStatusKey(toString(i.caller), txId)
319319 let finishHeightKey = getHatchingFinishHeightKey(toString(i.caller), txId)
320320 let EAGLIdKey = getEAGLIdKey(toString(i.caller), txId)
321321 let hatchingTxStatus = getStringValue(this, hatchingStatusKey)
322322 let hatchingFinishHeight = getIntegerValue(this, finishHeightKey)
323323 if ((hatchingTxStatus == HatchingFinished))
324324 then {
325325 let EAGLId = getStringValue(this, getEAGLIdKey(toString(i.caller), txId))
326326 throw(("The Eagle was hatched and claimed already, here is the folowing: " + EAGLId))
327327 }
328328 else if ((hatchingFinishHeight > height))
329329 then throw((((("Hatching is not finished yet " + toString((hatchingFinishHeight - height))) + " blocks remaining, it will take around ") + toString((hatchingFinishHeight - height))) + " minutes"))
330330 else {
331- let $t01270512778 = getRandomName(txId, hatchingFinishHeight, false)
332- let EAGLGen = $t01270512778._1
333- let farmGen = $t01270512778._2
331+ let $t01271712790 = getRandomName(txId, hatchingFinishHeight, false)
332+ let EAGLGen = $t01271712790._1
333+ let farmGen = $t01271712790._2
334334 let description = (("{\"genotype\": \"" + EAGLGen) + "\", \"crossbreeding\": true}")
335335 let asset = Issue(EAGLGen, description, 1, 0, false, unit, hatchingFinishHeight)
336336 let assetId = calculateAssetId(asset)
337337 let amount = (tryGetInteger(getEAGLStatsKey(EAGLGen)) + 1)
338338 ([StringEntry(hatchingStatusKey, HatchingFinished), StringEntry(EAGLIdKey, toBase58String(assetId)), StringEntry(toBase58String(assetId), EAGLIdKey), IntegerEntry(getEAGLStatsKey(EAGLGen), amount), IntegerEntry((("stats_" + farmGen) + "_quantity"), (tryGetInteger((("stats_" + farmGen) + "_quantity")) + 1)), asset, ScriptTransfer(i.caller, 1, assetId)] ++ feeValidate)
339339 }
340340 }
341341 else throw("Strict value is not equal to itself.")
342342 }
343343
344344
345345 @Verifier(tx)
346346 func verify () = if (isTestEnv())
347347 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
348348 else {
349349 let firstUser = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
350350 let secondUser = base58'7DsP2WaMLocbHuUxux7pbXRjTrrZ1TFQPsi5QumS3gr8'
351351 let thirdUser = base58'BpFWP3p3JgYrrP45xfrKzeMcWMEXoinj4FVPPkUiA8D3'
352352 let firstUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], firstUser))
353353 then 1
354354 else if (sigVerify(tx.bodyBytes, tx.proofs[1], firstUser))
355355 then 1
356356 else if (sigVerify(tx.bodyBytes, tx.proofs[2], firstUser))
357357 then 1
358358 else 0
359359 let secondUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], secondUser))
360360 then 1
361361 else if (sigVerify(tx.bodyBytes, tx.proofs[1], secondUser))
362362 then 1
363363 else if (sigVerify(tx.bodyBytes, tx.proofs[2], secondUser))
364364 then 1
365365 else 0
366366 let thirdUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], thirdUser))
367367 then 1
368368 else if (sigVerify(tx.bodyBytes, tx.proofs[1], thirdUser))
369369 then 1
370370 else if (sigVerify(tx.bodyBytes, tx.proofs[2], thirdUser))
371371 then 1
372372 else 0
373373 let signaturesCount = ((firstUserSigned + secondUserSigned) + thirdUserSigned)
374374 match tx {
375375 case _ =>
376376 (signaturesCount >= 1)
377377 }
378378 }
379379

github/deemru/w8io/169f3d6 
71.33 ms