tx · JBBEmincE2tfgwhEVCz9NK863uHUHAuigSDQrNDj5rTU

3PGZyyPg7Mx91yaNT8k3MWxSQzuzusMUyzX:  -0.01400000 Waves

2021.09.14 12:57 [2767486] smart account 3PGZyyPg7Mx91yaNT8k3MWxSQzuzusMUyzX > SELF 0.00000000 Waves

{ "type": 13, "id": "JBBEmincE2tfgwhEVCz9NK863uHUHAuigSDQrNDj5rTU", "fee": 1400000, "feeAssetId": null, "timestamp": 1631613449442, "version": 2, "chainId": 87, "sender": "3PGZyyPg7Mx91yaNT8k3MWxSQzuzusMUyzX", "senderPublicKey": "EmRAgwaLuMrvnkeorjU9UmmGnRMXMu5ctEqkYRxnG2za", "proofs": [ "3ea9J3PB8RLPYd5VAXU7KJ1AJr9RvwNF9gL1N2Dkpe6rPN6KhfinhofeX928uv66Z2YjJr3uHWtMgifMjfHAvYX6" ], "script": "base64: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AAAADSRhY2MxMjM3MzI0MDQJAQAAAAlpc1N5bWJvbEMAAAACBQAAAA0kYWNjMDIzNzMyNDA0CQABkQAAAAIFAAAADSRsaXN0MjM3MzI0MDQAAAAAAAAAAAADCQAAAAAAAAIFAAAADSRzaXplMjM3MzI0MDQAAAAAAAAAAAEFAAAADSRhY2MxMjM3MzI0MDQEAAAADSRhY2MyMjM3MzI0MDQJAQAAAAlpc1N5bWJvbEMAAAACBQAAAA0kYWNjMTIzNzMyNDA0CQABkQAAAAIFAAAADSRsaXN0MjM3MzI0MDQAAAAAAAAAAAEDCQAAAAAAAAIFAAAADSRzaXplMjM3MzI0MDQAAAAAAAAAAAIFAAAADSRhY2MyMjM3MzI0MDQEAAAADSRhY2MzMjM3MzI0MDQJAQAAAAlpc1N5bWJvbEMAAAACBQAAAA0kYWNjMjIzNzMyNDA0CQABkQAAAAIFAAAADSRsaXN0MjM3MzI0MDQAAAAAAAAAAAIDCQAAAAAAAAIFAAAADSRzaXplMjM3MzI0MDQAAAAAAAAAAAMFAAAADSRhY2MzMjM3MzI0MDQEAAAADSRhY2M0MjM3MzI0MDQJAQAAAAlpc1N5bWJvbEMAAAACBQAAAA0kYWNjMzIzNzMyNDA0CQABkQAAAAIFAAAADSRsaXN0MjM3MzI0MDQAAAAAAAAAAAMDCQAAAAAAAAIFAAAADSRzaXplMjM3MzI0MDQAAAAAAAAAAAQFAAAADSRhY2M0MjM3MzI0MDQEAAAADSRhY2M1MjM3MzI0MDQJAQAAAAlpc1N5bWJvbEMAAAACBQAAAA0kYWNjNDIzNzMyNDA0CQABkQAAAAIFAAAADSRsaXN0MjM3MzI0MDQAAAAAAAAAAAQDCQAAAAAAAAIFAAAADSRzaXplMjM3MzI0MDQAAAAAAAAAAAUFAAAADSRhY2M1MjM3MzI0MDQEAAAADSRhY2M2MjM3MzI0MDQJAQAAAAlpc1N5bWJvbEMAAAACBQAAAA0kYWNjNTIzNzMyNDA0CQABkQAAAAIFAAAADSRsaXN0MjM3MzI0MDQAAAAAAAAAAAUDCQAAAAAAAAIFAAAADSRzaXplMjM3MzI0MDQAAAAAAAAAAAYFAAAADSRhY2M2MjM3MzI0MDQEAAAADSRhY2M3MjM3MzI0MDQJAQAAAAlpc1N5bWJvbEMAAAACBQAAAA0kYWNjNjIzNzMyNDA0CQABkQAAAAIFAAAADSRsaXN0MjM3MzI0MDQAAAAAAAAAAAYDCQAAAAAAAAIFAAAADSRzaXplMjM3MzI0MDQAAAAAAAAAAAcFAAAADSRhY2M3MjM3MzI0MDQEAAAADSRhY2M4MjM3MzI0MDQJAQAAAAlpc1N5bWJvbEMAAAACBQAAAA0kYWNjNzIzNzMyNDA0CQABkQAAAAIFAAAADSRsaXN0MjM3MzI0MDQAAAAAAAAAAAcDCQAAAAAAAAIFAAAADSRzaXplMjM3MzI0MDQAAAAAAAAAAAgFAAAADSRhY2M4MjM3MzI0MDQEAAAADSRhY2M5MjM3MzI0MDQJAQAAAAlpc1N5bWJvbEMAAAACBQAAAA0kYWNjODIzNzMyNDA0CQABkQAAAAIFAAAADSRsaXN0MjM3MzI0MDQAAAAAAAAAAAgJAAACAAAAAQIAAAASTGlzdCBzaXplIGV4Y2VlZCA4AgAAAAFDCQEAAAAQZ2V0QW1vdW50T3JDbGVhcgAAAAEJAAEsAAAAAgkAAaQAAAABBAAAAA0kbGlzdDI0NDMyNDc0BQAAAAhnZW5vdHlwZQQAAAANJHNpemUyNDQzMjQ3NAkAAZAAAAABBQAAAA0kbGlzdDI0NDMyNDc0BAAAAA0kYWNjMDI0NDMyNDc0AAAAAAAAAAAAAwkAAAAAAAACBQAAAA0kc2l6ZTI0NDMyNDc0AAAAAAAAAAAABQAAAA0kYWNjMDI0NDMyNDc0BAAAAA0kYWNjMTI0NDMyNDc0CQEAAAAJaXNTeW1ib2xEAAAAAgUAAAANJGFjYzAyNDQzMjQ3NAkAAZEAAAACBQAAAA0kbGlzdDI0NDMyNDc0AAAAAAAAAAAAAwkAAAAAAAACBQAAAA0kc2l6ZTI0NDMyNDc0AAAAAAAAAAABBQAAAA0kYWNjMTI0NDMyNDc0BAAAAA0kYWNjMjI0NDMyNDc0CQEAAAAJaXNTeW1ib2xEAAAAAgUAAAANJGFjYzEyNDQzMjQ3NAkAAZEAAAACBQAAAA0kbGlzdDI0NDMyNDc0AAAAAAAAAAABAwkAAAAAAAACBQAAAA0kc2l6ZTI0NDMyNDc0AAAAAAAAAAACBQAAAA0kYWNjMjI0NDMyNDc0BAAAAA0kYWNjMzI0NDMyNDc0CQEAAAAJaXNTeW1ib2xEAAAAAgUAAAANJGFjYzIyNDQzMjQ3NAkAAZEAAAACBQAAAA0kbGlzdDI0NDMyNDc0AAAAAAAAAAACAwkAAAAAAAACBQAAAA0kc2l6ZTI0NDMyNDc0AAAAAAAAAAADBQAAAA0kYWNjMzI0NDMyNDc0BAAAAA0kYWNjNDI0NDMyNDc0CQEAAAAJaXNTeW1ib2xEAAAAAgUAAAANJGFjYzMyNDQzMjQ3NAkAAZEAAAACBQAAAA0kbGlzdDI0NDMyNDc0AAAAAAAAAAADAwkAAAAAAAACBQAAAA0kc2l6ZTI0NDMyNDc0AAAAAAAAAAAEBQAAAA0kYWNjNDI0NDMyNDc0BAAAAA0kYWNjNTI0NDMyNDc0CQEAAAAJaXNTeW1ib2xEAAAAAgUAAAANJGFjYzQyNDQzMjQ3NAkAAZEAAAACBQAAAA0kbGlzdDI0NDMyNDc0AAAAAAAAAAAEAwkAAAAAAAACBQAAAA0kc2l6ZTI0NDMyNDc0AAAAAAAAAAAFBQAAAA0kYWNjNTI0NDMyNDc0BAAAAA0kYWNjNjI0NDMyNDc0CQEAAAAJaXNTeW1ib2xEAAAAAgUAAAANJGFjYzUyNDQzMjQ3NAkAAZEAAAACBQAAAA0kbGlzdDI0NDMyNDc0AAAAAAAAAAAFAwkAAAAAAAACBQAAAA0kc2l6ZTI0NDMyNDc0AAAAAAAAAAAGBQAAAA0kYWNjNjI0NDMyNDc0BAAAAA0kYWNjNzI0NDMyNDc0CQEAAAAJaXNTeW1ib2xEAAAAAgUAAAANJGFjYzYyNDQzMjQ3NAkAAZEAAAACBQAAAA0kbGlzdDI0NDMyNDc0AAAAAAAAAAAGAwkAAAAAAAACBQAAAA0kc2l6ZTI0NDMyNDc0AAAAAAAAAAAHBQAAAA0kYWNjNzI0NDMyNDc0BAAAAA0kYWNjODI0NDMyNDc0CQEAAAAJaXNTeW1ib2xEAAAAAgUAAAANJGFjYzcyNDQzMjQ3NAkAAZEAAAACBQAAAA0kbGlzdDI0NDMyNDc0AAAAAAAAAAAHAwkAAAAAAAACBQAAAA0kc2l6ZTI0NDMyNDc0AAAAAAAAAAAIBQAAAA0kYWNjODI0NDMyNDc0BAAAAA0kYWNjOTI0NDMyNDc0CQEAAAAJaXNTeW1ib2xEAAAAAgUAAAANJGFjYzgyNDQzMjQ3NAkAAZEAAAACBQAAAA0kbGlz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aXN0MjU3OTI2MTAAAAAAAAAAAAADCQAAAAAAAAIFAAAADSRzaXplMjU3OTI2MTAAAAAAAAAAAAEFAAAADSRhY2MxMjU3OTI2MTAEAAAADSRhY2MyMjU3OTI2MTAJAQAAAAlpc1N5bWJvbEYAAAACBQAAAA0kYWNjMTI1NzkyNjEwCQABkQAAAAIFAAAADSRsaXN0MjU3OTI2MTAAAAAAAAAAAAEDCQAAAAAAAAIFAAAADSRzaXplMjU3OTI2MTAAAAAAAAAAAAIFAAAADSRhY2MyMjU3OTI2MTAEAAAADSRhY2MzMjU3OTI2MTAJAQAAAAlpc1N5bWJvbEYAAAACBQAAAA0kYWNjMjI1NzkyNjEwCQABkQAAAAIFAAAADSRsaXN0MjU3OTI2MTAAAAAAAAAAAAIDCQAAAAAAAAIFAAAADSRzaXplMjU3OTI2MTAAAAAAAAAAAAMFAAAADSRhY2MzMjU3OTI2MTAEAAAADSRhY2M0MjU3OTI2MTAJAQAAAAlpc1N5bWJvbEYAAAACBQAAAA0kYWNjMzI1NzkyNjEwCQABkQAAAAIFAAAADSRsaXN0MjU3OTI2MTAAAAAAAAAAAAMDCQAAAAAAAAIFAAAADSRzaXplMjU3OTI2MTAAAAAAAAAAAAQFAAAADSRhY2M0MjU3OTI2MTAEAAAADSRhY2M1MjU3OTI2MTAJAQAAAAlpc1N5bWJvbEYAAAACBQAAAA0kYWNjNDI1NzkyNjEwCQABkQAAAAIFAAAADSRsaXN0MjU3OTI2MTAAAAAAAAAAAAQDCQAAAAAAAAIFAAAADSRzaXplMjU3OTI2MTAAAAAAAAAAAAUFAAAADSRhY2M1MjU3OTI2MTAEAAAADSRhY2M2MjU3OTI2MTAJAQAAAAlpc1N5bWJvbEYAAAACBQAAAA0kYWNjNTI1NzkyNjEwCQABkQAAAAIFAAAADSRsaXN0MjU3OTI2MTAAAAAAAAAAAAUDCQAAAAAAAAIFAAAADSRzaXplMjU3OTI2MTAAAAAAAAAAAAYFAAAADSRhY2M2MjU3OTI2MTAEAAAADSRhY2M3MjU3OTI2MTAJAQAAAAlpc1N5bWJvbEYAAAACBQAAAA0kYWNjNjI1NzkyNjEwCQABkQAAAAIFAAAADSRsaXN0MjU3OTI2MTAAAAAAAAAAAAYDCQAAAAAAAAIFAAAADSRz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", "height": 2767486, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DEjAXnm7eTpcDvLBZVTNEVuRndXXq25P6BMFgooKjQgn Next: A3LafxmzmEeSNmTKLdkwy8B5nvpkj2FPsS4FkZFroDPL Diff:
OldNewDifferences
33 {-# CONTENT_TYPE DAPP #-}
44 let eggsAssetId = base58'53bLXGQhnMxAoiWnza2SJQRp7hNQZVHnyrRziLmwdVjb'
55
6+let feeAmount = 50
7+
8+let delayForHatching = 0
9+
610 let incubatorAddress = base58'3P6TwNU39Ykkbeqhn5TE4a2736xsA1vXemM'
711
12+let breederAddress = base58'3P9REuLBnYBafDqtEu6hfzs2Rv2haSU158y'
13+
814 let farmingAddress = base58'3PH75p2rmMKCV2nyW4TsAdFgFtmc61mJaqA'
15+
16+let ducklingAddress = base58'3PKwLVb8jYk58oYbfXxs2dUjD3YEKeqGWrX'
17+
18+let PHOENIXBASEOPTIONS = 1000
19+
20+func isLocked () = {
21+ let masterAddress = Address(base58'3PEPftf2kWZDmAaWBjs6BUJa9957kiA2PkU')
22+ match getInteger(masterAddress, "egglock") {
23+ case b: Int =>
24+ b
25+ case _ =>
26+ 0
27+ }
28+ }
29+
930
1031 func tryGetInteger (key) = match getInteger(this, key) {
1132 case b: Int =>
1536 }
1637
1738
18-func isValidAddress (address) = match addressFromString(address) {
19- case a: Address =>
20- true
39+func asString (value) = match value {
40+ case s: String =>
41+ s
2142 case _ =>
22- false
43+ throw("wrong type, expected: String")
2344 }
2445
2546
3152 }
3253
3354
55+func isSymbolA (accumulated,sym) = if ((sym == "A"))
56+ then (accumulated + 1)
57+ else (accumulated + 0)
58+
59+
60+func isSymbolB (accumulated,sym) = if ((sym == "B"))
61+ then (accumulated + 1)
62+ else (accumulated + 0)
63+
64+
65+func isSymbolC (accumulated,sym) = if ((sym == "C"))
66+ then (accumulated + 1)
67+ else (accumulated + 0)
68+
69+
70+func isSymbolD (accumulated,sym) = if ((sym == "D"))
71+ then (accumulated + 1)
72+ else (accumulated + 0)
73+
74+
75+func isSymbolE (accumulated,sym) = if ((sym == "E"))
76+ then (accumulated + 1)
77+ else (accumulated + 0)
78+
79+
80+func isSymbolF (accumulated,sym) = if ((sym == "F"))
81+ then (accumulated + 1)
82+ else (accumulated + 0)
83+
84+
85+func isSymbolG (accumulated,sym) = if ((sym == "G"))
86+ then (accumulated + 1)
87+ else (accumulated + 0)
88+
89+
90+func isSymbolH (accumulated,sym) = if ((sym == "H"))
91+ then (accumulated + 1)
92+ else (accumulated + 0)
93+
94+
95+func getAmountOrClear (amount) = if (contains(amount, "0"))
96+ then ""
97+ else amount
98+
99+
100+func getGen (assetName) = {
101+ let genotype = split(dropRight(drop(assetName, 5), 3), "")
102+ (((((((getAmountOrClear((toString({
103+ let $list22372268 = genotype
104+ let $size22372268 = size($list22372268)
105+ let $acc022372268 = 0
106+ if (($size22372268 == 0))
107+ then $acc022372268
108+ else {
109+ let $acc122372268 = isSymbolA($acc022372268, $list22372268[0])
110+ if (($size22372268 == 1))
111+ then $acc122372268
112+ else {
113+ let $acc222372268 = isSymbolA($acc122372268, $list22372268[1])
114+ if (($size22372268 == 2))
115+ then $acc222372268
116+ else {
117+ let $acc322372268 = isSymbolA($acc222372268, $list22372268[2])
118+ if (($size22372268 == 3))
119+ then $acc322372268
120+ else {
121+ let $acc422372268 = isSymbolA($acc322372268, $list22372268[3])
122+ if (($size22372268 == 4))
123+ then $acc422372268
124+ else {
125+ let $acc522372268 = isSymbolA($acc422372268, $list22372268[4])
126+ if (($size22372268 == 5))
127+ then $acc522372268
128+ else {
129+ let $acc622372268 = isSymbolA($acc522372268, $list22372268[5])
130+ if (($size22372268 == 6))
131+ then $acc622372268
132+ else {
133+ let $acc722372268 = isSymbolA($acc622372268, $list22372268[6])
134+ if (($size22372268 == 7))
135+ then $acc722372268
136+ else {
137+ let $acc822372268 = isSymbolA($acc722372268, $list22372268[7])
138+ if (($size22372268 == 8))
139+ then $acc822372268
140+ else {
141+ let $acc922372268 = isSymbolA($acc822372268, $list22372268[8])
142+ throw("List size exceed 8")
143+ }
144+ }
145+ }
146+ }
147+ }
148+ }
149+ }
150+ }
151+ }
152+ }) + "A")) + getAmountOrClear((toString({
153+ let $list23052336 = genotype
154+ let $size23052336 = size($list23052336)
155+ let $acc023052336 = 0
156+ if (($size23052336 == 0))
157+ then $acc023052336
158+ else {
159+ let $acc123052336 = isSymbolB($acc023052336, $list23052336[0])
160+ if (($size23052336 == 1))
161+ then $acc123052336
162+ else {
163+ let $acc223052336 = isSymbolB($acc123052336, $list23052336[1])
164+ if (($size23052336 == 2))
165+ then $acc223052336
166+ else {
167+ let $acc323052336 = isSymbolB($acc223052336, $list23052336[2])
168+ if (($size23052336 == 3))
169+ then $acc323052336
170+ else {
171+ let $acc423052336 = isSymbolB($acc323052336, $list23052336[3])
172+ if (($size23052336 == 4))
173+ then $acc423052336
174+ else {
175+ let $acc523052336 = isSymbolB($acc423052336, $list23052336[4])
176+ if (($size23052336 == 5))
177+ then $acc523052336
178+ else {
179+ let $acc623052336 = isSymbolB($acc523052336, $list23052336[5])
180+ if (($size23052336 == 6))
181+ then $acc623052336
182+ else {
183+ let $acc723052336 = isSymbolB($acc623052336, $list23052336[6])
184+ if (($size23052336 == 7))
185+ then $acc723052336
186+ else {
187+ let $acc823052336 = isSymbolB($acc723052336, $list23052336[7])
188+ if (($size23052336 == 8))
189+ then $acc823052336
190+ else {
191+ let $acc923052336 = isSymbolB($acc823052336, $list23052336[8])
192+ throw("List size exceed 8")
193+ }
194+ }
195+ }
196+ }
197+ }
198+ }
199+ }
200+ }
201+ }
202+ }) + "B"))) + getAmountOrClear((toString({
203+ let $list23732404 = genotype
204+ let $size23732404 = size($list23732404)
205+ let $acc023732404 = 0
206+ if (($size23732404 == 0))
207+ then $acc023732404
208+ else {
209+ let $acc123732404 = isSymbolC($acc023732404, $list23732404[0])
210+ if (($size23732404 == 1))
211+ then $acc123732404
212+ else {
213+ let $acc223732404 = isSymbolC($acc123732404, $list23732404[1])
214+ if (($size23732404 == 2))
215+ then $acc223732404
216+ else {
217+ let $acc323732404 = isSymbolC($acc223732404, $list23732404[2])
218+ if (($size23732404 == 3))
219+ then $acc323732404
220+ else {
221+ let $acc423732404 = isSymbolC($acc323732404, $list23732404[3])
222+ if (($size23732404 == 4))
223+ then $acc423732404
224+ else {
225+ let $acc523732404 = isSymbolC($acc423732404, $list23732404[4])
226+ if (($size23732404 == 5))
227+ then $acc523732404
228+ else {
229+ let $acc623732404 = isSymbolC($acc523732404, $list23732404[5])
230+ if (($size23732404 == 6))
231+ then $acc623732404
232+ else {
233+ let $acc723732404 = isSymbolC($acc623732404, $list23732404[6])
234+ if (($size23732404 == 7))
235+ then $acc723732404
236+ else {
237+ let $acc823732404 = isSymbolC($acc723732404, $list23732404[7])
238+ if (($size23732404 == 8))
239+ then $acc823732404
240+ else {
241+ let $acc923732404 = isSymbolC($acc823732404, $list23732404[8])
242+ throw("List size exceed 8")
243+ }
244+ }
245+ }
246+ }
247+ }
248+ }
249+ }
250+ }
251+ }
252+ }) + "C"))) + getAmountOrClear((toString({
253+ let $list24432474 = genotype
254+ let $size24432474 = size($list24432474)
255+ let $acc024432474 = 0
256+ if (($size24432474 == 0))
257+ then $acc024432474
258+ else {
259+ let $acc124432474 = isSymbolD($acc024432474, $list24432474[0])
260+ if (($size24432474 == 1))
261+ then $acc124432474
262+ else {
263+ let $acc224432474 = isSymbolD($acc124432474, $list24432474[1])
264+ if (($size24432474 == 2))
265+ then $acc224432474
266+ else {
267+ let $acc324432474 = isSymbolD($acc224432474, $list24432474[2])
268+ if (($size24432474 == 3))
269+ then $acc324432474
270+ else {
271+ let $acc424432474 = isSymbolD($acc324432474, $list24432474[3])
272+ if (($size24432474 == 4))
273+ then $acc424432474
274+ else {
275+ let $acc524432474 = isSymbolD($acc424432474, $list24432474[4])
276+ if (($size24432474 == 5))
277+ then $acc524432474
278+ else {
279+ let $acc624432474 = isSymbolD($acc524432474, $list24432474[5])
280+ if (($size24432474 == 6))
281+ then $acc624432474
282+ else {
283+ let $acc724432474 = isSymbolD($acc624432474, $list24432474[6])
284+ if (($size24432474 == 7))
285+ then $acc724432474
286+ else {
287+ let $acc824432474 = isSymbolD($acc724432474, $list24432474[7])
288+ if (($size24432474 == 8))
289+ then $acc824432474
290+ else {
291+ let $acc924432474 = isSymbolD($acc824432474, $list24432474[8])
292+ throw("List size exceed 8")
293+ }
294+ }
295+ }
296+ }
297+ }
298+ }
299+ }
300+ }
301+ }
302+ }) + "D"))) + getAmountOrClear((toString({
303+ let $list25112542 = genotype
304+ let $size25112542 = size($list25112542)
305+ let $acc025112542 = 0
306+ if (($size25112542 == 0))
307+ then $acc025112542
308+ else {
309+ let $acc125112542 = isSymbolE($acc025112542, $list25112542[0])
310+ if (($size25112542 == 1))
311+ then $acc125112542
312+ else {
313+ let $acc225112542 = isSymbolE($acc125112542, $list25112542[1])
314+ if (($size25112542 == 2))
315+ then $acc225112542
316+ else {
317+ let $acc325112542 = isSymbolE($acc225112542, $list25112542[2])
318+ if (($size25112542 == 3))
319+ then $acc325112542
320+ else {
321+ let $acc425112542 = isSymbolE($acc325112542, $list25112542[3])
322+ if (($size25112542 == 4))
323+ then $acc425112542
324+ else {
325+ let $acc525112542 = isSymbolE($acc425112542, $list25112542[4])
326+ if (($size25112542 == 5))
327+ then $acc525112542
328+ else {
329+ let $acc625112542 = isSymbolE($acc525112542, $list25112542[5])
330+ if (($size25112542 == 6))
331+ then $acc625112542
332+ else {
333+ let $acc725112542 = isSymbolE($acc625112542, $list25112542[6])
334+ if (($size25112542 == 7))
335+ then $acc725112542
336+ else {
337+ let $acc825112542 = isSymbolE($acc725112542, $list25112542[7])
338+ if (($size25112542 == 8))
339+ then $acc825112542
340+ else {
341+ let $acc925112542 = isSymbolE($acc825112542, $list25112542[8])
342+ throw("List size exceed 8")
343+ }
344+ }
345+ }
346+ }
347+ }
348+ }
349+ }
350+ }
351+ }
352+ }) + "E"))) + getAmountOrClear((toString({
353+ let $list25792610 = genotype
354+ let $size25792610 = size($list25792610)
355+ let $acc025792610 = 0
356+ if (($size25792610 == 0))
357+ then $acc025792610
358+ else {
359+ let $acc125792610 = isSymbolF($acc025792610, $list25792610[0])
360+ if (($size25792610 == 1))
361+ then $acc125792610
362+ else {
363+ let $acc225792610 = isSymbolF($acc125792610, $list25792610[1])
364+ if (($size25792610 == 2))
365+ then $acc225792610
366+ else {
367+ let $acc325792610 = isSymbolF($acc225792610, $list25792610[2])
368+ if (($size25792610 == 3))
369+ then $acc325792610
370+ else {
371+ let $acc425792610 = isSymbolF($acc325792610, $list25792610[3])
372+ if (($size25792610 == 4))
373+ then $acc425792610
374+ else {
375+ let $acc525792610 = isSymbolF($acc425792610, $list25792610[4])
376+ if (($size25792610 == 5))
377+ then $acc525792610
378+ else {
379+ let $acc625792610 = isSymbolF($acc525792610, $list25792610[5])
380+ if (($size25792610 == 6))
381+ then $acc625792610
382+ else {
383+ let $acc725792610 = isSymbolF($acc625792610, $list25792610[6])
384+ if (($size25792610 == 7))
385+ then $acc725792610
386+ else {
387+ let $acc825792610 = isSymbolF($acc725792610, $list25792610[7])
388+ if (($size25792610 == 8))
389+ then $acc825792610
390+ else {
391+ let $acc925792610 = isSymbolF($acc825792610, $list25792610[8])
392+ throw("List size exceed 8")
393+ }
394+ }
395+ }
396+ }
397+ }
398+ }
399+ }
400+ }
401+ }
402+ }) + "F"))) + getAmountOrClear((toString({
403+ let $list26492680 = genotype
404+ let $size26492680 = size($list26492680)
405+ let $acc026492680 = 0
406+ if (($size26492680 == 0))
407+ then $acc026492680
408+ else {
409+ let $acc126492680 = isSymbolG($acc026492680, $list26492680[0])
410+ if (($size26492680 == 1))
411+ then $acc126492680
412+ else {
413+ let $acc226492680 = isSymbolG($acc126492680, $list26492680[1])
414+ if (($size26492680 == 2))
415+ then $acc226492680
416+ else {
417+ let $acc326492680 = isSymbolG($acc226492680, $list26492680[2])
418+ if (($size26492680 == 3))
419+ then $acc326492680
420+ else {
421+ let $acc426492680 = isSymbolG($acc326492680, $list26492680[3])
422+ if (($size26492680 == 4))
423+ then $acc426492680
424+ else {
425+ let $acc526492680 = isSymbolG($acc426492680, $list26492680[4])
426+ if (($size26492680 == 5))
427+ then $acc526492680
428+ else {
429+ let $acc626492680 = isSymbolG($acc526492680, $list26492680[5])
430+ if (($size26492680 == 6))
431+ then $acc626492680
432+ else {
433+ let $acc726492680 = isSymbolG($acc626492680, $list26492680[6])
434+ if (($size26492680 == 7))
435+ then $acc726492680
436+ else {
437+ let $acc826492680 = isSymbolG($acc726492680, $list26492680[7])
438+ if (($size26492680 == 8))
439+ then $acc826492680
440+ else {
441+ let $acc926492680 = isSymbolG($acc826492680, $list26492680[8])
442+ throw("List size exceed 8")
443+ }
444+ }
445+ }
446+ }
447+ }
448+ }
449+ }
450+ }
451+ }
452+ }) + "G"))) + getAmountOrClear((toString({
453+ let $list27172748 = genotype
454+ let $size27172748 = size($list27172748)
455+ let $acc027172748 = 0
456+ if (($size27172748 == 0))
457+ then $acc027172748
458+ else {
459+ let $acc127172748 = isSymbolH($acc027172748, $list27172748[0])
460+ if (($size27172748 == 1))
461+ then $acc127172748
462+ else {
463+ let $acc227172748 = isSymbolH($acc127172748, $list27172748[1])
464+ if (($size27172748 == 2))
465+ then $acc227172748
466+ else {
467+ let $acc327172748 = isSymbolH($acc227172748, $list27172748[2])
468+ if (($size27172748 == 3))
469+ then $acc327172748
470+ else {
471+ let $acc427172748 = isSymbolH($acc327172748, $list27172748[3])
472+ if (($size27172748 == 4))
473+ then $acc427172748
474+ else {
475+ let $acc527172748 = isSymbolH($acc427172748, $list27172748[4])
476+ if (($size27172748 == 5))
477+ then $acc527172748
478+ else {
479+ let $acc627172748 = isSymbolH($acc527172748, $list27172748[5])
480+ if (($size27172748 == 6))
481+ then $acc627172748
482+ else {
483+ let $acc727172748 = isSymbolH($acc627172748, $list27172748[6])
484+ if (($size27172748 == 7))
485+ then $acc727172748
486+ else {
487+ let $acc827172748 = isSymbolH($acc727172748, $list27172748[7])
488+ if (($size27172748 == 8))
489+ then $acc827172748
490+ else {
491+ let $acc927172748 = isSymbolH($acc827172748, $list27172748[8])
492+ throw("List size exceed 8")
493+ }
494+ }
495+ }
496+ }
497+ }
498+ }
499+ }
500+ }
501+ }
502+ }) + "H")))
503+ }
504+
505+
506+func getAssetOrigin (generation) = if ((generation == "G"))
507+ then incubatorAddress
508+ else breederAddress
509+
510+
511+func getAssetRarity (genotype,generation) = {
512+ let quantity = getIntegerValue(Address(getAssetOrigin(generation)), (("stats_" + genotype) + "_quantity"))
513+ let power = pow((10000 / quantity), 4, 5, 1, 2, FLOOR)
514+ if ((power > 0))
515+ then power
516+ else 2
517+ }
518+
519+
520+func getAssetFarmingPower (assetId) = if (if ((value(assetInfo(assetId)).issuer == Address(breederAddress)))
521+ then true
522+ else (value(assetInfo(assetId)).issuer == Address(incubatorAddress)))
523+ then {
524+ let assetName = value(assetInfo(assetId)).name
525+ let generation = take(takeRight(assetName, 2), 1)
526+ let gen = ((getGen(assetName) + "-") + generation)
527+ $Tuple2(gen, getAssetRarity(gen, generation))
528+ }
529+ else throw("not valid NFT")
530+
531+
532+func getRandomNumber (options,txId,hatchingFinishHeight,offset) = {
533+ let randomSeedBlock = value(blockInfoByHeight((hatchingFinishHeight - 1)))
534+ let randomHash = sha256((txId + value(randomSeedBlock.vrf)))
535+ (toInt(randomHash, (offset * 8)) % options)
536+ }
537+
538+
539+func getRandomWin (tx,finishHeight,assetRarity) = {
540+ let phoenixOptions = (PHOENIXBASEOPTIONS - fraction((PHOENIXBASEOPTIONS / 2), assetRarity, 100))
541+ let phoenixRandom = getRandomNumber(phoenixOptions, tx, finishHeight, 1)
542+ if ((phoenixRandom == 1))
543+ then "phoenix"
544+ else {
545+ let n = getRandomNumber(10, tx, finishHeight, 0)
546+ if ((3 > n))
547+ then "gone"
548+ else if ((5 > n))
549+ then "duckling"
550+ else if ((n == 5))
551+ then "perch_Y"
552+ else if ((n == 6))
553+ then "perch_G"
554+ else if ((n == 7))
555+ then "perch_B"
556+ else if ((n == 8))
557+ then "perch_R"
558+ else "incubator"
559+ }
560+ }
561+
562+
563+func getOrigin (assetId) = {
564+ let assetName = value(assetInfo(assetId)).name
565+ let generation = take(takeRight(assetName, 2), 1)
566+ if (if ((generation == "G"))
567+ then true
568+ else (generation == "J"))
569+ then incubatorAddress
570+ else breederAddress
571+ }
572+
573+
34574 @Callable(i)
35-func addRefKey (refererAddress,refererKey) = if ((i.caller != this))
36- then throw("admin only")
575+func initRebirth () = if ((isLocked() > 0))
576+ then throw("egg spendings are temporarily locked")
37577 else {
38- let refStateKey = (("key_" + refererKey) + "_refererAddress")
39- if ((tryGetString(refStateKey) == ""))
40- then [StringEntry(refStateKey, refererAddress), StringEntry(((("address_" + refererAddress) + "_refererKey_") + refererKey), refererKey)]
41- else throw((("The ref key \"" + refererKey) + "\" is already registered"))
578+ let assetId = value(i.payments[0].assetId)
579+ let initTx = toBase58String(i.transactionId)
580+ let address = toString(i.caller)
581+ let feePayment = value(i.payments[1])
582+ if ((feePayment.assetId != eggsAssetId))
583+ then throw("You need to attach EGG tokens as fee")
584+ else if ((feeAmount > feePayment.amount))
585+ then throw(("You need to attach the following amount of EGG tokens as fee: 0." + toString(feeAmount)))
586+ else {
587+ let $t053675416 = getAssetFarmingPower(assetId)
588+ let gen = $t053675416._1
589+ let rarity = $t053675416._2
590+ let call = invoke(Address(getOrigin(assetId)), "reduceRarity", [toBase58String(assetId), gen], nil)
591+ if ((call == call))
592+ then [IntegerEntry((((("address_" + address) + "_initTx_") + initTx) + "_finishBlock"), (height + delayForHatching)), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_status"), "open"), IntegerEntry((((("address_" + address) + "_initTx_") + initTx) + "_assetRarity"), rarity), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_assetId"), toBase58String(assetId))]
593+ else throw("Strict value is not equal to itself.")
594+ }
42595 }
43596
44597
45598
46599 @Callable(i)
47-func refPayment (refererKey) = {
48- let referalAddress = toString(i.originCaller)
49- if (if ((i.caller.bytes != incubatorAddress))
50- then (i.caller.bytes != farmingAddress)
51- else false)
52- then throw("This method can be called only by farming and incubator dApps")
53- else if ((refererKey == ""))
54- then nil
600+func finishRebirth (initTx) = {
601+ let address = toString(i.caller)
602+ let finishBlock = tryGetInteger((((("address_" + address) + "_initTx_") + initTx) + "_finishBlock"))
603+ let assetRarity = tryGetInteger((((("address_" + address) + "_initTx_") + initTx) + "_assetRarity"))
604+ let status = tryGetString((((("address_" + address) + "_initTx_") + initTx) + "_status"))
605+ if ((status != "open"))
606+ then throw("rebirth is finished or not open")
607+ else if ((finishBlock > height))
608+ then throw("you cannot finish rebirth, yet")
55609 else {
56- let givenReferer = match getString(this, (("key_" + refererKey) + "_refererAddress")) {
57- case x: String =>
58- x
59- case _ =>
60- refererKey
61- }
62- let refererAddress = match getString(this, (("address_" + referalAddress) + "_referedBy")) {
63- case x: String =>
64- x
65- case _ =>
66- givenReferer
67- }
68- if ((addressFromString(refererAddress) == unit))
69- then nil
70- else {
71- let refererAddressValue = addressFromStringValue(refererAddress)
72- let referalAddressValue = addressFromStringValue(referalAddress)
73- let paymentForReferer = value(i.payments[0])
74- let refererEarnedReward = (("address_" + refererAddress) + "_earnedReward")
75- let referalDeliveredReward = (((("referer_" + refererAddress) + "_referal_") + referalAddress) + "_deliveredReward")
76- if ((refererAddress == referalAddress))
77- then throw("you cannot be referer for yourself")
78- else [StringEntry((("address_" + referalAddress) + "_referedBy"), refererAddress), IntegerEntry(refererEarnedReward, (tryGetInteger(refererEarnedReward) + paymentForReferer.amount)), IntegerEntry(referalDeliveredReward, (tryGetInteger(referalDeliveredReward) + paymentForReferer.amount)), IntegerEntry((((("referer_" + refererAddress) + "_referal_") + referalAddress) + "_amount"), (tryGetInteger((((("referer_" + refererAddress) + "_referal_") + referalAddress) + "_amount")) + 1)), ScriptTransfer(refererAddressValue, paymentForReferer.amount, paymentForReferer.assetId)]
610+ let win = getRandomWin(fromBase58String(initTx), finishBlock, assetRarity)
611+ let txId = toBase58String(i.transactionId)
612+ let result = if ((indexOf(win, "perch") != unit))
613+ then {
614+ let color = takeRight(win, 1)
615+ let call = invoke(Address(farmingAddress), "addFreePerch", [address, color], nil)
616+ if ((call == call))
617+ then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
618+ else throw("Strict value is not equal to itself.")
79619 }
620+ else if ((win == "incubator"))
621+ then {
622+ let call = invoke(Address(incubatorAddress), "issueFreeDuck", [address, txId], nil)
623+ if ((call == call))
624+ then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
625+ else throw("Strict value is not equal to itself.")
626+ }
627+ else if ((win == "phoenix"))
628+ then {
629+ let call = invoke(Address(incubatorAddress), "issueJackpot", [address, txId, "WWWWWWWP"], nil)
630+ if ((call == call))
631+ then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
632+ else throw("Strict value is not equal to itself.")
633+ }
634+ else if ((win == "duckling"))
635+ then {
636+ let call = invoke(Address(ducklingAddress), "issueFreeDuckling", [address, txId], nil)
637+ if ((call == call))
638+ then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
639+ else throw("Strict value is not equal to itself.")
640+ }
641+ else [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), "")]
642+ (result ++ [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_win"), win), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_status"), "finish")])
80643 }
81644 }
82645
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let eggsAssetId = base58'53bLXGQhnMxAoiWnza2SJQRp7hNQZVHnyrRziLmwdVjb'
55
6+let feeAmount = 50
7+
8+let delayForHatching = 0
9+
610 let incubatorAddress = base58'3P6TwNU39Ykkbeqhn5TE4a2736xsA1vXemM'
711
12+let breederAddress = base58'3P9REuLBnYBafDqtEu6hfzs2Rv2haSU158y'
13+
814 let farmingAddress = base58'3PH75p2rmMKCV2nyW4TsAdFgFtmc61mJaqA'
15+
16+let ducklingAddress = base58'3PKwLVb8jYk58oYbfXxs2dUjD3YEKeqGWrX'
17+
18+let PHOENIXBASEOPTIONS = 1000
19+
20+func isLocked () = {
21+ let masterAddress = Address(base58'3PEPftf2kWZDmAaWBjs6BUJa9957kiA2PkU')
22+ match getInteger(masterAddress, "egglock") {
23+ case b: Int =>
24+ b
25+ case _ =>
26+ 0
27+ }
28+ }
29+
930
1031 func tryGetInteger (key) = match getInteger(this, key) {
1132 case b: Int =>
1233 b
1334 case _ =>
1435 0
1536 }
1637
1738
18-func isValidAddress (address) = match addressFromString(address) {
19- case a: Address =>
20- true
39+func asString (value) = match value {
40+ case s: String =>
41+ s
2142 case _ =>
22- false
43+ throw("wrong type, expected: String")
2344 }
2445
2546
2647 func tryGetString (key) = match getString(this, key) {
2748 case a: String =>
2849 a
2950 case _ =>
3051 ""
3152 }
3253
3354
55+func isSymbolA (accumulated,sym) = if ((sym == "A"))
56+ then (accumulated + 1)
57+ else (accumulated + 0)
58+
59+
60+func isSymbolB (accumulated,sym) = if ((sym == "B"))
61+ then (accumulated + 1)
62+ else (accumulated + 0)
63+
64+
65+func isSymbolC (accumulated,sym) = if ((sym == "C"))
66+ then (accumulated + 1)
67+ else (accumulated + 0)
68+
69+
70+func isSymbolD (accumulated,sym) = if ((sym == "D"))
71+ then (accumulated + 1)
72+ else (accumulated + 0)
73+
74+
75+func isSymbolE (accumulated,sym) = if ((sym == "E"))
76+ then (accumulated + 1)
77+ else (accumulated + 0)
78+
79+
80+func isSymbolF (accumulated,sym) = if ((sym == "F"))
81+ then (accumulated + 1)
82+ else (accumulated + 0)
83+
84+
85+func isSymbolG (accumulated,sym) = if ((sym == "G"))
86+ then (accumulated + 1)
87+ else (accumulated + 0)
88+
89+
90+func isSymbolH (accumulated,sym) = if ((sym == "H"))
91+ then (accumulated + 1)
92+ else (accumulated + 0)
93+
94+
95+func getAmountOrClear (amount) = if (contains(amount, "0"))
96+ then ""
97+ else amount
98+
99+
100+func getGen (assetName) = {
101+ let genotype = split(dropRight(drop(assetName, 5), 3), "")
102+ (((((((getAmountOrClear((toString({
103+ let $list22372268 = genotype
104+ let $size22372268 = size($list22372268)
105+ let $acc022372268 = 0
106+ if (($size22372268 == 0))
107+ then $acc022372268
108+ else {
109+ let $acc122372268 = isSymbolA($acc022372268, $list22372268[0])
110+ if (($size22372268 == 1))
111+ then $acc122372268
112+ else {
113+ let $acc222372268 = isSymbolA($acc122372268, $list22372268[1])
114+ if (($size22372268 == 2))
115+ then $acc222372268
116+ else {
117+ let $acc322372268 = isSymbolA($acc222372268, $list22372268[2])
118+ if (($size22372268 == 3))
119+ then $acc322372268
120+ else {
121+ let $acc422372268 = isSymbolA($acc322372268, $list22372268[3])
122+ if (($size22372268 == 4))
123+ then $acc422372268
124+ else {
125+ let $acc522372268 = isSymbolA($acc422372268, $list22372268[4])
126+ if (($size22372268 == 5))
127+ then $acc522372268
128+ else {
129+ let $acc622372268 = isSymbolA($acc522372268, $list22372268[5])
130+ if (($size22372268 == 6))
131+ then $acc622372268
132+ else {
133+ let $acc722372268 = isSymbolA($acc622372268, $list22372268[6])
134+ if (($size22372268 == 7))
135+ then $acc722372268
136+ else {
137+ let $acc822372268 = isSymbolA($acc722372268, $list22372268[7])
138+ if (($size22372268 == 8))
139+ then $acc822372268
140+ else {
141+ let $acc922372268 = isSymbolA($acc822372268, $list22372268[8])
142+ throw("List size exceed 8")
143+ }
144+ }
145+ }
146+ }
147+ }
148+ }
149+ }
150+ }
151+ }
152+ }) + "A")) + getAmountOrClear((toString({
153+ let $list23052336 = genotype
154+ let $size23052336 = size($list23052336)
155+ let $acc023052336 = 0
156+ if (($size23052336 == 0))
157+ then $acc023052336
158+ else {
159+ let $acc123052336 = isSymbolB($acc023052336, $list23052336[0])
160+ if (($size23052336 == 1))
161+ then $acc123052336
162+ else {
163+ let $acc223052336 = isSymbolB($acc123052336, $list23052336[1])
164+ if (($size23052336 == 2))
165+ then $acc223052336
166+ else {
167+ let $acc323052336 = isSymbolB($acc223052336, $list23052336[2])
168+ if (($size23052336 == 3))
169+ then $acc323052336
170+ else {
171+ let $acc423052336 = isSymbolB($acc323052336, $list23052336[3])
172+ if (($size23052336 == 4))
173+ then $acc423052336
174+ else {
175+ let $acc523052336 = isSymbolB($acc423052336, $list23052336[4])
176+ if (($size23052336 == 5))
177+ then $acc523052336
178+ else {
179+ let $acc623052336 = isSymbolB($acc523052336, $list23052336[5])
180+ if (($size23052336 == 6))
181+ then $acc623052336
182+ else {
183+ let $acc723052336 = isSymbolB($acc623052336, $list23052336[6])
184+ if (($size23052336 == 7))
185+ then $acc723052336
186+ else {
187+ let $acc823052336 = isSymbolB($acc723052336, $list23052336[7])
188+ if (($size23052336 == 8))
189+ then $acc823052336
190+ else {
191+ let $acc923052336 = isSymbolB($acc823052336, $list23052336[8])
192+ throw("List size exceed 8")
193+ }
194+ }
195+ }
196+ }
197+ }
198+ }
199+ }
200+ }
201+ }
202+ }) + "B"))) + getAmountOrClear((toString({
203+ let $list23732404 = genotype
204+ let $size23732404 = size($list23732404)
205+ let $acc023732404 = 0
206+ if (($size23732404 == 0))
207+ then $acc023732404
208+ else {
209+ let $acc123732404 = isSymbolC($acc023732404, $list23732404[0])
210+ if (($size23732404 == 1))
211+ then $acc123732404
212+ else {
213+ let $acc223732404 = isSymbolC($acc123732404, $list23732404[1])
214+ if (($size23732404 == 2))
215+ then $acc223732404
216+ else {
217+ let $acc323732404 = isSymbolC($acc223732404, $list23732404[2])
218+ if (($size23732404 == 3))
219+ then $acc323732404
220+ else {
221+ let $acc423732404 = isSymbolC($acc323732404, $list23732404[3])
222+ if (($size23732404 == 4))
223+ then $acc423732404
224+ else {
225+ let $acc523732404 = isSymbolC($acc423732404, $list23732404[4])
226+ if (($size23732404 == 5))
227+ then $acc523732404
228+ else {
229+ let $acc623732404 = isSymbolC($acc523732404, $list23732404[5])
230+ if (($size23732404 == 6))
231+ then $acc623732404
232+ else {
233+ let $acc723732404 = isSymbolC($acc623732404, $list23732404[6])
234+ if (($size23732404 == 7))
235+ then $acc723732404
236+ else {
237+ let $acc823732404 = isSymbolC($acc723732404, $list23732404[7])
238+ if (($size23732404 == 8))
239+ then $acc823732404
240+ else {
241+ let $acc923732404 = isSymbolC($acc823732404, $list23732404[8])
242+ throw("List size exceed 8")
243+ }
244+ }
245+ }
246+ }
247+ }
248+ }
249+ }
250+ }
251+ }
252+ }) + "C"))) + getAmountOrClear((toString({
253+ let $list24432474 = genotype
254+ let $size24432474 = size($list24432474)
255+ let $acc024432474 = 0
256+ if (($size24432474 == 0))
257+ then $acc024432474
258+ else {
259+ let $acc124432474 = isSymbolD($acc024432474, $list24432474[0])
260+ if (($size24432474 == 1))
261+ then $acc124432474
262+ else {
263+ let $acc224432474 = isSymbolD($acc124432474, $list24432474[1])
264+ if (($size24432474 == 2))
265+ then $acc224432474
266+ else {
267+ let $acc324432474 = isSymbolD($acc224432474, $list24432474[2])
268+ if (($size24432474 == 3))
269+ then $acc324432474
270+ else {
271+ let $acc424432474 = isSymbolD($acc324432474, $list24432474[3])
272+ if (($size24432474 == 4))
273+ then $acc424432474
274+ else {
275+ let $acc524432474 = isSymbolD($acc424432474, $list24432474[4])
276+ if (($size24432474 == 5))
277+ then $acc524432474
278+ else {
279+ let $acc624432474 = isSymbolD($acc524432474, $list24432474[5])
280+ if (($size24432474 == 6))
281+ then $acc624432474
282+ else {
283+ let $acc724432474 = isSymbolD($acc624432474, $list24432474[6])
284+ if (($size24432474 == 7))
285+ then $acc724432474
286+ else {
287+ let $acc824432474 = isSymbolD($acc724432474, $list24432474[7])
288+ if (($size24432474 == 8))
289+ then $acc824432474
290+ else {
291+ let $acc924432474 = isSymbolD($acc824432474, $list24432474[8])
292+ throw("List size exceed 8")
293+ }
294+ }
295+ }
296+ }
297+ }
298+ }
299+ }
300+ }
301+ }
302+ }) + "D"))) + getAmountOrClear((toString({
303+ let $list25112542 = genotype
304+ let $size25112542 = size($list25112542)
305+ let $acc025112542 = 0
306+ if (($size25112542 == 0))
307+ then $acc025112542
308+ else {
309+ let $acc125112542 = isSymbolE($acc025112542, $list25112542[0])
310+ if (($size25112542 == 1))
311+ then $acc125112542
312+ else {
313+ let $acc225112542 = isSymbolE($acc125112542, $list25112542[1])
314+ if (($size25112542 == 2))
315+ then $acc225112542
316+ else {
317+ let $acc325112542 = isSymbolE($acc225112542, $list25112542[2])
318+ if (($size25112542 == 3))
319+ then $acc325112542
320+ else {
321+ let $acc425112542 = isSymbolE($acc325112542, $list25112542[3])
322+ if (($size25112542 == 4))
323+ then $acc425112542
324+ else {
325+ let $acc525112542 = isSymbolE($acc425112542, $list25112542[4])
326+ if (($size25112542 == 5))
327+ then $acc525112542
328+ else {
329+ let $acc625112542 = isSymbolE($acc525112542, $list25112542[5])
330+ if (($size25112542 == 6))
331+ then $acc625112542
332+ else {
333+ let $acc725112542 = isSymbolE($acc625112542, $list25112542[6])
334+ if (($size25112542 == 7))
335+ then $acc725112542
336+ else {
337+ let $acc825112542 = isSymbolE($acc725112542, $list25112542[7])
338+ if (($size25112542 == 8))
339+ then $acc825112542
340+ else {
341+ let $acc925112542 = isSymbolE($acc825112542, $list25112542[8])
342+ throw("List size exceed 8")
343+ }
344+ }
345+ }
346+ }
347+ }
348+ }
349+ }
350+ }
351+ }
352+ }) + "E"))) + getAmountOrClear((toString({
353+ let $list25792610 = genotype
354+ let $size25792610 = size($list25792610)
355+ let $acc025792610 = 0
356+ if (($size25792610 == 0))
357+ then $acc025792610
358+ else {
359+ let $acc125792610 = isSymbolF($acc025792610, $list25792610[0])
360+ if (($size25792610 == 1))
361+ then $acc125792610
362+ else {
363+ let $acc225792610 = isSymbolF($acc125792610, $list25792610[1])
364+ if (($size25792610 == 2))
365+ then $acc225792610
366+ else {
367+ let $acc325792610 = isSymbolF($acc225792610, $list25792610[2])
368+ if (($size25792610 == 3))
369+ then $acc325792610
370+ else {
371+ let $acc425792610 = isSymbolF($acc325792610, $list25792610[3])
372+ if (($size25792610 == 4))
373+ then $acc425792610
374+ else {
375+ let $acc525792610 = isSymbolF($acc425792610, $list25792610[4])
376+ if (($size25792610 == 5))
377+ then $acc525792610
378+ else {
379+ let $acc625792610 = isSymbolF($acc525792610, $list25792610[5])
380+ if (($size25792610 == 6))
381+ then $acc625792610
382+ else {
383+ let $acc725792610 = isSymbolF($acc625792610, $list25792610[6])
384+ if (($size25792610 == 7))
385+ then $acc725792610
386+ else {
387+ let $acc825792610 = isSymbolF($acc725792610, $list25792610[7])
388+ if (($size25792610 == 8))
389+ then $acc825792610
390+ else {
391+ let $acc925792610 = isSymbolF($acc825792610, $list25792610[8])
392+ throw("List size exceed 8")
393+ }
394+ }
395+ }
396+ }
397+ }
398+ }
399+ }
400+ }
401+ }
402+ }) + "F"))) + getAmountOrClear((toString({
403+ let $list26492680 = genotype
404+ let $size26492680 = size($list26492680)
405+ let $acc026492680 = 0
406+ if (($size26492680 == 0))
407+ then $acc026492680
408+ else {
409+ let $acc126492680 = isSymbolG($acc026492680, $list26492680[0])
410+ if (($size26492680 == 1))
411+ then $acc126492680
412+ else {
413+ let $acc226492680 = isSymbolG($acc126492680, $list26492680[1])
414+ if (($size26492680 == 2))
415+ then $acc226492680
416+ else {
417+ let $acc326492680 = isSymbolG($acc226492680, $list26492680[2])
418+ if (($size26492680 == 3))
419+ then $acc326492680
420+ else {
421+ let $acc426492680 = isSymbolG($acc326492680, $list26492680[3])
422+ if (($size26492680 == 4))
423+ then $acc426492680
424+ else {
425+ let $acc526492680 = isSymbolG($acc426492680, $list26492680[4])
426+ if (($size26492680 == 5))
427+ then $acc526492680
428+ else {
429+ let $acc626492680 = isSymbolG($acc526492680, $list26492680[5])
430+ if (($size26492680 == 6))
431+ then $acc626492680
432+ else {
433+ let $acc726492680 = isSymbolG($acc626492680, $list26492680[6])
434+ if (($size26492680 == 7))
435+ then $acc726492680
436+ else {
437+ let $acc826492680 = isSymbolG($acc726492680, $list26492680[7])
438+ if (($size26492680 == 8))
439+ then $acc826492680
440+ else {
441+ let $acc926492680 = isSymbolG($acc826492680, $list26492680[8])
442+ throw("List size exceed 8")
443+ }
444+ }
445+ }
446+ }
447+ }
448+ }
449+ }
450+ }
451+ }
452+ }) + "G"))) + getAmountOrClear((toString({
453+ let $list27172748 = genotype
454+ let $size27172748 = size($list27172748)
455+ let $acc027172748 = 0
456+ if (($size27172748 == 0))
457+ then $acc027172748
458+ else {
459+ let $acc127172748 = isSymbolH($acc027172748, $list27172748[0])
460+ if (($size27172748 == 1))
461+ then $acc127172748
462+ else {
463+ let $acc227172748 = isSymbolH($acc127172748, $list27172748[1])
464+ if (($size27172748 == 2))
465+ then $acc227172748
466+ else {
467+ let $acc327172748 = isSymbolH($acc227172748, $list27172748[2])
468+ if (($size27172748 == 3))
469+ then $acc327172748
470+ else {
471+ let $acc427172748 = isSymbolH($acc327172748, $list27172748[3])
472+ if (($size27172748 == 4))
473+ then $acc427172748
474+ else {
475+ let $acc527172748 = isSymbolH($acc427172748, $list27172748[4])
476+ if (($size27172748 == 5))
477+ then $acc527172748
478+ else {
479+ let $acc627172748 = isSymbolH($acc527172748, $list27172748[5])
480+ if (($size27172748 == 6))
481+ then $acc627172748
482+ else {
483+ let $acc727172748 = isSymbolH($acc627172748, $list27172748[6])
484+ if (($size27172748 == 7))
485+ then $acc727172748
486+ else {
487+ let $acc827172748 = isSymbolH($acc727172748, $list27172748[7])
488+ if (($size27172748 == 8))
489+ then $acc827172748
490+ else {
491+ let $acc927172748 = isSymbolH($acc827172748, $list27172748[8])
492+ throw("List size exceed 8")
493+ }
494+ }
495+ }
496+ }
497+ }
498+ }
499+ }
500+ }
501+ }
502+ }) + "H")))
503+ }
504+
505+
506+func getAssetOrigin (generation) = if ((generation == "G"))
507+ then incubatorAddress
508+ else breederAddress
509+
510+
511+func getAssetRarity (genotype,generation) = {
512+ let quantity = getIntegerValue(Address(getAssetOrigin(generation)), (("stats_" + genotype) + "_quantity"))
513+ let power = pow((10000 / quantity), 4, 5, 1, 2, FLOOR)
514+ if ((power > 0))
515+ then power
516+ else 2
517+ }
518+
519+
520+func getAssetFarmingPower (assetId) = if (if ((value(assetInfo(assetId)).issuer == Address(breederAddress)))
521+ then true
522+ else (value(assetInfo(assetId)).issuer == Address(incubatorAddress)))
523+ then {
524+ let assetName = value(assetInfo(assetId)).name
525+ let generation = take(takeRight(assetName, 2), 1)
526+ let gen = ((getGen(assetName) + "-") + generation)
527+ $Tuple2(gen, getAssetRarity(gen, generation))
528+ }
529+ else throw("not valid NFT")
530+
531+
532+func getRandomNumber (options,txId,hatchingFinishHeight,offset) = {
533+ let randomSeedBlock = value(blockInfoByHeight((hatchingFinishHeight - 1)))
534+ let randomHash = sha256((txId + value(randomSeedBlock.vrf)))
535+ (toInt(randomHash, (offset * 8)) % options)
536+ }
537+
538+
539+func getRandomWin (tx,finishHeight,assetRarity) = {
540+ let phoenixOptions = (PHOENIXBASEOPTIONS - fraction((PHOENIXBASEOPTIONS / 2), assetRarity, 100))
541+ let phoenixRandom = getRandomNumber(phoenixOptions, tx, finishHeight, 1)
542+ if ((phoenixRandom == 1))
543+ then "phoenix"
544+ else {
545+ let n = getRandomNumber(10, tx, finishHeight, 0)
546+ if ((3 > n))
547+ then "gone"
548+ else if ((5 > n))
549+ then "duckling"
550+ else if ((n == 5))
551+ then "perch_Y"
552+ else if ((n == 6))
553+ then "perch_G"
554+ else if ((n == 7))
555+ then "perch_B"
556+ else if ((n == 8))
557+ then "perch_R"
558+ else "incubator"
559+ }
560+ }
561+
562+
563+func getOrigin (assetId) = {
564+ let assetName = value(assetInfo(assetId)).name
565+ let generation = take(takeRight(assetName, 2), 1)
566+ if (if ((generation == "G"))
567+ then true
568+ else (generation == "J"))
569+ then incubatorAddress
570+ else breederAddress
571+ }
572+
573+
34574 @Callable(i)
35-func addRefKey (refererAddress,refererKey) = if ((i.caller != this))
36- then throw("admin only")
575+func initRebirth () = if ((isLocked() > 0))
576+ then throw("egg spendings are temporarily locked")
37577 else {
38- let refStateKey = (("key_" + refererKey) + "_refererAddress")
39- if ((tryGetString(refStateKey) == ""))
40- then [StringEntry(refStateKey, refererAddress), StringEntry(((("address_" + refererAddress) + "_refererKey_") + refererKey), refererKey)]
41- else throw((("The ref key \"" + refererKey) + "\" is already registered"))
578+ let assetId = value(i.payments[0].assetId)
579+ let initTx = toBase58String(i.transactionId)
580+ let address = toString(i.caller)
581+ let feePayment = value(i.payments[1])
582+ if ((feePayment.assetId != eggsAssetId))
583+ then throw("You need to attach EGG tokens as fee")
584+ else if ((feeAmount > feePayment.amount))
585+ then throw(("You need to attach the following amount of EGG tokens as fee: 0." + toString(feeAmount)))
586+ else {
587+ let $t053675416 = getAssetFarmingPower(assetId)
588+ let gen = $t053675416._1
589+ let rarity = $t053675416._2
590+ let call = invoke(Address(getOrigin(assetId)), "reduceRarity", [toBase58String(assetId), gen], nil)
591+ if ((call == call))
592+ then [IntegerEntry((((("address_" + address) + "_initTx_") + initTx) + "_finishBlock"), (height + delayForHatching)), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_status"), "open"), IntegerEntry((((("address_" + address) + "_initTx_") + initTx) + "_assetRarity"), rarity), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_assetId"), toBase58String(assetId))]
593+ else throw("Strict value is not equal to itself.")
594+ }
42595 }
43596
44597
45598
46599 @Callable(i)
47-func refPayment (refererKey) = {
48- let referalAddress = toString(i.originCaller)
49- if (if ((i.caller.bytes != incubatorAddress))
50- then (i.caller.bytes != farmingAddress)
51- else false)
52- then throw("This method can be called only by farming and incubator dApps")
53- else if ((refererKey == ""))
54- then nil
600+func finishRebirth (initTx) = {
601+ let address = toString(i.caller)
602+ let finishBlock = tryGetInteger((((("address_" + address) + "_initTx_") + initTx) + "_finishBlock"))
603+ let assetRarity = tryGetInteger((((("address_" + address) + "_initTx_") + initTx) + "_assetRarity"))
604+ let status = tryGetString((((("address_" + address) + "_initTx_") + initTx) + "_status"))
605+ if ((status != "open"))
606+ then throw("rebirth is finished or not open")
607+ else if ((finishBlock > height))
608+ then throw("you cannot finish rebirth, yet")
55609 else {
56- let givenReferer = match getString(this, (("key_" + refererKey) + "_refererAddress")) {
57- case x: String =>
58- x
59- case _ =>
60- refererKey
61- }
62- let refererAddress = match getString(this, (("address_" + referalAddress) + "_referedBy")) {
63- case x: String =>
64- x
65- case _ =>
66- givenReferer
67- }
68- if ((addressFromString(refererAddress) == unit))
69- then nil
70- else {
71- let refererAddressValue = addressFromStringValue(refererAddress)
72- let referalAddressValue = addressFromStringValue(referalAddress)
73- let paymentForReferer = value(i.payments[0])
74- let refererEarnedReward = (("address_" + refererAddress) + "_earnedReward")
75- let referalDeliveredReward = (((("referer_" + refererAddress) + "_referal_") + referalAddress) + "_deliveredReward")
76- if ((refererAddress == referalAddress))
77- then throw("you cannot be referer for yourself")
78- else [StringEntry((("address_" + referalAddress) + "_referedBy"), refererAddress), IntegerEntry(refererEarnedReward, (tryGetInteger(refererEarnedReward) + paymentForReferer.amount)), IntegerEntry(referalDeliveredReward, (tryGetInteger(referalDeliveredReward) + paymentForReferer.amount)), IntegerEntry((((("referer_" + refererAddress) + "_referal_") + referalAddress) + "_amount"), (tryGetInteger((((("referer_" + refererAddress) + "_referal_") + referalAddress) + "_amount")) + 1)), ScriptTransfer(refererAddressValue, paymentForReferer.amount, paymentForReferer.assetId)]
610+ let win = getRandomWin(fromBase58String(initTx), finishBlock, assetRarity)
611+ let txId = toBase58String(i.transactionId)
612+ let result = if ((indexOf(win, "perch") != unit))
613+ then {
614+ let color = takeRight(win, 1)
615+ let call = invoke(Address(farmingAddress), "addFreePerch", [address, color], nil)
616+ if ((call == call))
617+ then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
618+ else throw("Strict value is not equal to itself.")
79619 }
620+ else if ((win == "incubator"))
621+ then {
622+ let call = invoke(Address(incubatorAddress), "issueFreeDuck", [address, txId], nil)
623+ if ((call == call))
624+ then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
625+ else throw("Strict value is not equal to itself.")
626+ }
627+ else if ((win == "phoenix"))
628+ then {
629+ let call = invoke(Address(incubatorAddress), "issueJackpot", [address, txId, "WWWWWWWP"], nil)
630+ if ((call == call))
631+ then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
632+ else throw("Strict value is not equal to itself.")
633+ }
634+ else if ((win == "duckling"))
635+ then {
636+ let call = invoke(Address(ducklingAddress), "issueFreeDuckling", [address, txId], nil)
637+ if ((call == call))
638+ then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
639+ else throw("Strict value is not equal to itself.")
640+ }
641+ else [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), "")]
642+ (result ++ [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_win"), win), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_status"), "finish")])
80643 }
81644 }
82645
83646
84647 @Verifier(tx)
85648 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
86649

github/deemru/w8io/3ef1775 
74.68 ms