tx · HT6W8wCBkJffMdwZ76j7D9rX52AYGD1q1J1HhkSprsgm

3N7oGx2296rxeSa5jtPvUVmeeQxQkWpz15A:  -0.03500000 Waves

2024.12.29 21:49 [3436186] smart account 3N7oGx2296rxeSa5jtPvUVmeeQxQkWpz15A > SELF 0.00000000 Waves

{ "type": 13, "id": "HT6W8wCBkJffMdwZ76j7D9rX52AYGD1q1J1HhkSprsgm", "fee": 3500000, "feeAssetId": null, "timestamp": 1735498141864, "version": 2, "chainId": 84, "sender": "3N7oGx2296rxeSa5jtPvUVmeeQxQkWpz15A", "senderPublicKey": "Ey3EsGFfttDtMZY3DEo9rGiL9zSqkAmrKgYcdR6J8RSf", "proofs": [ "47WGQxnPWgAKDCzUKeaSQevB7vtymhZ7cYwVFzRY72UYNbd9ZU2RgMSHq92aTaDaYJ9KPScDW6gW8qMG1NSJruCV" ], "script": "base64:AAIFAAAAAAAAAC4IAhIECgIICBIDCgEIEgMKAQgSBQoDCAEBEgMKAQgSAwoBCBIDCgEIEgQKAggIAAAAOQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACAAAAB2FkZHJlc3MAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAABAAAADHRyeUdldFN0cmluZwAAAAEAAAADa2V5CQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACBQAAAAR0aGlzBQAAAANrZXkBAAAAF3N0YXRpY0tleV9vcmFjbGVBZGRyZXNzAAAAAAIAAAAUc3RhdGljX29yYWNsZUFkZHJlc3MBAAAAEnN0YXRpY0tleV9leHRyYUZlZQAAAAACAAAAD3N0YXRpY19leHRyYUZlZQEAAAAXc3RhdGljS2V5X2ZlZUFnZ3JlZ2F0b3IAAAAAAgAAABRzdGF0aWNfZmVlQWdncmVnYXRvcgEAAAAXc3RhdGljS2V5X2VhZ2xJbmN1YmF0b3IAAAAAAgAAABtzdGF0aWNfZWFnbEluY3ViYXRvckFkZHJlc3MBAAAAG3N0YXRpY0tleV9lYWdsSW5jdWJhdGlvbkZlZQAAAAACAAAAGHN0YXRpY19lYWdsSW5jdWJhdGlvbkZlZQEAAAAUc3RhdGljS2V5X2VnZ0Fzc2V0SWQAAAAAAgAAABFzdGF0aWNfZWdnQXNzZXRJZAEAAAAcc3RhdGljS2V5X3JlZkNvbnRyYWN0QWRkcmVzcwAAAAACAAAAGXN0YXRpY19yZWZDb250cmFjdEFkZHJlc3MBAAAAFnN0YXRpY0tleV9pdGVtc0FkZHJlc3MAAAAAAgAAABNzdGF0aWNfaXRlbXNBZGRyZXNzAQAAABhzdGF0aWNLZXlfY291cG9uc0FkZHJlc3MAAAAAAgAAABVzdGF0aWNfY291cG9uc0FkZHJlc3MBAAAAHHN0YXRpY0tleV9lYWdsUmViaXJ0aEFkZHJlc3MAAAAAAgAAABlzdGF0aWNfZWFnbFJlYmlydGhBZGRyZXNzAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAABdzdGF0aWNLZXlfb3JhY2xlQWRkcmVzcwAAAAABAAAAEGdldEZlZUFnZ3JlZ2F0b3IAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABdzdGF0aWNLZXlfZmVlQWdncmVnYXRvcgAAAAABAAAADWdldEVnZ0Fzc2V0SWQAAAAACQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAUc3RhdGljS2V5X2VnZ0Fzc2V0SWQAAAAAAQAAABBnZXRFYWdsSW5jdWJhdG9yAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAXc3RhdGljS2V5X2VhZ2xJbmN1YmF0b3IAAAAAAQAAABRnZXRFYWdsSW5jdWJhdGlvbkZlZQAAAAAJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAbc3RhdGljS2V5X2VhZ2xJbmN1YmF0aW9uRmVlAAAAAAEAAAAOZ2V0QnVybkFkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAACAAAAEnN0YXRpY19idXJuQWRkcmVzcwEAAAAVZ2V0UmVmQ29udHJhY3RBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAcc3RhdGljS2V5X3JlZkNvbnRyYWN0QWRkcmVzcwAAAAABAAAAD2dldEl0ZW1zQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAFnN0YXRpY0tleV9pdGVtc0FkZHJlc3MAAAAAAQAAABFnZXRDb3Vwb25zQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAGHN0YXRpY0tleV9jb3Vwb25zQWRkcmVzcwAAAAABAAAAFWdldEVhZ2xSZWJpcnRoQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAHHN0YXRpY0tleV9lYWdsUmViaXJ0aEFkZHJlc3MAAAAAAQAAABZjaGVja0FkZGl0aW9uYWxQYXltZW50AAAAAQAAAAdwYXltZW50AwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQJAAACAAAAAQIAAAAaQkRDQVA6IFBsZWFzZSBhdHRhY2ggd2F2ZXMEAAAACWZlZUFtb3VudAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABJzdGF0aWNLZXlfZXh0cmFGZWUAAAAAAwkBAAAAAiE9AAAAAggFAAAAB3BheW1lbnQAAAAGYW1vdW50BQAAAAlmZWVBbW91bnQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAHUJEQ0FQOiBQbGVhc2UgYXR0YWNoIGV4YWN0bHkgCQABpAAAAAEFAAAACWZlZUFtb3VudAIAAAATIGFtb3VudCBvZiB3YXZlbGV0cwkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAQZ2V0RmVlQWdncmVnYXRvcgAAAAAFAAAACWZlZUFtb3VudAUAAAAEdW5pdAUAAAADbmlsAAAAABBkZWxheUZvckhhdGNoaW5nAAAAAAAAAAACAAAAAA9IYXRjaGluZ1N0YXJ0ZWQCAAAAEEJSRUVESU5HX1NUQVJURUQAAAAAEEhhdGNoaW5nRmluaXNoZWQCAAAAEUJSRUVESU5HX0ZJTklTSEVEAAAAAA1N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R2VuAAAAAAAAAAAHCQABkQAAAAIFAAAACnBhcmVudDJHZW4AAAAAAAAAAAcAAAAAAAAAAAIFAAAABHR4SWQFAAAAFGhhdGNoaW5nRmluaXNoSGVpZ2h0BQAAAA9wYXJlbnRGaXhlZEdlbmUFAAAAEXBvc2l0aW9uRml4ZWRHZW5lBQAAAA5zcGVjaWZpcXVlR2VuZQUAAAAWc3BlY2lmaXF1ZUdlbmVQb3NpdGlvbgkBAAAADGdldFJhbmRvbUdlbgAAAAkJAAGRAAAAAgUAAAAKcGFyZW50MUdlbgAAAAAAAAAACAkAAZEAAAACBQAAAApwYXJlbnQyR2VuAAAAAAAAAAAIAAAAAAAAAAADBQAAAAR0eElkBQAAABRoYXRjaGluZ0ZpbmlzaEhlaWdodAUAAAAPcGFyZW50Rml4ZWRHZW5lBQAAABFwb3NpdGlvbkZpeGVkR2VuZQUAAAAOc3BlY2lmaXF1ZUdlbmUFAAAAFnNwZWNpZmlxdWVHZW5lUG9zaXRpb24JAQAAAAxnZXRSYW5kb21HZW4AAAAJCQABkQAAAAIFAAAACnBhcmVudDFHZW4AAAAAAAAAAAkJAAGRAAAAAgUAAAAKcGFyZW50MkdlbgAAAAAAAAAACQAAAAAAAAAABAUAAAAEdHhJZAUAAAAUaGF0Y2hpbmdGaW5pc2hIZWlnaHQFAAAAD3BhcmVudEZpeGVkR2VuZQUAAAARcG9zaXRpb25GaXhlZEdlbmUFAAAADnNwZWNpZmlxdWVHZW5lBQAAABZzcGVjaWZpcXVlR2VuZVBvc2l0aW9uCQEAAAAMZ2V0UmFuZG9tR2VuAAAACQkAAZEAAAACBQAAAApwYXJlbnQxR2VuAAAAAAAAAAAKCQABkQAAAAIFAAAACnBhcmVudDJHZW4AAAAAAAAAAAoAAAAAAAAAAAUFAAAABHR4SWQFAAAAFGhhdGNoaW5nRmluaXNoSGVpZ2h0BQAAAA9wYXJlbnRGaXhlZEdlbmUFAAAAEXBvc2l0aW9uRml4ZWRHZW5lBQAAAA5zcGVjaWZpcXVlR2VuZQUAAAAWc3BlY2lmaXF1ZUdlbmVQb3NpdGlvbgkBAAAADGdldFJhbmRvbUdlbgAAAAkJAAGRAAAAAgUAAAAKcGFyZW50MUdlbgAAAAAAAAAACwkAAZEAAAACBQAAAApwYXJlbnQyR2VuAAAAAAAAAAALAAAAAAAAAAAGBQAAAAR0eElkBQAAABRoYXRjaGluZ0ZpbmlzaEhlaWdodAUAAAAPcGFyZW50Rml4ZWRHZW5lBQAAABFwb3NpdGlvbkZpeGVkR2VuZQUAAAAOc3BlY2lmaXF1ZUdlbmUFAAAAFnNwZWNpZmlxdWVHZW5lUG9zaXRpb24JAQAAAAxnZXRSYW5kb21HZW4AAAAJCQABkQAAAAIFAAAACnBhcmVudDFHZW4AAAAAAAAAAAwJAAGRAAAAAgUAAAAKcGFyZW50MkdlbgAAAAAAAAAADAAAAAAAAAAABwUAAAAEdHhJZAUAAAAUaGF0Y2hpbmdGaW5pc2hIZWlnaHQFAAAAD3BhcmVudEZpeGVkR2VuZQUAAAARcG9zaXRpb25GaXhlZEdlbmUFAAAADnNwZWNpZmlxdWVHZW5lBQAAABZzcGVjaWZpcXVlR2VuZVBvc2l0aW9uAgAAAAEtCQEAAAATZGV0ZXJtaW5lR2VuZXJhdGlvbgAAAAIJAAGRAAAAAgUAAAAKcGFyZW50MUdlbgAAAAAAAAAADgkAAZEAAAACBQAAAApwYXJlbnQyR2VuAAAAAAAAAAAOBQAAAAVjb2xvcgUAAAADZ2VuAQAAABVjaGVja0Fzc2V0SW5JbmN1YmF0b3IAAAABAAAAB2Fzc2V0SWQEAAAABnJlc3VsdAQAAAAHJG1hdGNoMAkABB0AAAACCQEAAAAQZ2V0RWFnbEluY3ViYXRvcgAAAAAFAAAAB2Fzc2V0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYgUAAAAHJG1hdGNoMAYHBAAAAAdyZXN1bHQyBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAB2Fzc2V0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYwUAAAAHJG1hdGNoMAYHAwUAAAAGcmVzdWx0BgUAAAAHcmVzdWx0MgEAAAAMY2FuQmVCcmVlZGVkAAAAAgAAAAhhc3NldDFJZAAAAAhhc3NldDJJZAQAAAAJYXNzZXQxR2VuCQAEtQAAAAIICQEAAAAFdmFsdWUAAAABCQAD7AAAAAEFAAAACGFzc2V0MUlkAAAABG5hbWUCAAAAAAQAAAAJYXNzZXQyR2Vu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AAAWZmluaXNoSGF0Y2hpbmdJbnRlcm5hbAAAAAYAAAAHdHhJZFN0cgAAAAFpAAAAD3BhcmVudEZpeGVkR2VuZQAAABFwb3NpdGlvbkZpeGVkR2VuZQAAAA5zcGVjaWZpcXVlR2VuZQAAABZzcGVjaWZpcXVlR2VuZVBvc2l0aW9uBAAAAAR0eElkCQACWQAAAAEFAAAAB3R4SWRTdHIEAAAAEHByb2Nlc3NTdGF0dXNLZXkJAQAAABNnZXRQcm9jZXNzU3RhdHVzS2V5AAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAABHR4SWQEAAAAD2ZpbmlzaEhlaWdodEtleQkBAAAAGWdldFByb2Nlc3NGaW5pc2hIZWlnaHRLZXkAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAEdHhJZAQAAAAFSWRLZXkJAQAAAAhnZXRJZEtleQAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAAAR0eElkBAAAAA9wcm9jZXNzVHhTdGF0dXMJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMFAAAAEHByb2Nlc3NTdGF0dXNLZXkEAAAAE3Byb2Nlc3NGaW5pc2hIZWlnaHQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMFAAAAD2ZpbmlzaEhlaWdodEtleQMJAAAAAAAAAgUAAAAPcHJvY2Vzc1R4U3RhdHVzBQAAABBIYXRjaGluZ0ZpbmlzaGVkBAAAAAJJZAkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkBAAAACGdldElkS2V5AAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAABHR4SWQJAAACAAAAAQkAASwAAAACAgAAAEJUaGUgZmVsaW5lIHdhcyBicmVlZGVkIGFuZCBjbGFpbWVkIGFscmVhZHksIGhlcmUgaXMgdGhlIGZvbG93aW5nOiAFAAAAAklkAwkAAGYAAAACBQAAABNwcm9jZXNzRmluaXNoSGVpZ2h0BQAAAAZoZWlnaHQJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAB1CcmVlZGluZyBpcyBub3QgZmluaXNo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", "height": 3436186, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 9Bji4B3BB5sUtdxZRkk77wGc9Ls7DzkY3nmJEkvG8v9Y Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+func tryGetStringExternal (address,key) = match getString(address, key) {
5+ case a: String =>
6+ a
7+ case _ =>
8+ ""
9+}
10+
11+
12+func tryGetString (key) = tryGetStringExternal(this, key)
13+
14+
15+func staticKey_oracleAddress () = "static_oracleAddress"
16+
17+
18+func staticKey_extraFee () = "static_extraFee"
19+
20+
21+func staticKey_feeAggregator () = "static_feeAggregator"
22+
23+
24+func staticKey_eaglIncubator () = "static_eaglIncubatorAddress"
25+
26+
27+func staticKey_eaglIncubationFee () = "static_eaglIncubationFee"
28+
29+
30+func staticKey_eggAssetId () = "static_eggAssetId"
31+
32+
33+func staticKey_refContractAddress () = "static_refContractAddress"
34+
35+
36+func staticKey_itemsAddress () = "static_itemsAddress"
37+
38+
39+func staticKey_couponsAddress () = "static_couponsAddress"
40+
41+
42+func staticKey_eaglRebirthAddress () = "static_eaglRebirthAddress"
43+
44+
45+func getOracle () = Address(fromBase58String(tryGetString(staticKey_oracleAddress())))
46+
47+
48+func getFeeAggregator () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_feeAggregator())))
49+
50+
51+func getEggAssetId () = fromBase58String(tryGetStringExternal(getOracle(), staticKey_eggAssetId()))
52+
53+
54+func getEaglIncubator () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_eaglIncubator())))
55+
56+
57+func getEaglIncubationFee () = getIntegerValue(getOracle(), staticKey_eaglIncubationFee())
58+
59+
60+func getBurnAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_burnAddress")))
61+
62+
63+func getRefContractAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_refContractAddress())))
64+
65+
66+func getItemsAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_itemsAddress())))
67+
68+
69+func getCouponsAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_couponsAddress())))
70+
71+
72+func getEaglRebirthAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_eaglRebirthAddress())))
73+
74+
75+func checkAdditionalPayment (payment) = if (isDefined(payment.assetId))
76+ then throw("BDCAP: Please attach waves")
77+ else {
78+ let feeAmount = getIntegerValue(getOracle(), staticKey_extraFee())
79+ if ((payment.amount != feeAmount))
80+ then throw((("BDCAP: Please attach exactly " + toString(feeAmount)) + " amount of wavelets"))
81+ else [ScriptTransfer(getFeeAggregator(), feeAmount, unit)]
82+ }
83+
84+
85+let delayForHatching = 2
86+
87+let HatchingStarted = "BREEDING_STARTED"
88+
89+let HatchingFinished = "BREEDING_FINISHED"
90+
91+let MaxGeneration = 7
92+
93+let Generations = ["G", "H", "I", "K", "L", "M", "N", "O"]
94+
95+func asBoolean (value) = match value {
96+ case boolean: Boolean =>
97+ boolean
98+ case _ =>
99+ throw("TI: wrong type, expected: Boolean")
100+}
101+
102+
103+func getProcessStatusKey (address,txId) = (((address + "_") + toBase58String(txId)) + "_status")
104+
105+
106+func getBool (key) = match getBoolean(this, key) {
107+ case b: Boolean =>
108+ b
109+ case _ =>
110+ false
111+}
112+
113+
114+func isTestEnv () = getBool("TESTENV")
115+
116+
117+func getProcessFinishHeightKey (address,txId) = (((address + "_") + toBase58String(txId)) + "_fh")
118+
119+
120+func getParentKey (txId,parentNum) = ((("inittx_" + toBase58String(txId)) + "_parent") + toString(parentNum))
121+
122+
123+func getIdKey (address,txId) = (((address + "_") + toBase58String(txId)) + "_di")
124+
125+
126+func getStatsKey (genString) = (("stats_" + genString) + "_amount")
127+
128+
129+func tryGetInteger (key) = {
130+ let val = match getInteger(this, key) {
131+ case b: Int =>
132+ b
133+ case _ =>
134+ 0
135+ }
136+ val
137+ }
138+
139+
140+func determineGeneration (g1,g2) = {
141+ let gIndex = max([value(indexOf(Generations, g1)), value(indexOf(Generations, g2))])
142+Generations[(gIndex + 1)]
143+ }
144+
145+
146+func getRandomNumber (variants,txId,hatchingFinishHeight,offset) = {
147+ let randomSeedBlock = value(blockInfoByHeight((hatchingFinishHeight - 1)))
148+ let randomHash = sha256_16Kb((txId + value(randomSeedBlock.vrf)))
149+ (toInt(randomHash, offset) % variants)
150+ }
151+
152+
153+func getRandomGen (gen1,gen2,step,txId,hatchingFinishHeight,geneFromParent,genePostion,specifiqueGene,specifiqueGenePosition) = if (if ((geneFromParent != 0))
154+ then (genePostion == step)
155+ else false)
156+ then if ((geneFromParent == 1))
157+ then gen1
158+ else if ((geneFromParent == 2))
159+ then gen2
160+ else throw("Parent either needs to be 1 or 2")
161+ else if (if ((specifiqueGene != ""))
162+ then (specifiqueGenePosition == step)
163+ else false)
164+ then specifiqueGene
165+ else {
166+ let randomNum = getRandomNumber(2, txId, hatchingFinishHeight, step)
167+ let gen = if ((randomNum == 0))
168+ then gen1
169+ else gen2
170+ gen
171+ }
172+
173+
174+func generate (txId,hatchingFinishHeight,parentFixedGene,positionFixedGene,specifiqueGene,specifiqueGenePosition) = {
175+ let colorRandom = getRandomNumber(4, txId, hatchingFinishHeight, 11)
176+ let color = if ((colorRandom == 0))
177+ then "A"
178+ else if ((colorRandom == 1))
179+ then "B"
180+ else if ((colorRandom == 2))
181+ then "C"
182+ else "D"
183+ let parent1Id = fromBase58String(tryGetString(getParentKey(txId, 1)))
184+ let parent2Id = fromBase58String(tryGetString(getParentKey(txId, 2)))
185+ let parent1Gen = split(value(assetInfo(parent1Id)).name, "")
186+ let parent2Gen = split(value(assetInfo(parent2Id)).name, "")
187+ let gen = ((((((((((("EAGL-" + getRandomGen(parent1Gen[5], parent2Gen[5], 0, txId, hatchingFinishHeight, parentFixedGene, positionFixedGene, specifiqueGene, specifiqueGenePosition)) + getRandomGen(parent1Gen[6], parent2Gen[6], 1, txId, hatchingFinishHeight, parentFixedGene, positionFixedGene, specifiqueGene, specifiqueGenePosition)) + getRandomGen(parent1Gen[7], parent2Gen[7], 2, txId, hatchingFinishHeight, parentFixedGene, positionFixedGene, specifiqueGene, specifiqueGenePosition)) + getRandomGen(parent1Gen[8], parent2Gen[8], 3, txId, hatchingFinishHeight, parentFixedGene, positionFixedGene, specifiqueGene, specifiqueGenePosition)) + getRandomGen(parent1Gen[9], parent2Gen[9], 4, txId, hatchingFinishHeight, parentFixedGene, positionFixedGene, specifiqueGene, specifiqueGenePosition)) + getRandomGen(parent1Gen[10], parent2Gen[10], 5, txId, hatchingFinishHeight, parentFixedGene, positionFixedGene, specifiqueGene, specifiqueGenePosition)) + getRandomGen(parent1Gen[11], parent2Gen[11], 6, txId, hatchingFinishHeight, parentFixedGene, positionFixedGene, specifiqueGene, specifiqueGenePosition)) + getRandomGen(parent1Gen[12], parent2Gen[12], 7, txId, hatchingFinishHeight, parentFixedGene, positionFixedGene, specifiqueGene, specifiqueGenePosition)) + "-") + determineGeneration(parent1Gen[14], parent2Gen[14])) + color)
188+ gen
189+ }
190+
191+
192+func checkAssetInIncubator (assetId) = {
193+ let result = match getString(getEaglIncubator(), assetId) {
194+ case b: String =>
195+ true
196+ case _ =>
197+ false
198+ }
199+ let result2 = match getString(this, assetId) {
200+ case c: String =>
201+ true
202+ case _ =>
203+ false
204+ }
205+ if (result)
206+ then true
207+ else result2
208+ }
209+
210+
211+func canBeBreeded (asset1Id,asset2Id) = {
212+ let asset1Gen = split(value(assetInfo(asset1Id)).name, "")
213+ let asset2Gen = split(value(assetInfo(asset2Id)).name, "")
214+ if ((value(indexOf(Generations, asset1Gen[14])) >= MaxGeneration))
215+ then (("you can only breed felines with generation " + Generations[MaxGeneration]) + " and lower")
216+ else if ((value(indexOf(Generations, asset2Gen[14])) >= MaxGeneration))
217+ then (("you can only breed felines with generation " + Generations[MaxGeneration]) + " and lower")
218+ else "true"
219+ }
220+
221+
222+func asString (value) = match value {
223+ case string: String =>
224+ string
225+ case _ =>
226+ throw("wrong type, expected: String")
227+}
228+
229+
230+func isSymbolA (accumulated,sym) = if ((sym == "A"))
231+ then (accumulated + 1)
232+ else (accumulated + 0)
233+
234+
235+func isSymbolB (accumulated,sym) = if ((sym == "B"))
236+ then (accumulated + 1)
237+ else (accumulated + 0)
238+
239+
240+func isSymbolC (accumulated,sym) = if ((sym == "C"))
241+ then (accumulated + 1)
242+ else (accumulated + 0)
243+
244+
245+func isSymbolD (accumulated,sym) = if ((sym == "D"))
246+ then (accumulated + 1)
247+ else (accumulated + 0)
248+
249+
250+func isSymbolE (accumulated,sym) = if ((sym == "E"))
251+ then (accumulated + 1)
252+ else (accumulated + 0)
253+
254+
255+func isSymbolF (accumulated,sym) = if ((sym == "F"))
256+ then (accumulated + 1)
257+ else (accumulated + 0)
258+
259+
260+func isSymbolG (accumulated,sym) = if ((sym == "G"))
261+ then (accumulated + 1)
262+ else (accumulated + 0)
263+
264+
265+func isSymbolH (accumulated,sym) = if ((sym == "H"))
266+ then (accumulated + 1)
267+ else (accumulated + 0)
268+
269+
270+func getAmountOrClear (amount) = if (contains(amount, "0"))
271+ then ""
272+ else amount
273+
274+
275+func getGen (assetName) = {
276+ let genotype = split(dropRight(drop(assetName, 5), 3), "")
277+ let generation = split(assetName, "")[14]
278+ (((((((((getAmountOrClear((toString({
279+ let $l = genotype
280+ let $s = size($l)
281+ let $acc0 = 0
282+ func $f0_1 ($a,$i) = if (($i >= $s))
283+ then $a
284+ else isSymbolA($a, $l[$i])
285+
286+ func $f0_2 ($a,$i) = if (($i >= $s))
287+ then $a
288+ else throw("List size exceeds 8")
289+
290+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
291+ }) + "A")) + getAmountOrClear((toString({
292+ let $l = genotype
293+ let $s = size($l)
294+ let $acc0 = 0
295+ func $f1_1 ($a,$i) = if (($i >= $s))
296+ then $a
297+ else isSymbolB($a, $l[$i])
298+
299+ func $f1_2 ($a,$i) = if (($i >= $s))
300+ then $a
301+ else throw("List size exceeds 8")
302+
303+ $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
304+ }) + "B"))) + getAmountOrClear((toString({
305+ let $l = genotype
306+ let $s = size($l)
307+ let $acc0 = 0
308+ func $f2_1 ($a,$i) = if (($i >= $s))
309+ then $a
310+ else isSymbolC($a, $l[$i])
311+
312+ func $f2_2 ($a,$i) = if (($i >= $s))
313+ then $a
314+ else throw("List size exceeds 8")
315+
316+ $f2_2($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
317+ }) + "C"))) + getAmountOrClear((toString({
318+ let $l = genotype
319+ let $s = size($l)
320+ let $acc0 = 0
321+ func $f3_1 ($a,$i) = if (($i >= $s))
322+ then $a
323+ else isSymbolD($a, $l[$i])
324+
325+ func $f3_2 ($a,$i) = if (($i >= $s))
326+ then $a
327+ else throw("List size exceeds 8")
328+
329+ $f3_2($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
330+ }) + "D"))) + getAmountOrClear((toString({
331+ let $l = genotype
332+ let $s = size($l)
333+ let $acc0 = 0
334+ func $f4_1 ($a,$i) = if (($i >= $s))
335+ then $a
336+ else isSymbolE($a, $l[$i])
337+
338+ func $f4_2 ($a,$i) = if (($i >= $s))
339+ then $a
340+ else throw("List size exceeds 8")
341+
342+ $f4_2($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
343+ }) + "E"))) + getAmountOrClear((toString({
344+ let $l = genotype
345+ let $s = size($l)
346+ let $acc0 = 0
347+ func $f5_1 ($a,$i) = if (($i >= $s))
348+ then $a
349+ else isSymbolF($a, $l[$i])
350+
351+ func $f5_2 ($a,$i) = if (($i >= $s))
352+ then $a
353+ else throw("List size exceeds 8")
354+
355+ $f5_2($f5_1($f5_1($f5_1($f5_1($f5_1($f5_1($f5_1($f5_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
356+ }) + "F"))) + getAmountOrClear((toString({
357+ let $l = genotype
358+ let $s = size($l)
359+ let $acc0 = 0
360+ func $f6_1 ($a,$i) = if (($i >= $s))
361+ then $a
362+ else isSymbolG($a, $l[$i])
363+
364+ func $f6_2 ($a,$i) = if (($i >= $s))
365+ then $a
366+ else throw("List size exceeds 8")
367+
368+ $f6_2($f6_1($f6_1($f6_1($f6_1($f6_1($f6_1($f6_1($f6_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
369+ }) + "G"))) + getAmountOrClear((toString({
370+ let $l = genotype
371+ let $s = size($l)
372+ let $acc0 = 0
373+ func $f7_1 ($a,$i) = if (($i >= $s))
374+ then $a
375+ else isSymbolH($a, $l[$i])
376+
377+ func $f7_2 ($a,$i) = if (($i >= $s))
378+ then $a
379+ else throw("List size exceeds 8")
380+
381+ $f7_2($f7_1($f7_1($f7_1($f7_1($f7_1($f7_1($f7_1($f7_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
382+ }) + "H"))) + "-") + generation)
383+ }
384+
385+
386+func finishHatchingInternal (txIdStr,i,parentFixedGene,positionFixedGene,specifiqueGene,specifiqueGenePosition) = {
387+ let txId = fromBase58String(txIdStr)
388+ let processStatusKey = getProcessStatusKey(toString(i.caller), txId)
389+ let finishHeightKey = getProcessFinishHeightKey(toString(i.caller), txId)
390+ let IdKey = getIdKey(toString(i.caller), txId)
391+ let processTxStatus = getStringValue(this, processStatusKey)
392+ let processFinishHeight = getIntegerValue(this, finishHeightKey)
393+ if ((processTxStatus == HatchingFinished))
394+ then {
395+ let Id = getStringValue(this, getIdKey(toString(i.caller), txId))
396+ throw(("The feline was breeded and claimed already, here is the folowing: " + Id))
397+ }
398+ else if ((processFinishHeight > height))
399+ then throw((((("Breeding is not finished yet " + toString((processFinishHeight - height))) + " blocks remaining, it will take around ") + toString((processFinishHeight - height))) + " minutes"))
400+ else {
401+ let Gen = generate(txId, processFinishHeight, parentFixedGene, positionFixedGene, specifiqueGene, specifiqueGenePosition)
402+ let farmGen = getGen(Gen)
403+ let description = (("{\"genotype\": \"" + Gen) + "\", \"crossbreeding\": true}")
404+ let asset = Issue(Gen, description, 1, 0, false, unit, processFinishHeight)
405+ let assetId = calculateAssetId(asset)
406+ let amount = (tryGetInteger(getStatsKey(Gen)) + 1)
407+ let quantity = tryGetInteger((("stats_" + farmGen) + "_quantity"))
408+ let parent1Id = tryGetString(getParentKey(txId, 1))
409+ let parent2Id = tryGetString(getParentKey(txId, 2))
410+[StringEntry(processStatusKey, HatchingFinished), StringEntry(IdKey, toBase58String(assetId)), StringEntry(toBase58String(assetId), IdKey), IntegerEntry(getStatsKey(Gen), amount), IntegerEntry((("stats_" + farmGen) + "_quantity"), (quantity + 1)), IntegerEntry((("asset_" + parent1Id) + "_children"), 1), IntegerEntry((("asset_" + parent2Id) + "_children"), 1), asset, ScriptTransfer(i.caller, 1, assetId), ScriptTransfer(i.caller, 1, fromBase58String(parent1Id)), ScriptTransfer(i.caller, 1, fromBase58String(parent2Id))]
411+ }
412+ }
413+
414+
415+func getRandomOldGenes (txId,h) = {
416+ let freeGenes = ["A", "B", "C", "D"]
417+ let randomNumber = getRandomNumber(size(freeGenes), txId, h, 2)
418+freeGenes[randomNumber]
419+ }
420+
421+
422+func asInt (value) = match value {
423+ case int: Int =>
424+ int
425+ case _ =>
426+ throw("wrong type, expected: Int")
427+}
428+
429+
430+@Callable(i)
431+func increaseRarity (assetId,farmGen) = {
432+ let asset = fromBase58String(assetId)
433+ if (if ((i.caller != getEaglRebirthAddress()))
434+ then (i.caller != this)
435+ else false)
436+ then throw("admin, items or rebirth only")
437+ else {
438+ let duckGen = value(assetInfo(asset)).name
439+[IntegerEntry(getStatsKey(duckGen), (tryGetInteger(getStatsKey(duckGen)) + 1)), IntegerEntry((("stats_" + farmGen) + "_quantity"), (tryGetInteger((("stats_" + farmGen) + "_quantity")) + 1))]
440+ }
441+ }
442+
443+
444+
445+@Callable(i)
446+func getGenFromName (assetName) = {
447+ let genotype = split(dropRight(drop(assetName, 5), 3), "")
448+ let generation = split(assetName, "")[14]
449+ let gen = (((((((((getAmountOrClear((toString({
450+ let $l = genotype
451+ let $s = size($l)
452+ let $acc0 = 0
453+ func $f0_1 ($a,$i) = if (($i >= $s))
454+ then $a
455+ else isSymbolA($a, $l[$i])
456+
457+ func $f0_2 ($a,$i) = if (($i >= $s))
458+ then $a
459+ else throw("List size exceeds 8")
460+
461+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
462+ }) + "A")) + getAmountOrClear((toString({
463+ let $l = genotype
464+ let $s = size($l)
465+ let $acc0 = 0
466+ func $f1_1 ($a,$i) = if (($i >= $s))
467+ then $a
468+ else isSymbolB($a, $l[$i])
469+
470+ func $f1_2 ($a,$i) = if (($i >= $s))
471+ then $a
472+ else throw("List size exceeds 8")
473+
474+ $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
475+ }) + "B"))) + getAmountOrClear((toString({
476+ let $l = genotype
477+ let $s = size($l)
478+ let $acc0 = 0
479+ func $f2_1 ($a,$i) = if (($i >= $s))
480+ then $a
481+ else isSymbolC($a, $l[$i])
482+
483+ func $f2_2 ($a,$i) = if (($i >= $s))
484+ then $a
485+ else throw("List size exceeds 8")
486+
487+ $f2_2($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
488+ }) + "C"))) + getAmountOrClear((toString({
489+ let $l = genotype
490+ let $s = size($l)
491+ let $acc0 = 0
492+ func $f3_1 ($a,$i) = if (($i >= $s))
493+ then $a
494+ else isSymbolD($a, $l[$i])
495+
496+ func $f3_2 ($a,$i) = if (($i >= $s))
497+ then $a
498+ else throw("List size exceeds 8")
499+
500+ $f3_2($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
501+ }) + "D"))) + getAmountOrClear((toString({
502+ let $l = genotype
503+ let $s = size($l)
504+ let $acc0 = 0
505+ func $f4_1 ($a,$i) = if (($i >= $s))
506+ then $a
507+ else isSymbolE($a, $l[$i])
508+
509+ func $f4_2 ($a,$i) = if (($i >= $s))
510+ then $a
511+ else throw("List size exceeds 8")
512+
513+ $f4_2($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
514+ }) + "E"))) + getAmountOrClear((toString({
515+ let $l = genotype
516+ let $s = size($l)
517+ let $acc0 = 0
518+ func $f5_1 ($a,$i) = if (($i >= $s))
519+ then $a
520+ else isSymbolF($a, $l[$i])
521+
522+ func $f5_2 ($a,$i) = if (($i >= $s))
523+ then $a
524+ else throw("List size exceeds 8")
525+
526+ $f5_2($f5_1($f5_1($f5_1($f5_1($f5_1($f5_1($f5_1($f5_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
527+ }) + "F"))) + getAmountOrClear((toString({
528+ let $l = genotype
529+ let $s = size($l)
530+ let $acc0 = 0
531+ func $f6_1 ($a,$i) = if (($i >= $s))
532+ then $a
533+ else isSymbolG($a, $l[$i])
534+
535+ func $f6_2 ($a,$i) = if (($i >= $s))
536+ then $a
537+ else throw("List size exceeds 8")
538+
539+ $f6_2($f6_1($f6_1($f6_1($f6_1($f6_1($f6_1($f6_1($f6_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
540+ }) + "G"))) + getAmountOrClear((toString({
541+ let $l = genotype
542+ let $s = size($l)
543+ let $acc0 = 0
544+ func $f7_1 ($a,$i) = if (($i >= $s))
545+ then $a
546+ else isSymbolH($a, $l[$i])
547+
548+ func $f7_2 ($a,$i) = if (($i >= $s))
549+ then $a
550+ else throw("List size exceeds 8")
551+
552+ $f7_2($f7_1($f7_1($f7_1($f7_1($f7_1($f7_1($f7_1($f7_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
553+ }) + "H"))) + "-") + generation)
554+ $Tuple2(nil, gen)
555+ }
556+
557+
558+
559+@Callable(i)
560+func startBreeding (refererAddress) = if (if ((size(i.payments) != 4))
561+ then (size(i.payments) != 3)
562+ else false)
563+ then throw("Wrong amount of payments!")
564+ else {
565+ let feeValidate = checkAdditionalPayment(i.payments[0])
566+ if ((feeValidate == feeValidate))
567+ then {
568+ let firstPayment = value(i.payments[1])
569+ let secondPayment = value(i.payments[2])
570+ let amountPaidByCoupons = asInt(invoke(getCouponsAddress(), "useCoupons", [getEaglIncubationFee()], nil))
571+ if ((amountPaidByCoupons == amountPaidByCoupons))
572+ then {
573+ let leftToPay = (getEaglIncubationFee() - amountPaidByCoupons)
574+ if (if ((leftToPay == 0))
575+ then (size(i.payments) == 4)
576+ else false)
577+ then throw("You need to attach 3 payments")
578+ else {
579+ let payment = if ((leftToPay != 0))
580+ then {
581+ let thirdPayment = value(i.payments[3])
582+ if ((thirdPayment.assetId != getEggAssetId()))
583+ then throw(("TB: You can attach only EGG tokens with the following asset id: " + toBase58String(getEggAssetId())))
584+ else if ((thirdPayment.amount != leftToPay))
585+ then throw(((("TB: To breed a Feline you following amount of EGGlets: " + toString(leftToPay)) + " ") + toString(i.caller)))
586+ else {
587+ let refererRewardForbeach = fraction(leftToPay, 5, 100)
588+ let refCall = asBoolean(invoke(getRefContractAddress(), "refPayment", [refererAddress], [AttachedPayment(getEggAssetId(), refererRewardForbeach)]))
589+ if ((refCall == refCall))
590+ then {
591+ let toBurn = if (refCall)
592+ then (leftToPay - refererRewardForbeach)
593+ else leftToPay
594+ let burnCall = invoke(getBurnAddress(), "burnAttachedPayments", nil, [AttachedPayment(getEggAssetId(), toBurn)])
595+ if ((burnCall == burnCall))
596+ then leftToPay
597+ else throw("Strict value is not equal to itself.")
598+ }
599+ else throw("Strict value is not equal to itself.")
600+ }
601+ }
602+ else 0
603+ if ((payment == payment))
604+ then {
605+ let firstAssetId = toBase58String(value(firstPayment.assetId))
606+ let secondAssetId = toBase58String(value(secondPayment.assetId))
607+ if (if ((firstPayment.amount != 1))
608+ then true
609+ else (secondPayment.amount != 1))
610+ then throw("NFT is not attached")
611+ else if (!(if (checkAssetInIncubator(firstAssetId))
612+ then checkAssetInIncubator(secondAssetId)
613+ else false))
614+ then throw("You need to attach 2 valid NFT-felines.")
615+ else if (if ((tryGetInteger((("asset_" + firstAssetId) + "_children")) > 0))
616+ then true
617+ else (tryGetInteger((("asset_" + secondAssetId) + "_children")) > 0))
618+ then throw("One feline can be used for breeding only once in its lifetime.")
619+ else {
620+ let breededStatus = canBeBreeded(fromBase58String(firstAssetId), fromBase58String(secondAssetId))
621+ if ((breededStatus != "true"))
622+ then throw(("These felines cannot be breeded: " + breededStatus))
623+ else ([StringEntry(getParentKey(i.transactionId, 1), firstAssetId), StringEntry(getParentKey(i.transactionId, 2), secondAssetId), StringEntry(getProcessStatusKey(toString(i.caller), i.transactionId), HatchingStarted), IntegerEntry(getProcessFinishHeightKey(toString(i.caller), i.transactionId), (height + delayForHatching))] ++ feeValidate)
624+ }
625+ }
626+ else throw("Strict value is not equal to itself.")
627+ }
628+ }
629+ else throw("Strict value is not equal to itself.")
630+ }
631+ else throw("Strict value is not equal to itself.")
632+ }
633+
634+
635+
636+@Callable(i)
637+func fixedGene (txIdStr,parentFixedGene,positionFixedGene) = {
638+ let feeValidate = checkAdditionalPayment(i.payments[1])
639+ if ((feeValidate == feeValidate))
640+ then if (if ((parentFixedGene != 1))
641+ then (parentFixedGene != 2)
642+ else false)
643+ then throw("FG: Parent fixed gene can be only 1 or 2")
644+ else {
645+ let firstPayment = value(i.payments[0])
646+ if ((firstPayment.amount != 1))
647+ then throw("NFT is not attached")
648+ else {
649+ let artefact = asString(invoke(getItemsAddress(), "checkArtefactDetails", [toBase58String(value(firstPayment.assetId))], nil))
650+ if ((artefact == artefact))
651+ then if ((artefact != "ART-FIXGENE"))
652+ then throw("You need to attach a ART-FIXGENE artefact")
653+ else ((finishHatchingInternal(txIdStr, i, parentFixedGene, positionFixedGene, "", 0) ++ feeValidate) ++ [Burn(value(firstPayment.assetId), 1)])
654+ else throw("Strict value is not equal to itself.")
655+ }
656+ }
657+ else throw("Strict value is not equal to itself.")
658+ }
659+
660+
661+
662+@Callable(i)
663+func freeGene (txIdStr) = {
664+ let feeValidate = checkAdditionalPayment(i.payments[1])
665+ if ((feeValidate == feeValidate))
666+ then {
667+ let firstPayment = value(i.payments[0])
668+ if ((firstPayment.amount != 1))
669+ then throw("NFT is not attached")
670+ else {
671+ let artefact = asString(invoke(getItemsAddress(), "checkArtefactDetails", [toBase58String(value(firstPayment.assetId))], nil))
672+ if ((artefact == artefact))
673+ then if ((artefact != "ART-FREEGENE"))
674+ then throw("You need to attach a ART-FREEGENE artefact")
675+ else {
676+ let finishHeightKey = getProcessFinishHeightKey(toString(i.caller), fromBase58String(txIdStr))
677+ let processFinishHeight = getIntegerValue(this, finishHeightKey)
678+ let selectedGene = getRandomOldGenes(fromBase58String(txIdStr), processFinishHeight)
679+ let randomPosition = getRandomNumber(8, fromBase58String(txIdStr), processFinishHeight, 3)
680+ ((finishHatchingInternal(txIdStr, i, 0, 0, selectedGene, randomPosition) ++ feeValidate) ++ [Burn(value(firstPayment.assetId), 1)])
681+ }
682+ else throw("Strict value is not equal to itself.")
683+ }
684+ }
685+ else throw("Strict value is not equal to itself.")
686+ }
687+
688+
689+
690+@Callable(i)
691+func finishHatching (txIdStr) = if ((size(i.payments) != 1))
692+ then throw("Wrong amount of payments!")
693+ else {
694+ let feeValidate = checkAdditionalPayment(i.payments[0])
695+ if ((feeValidate == feeValidate))
696+ then (finishHatchingInternal(txIdStr, i, 0, 0, "", 0) ++ feeValidate)
697+ else throw("Strict value is not equal to itself.")
698+ }
699+
700+
701+
702+@Callable(i)
703+func configureOracle (oracle) = if ((i.caller != this))
704+ then throw("ICU: admin only")
705+ else [StringEntry("static_oracleAddress", oracle)]
706+
707+
708+
709+@Callable(i)
710+func reduceRarity (assetId,farmGen) = {
711+ let asset = fromBase58String(assetId)
712+ if (if ((i.caller != getEaglRebirthAddress()))
713+ then (i.caller != this)
714+ else false)
715+ then throw("admin, items or rebirth only")
716+ else {
717+ let duckGen = value(assetInfo(asset)).name
718+[IntegerEntry(getStatsKey(duckGen), (tryGetInteger(getStatsKey(duckGen)) - 1)), IntegerEntry((("stats_" + farmGen) + "_quantity"), (tryGetInteger((("stats_" + farmGen) + "_quantity")) - 1))]
719+ }
720+ }
721+
722+
723+@Verifier(tx)
724+func verify () = if (isTestEnv())
725+ then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
726+ else {
727+ let firstUser = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
728+ let secondUser = base58'7DsP2WaMLocbHuUxux7pbXRjTrrZ1TFQPsi5QumS3gr8'
729+ let thirdUser = base58'BpFWP3p3JgYrrP45xfrKzeMcWMEXoinj4FVPPkUiA8D3'
730+ let firstUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], firstUser))
731+ then 1
732+ else if (sigVerify(tx.bodyBytes, tx.proofs[1], firstUser))
733+ then 1
734+ else if (sigVerify(tx.bodyBytes, tx.proofs[2], firstUser))
735+ then 1
736+ else 0
737+ let secondUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], secondUser))
738+ then 1
739+ else if (sigVerify(tx.bodyBytes, tx.proofs[1], secondUser))
740+ then 1
741+ else if (sigVerify(tx.bodyBytes, tx.proofs[2], secondUser))
742+ then 1
743+ else 0
744+ let thirdUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], thirdUser))
745+ then 1
746+ else if (sigVerify(tx.bodyBytes, tx.proofs[1], thirdUser))
747+ then 1
748+ else if (sigVerify(tx.bodyBytes, tx.proofs[2], thirdUser))
749+ then 1
750+ else 0
751+ let signaturesCount = ((firstUserSigned + secondUserSigned) + thirdUserSigned)
752+ match tx {
753+ case _ =>
754+ (signaturesCount >= 1)
755+ }
756+ }
757+

github/deemru/w8io/169f3d6 
50.19 ms