tx · BvMp9Hn4xVicXsfCagnECxkjDG75oSW1tWCLP4oM9tqh

3P8K73pz7MJ6ttYR4wo9jzDv1obqmTvpfpH:  -0.01400000 Waves

2021.08.25 09:28 [2738399] smart account 3P8K73pz7MJ6ttYR4wo9jzDv1obqmTvpfpH > SELF 0.00000000 Waves

{ "type": 13, "id": "BvMp9Hn4xVicXsfCagnECxkjDG75oSW1tWCLP4oM9tqh", "fee": 1400000, "feeAssetId": null, "timestamp": 1629872944321, "version": 2, "chainId": 87, "sender": "3P8K73pz7MJ6ttYR4wo9jzDv1obqmTvpfpH", "senderPublicKey": "HmxDzQgaMPz3NjQugPyQsqA2QsrQ3EGXDdUymizY5dMj", "proofs": [ "jCGgV5pBLcQM2Bx9DwheWJAwLyw1D2mt1s8C3RdYGbwWXV74XLPA8xK6VkYVpzrB94HQrgyt7jnfQsZWq32qa1E" ], "script": null, "height": 2738399, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: D4uTqCkShrQLTzoVEyzdqphbwChid5nuoriXsKLFXeRQ Next: Fk1NSpGEewnUwNhD6xYazxzAWEFzRcg7VJPBT3ZF4Ywg Full:
OldNewDifferences
1-{-# STDLIB_VERSION 5 #-}
2-{-# SCRIPT_TYPE ACCOUNT #-}
3-{-# CONTENT_TYPE DAPP #-}
4-let masterAccountPubKey = base58'23NWm7kUDQqbTVkirjd5JXWRZaWVoS4ZesmRNHicBa3T'
5-
6-let redeployPubKey = base58''
7-
8-let feePercent = 10
9-
10-func getKeyTotalLiquidity () = "total_liquidity"
11-
12-
13-func getKeyInitialized () = "INITIALIZED"
14-
15-
16-func getKeyLiquidityThreshold () = "LIQUIDITY_THRESHOLD"
17-
18-
19-func getKeyTotalShareTokens () = "total_share_tokens"
20-
21-
22-func getKeyShareAssetId () = "SHARE_ASSET_ID"
23-
24-
25-func getKeyIncubatorAddress () = "INCUBATOR_DAPP"
26-
27-
28-func getKeyBreederAddress () = "BREEDER_DAPP"
29-
30-
31-func getKeyFarmingAddress () = "FARMING_DAPP"
32-
33-
34-func getKeyMarketplaceAddress () = "MARKETPLACE"
35-
36-
37-func getKeyTotalFarmingReward () = "total_farming_reward"
38-
39-
40-func getKeyFarmingRewardClaimed () = "farming_reward_claimed"
41-
42-
43-func getKeyCeoCollectedFee () = "ceo_collected_fee"
44-
45-
46-func getKeyCeoCollectedFeeOverall () = "ceo_fee_overall"
47-
48-
49-func tryGetInteger (key) = {
50- let val = match getInteger(this, key) {
51- case b: Int =>
52- b
53- case _ =>
54- 0
55- }
56- val
57- }
58-
59-
60-func tryGetString (key) = {
61- let val = match getString(this, key) {
62- case b: String =>
63- b
64- case _ =>
65- ""
66- }
67- val
68- }
69-
70-
71-func tryGetBoolean (key) = {
72- let val = match getBoolean(this, key) {
73- case b: Boolean =>
74- b
75- case _ =>
76- unit
77- }
78- val
79- }
80-
81-
82-func tryGetStringFromAccount (address,key) = {
83- let val = match getString(address, key) {
84- case b: String =>
85- b
86- case _ =>
87- ""
88- }
89- val
90- }
91-
92-
93-func tryGetIntegerFromAccount (address,key) = {
94- let val = match getInteger(address, key) {
95- case b: Int =>
96- b
97- case _ =>
98- 0
99- }
100- val
101- }
102-
103-
104-func getMarketplaceAddress () = tryGetStringFromAccount(addressFromPublicKey(masterAccountPubKey), getKeyMarketplaceAddress())
105-
106-
107-func getAmountOrClear (amount) = if (contains(amount, "0"))
108- then ""
109- else amount
110-
111-
112-func isSymbolA (accumulated,sym) = if ((sym == "A"))
113- then (accumulated + 1)
114- else (accumulated + 0)
115-
116-
117-func isSymbolB (accumulated,sym) = if ((sym == "B"))
118- then (accumulated + 1)
119- else (accumulated + 0)
120-
121-
122-func isSymbolC (accumulated,sym) = if ((sym == "C"))
123- then (accumulated + 1)
124- else (accumulated + 0)
125-
126-
127-func isSymbolD (accumulated,sym) = if ((sym == "D"))
128- then (accumulated + 1)
129- else (accumulated + 0)
130-
131-
132-func isSymbolE (accumulated,sym) = if ((sym == "E"))
133- then (accumulated + 1)
134- else (accumulated + 0)
135-
136-
137-func isSymbolF (accumulated,sym) = if ((sym == "F"))
138- then (accumulated + 1)
139- else (accumulated + 0)
140-
141-
142-func isSymbolG (accumulated,sym) = if ((sym == "G"))
143- then (accumulated + 1)
144- else (accumulated + 0)
145-
146-
147-func isSymbolH (accumulated,sym) = if ((sym == "H"))
148- then (accumulated + 1)
149- else (accumulated + 0)
150-
151-
152-func getGen (assetName) = {
153- let genotype = split(dropRight(drop(assetName, 5), 3), "")
154- (((((((getAmountOrClear((toString({
155- let $list29512982 = genotype
156- let $size29512982 = size($list29512982)
157- let $acc029512982 = 0
158- if (($size29512982 == 0))
159- then $acc029512982
160- else {
161- let $acc129512982 = isSymbolA($acc029512982, $list29512982[0])
162- if (($size29512982 == 1))
163- then $acc129512982
164- else {
165- let $acc229512982 = isSymbolA($acc129512982, $list29512982[1])
166- if (($size29512982 == 2))
167- then $acc229512982
168- else {
169- let $acc329512982 = isSymbolA($acc229512982, $list29512982[2])
170- if (($size29512982 == 3))
171- then $acc329512982
172- else {
173- let $acc429512982 = isSymbolA($acc329512982, $list29512982[3])
174- if (($size29512982 == 4))
175- then $acc429512982
176- else {
177- let $acc529512982 = isSymbolA($acc429512982, $list29512982[4])
178- if (($size29512982 == 5))
179- then $acc529512982
180- else {
181- let $acc629512982 = isSymbolA($acc529512982, $list29512982[5])
182- if (($size29512982 == 6))
183- then $acc629512982
184- else {
185- let $acc729512982 = isSymbolA($acc629512982, $list29512982[6])
186- if (($size29512982 == 7))
187- then $acc729512982
188- else {
189- let $acc829512982 = isSymbolA($acc729512982, $list29512982[7])
190- if (($size29512982 == 8))
191- then $acc829512982
192- else {
193- let $acc929512982 = isSymbolA($acc829512982, $list29512982[8])
194- throw("List size exceed 8")
195- }
196- }
197- }
198- }
199- }
200- }
201- }
202- }
203- }
204- }) + "A")) + getAmountOrClear((toString({
205- let $list30193050 = genotype
206- let $size30193050 = size($list30193050)
207- let $acc030193050 = 0
208- if (($size30193050 == 0))
209- then $acc030193050
210- else {
211- let $acc130193050 = isSymbolB($acc030193050, $list30193050[0])
212- if (($size30193050 == 1))
213- then $acc130193050
214- else {
215- let $acc230193050 = isSymbolB($acc130193050, $list30193050[1])
216- if (($size30193050 == 2))
217- then $acc230193050
218- else {
219- let $acc330193050 = isSymbolB($acc230193050, $list30193050[2])
220- if (($size30193050 == 3))
221- then $acc330193050
222- else {
223- let $acc430193050 = isSymbolB($acc330193050, $list30193050[3])
224- if (($size30193050 == 4))
225- then $acc430193050
226- else {
227- let $acc530193050 = isSymbolB($acc430193050, $list30193050[4])
228- if (($size30193050 == 5))
229- then $acc530193050
230- else {
231- let $acc630193050 = isSymbolB($acc530193050, $list30193050[5])
232- if (($size30193050 == 6))
233- then $acc630193050
234- else {
235- let $acc730193050 = isSymbolB($acc630193050, $list30193050[6])
236- if (($size30193050 == 7))
237- then $acc730193050
238- else {
239- let $acc830193050 = isSymbolB($acc730193050, $list30193050[7])
240- if (($size30193050 == 8))
241- then $acc830193050
242- else {
243- let $acc930193050 = isSymbolB($acc830193050, $list30193050[8])
244- throw("List size exceed 8")
245- }
246- }
247- }
248- }
249- }
250- }
251- }
252- }
253- }
254- }) + "B"))) + getAmountOrClear((toString({
255- let $list30873118 = genotype
256- let $size30873118 = size($list30873118)
257- let $acc030873118 = 0
258- if (($size30873118 == 0))
259- then $acc030873118
260- else {
261- let $acc130873118 = isSymbolC($acc030873118, $list30873118[0])
262- if (($size30873118 == 1))
263- then $acc130873118
264- else {
265- let $acc230873118 = isSymbolC($acc130873118, $list30873118[1])
266- if (($size30873118 == 2))
267- then $acc230873118
268- else {
269- let $acc330873118 = isSymbolC($acc230873118, $list30873118[2])
270- if (($size30873118 == 3))
271- then $acc330873118
272- else {
273- let $acc430873118 = isSymbolC($acc330873118, $list30873118[3])
274- if (($size30873118 == 4))
275- then $acc430873118
276- else {
277- let $acc530873118 = isSymbolC($acc430873118, $list30873118[4])
278- if (($size30873118 == 5))
279- then $acc530873118
280- else {
281- let $acc630873118 = isSymbolC($acc530873118, $list30873118[5])
282- if (($size30873118 == 6))
283- then $acc630873118
284- else {
285- let $acc730873118 = isSymbolC($acc630873118, $list30873118[6])
286- if (($size30873118 == 7))
287- then $acc730873118
288- else {
289- let $acc830873118 = isSymbolC($acc730873118, $list30873118[7])
290- if (($size30873118 == 8))
291- then $acc830873118
292- else {
293- let $acc930873118 = isSymbolC($acc830873118, $list30873118[8])
294- throw("List size exceed 8")
295- }
296- }
297- }
298- }
299- }
300- }
301- }
302- }
303- }
304- }) + "C"))) + getAmountOrClear((toString({
305- let $list31573188 = genotype
306- let $size31573188 = size($list31573188)
307- let $acc031573188 = 0
308- if (($size31573188 == 0))
309- then $acc031573188
310- else {
311- let $acc131573188 = isSymbolD($acc031573188, $list31573188[0])
312- if (($size31573188 == 1))
313- then $acc131573188
314- else {
315- let $acc231573188 = isSymbolD($acc131573188, $list31573188[1])
316- if (($size31573188 == 2))
317- then $acc231573188
318- else {
319- let $acc331573188 = isSymbolD($acc231573188, $list31573188[2])
320- if (($size31573188 == 3))
321- then $acc331573188
322- else {
323- let $acc431573188 = isSymbolD($acc331573188, $list31573188[3])
324- if (($size31573188 == 4))
325- then $acc431573188
326- else {
327- let $acc531573188 = isSymbolD($acc431573188, $list31573188[4])
328- if (($size31573188 == 5))
329- then $acc531573188
330- else {
331- let $acc631573188 = isSymbolD($acc531573188, $list31573188[5])
332- if (($size31573188 == 6))
333- then $acc631573188
334- else {
335- let $acc731573188 = isSymbolD($acc631573188, $list31573188[6])
336- if (($size31573188 == 7))
337- then $acc731573188
338- else {
339- let $acc831573188 = isSymbolD($acc731573188, $list31573188[7])
340- if (($size31573188 == 8))
341- then $acc831573188
342- else {
343- let $acc931573188 = isSymbolD($acc831573188, $list31573188[8])
344- throw("List size exceed 8")
345- }
346- }
347- }
348- }
349- }
350- }
351- }
352- }
353- }
354- }) + "D"))) + getAmountOrClear((toString({
355- let $list32253256 = genotype
356- let $size32253256 = size($list32253256)
357- let $acc032253256 = 0
358- if (($size32253256 == 0))
359- then $acc032253256
360- else {
361- let $acc132253256 = isSymbolE($acc032253256, $list32253256[0])
362- if (($size32253256 == 1))
363- then $acc132253256
364- else {
365- let $acc232253256 = isSymbolE($acc132253256, $list32253256[1])
366- if (($size32253256 == 2))
367- then $acc232253256
368- else {
369- let $acc332253256 = isSymbolE($acc232253256, $list32253256[2])
370- if (($size32253256 == 3))
371- then $acc332253256
372- else {
373- let $acc432253256 = isSymbolE($acc332253256, $list32253256[3])
374- if (($size32253256 == 4))
375- then $acc432253256
376- else {
377- let $acc532253256 = isSymbolE($acc432253256, $list32253256[4])
378- if (($size32253256 == 5))
379- then $acc532253256
380- else {
381- let $acc632253256 = isSymbolE($acc532253256, $list32253256[5])
382- if (($size32253256 == 6))
383- then $acc632253256
384- else {
385- let $acc732253256 = isSymbolE($acc632253256, $list32253256[6])
386- if (($size32253256 == 7))
387- then $acc732253256
388- else {
389- let $acc832253256 = isSymbolE($acc732253256, $list32253256[7])
390- if (($size32253256 == 8))
391- then $acc832253256
392- else {
393- let $acc932253256 = isSymbolE($acc832253256, $list32253256[8])
394- throw("List size exceed 8")
395- }
396- }
397- }
398- }
399- }
400- }
401- }
402- }
403- }
404- }) + "E"))) + getAmountOrClear((toString({
405- let $list32933324 = genotype
406- let $size32933324 = size($list32933324)
407- let $acc032933324 = 0
408- if (($size32933324 == 0))
409- then $acc032933324
410- else {
411- let $acc132933324 = isSymbolF($acc032933324, $list32933324[0])
412- if (($size32933324 == 1))
413- then $acc132933324
414- else {
415- let $acc232933324 = isSymbolF($acc132933324, $list32933324[1])
416- if (($size32933324 == 2))
417- then $acc232933324
418- else {
419- let $acc332933324 = isSymbolF($acc232933324, $list32933324[2])
420- if (($size32933324 == 3))
421- then $acc332933324
422- else {
423- let $acc432933324 = isSymbolF($acc332933324, $list32933324[3])
424- if (($size32933324 == 4))
425- then $acc432933324
426- else {
427- let $acc532933324 = isSymbolF($acc432933324, $list32933324[4])
428- if (($size32933324 == 5))
429- then $acc532933324
430- else {
431- let $acc632933324 = isSymbolF($acc532933324, $list32933324[5])
432- if (($size32933324 == 6))
433- then $acc632933324
434- else {
435- let $acc732933324 = isSymbolF($acc632933324, $list32933324[6])
436- if (($size32933324 == 7))
437- then $acc732933324
438- else {
439- let $acc832933324 = isSymbolF($acc732933324, $list32933324[7])
440- if (($size32933324 == 8))
441- then $acc832933324
442- else {
443- let $acc932933324 = isSymbolF($acc832933324, $list32933324[8])
444- throw("List size exceed 8")
445- }
446- }
447- }
448- }
449- }
450- }
451- }
452- }
453- }
454- }) + "F"))) + getAmountOrClear((toString({
455- let $list33633394 = genotype
456- let $size33633394 = size($list33633394)
457- let $acc033633394 = 0
458- if (($size33633394 == 0))
459- then $acc033633394
460- else {
461- let $acc133633394 = isSymbolG($acc033633394, $list33633394[0])
462- if (($size33633394 == 1))
463- then $acc133633394
464- else {
465- let $acc233633394 = isSymbolG($acc133633394, $list33633394[1])
466- if (($size33633394 == 2))
467- then $acc233633394
468- else {
469- let $acc333633394 = isSymbolG($acc233633394, $list33633394[2])
470- if (($size33633394 == 3))
471- then $acc333633394
472- else {
473- let $acc433633394 = isSymbolG($acc333633394, $list33633394[3])
474- if (($size33633394 == 4))
475- then $acc433633394
476- else {
477- let $acc533633394 = isSymbolG($acc433633394, $list33633394[4])
478- if (($size33633394 == 5))
479- then $acc533633394
480- else {
481- let $acc633633394 = isSymbolG($acc533633394, $list33633394[5])
482- if (($size33633394 == 6))
483- then $acc633633394
484- else {
485- let $acc733633394 = isSymbolG($acc633633394, $list33633394[6])
486- if (($size33633394 == 7))
487- then $acc733633394
488- else {
489- let $acc833633394 = isSymbolG($acc733633394, $list33633394[7])
490- if (($size33633394 == 8))
491- then $acc833633394
492- else {
493- let $acc933633394 = isSymbolG($acc833633394, $list33633394[8])
494- throw("List size exceed 8")
495- }
496- }
497- }
498- }
499- }
500- }
501- }
502- }
503- }
504- }) + "G"))) + getAmountOrClear((toString({
505- let $list34313462 = genotype
506- let $size34313462 = size($list34313462)
507- let $acc034313462 = 0
508- if (($size34313462 == 0))
509- then $acc034313462
510- else {
511- let $acc134313462 = isSymbolH($acc034313462, $list34313462[0])
512- if (($size34313462 == 1))
513- then $acc134313462
514- else {
515- let $acc234313462 = isSymbolH($acc134313462, $list34313462[1])
516- if (($size34313462 == 2))
517- then $acc234313462
518- else {
519- let $acc334313462 = isSymbolH($acc234313462, $list34313462[2])
520- if (($size34313462 == 3))
521- then $acc334313462
522- else {
523- let $acc434313462 = isSymbolH($acc334313462, $list34313462[3])
524- if (($size34313462 == 4))
525- then $acc434313462
526- else {
527- let $acc534313462 = isSymbolH($acc434313462, $list34313462[4])
528- if (($size34313462 == 5))
529- then $acc534313462
530- else {
531- let $acc634313462 = isSymbolH($acc534313462, $list34313462[5])
532- if (($size34313462 == 6))
533- then $acc634313462
534- else {
535- let $acc734313462 = isSymbolH($acc634313462, $list34313462[6])
536- if (($size34313462 == 7))
537- then $acc734313462
538- else {
539- let $acc834313462 = isSymbolH($acc734313462, $list34313462[7])
540- if (($size34313462 == 8))
541- then $acc834313462
542- else {
543- let $acc934313462 = isSymbolH($acc834313462, $list34313462[8])
544- throw("List size exceed 8")
545- }
546- }
547- }
548- }
549- }
550- }
551- }
552- }
553- }
554- }) + "H")))
555- }
556-
557-
558-func getAssetOrigin (generation) = {
559- let incubatorAddress = tryGetStringFromAccount(addressFromPublicKey(masterAccountPubKey), getKeyIncubatorAddress())
560- let breederAddress = tryGetStringFromAccount(addressFromPublicKey(masterAccountPubKey), getKeyBreederAddress())
561- if ((generation == "G"))
562- then fromBase58String(incubatorAddress)
563- else fromBase58String(breederAddress)
564- }
565-
566-
567-func getAssetRarity (genotype,generation) = {
568- let quantity = getIntegerValue(Address(getAssetOrigin(generation)), (("stats_" + genotype) + "_quantity"))
569- let power = pow((10000 / quantity), 4, 5, 1, 2, FLOOR)
570- if ((power > 0))
571- then power
572- else 2
573- }
574-
575-
576-func getAssetFarmingPower (assetId) = {
577- let breederAddress = fromBase58String(tryGetStringFromAccount(addressFromPublicKey(masterAccountPubKey), getKeyBreederAddress()))
578- let incubatorAddress = fromBase58String(tryGetStringFromAccount(addressFromPublicKey(masterAccountPubKey), getKeyIncubatorAddress()))
579- if (if ((value(assetInfo(assetId)).issuer == Address(breederAddress)))
580- then true
581- else (value(assetInfo(assetId)).issuer == Address(incubatorAddress)))
582- then {
583- let assetName = value(assetInfo(assetId)).name
584- let generation = take(takeRight(assetName, 2), 1)
585- let gen = ((getGen(assetName) + "-") + generation)
586- getAssetRarity(gen, generation)
587- }
588- else throw("_20")
589- }
590-
591-
592-func getDuckMarketPrice (nftId) = {
593- let rarity = getAssetFarmingPower(nftId)
594- let breederAddress = addressFromStringValue(tryGetStringFromAccount(addressFromPublicKey(masterAccountPubKey), getKeyBreederAddress()))
595- let canBreed = tryGetIntegerFromAccount(breederAddress, (("asset_" + toBase58String(nftId)) + "_children"))
596- let canBreedText = if ((canBreed > 0))
597- then "1"
598- else "0"
599- tryGetIntegerFromAccount(addressFromPublicKey(masterAccountPubKey), ((("r-" + toString(rarity)) + "-b-") + canBreedText))
600- }
601-
602-
603-func getDuckAssetIdByAuctionId (auctionId) = {
604- let marketplaceAddress = getMarketplaceAddress()
605- tryGetStringFromAccount(addressFromStringValue(marketplaceAddress), (("auction_" + auctionId) + "_assetId"))
606- }
607-
608-
609-func getBidAmount (auctionId,bidId) = {
610- let marketplaceAddress = getMarketplaceAddress()
611- tryGetIntegerFromAccount(addressFromStringValue(marketplaceAddress), (((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"))
612- }
613-
614-
615-func getEggAssetId () = fromBase58String(getStringValue(addressFromPublicKey(masterAccountPubKey), "EGG_ASSET_ID"))
616-
617-
618-func getShareAssetId () = fromBase58String(tryGetString(getKeyShareAssetId()))
619-
620-
621-@Callable(i)
622-func initCollectiveFarm (name,minimumThreshold) = if ((i.callerPublicKey != masterAccountPubKey))
623- then throw("_1")
624- else if ((tryGetBoolean(getKeyInitialized()) != unit))
625- then throw("_2")
626- else {
627- let shareTokens = 10000
628- let shareToken = Issue(name, (("Share token for the \"" + name) + "\" collective farm"), shareTokens, 8, true)
629-[StringEntry(getKeyShareAssetId(), toBase58String(calculateAssetId(shareToken))), BooleanEntry(getKeyInitialized(), true), IntegerEntry(getKeyTotalLiquidity(), 10), IntegerEntry(getKeyTotalShareTokens(), shareTokens), shareToken, ScriptTransfer(i.caller, shareTokens, calculateAssetId(shareToken)), IntegerEntry(getKeyLiquidityThreshold(), minimumThreshold)]
630- }
631-
632-
633-
634-@Callable(i)
635-func provideLiquidity () = {
636- let eggAssetId = getEggAssetId()
637- if ((i.payments[0].assetId != eggAssetId))
638- then throw("_4")
639- else {
640- let totalLiquidity = tryGetInteger(getKeyTotalLiquidity())
641- let totalShareTokens = tryGetInteger(getKeyTotalShareTokens())
642- let currentLiquidityAmount = i.payments[0].amount
643- let currentTotalFarmingReward = tryGetInteger(getKeyTotalFarmingReward())
644- let shareTokensToGive = fraction(totalShareTokens, currentLiquidityAmount, (totalLiquidity + currentTotalFarmingReward))
645- let shareTokensId = fromBase58String(tryGetString(getKeyShareAssetId()))
646- let reissue = Reissue(getShareAssetId(), shareTokensToGive, true)
647-[reissue, ScriptTransfer(i.caller, shareTokensToGive, shareTokensId), IntegerEntry(getKeyTotalShareTokens(), (totalShareTokens + shareTokensToGive)), IntegerEntry(getKeyTotalLiquidity(), (totalLiquidity + value(i.payments[0].amount)))]
648- }
649- }
650-
651-
652-
653-@Callable(i)
654-func claimFarmingRewardProxy (nftIds) = {
655- let farmingDappAddress = tryGetStringFromAccount(addressFromPublicKey(masterAccountPubKey), getKeyFarmingAddress())
656- func claimOneReward (accum,nftId) = {
657- let invResult = invoke(addressFromStringValue(farmingDappAddress), "claimReward", [nftId], nil)
658- if ((invResult == invResult))
659- then match invResult {
660- case int: Int =>
661- (accum + int)
662- case _ =>
663- throw("_5")
664- }
665- else throw("Strict value is not equal to itself.")
666- }
667-
668- let foldResult = {
669- let $list82528287 = nftIds
670- let $size82528287 = size($list82528287)
671- let $acc082528287 = 0
672- if (($size82528287 == 0))
673- then $acc082528287
674- else {
675- let $acc182528287 = claimOneReward($acc082528287, $list82528287[0])
676- if (($size82528287 == 1))
677- then $acc182528287
678- else {
679- let $acc282528287 = claimOneReward($acc182528287, $list82528287[1])
680- if (($size82528287 == 2))
681- then $acc282528287
682- else {
683- let $acc382528287 = claimOneReward($acc282528287, $list82528287[2])
684- if (($size82528287 == 3))
685- then $acc382528287
686- else {
687- let $acc482528287 = claimOneReward($acc382528287, $list82528287[3])
688- if (($size82528287 == 4))
689- then $acc482528287
690- else {
691- let $acc582528287 = claimOneReward($acc482528287, $list82528287[4])
692- if (($size82528287 == 5))
693- then $acc582528287
694- else {
695- let $acc682528287 = claimOneReward($acc582528287, $list82528287[5])
696- if (($size82528287 == 6))
697- then $acc682528287
698- else {
699- let $acc782528287 = claimOneReward($acc682528287, $list82528287[6])
700- if (($size82528287 == 7))
701- then $acc782528287
702- else {
703- let $acc882528287 = claimOneReward($acc782528287, $list82528287[7])
704- if (($size82528287 == 8))
705- then $acc882528287
706- else {
707- let $acc982528287 = claimOneReward($acc882528287, $list82528287[8])
708- if (($size82528287 == 9))
709- then $acc982528287
710- else {
711- let $acc1082528287 = claimOneReward($acc982528287, $list82528287[9])
712- if (($size82528287 == 10))
713- then $acc1082528287
714- else {
715- let $acc1182528287 = claimOneReward($acc1082528287, $list82528287[10])
716- if (($size82528287 == 11))
717- then $acc1182528287
718- else {
719- let $acc1282528287 = claimOneReward($acc1182528287, $list82528287[11])
720- if (($size82528287 == 12))
721- then $acc1282528287
722- else {
723- let $acc1382528287 = claimOneReward($acc1282528287, $list82528287[12])
724- if (($size82528287 == 13))
725- then $acc1382528287
726- else {
727- let $acc1482528287 = claimOneReward($acc1382528287, $list82528287[13])
728- if (($size82528287 == 14))
729- then $acc1482528287
730- else {
731- let $acc1582528287 = claimOneReward($acc1482528287, $list82528287[14])
732- if (($size82528287 == 15))
733- then $acc1582528287
734- else {
735- let $acc1682528287 = claimOneReward($acc1582528287, $list82528287[15])
736- if (($size82528287 == 16))
737- then $acc1682528287
738- else {
739- let $acc1782528287 = claimOneReward($acc1682528287, $list82528287[16])
740- if (($size82528287 == 17))
741- then $acc1782528287
742- else {
743- let $acc1882528287 = claimOneReward($acc1782528287, $list82528287[17])
744- if (($size82528287 == 18))
745- then $acc1882528287
746- else {
747- let $acc1982528287 = claimOneReward($acc1882528287, $list82528287[18])
748- if (($size82528287 == 19))
749- then $acc1982528287
750- else {
751- let $acc2082528287 = claimOneReward($acc1982528287, $list82528287[19])
752- if (($size82528287 == 20))
753- then $acc2082528287
754- else {
755- let $acc2182528287 = claimOneReward($acc2082528287, $list82528287[20])
756- if (($size82528287 == 21))
757- then $acc2182528287
758- else {
759- let $acc2282528287 = claimOneReward($acc2182528287, $list82528287[21])
760- if (($size82528287 == 22))
761- then $acc2282528287
762- else {
763- let $acc2382528287 = claimOneReward($acc2282528287, $list82528287[22])
764- if (($size82528287 == 23))
765- then $acc2382528287
766- else {
767- let $acc2482528287 = claimOneReward($acc2382528287, $list82528287[23])
768- if (($size82528287 == 24))
769- then $acc2482528287
770- else {
771- let $acc2582528287 = claimOneReward($acc2482528287, $list82528287[24])
772- if (($size82528287 == 25))
773- then $acc2582528287
774- else {
775- let $acc2682528287 = claimOneReward($acc2582528287, $list82528287[25])
776- if (($size82528287 == 26))
777- then $acc2682528287
778- else {
779- let $acc2782528287 = claimOneReward($acc2682528287, $list82528287[26])
780- if (($size82528287 == 27))
781- then $acc2782528287
782- else {
783- let $acc2882528287 = claimOneReward($acc2782528287, $list82528287[27])
784- if (($size82528287 == 28))
785- then $acc2882528287
786- else {
787- let $acc2982528287 = claimOneReward($acc2882528287, $list82528287[28])
788- if (($size82528287 == 29))
789- then $acc2982528287
790- else {
791- let $acc3082528287 = claimOneReward($acc2982528287, $list82528287[29])
792- if (($size82528287 == 30))
793- then $acc3082528287
794- else {
795- let $acc3182528287 = claimOneReward($acc3082528287, $list82528287[30])
796- throw("List size exceed 30")
797- }
798- }
799- }
800- }
801- }
802- }
803- }
804- }
805- }
806- }
807- }
808- }
809- }
810- }
811- }
812- }
813- }
814- }
815- }
816- }
817- }
818- }
819- }
820- }
821- }
822- }
823- }
824- }
825- }
826- }
827- }
828- }
829- let claimedReward = match foldResult {
830- case int: Int =>
831- int
832- case _ =>
833- throw("_6")
834- }
835- let farmCeoFeeSize = fraction(claimedReward, feePercent, 100)
836- let currentTotalFarmingReward = tryGetInteger(getKeyTotalFarmingReward())
837- let currentCeoCollectedFee = tryGetInteger(getKeyCeoCollectedFee())
838- let currentCeoCollectedFeeOverall = tryGetInteger(getKeyCeoCollectedFeeOverall())
839-[IntegerEntry(getKeyTotalFarmingReward(), (currentTotalFarmingReward + (claimedReward - farmCeoFeeSize))), IntegerEntry(getKeyCeoCollectedFee(), (currentCeoCollectedFee + farmCeoFeeSize)), IntegerEntry(getKeyCeoCollectedFeeOverall(), (currentCeoCollectedFeeOverall + farmCeoFeeSize))]
840- }
841-
842-
843-
844-@Callable(i)
845-func claimCeoFee (address) = if ((i.caller == this))
846- then {
847- let currentCeoCollectedFee = tryGetInteger(getKeyCeoCollectedFee())
848-[ScriptTransfer(addressFromStringValue(address), currentCeoCollectedFee, getEggAssetId()), IntegerEntry(getKeyCeoCollectedFee(), 0)]
849- }
850- else throw("_8")
851-
852-
853-
854-@Callable(i)
855-func startLiquidation (auctionId) = throw("_7")
856-
857-
858-
859-@Callable(i)
860-func voteForLiquidation (auctionId) = throw("_7")
861-
862-
863-
864-@Callable(i)
865-func callMarketplaceProxy (function,int1,int2,str1,str2) = {
866- let marketplaceDappAddress = addressFromStringValue(tryGetStringFromAccount(addressFromPublicKey(masterAccountPubKey), getKeyMarketplaceAddress()))
867- if ((function == "initAuction"))
868- then {
869- let asset = value(i.payments[0])
870- let duckMarketPrice = getDuckMarketPrice(value(asset.assetId))
871- let initialPrice = int1
872- let buyoutPrice = int2
873- if (if ((initialPrice >= (duckMarketPrice - ((duckMarketPrice / 100) * 15))))
874- then (buyoutPrice >= initialPrice)
875- else false)
876- then {
877- let initAuction = invoke(marketplaceDappAddress, "initAuction", [initialPrice, buyoutPrice, str1], [AttachedPayment(value(asset.assetId), 1)])
878- if ((initAuction == initAuction))
879- then nil
880- else throw("Strict value is not equal to itself.")
881- }
882- else throw(("_9=" + toString(duckMarketPrice)))
883- }
884- else if ((function == "placeBid"))
885- then {
886- let auctionId = str1
887- let duckAssetId = getDuckAssetIdByAuctionId(auctionId)
888- let duckMarketPrice = getDuckMarketPrice(fromBase58String(duckAssetId))
889- let bidAmount = value(value(i.payments[0]).amount)
890- if (((duckMarketPrice + ((duckMarketPrice / 100) * 10)) > bidAmount))
891- then {
892- let placeBid = invoke(marketplaceDappAddress, "placeBid", [auctionId], [AttachedPayment(unit, bidAmount)])
893- if ((placeBid == placeBid))
894- then nil
895- else throw("Strict value is not equal to itself.")
896- }
897- else throw(("_10=" + toString(duckMarketPrice)))
898- }
899- else if ((function == "acceptBid"))
900- then {
901- let auctionId = str1
902- let bidId = str2
903- let duckAssetId = getDuckAssetIdByAuctionId(auctionId)
904- let duckMarketPrice = getDuckMarketPrice(fromBase58String(duckAssetId))
905- let bidAmount = getBidAmount(auctionId, bidId)
906- if ((bidAmount >= (duckMarketPrice - ((duckMarketPrice / 100) * 15))))
907- then {
908- let acceptBid = invoke(marketplaceDappAddress, "acceptBid", [auctionId, bidId], nil)
909- if ((acceptBid == acceptBid))
910- then nil
911- else throw("Strict value is not equal to itself.")
912- }
913- else throw(("_11=" + toString(duckMarketPrice)))
914- }
915- else if ((function == "instantBuy"))
916- then {
917- let auctionId = str1
918- let duckAssetId = getDuckAssetIdByAuctionId(auctionId)
919- let duckMarketPrice = getDuckMarketPrice(fromBase58String(duckAssetId))
920- let bidAmount = value(value(i.payments[0]).amount)
921- if (((duckMarketPrice + ((duckMarketPrice / 100) * 10)) > bidAmount))
922- then {
923- let instantBuy = invoke(marketplaceDappAddress, "instantBuy", [auctionId], [AttachedPayment(unit, bidAmount)])
924- if ((instantBuy == instantBuy))
925- then nil
926- else throw("Strict value is not equal to itself.")
927- }
928- else throw(("_12" + toString(duckMarketPrice)))
929- }
930- else throw("_13")
931- }
932-
933-
934-@Verifier(tx)
935-func verify () = {
936- let checkStarted = (tryGetInteger(getKeyTotalLiquidity()) >= tryGetInteger(getKeyLiquidityThreshold()))
937- func totalEggSpending (accum,payment) = if ((payment.assetId == getEggAssetId()))
938- then (accum + payment.amount)
939- else accum
940-
941- if ((valueOrElse(checkStarted, false) == false))
942- then throw("_14")
943- else match tx {
944- case inv: InvokeScriptTransaction =>
945- let currentTotalFarmingReward = tryGetInteger(getKeyTotalFarmingReward())
946- if (if ((inv.fee > 900000))
947- then true
948- else (inv.feeAssetId != unit))
949- then throw("_15")
950- else if ((inv.function == "claimReward"))
951- then throw("_16")
952- else if ((size(inv.payments) > 2))
953- then throw("_17")
954- else if ((currentTotalFarmingReward > (assetBalance(this, getEggAssetId()) - {
955- let $list1300813050 = inv.payments
956- let $size1300813050 = size($list1300813050)
957- let $acc01300813050 = 0
958- if (($size1300813050 == 0))
959- then $acc01300813050
960- else {
961- let $acc11300813050 = totalEggSpending($acc01300813050, $list1300813050[0])
962- if (($size1300813050 == 1))
963- then $acc11300813050
964- else {
965- let $acc21300813050 = totalEggSpending($acc11300813050, $list1300813050[1])
966- if (($size1300813050 == 2))
967- then $acc21300813050
968- else {
969- let $acc31300813050 = totalEggSpending($acc21300813050, $list1300813050[2])
970- if (($size1300813050 == 3))
971- then $acc31300813050
972- else {
973- let $acc41300813050 = totalEggSpending($acc31300813050, $list1300813050[3])
974- throw("List size exceed 3")
975- }
976- }
977- }
978- }
979- })))
980- then throw(("_18=" + toString(currentTotalFarmingReward)))
981- else if (if ((addressFromRecipient(inv.dApp) == this))
982- then (inv.function == "claimCeoFee")
983- else false)
984- then true
985- else if (if ((addressFromRecipient(inv.dApp) == this))
986- then (inv.function == "startCollectiveFarm")
987- else false)
988- then true
989- else {
990- let allowedContracts = tryGetStringFromAccount(addressFromPublicKey(masterAccountPubKey), "allowed_contracts")
991- let marketplaceAddress = getMarketplaceAddress()
992- let allowedContractsList = split(allowedContracts, ";")
993- let dappToCall = toString(addressFromRecipient(inv.dApp))
994- if ((dappToCall == marketplaceAddress))
995- then throw("_19")
996- else (indexOf(allowedContractsList, dappToCall) != unit)
997- }
998- case ss: SetScriptTransaction =>
999- sigVerify(tx.bodyBytes, tx.proofs[0], masterAccountPubKey)
1000- case _ =>
1001- false
1002- }
1003- }
1004-
1+# no script

github/deemru/w8io/3ef1775 
115.57 ms