tx · 1Bzcti4LyLGTmoZBAAF6rtAaaknWMmMK68V2Mzb5uzs

3PCMnvCRwQbsjLaUFuguCEPmeskFpbr6dEG:  -0.01400000 Waves

2021.09.17 16:23 [2772018] smart account 3PCMnvCRwQbsjLaUFuguCEPmeskFpbr6dEG > SELF 0.00000000 Waves

{ "type": 13, "id": "1Bzcti4LyLGTmoZBAAF6rtAaaknWMmMK68V2Mzb5uzs", "fee": 1400000, "feeAssetId": null, "timestamp": 1631885036326, "version": 2, "chainId": 87, "sender": "3PCMnvCRwQbsjLaUFuguCEPmeskFpbr6dEG", "senderPublicKey": "2pqWf3q3KPBc8VbjLWy4wu4BgK1P4b9uPE4gNm8f1bzT", "proofs": [ "3ccf63jU7vQ6C3ksahjsC3PcBEokjderdXun3v4GXzu4oSokgy7u1SiRrPkPkjPMY1HAk7vuzryv7PiPitfBRtwy" ], "script": "base64:AAIFAAAAAAAAC/4IAhIECgIIARIDCgEEEgASABIAEgMKAQgSAwoBCBIDCgEIEgMKAQgSBAoCCAgSAwoBCBIFCgMIAQESABoOCgJhMRIIbUFjY1BLZXkaDgoCYTISCG1BY2NBZGRyGhAKAmEzEgpmZWVQZXJjZW50GhMKAmE0Eg1vbGRFZ2dBc3NldElkGhgKAmE1EhJzd2FwRWdnRGFwcEFkZHJlc3MaFQoCYTYSD2tUb3RhbExpcXVpZGl0eRoSCgJhNxIMa0luaXRpYWxpemVkGhkKAmE4EhNrTGlxdWlkaXR5VGhyZXNob2xkGhcKAmE5EhFrRmFybVBhcnRpY2lwYW50cxoXCgJiMRIRa1RvdGFsU2hhcmVUb2tlbnMaEwoCYjISDWtTaGFyZUFzc2V0SWQaEgoCYjMSDGtGYXJtaW5nRGFwcBoWCgJiNBIQa01hcmtldFByb3h5RGFwcBoNCgJiNRIHa0xvY2tlZBoZCgJiNhITa1RvdGFsRmFybWluZ1Jld2FyZBoWCgJiNxIQa0Nlb0NvbGxlY3RlZEZlZRodCgJiOBIXa0Nlb0NvbGxlY3RlZEZlZU92ZXJhbGwaDgoCYjkSCGtUb0Rpc3RyGhUKAmMxEg9rVW5zdGFrZWRSZXdhcmQaGAoCYzISEmtMb2NrZWRJbnZlc3RtZW50cxoMCgJjMxIGZ2V0SW50GgkKAmM0EgNrZXkaDQoCYzUSByRtYXRjaDAaBwoCYzYSAWIaDAoCYzcSBmdldFN0choNCgJjOBIHZ2V0Qm9vbBoNCgJjORIHZ2V0U3RyQRoHCgJkMRIBYRoHCgJkMhIBaxoYCgJkMxISZ2V0TWFya2V0UHJveHlBZGRyGg4KAmQ0EghnZXRFZ2dJZBoVCgJkNRIPZ2V0U2hhcmVBc3NldElkGgcKAmQ2EgFpGgoKAmQ3EgRuYW1lGhYKAmQ4EhBtaW5pbXVtVGhyZXNob2xkGhEKAmQ5EgtzaGFyZVRva2VucxoQCgJlMRIKc2hhcmVUb2tlbhoHCgJlMhIBcxoQCgJlMxIKZWdnQXNzZXRJZBoUCgJlNBIOdG90YWxMaXF1aWRpdHkaFgoCZTUSEHRvdGFsU2hhcmVUb2tlbnMaHAoCZTYSFmN1cnJlbnRMaXF1aWRpdHlBbW91bnQaFwoCZTcSEXNoYXJlVG9rZW5zVG9HaXZlGhMKAmU4Eg1zaGFyZVRva2Vuc0lkGg0KAmU5EgdyZWlzc3VlGhYKAmYxEhBmYXJtUGFydGljaXBhbnRzGhMKAmYyEg1rUGFydGljaXBhdGVkGhkKAmYzEhNhbHJlYWR5UGFydGljaXBhdGVkGhkKAmY0EhNuZXdGYXJtUGFydGljaXBhbnRzGgkKAmY1EgNpZHMaEQoCZjYSC2Zhcm1pbmdEYXBwGhEKAmY3EgtjbGFpbVJld2FyZBoLCgJmOBIFYWNjdW0aCwoCZjkSBW5mdElkGgwKAmcxEgZpbnZSZXMaCQoCZzISA2ludBoMCgJnMxIGbmZ0SWRzGhAKAmc0Egpmb2xkUmVzdWx0GhMKAmc1Eg0kbGlzdDU3MzQ1NzY2GhMKAmc2Eg0kc2l6ZTU3MzQ1NzY2GhMKAmc3Eg0kYWNjMDU3MzQ1NzY2GhMKAmc4Eg0kYWNjMTU3MzQ1NzY2GhMKAmc5Eg0kYWNjMjU3MzQ1NzY2GhMKAmgxEg0kYWNjMzU3MzQ1NzY2GhMKAmgyEg0kYWNjNDU3MzQ1NzY2GhMKAmgzEg0kYWNjNTU3MzQ1NzY2GhMKAmg0Eg0kYWNjNjU3MzQ1NzY2GhMKAmg1Eg0kYWNjNzU3MzQ1NzY2GhMKAmg2Eg0kYWNjODU3MzQ1NzY2GhMKAmg3Eg0kYWNjOTU3MzQ1NzY2GhQKAmg4Eg4kYWNjMTA1NzM0NTc2NhoUCgJoORIOJGFjYzExNTczNDU3NjYaEwoCaTESDWNsYWltZWRSZXdhcmQaFAoCaTISDmZhcm1DZW9GZWVTaXplGg0KAmkzEgd0b0Rpc3RyGhgKAmk0EhJ0b3RhbEZhcm1pbmdSZXdhcmQaEwoCaTUSDWN1cnJlbnRDZW9GZWUaEwoCaTYSDWNlb0ZlZU92ZXJhbGwaDQoCaTcSB2FkZHJlc3MaHAoCaTgSFmN1cnJlbnRDZW9Db2xsZWN0ZWRGZWUaDwoCaTkSCWF1Y3Rpb25JZBoOCgJqMRIIZnVuY3Rpb24aDQoCajISB2Fzc2V0SWQaGAoCajMSEmZhcm1pbmdEYXBwQWRkcmVzcxoTCgJqNBINdXN0YWtlZFJld2FyZBoXCgJqNRIRdW5zdGFrZWRSZXdhcmROb3caFwoCajYSEW5ld1Vuc3Rha2VkUmV3YXJkGgoKAmo3EgR0eElkGggKAmo4EgJ0eBoPCgJqORIJa1JldmVydGVkGhAKAmsxEgp0eFJldmVydGVkGhAKAmsyEgptaW5CYWxhbmNlGhcKAmszEhFjdXJyZW50RWdnQmFsYW5jZRoPCgJrNBIJYWRkcmVzc2VzGh0KAms1Ehd0b3RhbFJld2FyZFRvRGlzdHJpYnV0ZRoSCgJrNhIMYWRkcmVzc1BhaXJzGhQKAms3Eg5wcm9jZXNzQWRkcmVzcxoRCgJrOBILYWRkcmVzc1BhaXIaEgoCazkSDGFkZHJlc3NQYXJ0cxoQCgJsMRIKYWRkcmVzc1N0choVCgJsMhIPdXNlclNoYXJlVG9rZW5zGhEKAmwzEgtrQWRkckVhcm5lZBoVCgJsNBIPYWRkclRvdGFsRWFybmVkGhMKAmw1Eg11c2VyUmV3YXJkTm93GgkKAmw2EgNyZXMaDAoCbDcSBnJlc3VsdBoVCgJsOBIPJGxpc3QxMDQ5NTEwNTQyGhUKAmw5Eg8kc2l6ZTEwNDk1MTA1NDIaFQoCbTESDyRhY2MwMTA0OTUxMDU0MhoVCgJtMhIPJGFjYzExMDQ5NTEwNTQyGhUKAm0zEg8kYWNjMjEwNDk1MTA1NDIaFQoCbTQSDyRhY2MzMTA0OTUxMDU0MhoVCgJtNRIPJGFjYzQxMDQ5NTEwNTQyGhUKAm02Eg8kYWNjNTEwNDk1MTA1NDIaFQoCbTcSDyRhY2M2MTA0OTUxMDU0MhoVCgJtOBIPJGFjYzcxMDQ5NTEwNTQyGhUKAm05Eg8kYWNjODEwNDk1MTA1NDIaFQoCbjESDyRhY2M5MTA0OTUxMDU0MhoWCgJuMhIQJGFjYzEwMTA0OTUxMDU0MhoWCgJuMxIQJGFjYzExMTA0OTUxMDU0MhoWCgJuNBIQJGFjYzEyMTA0OTUxMDU0MhoWCgJuNRIQJGFjYzEzMTA0OTUxMDU0MhoWCgJuNhIQJGFjYzE0MTA0OTUxMDU0MhoWCgJuNxIQJGFjYzE1MTA0OTUxMDU0MhoWCgJuOBIQJGFjYzE2MTA0OTUxMDU0MhoWCgJuORIQJGFjYzE3MTA0OTUxMDU0MhoWCgJvMRIQJGFjYzE4MTA0OTUxMDU0MhoWCgJvMhIQJGFjYzE5MTA0OTUxMDU0MhoWCgJvMxIQJGFjYzIwMTA0OTUxMDU0MhoWCgJvNBIQJGFjYzIxMTA0OTUxMDU0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", "height": 2772018, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4iQu9qSQH77n6Y7PCBG9qPCti7CmoL3rrgFi278Wmv2U Next: ENJSXjWVWpnDEjYfKwJ5PA5WKsMT3CgJZvawFJZk1Gkz Diff:
OldNewDifferences
144144 let newFarmParticipants = if ((alreadyParticipated == unit))
145145 then (farmParticipants + 1)
146146 else farmParticipants
147-[reissue, ScriptTransfer(i.caller, shareTokensToGive, shareTokensId), IntegerEntry(kTotalShareTokens, (totalShareTokens + shareTokensToGive)), IntegerEntry(kTotalLiquidity, (totalLiquidity + value(i.payments[0].amount))), IntegerEntry(kFarmParticipants, newFarmParticipants), BooleanEntry(kParticipated, true)]
147+[reissue, ScriptTransfer(i.caller, shareTokensToGive, shareTokensId), IntegerEntry(kTotalShareTokens, (totalShareTokens + shareTokensToGive)), IntegerEntry(kTotalLiquidity, (totalLiquidity + (value(i.payments[0].amount) / 1000000))), IntegerEntry(kFarmParticipants, newFarmParticipants), BooleanEntry(kParticipated, true)]
148148 }
149149 }
150150
169169
170170 let nftIds = split(ids, ";")
171171 let foldResult = {
172- let $list57205752 = nftIds
173- let $size57205752 = size($list57205752)
174- let $acc057205752 = 0
175- if (($size57205752 == 0))
176- then $acc057205752
172+ let $list57345766 = nftIds
173+ let $size57345766 = size($list57345766)
174+ let $acc057345766 = 0
175+ if (($size57345766 == 0))
176+ then $acc057345766
177177 else {
178- let $acc157205752 = claimReward($acc057205752, $list57205752[0])
179- if (($size57205752 == 1))
180- then $acc157205752
178+ let $acc157345766 = claimReward($acc057345766, $list57345766[0])
179+ if (($size57345766 == 1))
180+ then $acc157345766
181181 else {
182- let $acc257205752 = claimReward($acc157205752, $list57205752[1])
183- if (($size57205752 == 2))
184- then $acc257205752
182+ let $acc257345766 = claimReward($acc157345766, $list57345766[1])
183+ if (($size57345766 == 2))
184+ then $acc257345766
185185 else {
186- let $acc357205752 = claimReward($acc257205752, $list57205752[2])
187- if (($size57205752 == 3))
188- then $acc357205752
186+ let $acc357345766 = claimReward($acc257345766, $list57345766[2])
187+ if (($size57345766 == 3))
188+ then $acc357345766
189189 else {
190- let $acc457205752 = claimReward($acc357205752, $list57205752[3])
191- if (($size57205752 == 4))
192- then $acc457205752
190+ let $acc457345766 = claimReward($acc357345766, $list57345766[3])
191+ if (($size57345766 == 4))
192+ then $acc457345766
193193 else {
194- let $acc557205752 = claimReward($acc457205752, $list57205752[4])
195- if (($size57205752 == 5))
196- then $acc557205752
194+ let $acc557345766 = claimReward($acc457345766, $list57345766[4])
195+ if (($size57345766 == 5))
196+ then $acc557345766
197197 else {
198- let $acc657205752 = claimReward($acc557205752, $list57205752[5])
199- if (($size57205752 == 6))
200- then $acc657205752
198+ let $acc657345766 = claimReward($acc557345766, $list57345766[5])
199+ if (($size57345766 == 6))
200+ then $acc657345766
201201 else {
202- let $acc757205752 = claimReward($acc657205752, $list57205752[6])
203- if (($size57205752 == 7))
204- then $acc757205752
202+ let $acc757345766 = claimReward($acc657345766, $list57345766[6])
203+ if (($size57345766 == 7))
204+ then $acc757345766
205205 else {
206- let $acc857205752 = claimReward($acc757205752, $list57205752[7])
207- if (($size57205752 == 8))
208- then $acc857205752
206+ let $acc857345766 = claimReward($acc757345766, $list57345766[7])
207+ if (($size57345766 == 8))
208+ then $acc857345766
209209 else {
210- let $acc957205752 = claimReward($acc857205752, $list57205752[8])
211- if (($size57205752 == 9))
212- then $acc957205752
210+ let $acc957345766 = claimReward($acc857345766, $list57345766[8])
211+ if (($size57345766 == 9))
212+ then $acc957345766
213213 else {
214- let $acc1057205752 = claimReward($acc957205752, $list57205752[9])
215- if (($size57205752 == 10))
216- then $acc1057205752
214+ let $acc1057345766 = claimReward($acc957345766, $list57345766[9])
215+ if (($size57345766 == 10))
216+ then $acc1057345766
217217 else {
218- let $acc1157205752 = claimReward($acc1057205752, $list57205752[10])
218+ let $acc1157345766 = claimReward($acc1057345766, $list57345766[10])
219219 throw("List size exceed 10")
220220 }
221221 }
327327
328328
329329 @Callable(i)
330-func distributeRewards (addresses,totalShareTokensToDistribute) = if ((i.caller != mAccAddr))
330+func distributeRewards (addresses,totalShareTokens,totalRewardToDistribute) = if ((i.caller != mAccAddr))
331331 then throw("Method can be called only by master account")
332332 else {
333333 let addressPairs = split(addresses, ";")
335335 let addressParts = split(addressPair, "=")
336336 let addressStr = addressParts[0]
337337 let address = addressFromStringValue(addressStr)
338- let eggletsAmount = parseIntValue(addressParts[1])
339- let change = parseIntValue(addressParts[2])
338+ let userShareTokens = parseIntValue(addressParts[1])
340339 let kAddrEarned = (("address_" + addressStr) + "_total_earned")
341340 let addrTotalEarned = getInt(kAddrEarned)
342- let totalRewardNow = ((eggletsAmount * 1000000) + change)
343- let kAddrChange = (("address_" + addressStr) + "_change")
344- let earnedLastDay = (totalRewardNow - getInt(kAddrChange))
345- let res = [IntegerEntry(kAddrChange, change), IntegerEntry(kAddrEarned, (addrTotalEarned + earnedLastDay)), IntegerEntry(((("address_" + addressStr) + "_reward_") + toString(lastBlock.timestamp)), earnedLastDay)]
346- if ((eggletsAmount > 0))
347- then $Tuple2((accum._1 + eggletsAmount), ((accum._2 ++ res) ++ [ScriptTransfer(address, eggletsAmount, getEggId())]))
348- else $Tuple2(accum._1, (accum._2 ++ res))
341+ let userRewardNow = fraction(totalRewardToDistribute, userShareTokens, totalShareTokens)
342+ let res = [IntegerEntry(kAddrEarned, (addrTotalEarned + userRewardNow)), IntegerEntry(((("address_" + addressStr) + "_reward_") + toString(lastBlock.timestamp)), userRewardNow), ScriptTransfer(address, userRewardNow, getEggId())]
343+ $Tuple2((accum._1 + userRewardNow), (accum._2 ++ res))
349344 }
350345
351346 let result = {
352- let $list1071410761 = addressPairs
353- let $size1071410761 = size($list1071410761)
354- let $acc01071410761 = $Tuple2(0, nil)
355- if (($size1071410761 == 0))
356- then $acc01071410761
347+ let $list1049510542 = addressPairs
348+ let $size1049510542 = size($list1049510542)
349+ let $acc01049510542 = $Tuple2(0, nil)
350+ if (($size1049510542 == 0))
351+ then $acc01049510542
357352 else {
358- let $acc11071410761 = processAddress($acc01071410761, $list1071410761[0])
359- if (($size1071410761 == 1))
360- then $acc11071410761
353+ let $acc11049510542 = processAddress($acc01049510542, $list1049510542[0])
354+ if (($size1049510542 == 1))
355+ then $acc11049510542
361356 else {
362- let $acc21071410761 = processAddress($acc11071410761, $list1071410761[1])
363- if (($size1071410761 == 2))
364- then $acc21071410761
357+ let $acc21049510542 = processAddress($acc11049510542, $list1049510542[1])
358+ if (($size1049510542 == 2))
359+ then $acc21049510542
365360 else {
366- let $acc31071410761 = processAddress($acc21071410761, $list1071410761[2])
367- if (($size1071410761 == 3))
368- then $acc31071410761
361+ let $acc31049510542 = processAddress($acc21049510542, $list1049510542[2])
362+ if (($size1049510542 == 3))
363+ then $acc31049510542
369364 else {
370- let $acc41071410761 = processAddress($acc31071410761, $list1071410761[3])
371- if (($size1071410761 == 4))
372- then $acc41071410761
365+ let $acc41049510542 = processAddress($acc31049510542, $list1049510542[3])
366+ if (($size1049510542 == 4))
367+ then $acc41049510542
373368 else {
374- let $acc51071410761 = processAddress($acc41071410761, $list1071410761[4])
375- if (($size1071410761 == 5))
376- then $acc51071410761
369+ let $acc51049510542 = processAddress($acc41049510542, $list1049510542[4])
370+ if (($size1049510542 == 5))
371+ then $acc51049510542
377372 else {
378- let $acc61071410761 = processAddress($acc51071410761, $list1071410761[5])
379- if (($size1071410761 == 6))
380- then $acc61071410761
373+ let $acc61049510542 = processAddress($acc51049510542, $list1049510542[5])
374+ if (($size1049510542 == 6))
375+ then $acc61049510542
381376 else {
382- let $acc71071410761 = processAddress($acc61071410761, $list1071410761[6])
383- if (($size1071410761 == 7))
384- then $acc71071410761
377+ let $acc71049510542 = processAddress($acc61049510542, $list1049510542[6])
378+ if (($size1049510542 == 7))
379+ then $acc71049510542
385380 else {
386- let $acc81071410761 = processAddress($acc71071410761, $list1071410761[7])
387- if (($size1071410761 == 8))
388- then $acc81071410761
381+ let $acc81049510542 = processAddress($acc71049510542, $list1049510542[7])
382+ if (($size1049510542 == 8))
383+ then $acc81049510542
389384 else {
390- let $acc91071410761 = processAddress($acc81071410761, $list1071410761[8])
391- if (($size1071410761 == 9))
392- then $acc91071410761
385+ let $acc91049510542 = processAddress($acc81049510542, $list1049510542[8])
386+ if (($size1049510542 == 9))
387+ then $acc91049510542
393388 else {
394- let $acc101071410761 = processAddress($acc91071410761, $list1071410761[9])
395- if (($size1071410761 == 10))
396- then $acc101071410761
389+ let $acc101049510542 = processAddress($acc91049510542, $list1049510542[9])
390+ if (($size1049510542 == 10))
391+ then $acc101049510542
397392 else {
398- let $acc111071410761 = processAddress($acc101071410761, $list1071410761[10])
399- if (($size1071410761 == 11))
400- then $acc111071410761
393+ let $acc111049510542 = processAddress($acc101049510542, $list1049510542[10])
394+ if (($size1049510542 == 11))
395+ then $acc111049510542
401396 else {
402- let $acc121071410761 = processAddress($acc111071410761, $list1071410761[11])
403- if (($size1071410761 == 12))
404- then $acc121071410761
397+ let $acc121049510542 = processAddress($acc111049510542, $list1049510542[11])
398+ if (($size1049510542 == 12))
399+ then $acc121049510542
405400 else {
406- let $acc131071410761 = processAddress($acc121071410761, $list1071410761[12])
407- if (($size1071410761 == 13))
408- then $acc131071410761
401+ let $acc131049510542 = processAddress($acc121049510542, $list1049510542[12])
402+ if (($size1049510542 == 13))
403+ then $acc131049510542
409404 else {
410- let $acc141071410761 = processAddress($acc131071410761, $list1071410761[13])
411- if (($size1071410761 == 14))
412- then $acc141071410761
405+ let $acc141049510542 = processAddress($acc131049510542, $list1049510542[13])
406+ if (($size1049510542 == 14))
407+ then $acc141049510542
413408 else {
414- let $acc151071410761 = processAddress($acc141071410761, $list1071410761[14])
415- if (($size1071410761 == 15))
416- then $acc151071410761
409+ let $acc151049510542 = processAddress($acc141049510542, $list1049510542[14])
410+ if (($size1049510542 == 15))
411+ then $acc151049510542
417412 else {
418- let $acc161071410761 = processAddress($acc151071410761, $list1071410761[15])
419- if (($size1071410761 == 16))
420- then $acc161071410761
413+ let $acc161049510542 = processAddress($acc151049510542, $list1049510542[15])
414+ if (($size1049510542 == 16))
415+ then $acc161049510542
421416 else {
422- let $acc171071410761 = processAddress($acc161071410761, $list1071410761[16])
423- if (($size1071410761 == 17))
424- then $acc171071410761
417+ let $acc171049510542 = processAddress($acc161049510542, $list1049510542[16])
418+ if (($size1049510542 == 17))
419+ then $acc171049510542
425420 else {
426- let $acc181071410761 = processAddress($acc171071410761, $list1071410761[17])
427- if (($size1071410761 == 18))
428- then $acc181071410761
421+ let $acc181049510542 = processAddress($acc171049510542, $list1049510542[17])
422+ if (($size1049510542 == 18))
423+ then $acc181049510542
429424 else {
430- let $acc191071410761 = processAddress($acc181071410761, $list1071410761[18])
431- if (($size1071410761 == 19))
432- then $acc191071410761
425+ let $acc191049510542 = processAddress($acc181049510542, $list1049510542[18])
426+ if (($size1049510542 == 19))
427+ then $acc191049510542
433428 else {
434- let $acc201071410761 = processAddress($acc191071410761, $list1071410761[19])
435- if (($size1071410761 == 20))
436- then $acc201071410761
429+ let $acc201049510542 = processAddress($acc191049510542, $list1049510542[19])
430+ if (($size1049510542 == 20))
431+ then $acc201049510542
437432 else {
438- let $acc211071410761 = processAddress($acc201071410761, $list1071410761[20])
433+ let $acc211049510542 = processAddress($acc201049510542, $list1049510542[20])
439434 throw("List size exceed 20")
440435 }
441436 }
460455 }
461456 }
462457 let toDistr = getInt(kToDistr)
463- (result._2 ++ [IntegerEntry(kToDistr, (toDistr - (result._1 * 1000000))), IntegerEntry(kUnstakedReward, 0)])
458+ (result._2 ++ [IntegerEntry(kToDistr, (toDistr - result._1)), IntegerEntry(kUnstakedReward, 0)])
464459 }
465460
466461
508503 else if ((size(inv.payments) > 2))
509504 then throw("_17")
510505 else if ((minBalance > ((assetBalance(this, getEggId()) - {
511- let $list1251412556 = inv.payments
512- let $size1251412556 = size($list1251412556)
513- let $acc01251412556 = 0
514- if (($size1251412556 == 0))
515- then $acc01251412556
506+ let $list1228112323 = inv.payments
507+ let $size1228112323 = size($list1228112323)
508+ let $acc01228112323 = 0
509+ if (($size1228112323 == 0))
510+ then $acc01228112323
516511 else {
517- let $acc11251412556 = totalEggSpending($acc01251412556, $list1251412556[0])
518- if (($size1251412556 == 1))
519- then $acc11251412556
512+ let $acc11228112323 = totalEggSpending($acc01228112323, $list1228112323[0])
513+ if (($size1228112323 == 1))
514+ then $acc11228112323
520515 else {
521- let $acc21251412556 = totalEggSpending($acc11251412556, $list1251412556[1])
522- if (($size1251412556 == 2))
523- then $acc21251412556
516+ let $acc21228112323 = totalEggSpending($acc11228112323, $list1228112323[1])
517+ if (($size1228112323 == 2))
518+ then $acc21228112323
524519 else {
525- let $acc31251412556 = totalEggSpending($acc21251412556, $list1251412556[2])
526- if (($size1251412556 == 3))
527- then $acc31251412556
520+ let $acc31228112323 = totalEggSpending($acc21228112323, $list1228112323[2])
521+ if (($size1228112323 == 3))
522+ then $acc31228112323
528523 else {
529- let $acc41251412556 = totalEggSpending($acc31251412556, $list1251412556[3])
524+ let $acc41228112323 = totalEggSpending($acc31228112323, $list1228112323[3])
530525 throw("List size exceed 3")
531526 }
532527 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let mAccPKey = base58'23NWm7kUDQqbTVkirjd5JXWRZaWVoS4ZesmRNHicBa3T'
55
66 let mAccAddr = addressFromPublicKey(mAccPKey)
77
88 let feePercent = getIntegerValue(mAccAddr, (("f_" + toString(this)) + "_fee"))
99
1010 let oldEggAssetId = base58'JCGDtrVy64cCJ1wCKfCaiNQMnyYwii71TbE5QeAHfxgF'
1111
1212 let swapEggDappAddress = addressFromStringValue("3PJQUUiJdvz9etUKED9ju7o7VrcNMtnkXBU")
1313
1414 let kTotalLiquidity = "total_liquidity"
1515
1616 let kInitialized = "INITIALIZED"
1717
1818 let kLiquidityThreshold = "LIQUIDITY_THRESHOLD"
1919
2020 let kFarmParticipants = "farm_participants"
2121
2222 let kTotalShareTokens = "total_share_tokens"
2323
2424 let kShareAssetId = "SHARE_ASSET_ID"
2525
2626 let kFarmingDapp = "FARMING_DAPP"
2727
2828 let kMarketProxyDapp = "MARKETPLACE_PROXY_DAPP"
2929
3030 let kLocked = "LOCKED"
3131
3232 let kTotalFarmingReward = "total_farming_reward"
3333
3434 let kCeoCollectedFee = "ceo_collected_fee"
3535
3636 let kCeoCollectedFeeOverall = "ceo_fee_overall"
3737
3838 let kToDistr = "to_distribute"
3939
4040 let kUnstakedReward = "unstaked_reward"
4141
4242 let kLockedInvestments = "locked_investments"
4343
4444 func getInt (key) = match getInteger(this, key) {
4545 case b: Int =>
4646 b
4747 case _ =>
4848 0
4949 }
5050
5151
5252 func getStr (key) = match getString(this, key) {
5353 case b: String =>
5454 b
5555 case _ =>
5656 ""
5757 }
5858
5959
6060 func getBool (key) = match getBoolean(this, key) {
6161 case b: Boolean =>
6262 b
6363 case _ =>
6464 unit
6565 }
6666
6767
6868 func getStrA (a,k) = match getString(a, k) {
6969 case b: String =>
7070 b
7171 case _ =>
7272 ""
7373 }
7474
7575
7676 func getMarketProxyAddr () = getStrA(mAccAddr, kMarketProxyDapp)
7777
7878
7979 func getEggId () = fromBase58String(getStringValue(mAccAddr, "EGG_ASSET_ID"))
8080
8181
8282 func getShareAssetId () = fromBase58String(getStr(kShareAssetId))
8383
8484
8585 @Callable(i)
8686 func initCollectiveFarm (name,minimumThreshold) = if ((i.callerPublicKey != mAccPKey))
8787 then throw("_1")
8888 else if ((getBool(kInitialized) != unit))
8989 then throw("_2")
9090 else if (if ((i.payments[0].amount != 10))
9191 then true
9292 else (i.payments[0].assetId != getEggId()))
9393 then throw("_20")
9494 else {
9595 let shareTokens = 10000000
9696 let shareToken = Issue(name, (("Share token for the \"" + name) + "\" collective farm"), shareTokens, 8, true)
9797 [StringEntry(kShareAssetId, toBase58String(calculateAssetId(shareToken))), BooleanEntry(kInitialized, true), IntegerEntry(kTotalLiquidity, 10), IntegerEntry(kTotalShareTokens, shareTokens), shareToken, ScriptTransfer(i.caller, shareTokens, calculateAssetId(shareToken)), BooleanEntry(kLocked, false), IntegerEntry(kLiquidityThreshold, minimumThreshold)]
9898 }
9999
100100
101101
102102 @Callable(i)
103103 func setLock (s) = if ((i.callerPublicKey != mAccPKey))
104104 then throw("_21")
105105 else [BooleanEntry(kLocked, s)]
106106
107107
108108
109109 @Callable(i)
110110 func lockInvestments () = if ((i.caller != this))
111111 then throw("You cannot lock this contract")
112112 else [BooleanEntry(kLockedInvestments, true)]
113113
114114
115115
116116 @Callable(i)
117117 func unlockInvestments () = if ((i.caller != this))
118118 then throw("You cannot lock this contract")
119119 else [BooleanEntry(kLockedInvestments, false)]
120120
121121
122122
123123 @Callable(i)
124124 func provideLiquidity () = {
125125 let eggAssetId = getEggId()
126126 if ((getBool(kLockedInvestments) == true))
127127 then throw("Contract is locked for investments by it's CEO. Please invest in another collective farm.")
128128 else if ((getBool(kLocked) == true))
129129 then throw("_22")
130130 else if ((i.payments[0].assetId != eggAssetId))
131131 then throw("_4")
132132 else if ((1000000 > i.payments[0].amount))
133133 then throw("Min amount to invest is 0.01 EGG")
134134 else {
135135 let totalLiquidity = getInt(kTotalLiquidity)
136136 let totalShareTokens = getInt(kTotalShareTokens)
137137 let currentLiquidityAmount = i.payments[0].amount
138138 let shareTokensToGive = currentLiquidityAmount
139139 let shareTokensId = fromBase58String(getStr(kShareAssetId))
140140 let reissue = Reissue(getShareAssetId(), shareTokensToGive, true)
141141 let farmParticipants = getInt(kFarmParticipants)
142142 let kParticipated = (("account_" + toString(i.caller)) + "_participated")
143143 let alreadyParticipated = getBool(kParticipated)
144144 let newFarmParticipants = if ((alreadyParticipated == unit))
145145 then (farmParticipants + 1)
146146 else farmParticipants
147-[reissue, ScriptTransfer(i.caller, shareTokensToGive, shareTokensId), IntegerEntry(kTotalShareTokens, (totalShareTokens + shareTokensToGive)), IntegerEntry(kTotalLiquidity, (totalLiquidity + value(i.payments[0].amount))), IntegerEntry(kFarmParticipants, newFarmParticipants), BooleanEntry(kParticipated, true)]
147+[reissue, ScriptTransfer(i.caller, shareTokensToGive, shareTokensId), IntegerEntry(kTotalShareTokens, (totalShareTokens + shareTokensToGive)), IntegerEntry(kTotalLiquidity, (totalLiquidity + (value(i.payments[0].amount) / 1000000))), IntegerEntry(kFarmParticipants, newFarmParticipants), BooleanEntry(kParticipated, true)]
148148 }
149149 }
150150
151151
152152
153153 @Callable(i)
154154 func claimFarmingRewardProxy (ids) = if ((i.callerPublicKey != mAccPKey))
155155 then throw("_23")
156156 else {
157157 let farmingDapp = addressFromStringValue(getStrA(mAccAddr, kFarmingDapp))
158158 func claimReward (accum,nftId) = {
159159 let invRes = invoke(farmingDapp, "claimReward", [nftId], nil)
160160 if ((invRes == invRes))
161161 then match invRes {
162162 case int: Int =>
163163 (accum + int)
164164 case _ =>
165165 throw("_5")
166166 }
167167 else throw("Strict value is not equal to itself.")
168168 }
169169
170170 let nftIds = split(ids, ";")
171171 let foldResult = {
172- let $list57205752 = nftIds
173- let $size57205752 = size($list57205752)
174- let $acc057205752 = 0
175- if (($size57205752 == 0))
176- then $acc057205752
172+ let $list57345766 = nftIds
173+ let $size57345766 = size($list57345766)
174+ let $acc057345766 = 0
175+ if (($size57345766 == 0))
176+ then $acc057345766
177177 else {
178- let $acc157205752 = claimReward($acc057205752, $list57205752[0])
179- if (($size57205752 == 1))
180- then $acc157205752
178+ let $acc157345766 = claimReward($acc057345766, $list57345766[0])
179+ if (($size57345766 == 1))
180+ then $acc157345766
181181 else {
182- let $acc257205752 = claimReward($acc157205752, $list57205752[1])
183- if (($size57205752 == 2))
184- then $acc257205752
182+ let $acc257345766 = claimReward($acc157345766, $list57345766[1])
183+ if (($size57345766 == 2))
184+ then $acc257345766
185185 else {
186- let $acc357205752 = claimReward($acc257205752, $list57205752[2])
187- if (($size57205752 == 3))
188- then $acc357205752
186+ let $acc357345766 = claimReward($acc257345766, $list57345766[2])
187+ if (($size57345766 == 3))
188+ then $acc357345766
189189 else {
190- let $acc457205752 = claimReward($acc357205752, $list57205752[3])
191- if (($size57205752 == 4))
192- then $acc457205752
190+ let $acc457345766 = claimReward($acc357345766, $list57345766[3])
191+ if (($size57345766 == 4))
192+ then $acc457345766
193193 else {
194- let $acc557205752 = claimReward($acc457205752, $list57205752[4])
195- if (($size57205752 == 5))
196- then $acc557205752
194+ let $acc557345766 = claimReward($acc457345766, $list57345766[4])
195+ if (($size57345766 == 5))
196+ then $acc557345766
197197 else {
198- let $acc657205752 = claimReward($acc557205752, $list57205752[5])
199- if (($size57205752 == 6))
200- then $acc657205752
198+ let $acc657345766 = claimReward($acc557345766, $list57345766[5])
199+ if (($size57345766 == 6))
200+ then $acc657345766
201201 else {
202- let $acc757205752 = claimReward($acc657205752, $list57205752[6])
203- if (($size57205752 == 7))
204- then $acc757205752
202+ let $acc757345766 = claimReward($acc657345766, $list57345766[6])
203+ if (($size57345766 == 7))
204+ then $acc757345766
205205 else {
206- let $acc857205752 = claimReward($acc757205752, $list57205752[7])
207- if (($size57205752 == 8))
208- then $acc857205752
206+ let $acc857345766 = claimReward($acc757345766, $list57345766[7])
207+ if (($size57345766 == 8))
208+ then $acc857345766
209209 else {
210- let $acc957205752 = claimReward($acc857205752, $list57205752[8])
211- if (($size57205752 == 9))
212- then $acc957205752
210+ let $acc957345766 = claimReward($acc857345766, $list57345766[8])
211+ if (($size57345766 == 9))
212+ then $acc957345766
213213 else {
214- let $acc1057205752 = claimReward($acc957205752, $list57205752[9])
215- if (($size57205752 == 10))
216- then $acc1057205752
214+ let $acc1057345766 = claimReward($acc957345766, $list57345766[9])
215+ if (($size57345766 == 10))
216+ then $acc1057345766
217217 else {
218- let $acc1157205752 = claimReward($acc1057205752, $list57205752[10])
218+ let $acc1157345766 = claimReward($acc1057345766, $list57345766[10])
219219 throw("List size exceed 10")
220220 }
221221 }
222222 }
223223 }
224224 }
225225 }
226226 }
227227 }
228228 }
229229 }
230230 }
231231 }
232232 let claimedReward = match foldResult {
233233 case int: Int =>
234234 int
235235 case _ =>
236236 throw("_6")
237237 }
238238 let farmCeoFeeSize = fraction(claimedReward, feePercent, 100)
239239 let toDistr = getInt(kToDistr)
240240 let totalFarmingReward = getInt(kTotalFarmingReward)
241241 let currentCeoFee = getInt(kCeoCollectedFee)
242242 let ceoFeeOverall = getInt(kCeoCollectedFeeOverall)
243243 [IntegerEntry(kTotalFarmingReward, ((totalFarmingReward + claimedReward) - farmCeoFeeSize)), IntegerEntry(kToDistr, ((toDistr + claimedReward) - farmCeoFeeSize)), IntegerEntry(kCeoCollectedFee, (currentCeoFee + farmCeoFeeSize)), IntegerEntry(kCeoCollectedFeeOverall, (ceoFeeOverall + farmCeoFeeSize))]
244244 }
245245
246246
247247
248248 @Callable(i)
249249 func claimCeoFee (address) = if ((getBool(kLocked) == true))
250250 then throw("_22")
251251 else if ((i.caller == this))
252252 then {
253253 let currentCeoCollectedFee = getInt(kCeoCollectedFee)
254254 [ScriptTransfer(addressFromStringValue(address), currentCeoCollectedFee, getEggId()), IntegerEntry(kCeoCollectedFee, 0)]
255255 }
256256 else throw("_8")
257257
258258
259259
260260 @Callable(i)
261261 func startLiquidation (auctionId) = throw("_7")
262262
263263
264264
265265 @Callable(i)
266266 func voteForLiquidation (auctionId) = throw("_7")
267267
268268
269269
270270 @Callable(i)
271271 func callUnstakeProxy (function,assetId) = if ((getBool(kLocked) == true))
272272 then throw("Contract is locked now")
273273 else if (if ((function != "unstakeNFT"))
274274 then (function != "unstakeJackpot")
275275 else false)
276276 then throw("Bad function name")
277277 else if ((i.caller != this))
278278 then throw("Can be called only by the account")
279279 else {
280280 let farmingDappAddress = addressFromStringValue(getStrA(mAccAddr, "FARMING_DAPP"))
281281 let ustakedReward = invoke(farmingDappAddress, function, [assetId], nil)
282282 if ((ustakedReward == ustakedReward))
283283 then {
284284 let unstakedRewardNow = getInt(kUnstakedReward)
285285 let newUnstakedReward = match ustakedReward {
286286 case int: Int =>
287287 (unstakedRewardNow + int)
288288 case _ =>
289289 throw("Error during unstaking")
290290 }
291291 let currentCeoFee = getInt(kCeoCollectedFee)
292292 let ceoFeeOverall = getInt(kCeoCollectedFeeOverall)
293293 let farmCeoFeeSize = fraction(unstakedRewardNow, feePercent, 100)
294294 [IntegerEntry(kCeoCollectedFee, (currentCeoFee + farmCeoFeeSize)), IntegerEntry(kCeoCollectedFeeOverall, (ceoFeeOverall + farmCeoFeeSize)), IntegerEntry(kUnstakedReward, newUnstakedReward)]
295295 }
296296 else throw("Strict value is not equal to itself.")
297297 }
298298
299299
300300
301301 @Callable(i)
302302 func revertTransfer (txId) = if ((getBool(kLocked) == true))
303303 then throw("Contract is locked now")
304304 else if ((i.caller != this))
305305 then throw("Can be called only by the account")
306306 else {
307307 let tx = value(transferTransactionById(fromBase58String(txId)))
308308 let kReverted = ("tx_revert_" + txId)
309309 let txReverted = getBool(kReverted)
310310 let unstakedRewardNow = getInt(kUnstakedReward)
311311 let toDistr = getInt(kToDistr)
312312 let minBalance = (unstakedRewardNow + toDistr)
313313 let currentEggBalance = assetBalance(this, getEggId())
314314 if ((txReverted == true))
315315 then throw("Tx already reverted")
316316 else if ((tx.recipient != this))
317317 then throw("Tx recipient is another account")
318318 else if (if ((tx.assetId != getEggId()))
319319 then (tx.assetId != getShareAssetId())
320320 else false)
321321 then throw("Transaction is not with EGG or share tokens")
322322 else if ((minBalance > (currentEggBalance - tx.amount)))
323323 then throw("Revert makes balance too low")
324324 else [ScriptTransfer(tx.sender, tx.amount, tx.assetId), BooleanEntry(kReverted, true)]
325325 }
326326
327327
328328
329329 @Callable(i)
330-func distributeRewards (addresses,totalShareTokensToDistribute) = if ((i.caller != mAccAddr))
330+func distributeRewards (addresses,totalShareTokens,totalRewardToDistribute) = if ((i.caller != mAccAddr))
331331 then throw("Method can be called only by master account")
332332 else {
333333 let addressPairs = split(addresses, ";")
334334 func processAddress (accum,addressPair) = {
335335 let addressParts = split(addressPair, "=")
336336 let addressStr = addressParts[0]
337337 let address = addressFromStringValue(addressStr)
338- let eggletsAmount = parseIntValue(addressParts[1])
339- let change = parseIntValue(addressParts[2])
338+ let userShareTokens = parseIntValue(addressParts[1])
340339 let kAddrEarned = (("address_" + addressStr) + "_total_earned")
341340 let addrTotalEarned = getInt(kAddrEarned)
342- let totalRewardNow = ((eggletsAmount * 1000000) + change)
343- let kAddrChange = (("address_" + addressStr) + "_change")
344- let earnedLastDay = (totalRewardNow - getInt(kAddrChange))
345- let res = [IntegerEntry(kAddrChange, change), IntegerEntry(kAddrEarned, (addrTotalEarned + earnedLastDay)), IntegerEntry(((("address_" + addressStr) + "_reward_") + toString(lastBlock.timestamp)), earnedLastDay)]
346- if ((eggletsAmount > 0))
347- then $Tuple2((accum._1 + eggletsAmount), ((accum._2 ++ res) ++ [ScriptTransfer(address, eggletsAmount, getEggId())]))
348- else $Tuple2(accum._1, (accum._2 ++ res))
341+ let userRewardNow = fraction(totalRewardToDistribute, userShareTokens, totalShareTokens)
342+ let res = [IntegerEntry(kAddrEarned, (addrTotalEarned + userRewardNow)), IntegerEntry(((("address_" + addressStr) + "_reward_") + toString(lastBlock.timestamp)), userRewardNow), ScriptTransfer(address, userRewardNow, getEggId())]
343+ $Tuple2((accum._1 + userRewardNow), (accum._2 ++ res))
349344 }
350345
351346 let result = {
352- let $list1071410761 = addressPairs
353- let $size1071410761 = size($list1071410761)
354- let $acc01071410761 = $Tuple2(0, nil)
355- if (($size1071410761 == 0))
356- then $acc01071410761
347+ let $list1049510542 = addressPairs
348+ let $size1049510542 = size($list1049510542)
349+ let $acc01049510542 = $Tuple2(0, nil)
350+ if (($size1049510542 == 0))
351+ then $acc01049510542
357352 else {
358- let $acc11071410761 = processAddress($acc01071410761, $list1071410761[0])
359- if (($size1071410761 == 1))
360- then $acc11071410761
353+ let $acc11049510542 = processAddress($acc01049510542, $list1049510542[0])
354+ if (($size1049510542 == 1))
355+ then $acc11049510542
361356 else {
362- let $acc21071410761 = processAddress($acc11071410761, $list1071410761[1])
363- if (($size1071410761 == 2))
364- then $acc21071410761
357+ let $acc21049510542 = processAddress($acc11049510542, $list1049510542[1])
358+ if (($size1049510542 == 2))
359+ then $acc21049510542
365360 else {
366- let $acc31071410761 = processAddress($acc21071410761, $list1071410761[2])
367- if (($size1071410761 == 3))
368- then $acc31071410761
361+ let $acc31049510542 = processAddress($acc21049510542, $list1049510542[2])
362+ if (($size1049510542 == 3))
363+ then $acc31049510542
369364 else {
370- let $acc41071410761 = processAddress($acc31071410761, $list1071410761[3])
371- if (($size1071410761 == 4))
372- then $acc41071410761
365+ let $acc41049510542 = processAddress($acc31049510542, $list1049510542[3])
366+ if (($size1049510542 == 4))
367+ then $acc41049510542
373368 else {
374- let $acc51071410761 = processAddress($acc41071410761, $list1071410761[4])
375- if (($size1071410761 == 5))
376- then $acc51071410761
369+ let $acc51049510542 = processAddress($acc41049510542, $list1049510542[4])
370+ if (($size1049510542 == 5))
371+ then $acc51049510542
377372 else {
378- let $acc61071410761 = processAddress($acc51071410761, $list1071410761[5])
379- if (($size1071410761 == 6))
380- then $acc61071410761
373+ let $acc61049510542 = processAddress($acc51049510542, $list1049510542[5])
374+ if (($size1049510542 == 6))
375+ then $acc61049510542
381376 else {
382- let $acc71071410761 = processAddress($acc61071410761, $list1071410761[6])
383- if (($size1071410761 == 7))
384- then $acc71071410761
377+ let $acc71049510542 = processAddress($acc61049510542, $list1049510542[6])
378+ if (($size1049510542 == 7))
379+ then $acc71049510542
385380 else {
386- let $acc81071410761 = processAddress($acc71071410761, $list1071410761[7])
387- if (($size1071410761 == 8))
388- then $acc81071410761
381+ let $acc81049510542 = processAddress($acc71049510542, $list1049510542[7])
382+ if (($size1049510542 == 8))
383+ then $acc81049510542
389384 else {
390- let $acc91071410761 = processAddress($acc81071410761, $list1071410761[8])
391- if (($size1071410761 == 9))
392- then $acc91071410761
385+ let $acc91049510542 = processAddress($acc81049510542, $list1049510542[8])
386+ if (($size1049510542 == 9))
387+ then $acc91049510542
393388 else {
394- let $acc101071410761 = processAddress($acc91071410761, $list1071410761[9])
395- if (($size1071410761 == 10))
396- then $acc101071410761
389+ let $acc101049510542 = processAddress($acc91049510542, $list1049510542[9])
390+ if (($size1049510542 == 10))
391+ then $acc101049510542
397392 else {
398- let $acc111071410761 = processAddress($acc101071410761, $list1071410761[10])
399- if (($size1071410761 == 11))
400- then $acc111071410761
393+ let $acc111049510542 = processAddress($acc101049510542, $list1049510542[10])
394+ if (($size1049510542 == 11))
395+ then $acc111049510542
401396 else {
402- let $acc121071410761 = processAddress($acc111071410761, $list1071410761[11])
403- if (($size1071410761 == 12))
404- then $acc121071410761
397+ let $acc121049510542 = processAddress($acc111049510542, $list1049510542[11])
398+ if (($size1049510542 == 12))
399+ then $acc121049510542
405400 else {
406- let $acc131071410761 = processAddress($acc121071410761, $list1071410761[12])
407- if (($size1071410761 == 13))
408- then $acc131071410761
401+ let $acc131049510542 = processAddress($acc121049510542, $list1049510542[12])
402+ if (($size1049510542 == 13))
403+ then $acc131049510542
409404 else {
410- let $acc141071410761 = processAddress($acc131071410761, $list1071410761[13])
411- if (($size1071410761 == 14))
412- then $acc141071410761
405+ let $acc141049510542 = processAddress($acc131049510542, $list1049510542[13])
406+ if (($size1049510542 == 14))
407+ then $acc141049510542
413408 else {
414- let $acc151071410761 = processAddress($acc141071410761, $list1071410761[14])
415- if (($size1071410761 == 15))
416- then $acc151071410761
409+ let $acc151049510542 = processAddress($acc141049510542, $list1049510542[14])
410+ if (($size1049510542 == 15))
411+ then $acc151049510542
417412 else {
418- let $acc161071410761 = processAddress($acc151071410761, $list1071410761[15])
419- if (($size1071410761 == 16))
420- then $acc161071410761
413+ let $acc161049510542 = processAddress($acc151049510542, $list1049510542[15])
414+ if (($size1049510542 == 16))
415+ then $acc161049510542
421416 else {
422- let $acc171071410761 = processAddress($acc161071410761, $list1071410761[16])
423- if (($size1071410761 == 17))
424- then $acc171071410761
417+ let $acc171049510542 = processAddress($acc161049510542, $list1049510542[16])
418+ if (($size1049510542 == 17))
419+ then $acc171049510542
425420 else {
426- let $acc181071410761 = processAddress($acc171071410761, $list1071410761[17])
427- if (($size1071410761 == 18))
428- then $acc181071410761
421+ let $acc181049510542 = processAddress($acc171049510542, $list1049510542[17])
422+ if (($size1049510542 == 18))
423+ then $acc181049510542
429424 else {
430- let $acc191071410761 = processAddress($acc181071410761, $list1071410761[18])
431- if (($size1071410761 == 19))
432- then $acc191071410761
425+ let $acc191049510542 = processAddress($acc181049510542, $list1049510542[18])
426+ if (($size1049510542 == 19))
427+ then $acc191049510542
433428 else {
434- let $acc201071410761 = processAddress($acc191071410761, $list1071410761[19])
435- if (($size1071410761 == 20))
436- then $acc201071410761
429+ let $acc201049510542 = processAddress($acc191049510542, $list1049510542[19])
430+ if (($size1049510542 == 20))
431+ then $acc201049510542
437432 else {
438- let $acc211071410761 = processAddress($acc201071410761, $list1071410761[20])
433+ let $acc211049510542 = processAddress($acc201049510542, $list1049510542[20])
439434 throw("List size exceed 20")
440435 }
441436 }
442437 }
443438 }
444439 }
445440 }
446441 }
447442 }
448443 }
449444 }
450445 }
451446 }
452447 }
453448 }
454449 }
455450 }
456451 }
457452 }
458453 }
459454 }
460455 }
461456 }
462457 let toDistr = getInt(kToDistr)
463- (result._2 ++ [IntegerEntry(kToDistr, (toDistr - (result._1 * 1000000))), IntegerEntry(kUnstakedReward, 0)])
458+ (result._2 ++ [IntegerEntry(kToDistr, (toDistr - result._1)), IntegerEntry(kUnstakedReward, 0)])
464459 }
465460
466461
467462
468463 @Callable(i)
469464 func swapEgg () = if ((i.caller != mAccAddr))
470465 then throw("Method can be called by master account only")
471466 else {
472467 let oldEggBalance = assetBalance(this, oldEggAssetId)
473468 let swapTx = invoke(swapEggDappAddress, "swapEgg", nil, [AttachedPayment(oldEggAssetId, oldEggBalance)])
474469 if ((swapTx == swapTx))
475470 then [BooleanEntry("swapped_egg", true), IntegerEntry("swapped_egg_amount", oldEggBalance)]
476471 else throw("Strict value is not equal to itself.")
477472 }
478473
479474
480475 @Verifier(tx)
481476 func verify () = {
482477 let checkStarted = (getInt(kTotalLiquidity) >= getInt(kLiquidityThreshold))
483478 func totalEggSpending (accum,payment) = if ((payment.assetId == getEggId()))
484479 then (accum + payment.amount)
485480 else accum
486481
487482 match tx {
488483 case inv: InvokeScriptTransaction =>
489484 let unstakedRewardNow = getInt(kUnstakedReward)
490485 let toDistr = getInt(kToDistr)
491486 let minBalance = (unstakedRewardNow + toDistr)
492487 if (if ((inv.function == "unstakeNFT"))
493488 then true
494489 else (inv.function == "unstakeJackpot"))
495490 then throw("You cannot call these functions directly")
496491 else if ((sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) == false))
497492 then throw("_100")
498493 else if ((checkStarted == false))
499494 then throw("_14")
500495 else if ((getBool(kLocked) == true))
501496 then throw("_22")
502497 else if (if ((inv.fee > 900000))
503498 then true
504499 else (inv.feeAssetId != unit))
505500 then throw("_15")
506501 else if ((inv.function == "claimReward"))
507502 then throw("_16")
508503 else if ((size(inv.payments) > 2))
509504 then throw("_17")
510505 else if ((minBalance > ((assetBalance(this, getEggId()) - {
511- let $list1251412556 = inv.payments
512- let $size1251412556 = size($list1251412556)
513- let $acc01251412556 = 0
514- if (($size1251412556 == 0))
515- then $acc01251412556
506+ let $list1228112323 = inv.payments
507+ let $size1228112323 = size($list1228112323)
508+ let $acc01228112323 = 0
509+ if (($size1228112323 == 0))
510+ then $acc01228112323
516511 else {
517- let $acc11251412556 = totalEggSpending($acc01251412556, $list1251412556[0])
518- if (($size1251412556 == 1))
519- then $acc11251412556
512+ let $acc11228112323 = totalEggSpending($acc01228112323, $list1228112323[0])
513+ if (($size1228112323 == 1))
514+ then $acc11228112323
520515 else {
521- let $acc21251412556 = totalEggSpending($acc11251412556, $list1251412556[1])
522- if (($size1251412556 == 2))
523- then $acc21251412556
516+ let $acc21228112323 = totalEggSpending($acc11228112323, $list1228112323[1])
517+ if (($size1228112323 == 2))
518+ then $acc21228112323
524519 else {
525- let $acc31251412556 = totalEggSpending($acc21251412556, $list1251412556[2])
526- if (($size1251412556 == 3))
527- then $acc31251412556
520+ let $acc31228112323 = totalEggSpending($acc21228112323, $list1228112323[2])
521+ if (($size1228112323 == 3))
522+ then $acc31228112323
528523 else {
529- let $acc41251412556 = totalEggSpending($acc31251412556, $list1251412556[3])
524+ let $acc41228112323 = totalEggSpending($acc31228112323, $list1228112323[3])
530525 throw("List size exceed 3")
531526 }
532527 }
533528 }
534529 }
535530 }) * 1000000)))
536531 then throw(("Your minimal balance should be = " + toString(minBalance)))
537532 else if (if ((addressFromRecipient(inv.dApp) == this))
538533 then (inv.function == "callUnstakeProxy")
539534 else false)
540535 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
541536 else if (if ((addressFromRecipient(inv.dApp) == this))
542537 then (inv.function == "revertTransfer")
543538 else false)
544539 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
545540 else if (if ((addressFromRecipient(inv.dApp) == this))
546541 then (inv.function == "claimCeoFee")
547542 else false)
548543 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
549544 else if (if ((addressFromRecipient(inv.dApp) == this))
550545 then if ((inv.function == "lockInvestments"))
551546 then true
552547 else (inv.function == "unlockInvestments")
553548 else false)
554549 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
555550 else if (if ((addressFromRecipient(inv.dApp) == addressFromStringValue(getMarketProxyAddr())))
556551 then (inv.function == "callMarketplaceProxy")
557552 else false)
558553 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
559554 else {
560555 let allowedContracts = getStrA(mAccAddr, "allowed_contracts")
561556 let allowedContractsList = split(allowedContracts, ";")
562557 let dappToCall = toString(addressFromRecipient(inv.dApp))
563558 (indexOf(allowedContractsList, dappToCall) != unit)
564559 }
565560 case mt: MassTransferTransaction =>
566561 sigVerify(tx.bodyBytes, tx.proofs[0], mAccPKey)
567562 case dt: DataTransaction =>
568563 sigVerify(tx.bodyBytes, tx.proofs[0], mAccPKey)
569564 case ss: SetScriptTransaction =>
570565 sigVerify(tx.bodyBytes, tx.proofs[0], mAccPKey)
571566 case _ =>
572567 false
573568 }
574569 }
575570

github/deemru/w8io/6500d08 
290.07 ms