2021.06.25 03:31 [2649944] smart account 3PAETTtuW7aSiyKtn9GuML3RgtV1xdq1mQW > SELF 0.00000000 Waves

{ "type": 13, "id": "Da4Gd3EaLmHm5EpeG82nWwZgpVTBPaKqaGHH8cqTZgLz", "fee": 1400000, "feeAssetId": null, "timestamp": 1624581113614, "version": 2, "chainId": 87, "sender": "3PAETTtuW7aSiyKtn9GuML3RgtV1xdq1mQW", "senderPublicKey": "DSNxHVyf38CbPoz2oSJ1b4FWqRvqFsAphCzdtrPeWPHa", "proofs": [ "4dZhgrKZjPBbGsnAM7vR1pU5VVNHmzZxXeuxBcqvJDw4y85TdWMLSiNcVtncwVAjpVgcyykjNikUXA6aimxUH85R" ], "script": "base64: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DSRhY2MzMTk4NDIwMTUJAQAAAAlpc1N5bWJvbEMAAAACBQAAAA0kYWNjMjE5ODQyMDE1CQABkQAAAAIFAAAADSRsaXN0MTk4NDIwMTUAAAAAAAAAAAIDCQAAAAAAAAIFAAAADSRzaXplMTk4NDIwMTUAAAAAAAAAAAMFAAAADSRhY2MzMTk4NDIwMTUEAAAADSRhY2M0MTk4NDIwMTUJAQAAAAlpc1N5bWJvbEMAAAACBQAAAA0kYWNjMzE5ODQyMDE1CQABkQAAAAIFAAAADSRsaXN0MTk4NDIwMTUAAAAAAAAAAAMDCQAAAAAAAAIFAAAADSRzaXplMTk4NDIwMTUAAAAAAAAAAAQFAAAADSRhY2M0MTk4NDIwMTUEAAAADSRhY2M1MTk4NDIwMTUJAQAAAAlpc1N5bWJvbEMAAAACBQAAAA0kYWNjNDE5ODQyMDE1CQABkQAAAAIFAAAADSRsaXN0MTk4NDIwMTUAAAAAAAAAAAQDCQAAAAAAAAIFAAAADSRzaXplMTk4NDIwMTUAAAAAAAAAAAUFAAAADSRhY2M1MTk4NDIwMTUEAAAADSRhY2M2MTk4NDIwMTUJAQAAAAlpc1N5bWJvbEMAAAACBQAAAA0kYWNjNTE5ODQyMDE1CQABkQAAAAIFAAAADSRsaXN0MTk4NDIwMTUAAAAAAAAAAAUDCQAAAAAAAAIFAAAADSRzaXplMTk4NDIwMTUAAAAAAAAAAAYFAAAADSRhY2M2MTk4NDIwMTUEAAAADSRhY2M3MTk4NDIwMTUJAQAAAAlpc1N5bWJvbEMAAAACBQAAAA0kYWNjNjE5ODQyMDE1CQABkQAAAAIFAAAADSRsaXN0MTk4NDIwMTUAAAAAAAAAAAYDCQAAAAAAAAIFAAAADSRzaXplMTk4NDIwMTUAAAAAAAAAAAcFAAAADSRhY2M3MTk4NDIwMTUEAAAADSRhY2M4MTk4NDIwMTUJAQAAAAlpc1N5bWJvbEMAAAACBQAAAA0kYWNjNzE5ODQyMDE1CQABkQAAAAIFAAAADSRsaXN0MTk4NDIwMTUAAAAAAAAAAAcDCQAAAAAAAAIFAAAADSRzaXplMTk4NDIwMTUAAAAAAAAAAAgFAAAADSRhY2M4MTk4NDIwMTUEAAAADSRhY2M5MTk4NDIwMTUJAQAAAAlpc1N5bWJvbEMAAAACBQAA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AAAADSRhY2MwMjEyMjIxNTMJAAGRAAAAAgUAAAANJGxpc3QyMTIyMjE1MwAAAAAAAAAAAAMJAAAAAAAAAgUAAAANJHNpemUyMTIyMjE1MwAAAAAAAAAAAQUAAAANJGFjYzEyMTIyMjE1MwQAAAANJGFjYzIyMTIyMjE1MwkBAAAACWlzU3ltYm9sRQAAAAIFAAAADSRhY2MxMjEyMjIxNTMJAAGRAAAAAgUAAAANJGxpc3QyMTIyMjE1MwAAAAAAAAAAAQMJAAAAAAAAAgUAAAANJHNpemUyMTIyMjE1MwAAAAAAAAAAAgUAAAANJGFjYzIyMTIyMjE1MwQAAAANJGFjYzMyMTIyMjE1MwkBAAAACWlzU3ltYm9sRQAAAAIFAAAADSRhY2MyMjEyMjIxNTMJAAGRAAAAAgUAAAANJGxpc3QyMTIyMjE1MwAAAAAAAAAAAgMJAAAAAAAAAgUAAAANJHNpemUyMTIyMjE1MwAAAAAAAAAAAwUAAAANJGFjYzMyMTIyMjE1MwQAAAANJGFjYzQyMTIyMjE1MwkBAAAACWlzU3ltYm9sRQAAAAIFAAAADSRhY2MzMjEyMjIxNTMJAAGRAAAAAgUAAAANJGxpc3QyMTIyMjE1MwAAAAAAAAAAAwMJAAAAAAAAAgUAAAANJHNpemUyMTIyMjE1MwAAAAAAAAAABAUAAAANJGFjYzQyMTIyMjE1MwQAAAANJGFjYzUyMTIyMjE1MwkBAAAACWlzU3ltYm9sRQAAAAIFAAAADSRhY2M0MjEyMjIxNTMJAAGRAAAAAgUAAAANJGxpc3QyMTIyMjE1MwAAAAAAAAAABAMJAAAAAAAAAgUAAAANJHNpemUyMTIyMjE1MwAAAAAAAAAABQUAAAANJGFjYzUyMTIyMjE1MwQAAAANJGFjYzYyMTIyMjE1MwkBAAAACWlzU3ltYm9sRQAAAAIFAAAADSRhY2M1MjEyMjIxNTMJAAGRAAAAAgUAAAANJGxpc3QyMTIyMjE1MwAAAAAAAAAABQMJAAAAAAAAAgUAAAANJHNpemUyMTIyMjE1MwAAAAAAAAAABgUAAAANJGFjYzYyMTIyMjE1MwQAAAANJGFjYzcyMTIyMjE1MwkBAAAACWlzU3ltYm9sRQAAAAIFAAAADSRhY2M2MjEyMjIxNTMJAAGRAAAAAgUAAAANJGxpc3Qy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ZW4JAAEsAAAAAgkAASwAAAACCQEAAAAGZ2V0R2VuAAAAAQUAAAAJYXNzZXROYW1lAgAAAAEtBQAAAApnZW5lcmF0aW9uCQAFFAAAAAIFAAAAA2dlbgkBAAAADmdldEFzc2V0UmFyaXR5AAAAAgUAAAADZ2VuBQAAAApnZW5lcmF0aW9uAQAAAB1nZXRMYXN0S25vd25Bc3NldEZhcm1pbmdQb3dlcgAAAAIAAAAHYWRkcmVzcwAAAAdhc3NldElkCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIYWRkcmVzc18FAAAAB2FkZHJlc3MCAAAAB19hc3NldF8FAAAAB2Fzc2V0SWQCAAAADV9mYXJtaW5nUG93ZXIBAAAADmdldEFzc2V0c0J5R2VuAAAAAQAAAANnZW4EAAAAAXMJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQABLAAAAAICAAAAB2Fzc2V0c18FAAAAA2dlbgMJAAAAAAAAAgUAAAABcwIAAAAABQAAAANuaWwJAAS1AAAAAgUAAAABcwIAAAABLAEAAAAMY2FsY0ludGVyZXN0AAAAAwAAABBwcmV2aW91c0ludGVyZXN0AAAAFnByZXZpb3VzSW50ZXJlc3RIZWlnaHQAAAARdG90YWxGYXJtaW5nUG93ZXIJAABkAAAAAgUAAAAQcHJldmlvdXNJbnRlcmVzdAkAAGkAAAACCQAAaAAAAAIJAABoAAAAAgUAAAAFc2NhbGUJAQAAABFnZXRSZXdhcmRQZXJCbG9jawAAAAAJAABlAAAAAgUAAAAGaGVpZ2h0BQAAABZwcmV2aW91c0ludGVyZXN0SGVpZ2h0BQAAABF0b3RhbEZhcm1pbmdQb3dlcgEAAAASZ2V0Q3VycmVudEludGVyZXN0AAAAAAMJAABmAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABAgAAABJ0b3RhbF9mYXJtaW5nUG93ZXIAAAAAAAAAAAAEAAAAEHByZXZpb3VzSW50ZXJlc3QJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQIAAAAXdG90YWxfbGFzdENoZWNrSW50ZXJlc3QEAAAAFnByZXZpb3VzSW50ZXJlc3RIZWlnaHQJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQIAAAAddG90YWxfbGFzdENoZWNrSW50ZXJlc3RIZWlnaHQEAAAAEXRvdGFsRmFybWluZ1Bvd2VyCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAECAAAAEnRvdGFsX2Zhcm1pbmdQb3dlcgkBAAAADGNhbGNJbnRlcmVzdAAAAAMFAAAAEHByZXZpb3VzSW50ZXJlc3QFAAAAFnByZXZpb3VzSW50ZXJlc3RIZWlnaHQFAAAAEXRvdGFsRmFybWluZ1Bvd2VyAwkBAAAAAiE9AAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABAgAAABF0b3RhbF9zdGFydEhlaWdodAAAAAAAAAAAAAkBAAAADXRyeUdldEludGVnZXIAAAABAgAAABd0b3RhbF9sYXN0Q2hlY2tJbnRlcmVzdAkAAAIAAAABAgAAABxmYXJtaW5nIGlzIG5vdCBsYXVuY2hlZCwgeWV0AQAAABRjYWxjQXNzZXRSZXdhcmREZWx0YQAAAAMAAAAHYWRkcmVzcwAAAAdhc3NldElkAAAAEWFzc2V0RmFybWluZ1Bvd2VyBAAAABZsYXN0Q2hlY2tBc3NldEludGVyZXN0CQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIYWRkcmVzc18FAAAAB2FkZHJlc3MCAAAAB19hc3NldF8FAAAAB2Fzc2V0SWQCAAAAEl9sYXN0Q2hlY2tJbnRlcmVzdAQAAAAPY3VycmVudEludGVyZXN0CQEAAAASZ2V0Q3VycmVudEludGVyZXN0AAAAAAkAAGgAAAACBQAAABFhc3NldEZhcm1pbmdQb3dlcgkAAGUAAAACBQAAAA9jdXJyZW50SW50ZXJlc3QFAAAAFmxhc3RDaGVja0Fzc2V0SW50ZXJlc3QBAAAAFGFkZEFzc2V0SWRUb0dlbkVudHJ5AAAAAgAAAAdhc3NldElkAAAACGFzc2V0R2VuBAAAAAxjdXJyZW50VmFsdWUJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAHYXNzZXRzXwUAAAAIYXNzZXRHZW4CAAAAB19sb2NrZWQDCQAAAAAAAAIFAAAADGN1cnJlbnRWYWx1ZQIAAAAABQAAAAdhc3NldElkCQABLAAAAAIJAAEsAAAAAgUAAAAMY3VycmVudFZhbHVlAgAAAAEsBQAAAAdhc3NldElkAQAAAA5nZXRTdGFrZVJlc3VsdAAAAAMAAAAHYWRkcmVzcwAAAAdhc3NldElkAAAAEWFzc2V0RmFybWluZ1Bvd2VyBAAAAAVhc3NldAkAAlgAAAABBQAAAAdhc3NldElkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABJ0b3RhbF9mYXJtaW5nUG93ZXIJAABkAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABAgAAABJ0b3RhbF9mYXJtaW5nUG93ZXIFAAAAEWFzc2V0RmFybWluZ1Bvd2VyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABd0b3RhbF9sYXN0Q2hlY2tJbnRlcmVzdAkBAAAAEmdldEN1cnJlbnRJbnRlcmVzdAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAHXRvdGFsX2xhc3RDaGVja0ludGVyZXN0SGVpZ2h0BQAAAAZoZWlnaHQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIYWRkcmVzc18FAAAAB2FkZHJlc3MCAAAAB19hc3NldF8FAAAABWFzc2V0AgAAAA1fZmFybWluZ1Bvd2VyBQAAABFhc3NldEZhcm1pbmdQb3dlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhhZGRyZXNzXwUAAAAHYWRkcmVzcwIAAAAHX2Fzc2V0XwUAAAAFYXNzZXQCAAAAEl9sYXN0Q2hlY2tJbnRlcmVzdAkBAAAAEmdldEN1cnJlbnRJbnRlcmVzdAAAAAAFAAAAA25pbAEAAAAQZ2V0VW5zdGFrZVJlc3VsdAAAAAUAAAAHYWRkcmVzcwAAAAdhc3NldElkAAAAC3Jld2FyZERlbHRhAAAAD3dpdGhkcmF3bkFtb3VudAAAABFhc3NldEZhcm1pbmdQb3dlcgQAAAAFYXNzZXQJAAJYAAAAAQUAAAAHYXNzZXRJZAkABEwAAAAC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BQAAAAdhc3NldElkBAAAAAhhc3NldEdlbggFAAAACyR0MDc0MzQ3NDk5AAAAAl8xBAAAABFhc3NldEZhcm1pbmdQb3dlcggFAAAACyR0MDc0MzQ3NDk5AAAAAl8yBAAAABBhc3NldFJld2FyZERlbHRhCQEAAAAUY2FsY0Fzc2V0UmV3YXJkRGVsdGEAAAADBQAAAAdhZGRyZXNzCQACWAAAAAEFAAAAB2Fzc2V0SWQFAAAAEWFzc2V0RmFybWluZ1Bvd2VyCQAETgAAAAIJAQAAAA5nZXRTdGFrZVJlc3VsdAAAAAMFAAAAB2FkZHJlc3MFAAAAB2Fzc2V0SWQFAAAAEWFzc2V0RmFybWluZ1Bvd2VyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhhZGRyZXNzXwkABCUAAAABCAUAAAABaQAAAAZjYWxsZXICAAAAEl9wZXJjaGVzQXZhaWxhYmxlXwUAAAAFY29sb3IJAABlAAAAAgUAAAAQYXZhaWxhYmxlUGVyY2hlcwAAAAAAAAAAAQUAAAADbmlsAAAAAWkBAAAACnVuc3Rha2VORlQAAAABAAAABWFzc2V0BAAAAAdhc3NldElkCQACWQAAAAEFAAAABWFzc2V0BAAAAAdhZGRyZXNzCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAARYXNzZXRGYXJtaW5nUG93ZXIJAQAAAB1nZXRMYXN0S25vd25Bc3NldEZhcm1pbmdQb3dlcgAAAAIFAAAAB2FkZHJlc3MFAAAABWFzc2V0BAAAABBhc3NldFJld2FyZERlbHRhCQEAAAAUY2FsY0Fzc2V0UmV3YXJkRGVsdGEAAAADBQAAAAdhZGRyZXNzBQAAAAVhc3NldAUAAAARYXNzZXRGYXJtaW5nUG93ZXIEAAAADGZhcm1lZEFtb3VudAkAAGQAAAACBQAAABBhc3NldFJld2FyZERlbHRhCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIYWRkcmVzc18FAAAAB2FkZHJlc3MCAAAAB19hc3NldF8FAAAABWFzc2V0AgAAABZfbGFzdENoZWNrRmFybWVkQW1vdW50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", "height": 2649944, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6d6pMXYznDKs9UifE4yNGZvdu2gbChaCZ6RLhEU9eWGd Next: EWC1kqRMCNUf62GgofXTE9iQUg8BYrmkK15e5punccsR Diff:
OldNewDifferences
568568
569569
570570 @Callable(i)
571-func buyPerch (color) = throw("under maintence")
571+func buyPerch (color) = if ((0 > value(indexOf(["B", "R", "G", "Y"], color))))
572+ then throw("you need to set color properly")
573+ else {
574+ let firstPayment = value(i.payments[0])
575+ if ((firstPayment.assetId != eggsAssetId))
576+ then throw(("You can attach only EGG tokens with the following asset id: " + toBase58String(eggsAssetId)))
577+ else if ((firstPayment.amount != perchPrice))
578+ then throw(("To buy a perch you currently need the following amount of EGGlets: " + toString(perchPrice)))
579+ else {
580+ let perchAmountKey = ((("address_" + toString(i.caller)) + "_perchesAvailable_") + color)
581+ let perchAmount = tryGetInteger(perchAmountKey)
582+[IntegerEntry(perchAmountKey, (perchAmount + 1))]
583+ }
584+ }
572585
573586
574587
575588 @Callable(i)
576-func stakeNFT () = throw("under maintence")
589+func stakeNFT () = {
590+ let assetId = value(value(i.payments[0]).assetId)
591+ let address = toString(i.caller)
592+ let color = takeRight(value(assetInfo(assetId)).name, 1)
593+ let availablePerches = tryGetInteger(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color))
594+ if ((0 >= availablePerches))
595+ then throw(("no perches available for the color " + color))
596+ else {
597+ let $t074347499 = getAssetFarmingPower(assetId)
598+ let assetGen = $t074347499._1
599+ let assetFarmingPower = $t074347499._2
600+ let assetRewardDelta = calcAssetRewardDelta(address, toBase58String(assetId), assetFarmingPower)
601+ (getStakeResult(address, assetId, assetFarmingPower) ++ [IntegerEntry(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color), (availablePerches - 1))])
602+ }
603+ }
577604
578605
579606
580607 @Callable(i)
581-func unstakeNFT (asset) = throw("under maintence")
608+func unstakeNFT (asset) = {
609+ let assetId = fromBase58String(asset)
610+ let address = toString(i.caller)
611+ let assetFarmingPower = getLastKnownAssetFarmingPower(address, asset)
612+ let assetRewardDelta = calcAssetRewardDelta(address, asset, assetFarmingPower)
613+ let farmedAmount = (assetRewardDelta + tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_lastCheckFarmedAmount")))
614+ let withdrawnAmount = tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_withdrawnAmount"))
615+ let reward = ((farmedAmount - withdrawnAmount) / (scale * 100))
616+ let color = takeRight(value(assetInfo(assetId)).name, 1)
617+ if ((0 >= assetFarmingPower))
618+ then throw("asset not available")
619+ else if ((color == "U"))
620+ then throw("use another function to unstake Jackpot NFT")
621+ else {
622+ let result = getUnstakeResult(address, assetId, assetRewardDelta, reward, assetFarmingPower)
623+ (result ++ [IntegerEntry(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color), (tryGetInteger(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color)) + 1)), ScriptTransfer(i.caller, reward, eggsAssetId), ScriptTransfer(i.caller, 1, assetId)])
624+ }
625+ }
582626
583627
584628
622666
623667
624668 @Callable(i)
625-func claimReward (asset) = throw("under maintence")
669+func claimReward (asset) = {
670+ let address = toString(i.caller)
671+ let assetId = fromBase58String(asset)
672+ let assetFarmingPower = getLastKnownAssetFarmingPower(address, asset)
673+ let assetRewardDelta = calcAssetRewardDelta(address, asset, assetFarmingPower)
674+ let farmedAmount = (assetRewardDelta + tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_lastCheckFarmedAmount")))
675+ let withdrawnAmount = tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_withdrawnAmount"))
676+ let reward = ((farmedAmount - withdrawnAmount) / (scale * 100))
677+ if ((0 >= reward))
678+ then throw("you have no EGGs to withdraw")
679+ else [IntegerEntry((((("address_" + address) + "_asset_") + asset) + "_withdrawnAmount"), (tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_withdrawnAmount")) + (reward * scale2))), ScriptTransfer(Address(fromBase58String(address)), reward, eggsAssetId)]
680+ }
626681
627682
628683 @Verifier(tx)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let eggsAssetId = base58'JCGDtrVy64cCJ1wCKfCaiNQMnyYwii71TbE5QeAHfxgF'
55
66 let perchPrice = 100
77
88 let scale = 10000
99
1010 let scale2 = 1000000
1111
1212 let incubatorAddress = base58'3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv'
1313
1414 let breederAddress = base58'3PDVuU45H7Eh5dmtNbnRNRStGwULA7NY6Hb'
1515
1616 let GENS = ["A", "B", "C", "D", "E", "F", "G"]
1717
1818 func getRewardPerBlock () = 684
1919
2020
2121 func tryGetInteger (key) = match getInteger(this, key) {
2222 case b: Int =>
2323 b
2424 case _ =>
2525 0
2626 }
2727
2828
2929 func tryGetString (key) = match getString(this, key) {
3030 case a: String =>
3131 a
3232 case _ =>
3333 ""
3434 }
3535
3636
3737 func isSymbolA (accumulated,sym) = if ((sym == "A"))
3838 then (accumulated + 1)
3939 else (accumulated + 0)
4040
4141
4242 func isSymbolB (accumulated,sym) = if ((sym == "B"))
4343 then (accumulated + 1)
4444 else (accumulated + 0)
4545
4646
4747 func isSymbolC (accumulated,sym) = if ((sym == "C"))
4848 then (accumulated + 1)
4949 else (accumulated + 0)
5050
5151
5252 func isSymbolD (accumulated,sym) = if ((sym == "D"))
5353 then (accumulated + 1)
5454 else (accumulated + 0)
5555
5656
5757 func isSymbolE (accumulated,sym) = if ((sym == "E"))
5858 then (accumulated + 1)
5959 else (accumulated + 0)
6060
6161
6262 func isSymbolF (accumulated,sym) = if ((sym == "F"))
6363 then (accumulated + 1)
6464 else (accumulated + 0)
6565
6666
6767 func isSymbolG (accumulated,sym) = if ((sym == "G"))
6868 then (accumulated + 1)
6969 else (accumulated + 0)
7070
7171
7272 func isSymbolH (accumulated,sym) = if ((sym == "H"))
7373 then (accumulated + 1)
7474 else (accumulated + 0)
7575
7676
7777 func getAmountOrClear (amount) = if (contains(amount, "0"))
7878 then ""
7979 else amount
8080
8181
8282 func getGen (assetName) = {
8383 let genotype = split(dropRight(drop(assetName, 5), 3), "")
8484 (((((((getAmountOrClear((toString({
8585 let $list18481879 = genotype
8686 let $size18481879 = size($list18481879)
8787 let $acc018481879 = 0
8888 if (($size18481879 == 0))
8989 then $acc018481879
9090 else {
9191 let $acc118481879 = isSymbolA($acc018481879, $list18481879[0])
9292 if (($size18481879 == 1))
9393 then $acc118481879
9494 else {
9595 let $acc218481879 = isSymbolA($acc118481879, $list18481879[1])
9696 if (($size18481879 == 2))
9797 then $acc218481879
9898 else {
9999 let $acc318481879 = isSymbolA($acc218481879, $list18481879[2])
100100 if (($size18481879 == 3))
101101 then $acc318481879
102102 else {
103103 let $acc418481879 = isSymbolA($acc318481879, $list18481879[3])
104104 if (($size18481879 == 4))
105105 then $acc418481879
106106 else {
107107 let $acc518481879 = isSymbolA($acc418481879, $list18481879[4])
108108 if (($size18481879 == 5))
109109 then $acc518481879
110110 else {
111111 let $acc618481879 = isSymbolA($acc518481879, $list18481879[5])
112112 if (($size18481879 == 6))
113113 then $acc618481879
114114 else {
115115 let $acc718481879 = isSymbolA($acc618481879, $list18481879[6])
116116 if (($size18481879 == 7))
117117 then $acc718481879
118118 else {
119119 let $acc818481879 = isSymbolA($acc718481879, $list18481879[7])
120120 if (($size18481879 == 8))
121121 then $acc818481879
122122 else {
123123 let $acc918481879 = isSymbolA($acc818481879, $list18481879[8])
124124 throw("List size exceed 8")
125125 }
126126 }
127127 }
128128 }
129129 }
130130 }
131131 }
132132 }
133133 }
134134 }) + "A")) + getAmountOrClear((toString({
135135 let $list19161947 = genotype
136136 let $size19161947 = size($list19161947)
137137 let $acc019161947 = 0
138138 if (($size19161947 == 0))
139139 then $acc019161947
140140 else {
141141 let $acc119161947 = isSymbolB($acc019161947, $list19161947[0])
142142 if (($size19161947 == 1))
143143 then $acc119161947
144144 else {
145145 let $acc219161947 = isSymbolB($acc119161947, $list19161947[1])
146146 if (($size19161947 == 2))
147147 then $acc219161947
148148 else {
149149 let $acc319161947 = isSymbolB($acc219161947, $list19161947[2])
150150 if (($size19161947 == 3))
151151 then $acc319161947
152152 else {
153153 let $acc419161947 = isSymbolB($acc319161947, $list19161947[3])
154154 if (($size19161947 == 4))
155155 then $acc419161947
156156 else {
157157 let $acc519161947 = isSymbolB($acc419161947, $list19161947[4])
158158 if (($size19161947 == 5))
159159 then $acc519161947
160160 else {
161161 let $acc619161947 = isSymbolB($acc519161947, $list19161947[5])
162162 if (($size19161947 == 6))
163163 then $acc619161947
164164 else {
165165 let $acc719161947 = isSymbolB($acc619161947, $list19161947[6])
166166 if (($size19161947 == 7))
167167 then $acc719161947
168168 else {
169169 let $acc819161947 = isSymbolB($acc719161947, $list19161947[7])
170170 if (($size19161947 == 8))
171171 then $acc819161947
172172 else {
173173 let $acc919161947 = isSymbolB($acc819161947, $list19161947[8])
174174 throw("List size exceed 8")
175175 }
176176 }
177177 }
178178 }
179179 }
180180 }
181181 }
182182 }
183183 }
184184 }) + "B"))) + getAmountOrClear((toString({
185185 let $list19842015 = genotype
186186 let $size19842015 = size($list19842015)
187187 let $acc019842015 = 0
188188 if (($size19842015 == 0))
189189 then $acc019842015
190190 else {
191191 let $acc119842015 = isSymbolC($acc019842015, $list19842015[0])
192192 if (($size19842015 == 1))
193193 then $acc119842015
194194 else {
195195 let $acc219842015 = isSymbolC($acc119842015, $list19842015[1])
196196 if (($size19842015 == 2))
197197 then $acc219842015
198198 else {
199199 let $acc319842015 = isSymbolC($acc219842015, $list19842015[2])
200200 if (($size19842015 == 3))
201201 then $acc319842015
202202 else {
203203 let $acc419842015 = isSymbolC($acc319842015, $list19842015[3])
204204 if (($size19842015 == 4))
205205 then $acc419842015
206206 else {
207207 let $acc519842015 = isSymbolC($acc419842015, $list19842015[4])
208208 if (($size19842015 == 5))
209209 then $acc519842015
210210 else {
211211 let $acc619842015 = isSymbolC($acc519842015, $list19842015[5])
212212 if (($size19842015 == 6))
213213 then $acc619842015
214214 else {
215215 let $acc719842015 = isSymbolC($acc619842015, $list19842015[6])
216216 if (($size19842015 == 7))
217217 then $acc719842015
218218 else {
219219 let $acc819842015 = isSymbolC($acc719842015, $list19842015[7])
220220 if (($size19842015 == 8))
221221 then $acc819842015
222222 else {
223223 let $acc919842015 = isSymbolC($acc819842015, $list19842015[8])
224224 throw("List size exceed 8")
225225 }
226226 }
227227 }
228228 }
229229 }
230230 }
231231 }
232232 }
233233 }
234234 }) + "C"))) + getAmountOrClear((toString({
235235 let $list20542085 = genotype
236236 let $size20542085 = size($list20542085)
237237 let $acc020542085 = 0
238238 if (($size20542085 == 0))
239239 then $acc020542085
240240 else {
241241 let $acc120542085 = isSymbolD($acc020542085, $list20542085[0])
242242 if (($size20542085 == 1))
243243 then $acc120542085
244244 else {
245245 let $acc220542085 = isSymbolD($acc120542085, $list20542085[1])
246246 if (($size20542085 == 2))
247247 then $acc220542085
248248 else {
249249 let $acc320542085 = isSymbolD($acc220542085, $list20542085[2])
250250 if (($size20542085 == 3))
251251 then $acc320542085
252252 else {
253253 let $acc420542085 = isSymbolD($acc320542085, $list20542085[3])
254254 if (($size20542085 == 4))
255255 then $acc420542085
256256 else {
257257 let $acc520542085 = isSymbolD($acc420542085, $list20542085[4])
258258 if (($size20542085 == 5))
259259 then $acc520542085
260260 else {
261261 let $acc620542085 = isSymbolD($acc520542085, $list20542085[5])
262262 if (($size20542085 == 6))
263263 then $acc620542085
264264 else {
265265 let $acc720542085 = isSymbolD($acc620542085, $list20542085[6])
266266 if (($size20542085 == 7))
267267 then $acc720542085
268268 else {
269269 let $acc820542085 = isSymbolD($acc720542085, $list20542085[7])
270270 if (($size20542085 == 8))
271271 then $acc820542085
272272 else {
273273 let $acc920542085 = isSymbolD($acc820542085, $list20542085[8])
274274 throw("List size exceed 8")
275275 }
276276 }
277277 }
278278 }
279279 }
280280 }
281281 }
282282 }
283283 }
284284 }) + "D"))) + getAmountOrClear((toString({
285285 let $list21222153 = genotype
286286 let $size21222153 = size($list21222153)
287287 let $acc021222153 = 0
288288 if (($size21222153 == 0))
289289 then $acc021222153
290290 else {
291291 let $acc121222153 = isSymbolE($acc021222153, $list21222153[0])
292292 if (($size21222153 == 1))
293293 then $acc121222153
294294 else {
295295 let $acc221222153 = isSymbolE($acc121222153, $list21222153[1])
296296 if (($size21222153 == 2))
297297 then $acc221222153
298298 else {
299299 let $acc321222153 = isSymbolE($acc221222153, $list21222153[2])
300300 if (($size21222153 == 3))
301301 then $acc321222153
302302 else {
303303 let $acc421222153 = isSymbolE($acc321222153, $list21222153[3])
304304 if (($size21222153 == 4))
305305 then $acc421222153
306306 else {
307307 let $acc521222153 = isSymbolE($acc421222153, $list21222153[4])
308308 if (($size21222153 == 5))
309309 then $acc521222153
310310 else {
311311 let $acc621222153 = isSymbolE($acc521222153, $list21222153[5])
312312 if (($size21222153 == 6))
313313 then $acc621222153
314314 else {
315315 let $acc721222153 = isSymbolE($acc621222153, $list21222153[6])
316316 if (($size21222153 == 7))
317317 then $acc721222153
318318 else {
319319 let $acc821222153 = isSymbolE($acc721222153, $list21222153[7])
320320 if (($size21222153 == 8))
321321 then $acc821222153
322322 else {
323323 let $acc921222153 = isSymbolE($acc821222153, $list21222153[8])
324324 throw("List size exceed 8")
325325 }
326326 }
327327 }
328328 }
329329 }
330330 }
331331 }
332332 }
333333 }
334334 }) + "E"))) + getAmountOrClear((toString({
335335 let $list21902221 = genotype
336336 let $size21902221 = size($list21902221)
337337 let $acc021902221 = 0
338338 if (($size21902221 == 0))
339339 then $acc021902221
340340 else {
341341 let $acc121902221 = isSymbolF($acc021902221, $list21902221[0])
342342 if (($size21902221 == 1))
343343 then $acc121902221
344344 else {
345345 let $acc221902221 = isSymbolF($acc121902221, $list21902221[1])
346346 if (($size21902221 == 2))
347347 then $acc221902221
348348 else {
349349 let $acc321902221 = isSymbolF($acc221902221, $list21902221[2])
350350 if (($size21902221 == 3))
351351 then $acc321902221
352352 else {
353353 let $acc421902221 = isSymbolF($acc321902221, $list21902221[3])
354354 if (($size21902221 == 4))
355355 then $acc421902221
356356 else {
357357 let $acc521902221 = isSymbolF($acc421902221, $list21902221[4])
358358 if (($size21902221 == 5))
359359 then $acc521902221
360360 else {
361361 let $acc621902221 = isSymbolF($acc521902221, $list21902221[5])
362362 if (($size21902221 == 6))
363363 then $acc621902221
364364 else {
365365 let $acc721902221 = isSymbolF($acc621902221, $list21902221[6])
366366 if (($size21902221 == 7))
367367 then $acc721902221
368368 else {
369369 let $acc821902221 = isSymbolF($acc721902221, $list21902221[7])
370370 if (($size21902221 == 8))
371371 then $acc821902221
372372 else {
373373 let $acc921902221 = isSymbolF($acc821902221, $list21902221[8])
374374 throw("List size exceed 8")
375375 }
376376 }
377377 }
378378 }
379379 }
380380 }
381381 }
382382 }
383383 }
384384 }) + "F"))) + getAmountOrClear((toString({
385385 let $list22602291 = genotype
386386 let $size22602291 = size($list22602291)
387387 let $acc022602291 = 0
388388 if (($size22602291 == 0))
389389 then $acc022602291
390390 else {
391391 let $acc122602291 = isSymbolG($acc022602291, $list22602291[0])
392392 if (($size22602291 == 1))
393393 then $acc122602291
394394 else {
395395 let $acc222602291 = isSymbolG($acc122602291, $list22602291[1])
396396 if (($size22602291 == 2))
397397 then $acc222602291
398398 else {
399399 let $acc322602291 = isSymbolG($acc222602291, $list22602291[2])
400400 if (($size22602291 == 3))
401401 then $acc322602291
402402 else {
403403 let $acc422602291 = isSymbolG($acc322602291, $list22602291[3])
404404 if (($size22602291 == 4))
405405 then $acc422602291
406406 else {
407407 let $acc522602291 = isSymbolG($acc422602291, $list22602291[4])
408408 if (($size22602291 == 5))
409409 then $acc522602291
410410 else {
411411 let $acc622602291 = isSymbolG($acc522602291, $list22602291[5])
412412 if (($size22602291 == 6))
413413 then $acc622602291
414414 else {
415415 let $acc722602291 = isSymbolG($acc622602291, $list22602291[6])
416416 if (($size22602291 == 7))
417417 then $acc722602291
418418 else {
419419 let $acc822602291 = isSymbolG($acc722602291, $list22602291[7])
420420 if (($size22602291 == 8))
421421 then $acc822602291
422422 else {
423423 let $acc922602291 = isSymbolG($acc822602291, $list22602291[8])
424424 throw("List size exceed 8")
425425 }
426426 }
427427 }
428428 }
429429 }
430430 }
431431 }
432432 }
433433 }
434434 }) + "G"))) + getAmountOrClear((toString({
435435 let $list23282359 = genotype
436436 let $size23282359 = size($list23282359)
437437 let $acc023282359 = 0
438438 if (($size23282359 == 0))
439439 then $acc023282359
440440 else {
441441 let $acc123282359 = isSymbolH($acc023282359, $list23282359[0])
442442 if (($size23282359 == 1))
443443 then $acc123282359
444444 else {
445445 let $acc223282359 = isSymbolH($acc123282359, $list23282359[1])
446446 if (($size23282359 == 2))
447447 then $acc223282359
448448 else {
449449 let $acc323282359 = isSymbolH($acc223282359, $list23282359[2])
450450 if (($size23282359 == 3))
451451 then $acc323282359
452452 else {
453453 let $acc423282359 = isSymbolH($acc323282359, $list23282359[3])
454454 if (($size23282359 == 4))
455455 then $acc423282359
456456 else {
457457 let $acc523282359 = isSymbolH($acc423282359, $list23282359[4])
458458 if (($size23282359 == 5))
459459 then $acc523282359
460460 else {
461461 let $acc623282359 = isSymbolH($acc523282359, $list23282359[5])
462462 if (($size23282359 == 6))
463463 then $acc623282359
464464 else {
465465 let $acc723282359 = isSymbolH($acc623282359, $list23282359[6])
466466 if (($size23282359 == 7))
467467 then $acc723282359
468468 else {
469469 let $acc823282359 = isSymbolH($acc723282359, $list23282359[7])
470470 if (($size23282359 == 8))
471471 then $acc823282359
472472 else {
473473 let $acc923282359 = isSymbolH($acc823282359, $list23282359[8])
474474 throw("List size exceed 8")
475475 }
476476 }
477477 }
478478 }
479479 }
480480 }
481481 }
482482 }
483483 }
484484 }) + "H")))
485485 }
486486
487487
488488 func getAssetOrigin (generation) = if ((generation == "G"))
489489 then incubatorAddress
490490 else breederAddress
491491
492492
493493 func getAssetRarity (genotype,generation) = {
494494 let quantity = getIntegerValue(Address(getAssetOrigin(generation)), (("stats_" + genotype) + "_quantity"))
495495 let power = pow((10000 / quantity), 4, 5, 1, 2, HALFDOWN)
496496 if ((power > 0))
497497 then power
498498 else 2
499499 }
500500
501501
502502 func getAssetFarmingPower (assetId) = {
503503 let assetName = value(assetInfo(assetId)).name
504504 let generation = take(takeRight(assetName, 2), 1)
505505 let gen = ((getGen(assetName) + "-") + generation)
506506 $Tuple2(gen, getAssetRarity(gen, generation))
507507 }
508508
509509
510510 func getLastKnownAssetFarmingPower (address,assetId) = tryGetInteger((((("address_" + address) + "_asset_") + assetId) + "_farmingPower"))
511511
512512
513513 func getAssetsByGen (gen) = {
514514 let s = tryGetString(("assets_" + gen))
515515 if ((s == ""))
516516 then nil
517517 else split(s, ",")
518518 }
519519
520520
521521 func calcInterest (previousInterest,previousInterestHeight,totalFarmingPower) = (previousInterest + (((scale * getRewardPerBlock()) * (height - previousInterestHeight)) / totalFarmingPower))
522522
523523
524524 func getCurrentInterest () = if ((tryGetInteger("total_farmingPower") > 0))
525525 then {
526526 let previousInterest = tryGetInteger("total_lastCheckInterest")
527527 let previousInterestHeight = tryGetInteger("total_lastCheckInterestHeight")
528528 let totalFarmingPower = tryGetInteger("total_farmingPower")
529529 calcInterest(previousInterest, previousInterestHeight, totalFarmingPower)
530530 }
531531 else if ((tryGetInteger("total_startHeight") != 0))
532532 then tryGetInteger("total_lastCheckInterest")
533533 else throw("farming is not launched, yet")
534534
535535
536536 func calcAssetRewardDelta (address,assetId,assetFarmingPower) = {
537537 let lastCheckAssetInterest = tryGetInteger((((("address_" + address) + "_asset_") + assetId) + "_lastCheckInterest"))
538538 let currentInterest = getCurrentInterest()
539539 (assetFarmingPower * (currentInterest - lastCheckAssetInterest))
540540 }
541541
542542
543543 func addAssetIdToGenEntry (assetId,assetGen) = {
544544 let currentValue = tryGetString((("assets_" + assetGen) + "_locked"))
545545 if ((currentValue == ""))
546546 then assetId
547547 else ((currentValue + ",") + assetId)
548548 }
549549
550550
551551 func getStakeResult (address,assetId,assetFarmingPower) = {
552552 let asset = toBase58String(assetId)
553553 [IntegerEntry("total_farmingPower", (tryGetInteger("total_farmingPower") + assetFarmingPower)), IntegerEntry("total_lastCheckInterest", getCurrentInterest()), IntegerEntry("total_lastCheckInterestHeight", height), IntegerEntry((((("address_" + address) + "_asset_") + asset) + "_farmingPower"), assetFarmingPower), IntegerEntry((((("address_" + address) + "_asset_") + asset) + "_lastCheckInterest"), getCurrentInterest())]
554554 }
555555
556556
557557 func getUnstakeResult (address,assetId,rewardDelta,withdrawnAmount,assetFarmingPower) = {
558558 let asset = toBase58String(assetId)
559559 [IntegerEntry("total_farmingPower", (tryGetInteger("total_farmingPower") - assetFarmingPower)), IntegerEntry("total_lastCheckInterest", getCurrentInterest()), IntegerEntry("total_lastCheckInterestHeight", height), IntegerEntry((((("address_" + address) + "_asset_") + asset) + "_farmingPower"), 0), IntegerEntry((((("address_" + address) + "_asset_") + asset) + "_lastCheckInterest"), getCurrentInterest()), IntegerEntry((((("address_" + address) + "_asset_") + asset) + "_withdrawnAmount"), (tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_withdrawnAmount")) + (withdrawnAmount * scale2))), IntegerEntry((((("address_" + address) + "_asset_") + asset) + "_lastCheckFarmedAmount"), (tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_lastCheckFarmedAmount")) + rewardDelta))]
560560 }
561561
562562
563563 @Callable(i)
564564 func init () = if ((i.caller != this))
565565 then throw("admin only")
566566 else [IntegerEntry("total_startHeight", height)]
567567
568568
569569
570570 @Callable(i)
571-func buyPerch (color) = throw("under maintence")
571+func buyPerch (color) = if ((0 > value(indexOf(["B", "R", "G", "Y"], color))))
572+ then throw("you need to set color properly")
573+ else {
574+ let firstPayment = value(i.payments[0])
575+ if ((firstPayment.assetId != eggsAssetId))
576+ then throw(("You can attach only EGG tokens with the following asset id: " + toBase58String(eggsAssetId)))
577+ else if ((firstPayment.amount != perchPrice))
578+ then throw(("To buy a perch you currently need the following amount of EGGlets: " + toString(perchPrice)))
579+ else {
580+ let perchAmountKey = ((("address_" + toString(i.caller)) + "_perchesAvailable_") + color)
581+ let perchAmount = tryGetInteger(perchAmountKey)
582+[IntegerEntry(perchAmountKey, (perchAmount + 1))]
583+ }
584+ }
572585
573586
574587
575588 @Callable(i)
576-func stakeNFT () = throw("under maintence")
589+func stakeNFT () = {
590+ let assetId = value(value(i.payments[0]).assetId)
591+ let address = toString(i.caller)
592+ let color = takeRight(value(assetInfo(assetId)).name, 1)
593+ let availablePerches = tryGetInteger(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color))
594+ if ((0 >= availablePerches))
595+ then throw(("no perches available for the color " + color))
596+ else {
597+ let $t074347499 = getAssetFarmingPower(assetId)
598+ let assetGen = $t074347499._1
599+ let assetFarmingPower = $t074347499._2
600+ let assetRewardDelta = calcAssetRewardDelta(address, toBase58String(assetId), assetFarmingPower)
601+ (getStakeResult(address, assetId, assetFarmingPower) ++ [IntegerEntry(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color), (availablePerches - 1))])
602+ }
603+ }
577604
578605
579606
580607 @Callable(i)
581-func unstakeNFT (asset) = throw("under maintence")
608+func unstakeNFT (asset) = {
609+ let assetId = fromBase58String(asset)
610+ let address = toString(i.caller)
611+ let assetFarmingPower = getLastKnownAssetFarmingPower(address, asset)
612+ let assetRewardDelta = calcAssetRewardDelta(address, asset, assetFarmingPower)
613+ let farmedAmount = (assetRewardDelta + tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_lastCheckFarmedAmount")))
614+ let withdrawnAmount = tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_withdrawnAmount"))
615+ let reward = ((farmedAmount - withdrawnAmount) / (scale * 100))
616+ let color = takeRight(value(assetInfo(assetId)).name, 1)
617+ if ((0 >= assetFarmingPower))
618+ then throw("asset not available")
619+ else if ((color == "U"))
620+ then throw("use another function to unstake Jackpot NFT")
621+ else {
622+ let result = getUnstakeResult(address, assetId, assetRewardDelta, reward, assetFarmingPower)
623+ (result ++ [IntegerEntry(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color), (tryGetInteger(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color)) + 1)), ScriptTransfer(i.caller, reward, eggsAssetId), ScriptTransfer(i.caller, 1, assetId)])
624+ }
625+ }
582626
583627
584628
585629 @Callable(i)
586630 func stakeJackpot (color) = {
587631 let assetId = value(value(i.payments[0]).assetId)
588632 let address = toString(i.caller)
589633 let availablePerches = tryGetInteger(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color))
590634 if ((takeRight(value(value(assetInfo(assetId)).name), 1) != "U"))
591635 then throw("jackpot only")
592636 else if ((0 >= availablePerches))
593637 then throw(("no perches available for the color " + color))
594638 else {
595639 let assetFarmingPower = 100
596640 (getStakeResult(address, assetId, assetFarmingPower) ++ [IntegerEntry(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color), (availablePerches - 1)), StringEntry((((("address_" + toString(i.caller)) + "_asset_") + toBase58String(assetId)) + "_perchColor"), color)])
597641 }
598642 }
599643
600644
601645
602646 @Callable(i)
603647 func unstakeJackpot (asset) = {
604648 let assetId = fromBase58String(asset)
605649 let address = toString(i.caller)
606650 let color = tryGetString((((("address_" + address) + "_asset_") + asset) + "_perchColor"))
607651 let assetFarmingPower = getLastKnownAssetFarmingPower(address, asset)
608652 let assetRewardDelta = calcAssetRewardDelta(address, asset, assetFarmingPower)
609653 let farmedAmount = (assetRewardDelta + tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_lastCheckFarmedAmount")))
610654 let withdrawnAmount = tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_withdrawnAmount"))
611655 let reward = ((farmedAmount - withdrawnAmount) / (scale * 100))
612656 if ((takeRight(value(value(assetInfo(assetId)).name), 1) != "U"))
613657 then throw("jackpot only")
614658 else if ((assetFarmingPower > 0))
615659 then {
616660 let result = getUnstakeResult(address, assetId, assetRewardDelta, reward, assetFarmingPower)
617661 (result ++ [IntegerEntry(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color), (tryGetInteger(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color)) + 1)), ScriptTransfer(i.caller, reward, eggsAssetId), ScriptTransfer(i.caller, 1, assetId)])
618662 }
619663 else throw("")
620664 }
621665
622666
623667
624668 @Callable(i)
625-func claimReward (asset) = throw("under maintence")
669+func claimReward (asset) = {
670+ let address = toString(i.caller)
671+ let assetId = fromBase58String(asset)
672+ let assetFarmingPower = getLastKnownAssetFarmingPower(address, asset)
673+ let assetRewardDelta = calcAssetRewardDelta(address, asset, assetFarmingPower)
674+ let farmedAmount = (assetRewardDelta + tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_lastCheckFarmedAmount")))
675+ let withdrawnAmount = tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_withdrawnAmount"))
676+ let reward = ((farmedAmount - withdrawnAmount) / (scale * 100))
677+ if ((0 >= reward))
678+ then throw("you have no EGGs to withdraw")
679+ else [IntegerEntry((((("address_" + address) + "_asset_") + asset) + "_withdrawnAmount"), (tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_withdrawnAmount")) + (reward * scale2))), ScriptTransfer(Address(fromBase58String(address)), reward, eggsAssetId)]
680+ }
626681
627682
628683 @Verifier(tx)
629684 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
630685

github/deemru/w8io/786bc32 
70.58 ms