tx · HAE1vDNXEwwZdEQ9p2LoLnUHAVfdYER5VkaNvrTkX32L 3PH75p2rmMKCV2nyW4TsAdFgFtmc61mJaqA: -0.01400000 Waves 2021.09.14 18:45 [2767828] smart account 3PH75p2rmMKCV2nyW4TsAdFgFtmc61mJaqA > SELF 0.00000000 Waves
{ "type": 13, "id": "HAE1vDNXEwwZdEQ9p2LoLnUHAVfdYER5VkaNvrTkX32L", "fee": 1400000, "feeAssetId": null, "timestamp": 1631634364276, "version": 2, "chainId": 87, "sender": "3PH75p2rmMKCV2nyW4TsAdFgFtmc61mJaqA", "senderPublicKey": "3GtkwhnMmG1yeozW51o4dJ1x3BDToPaLBXyBWKGdAc2e", "proofs": [ "5bs2zAEmR9b9jzLnFJQtDv2gRywDuEih621S9dQagBdByk7MDfMuc53wjcocAQ9ZyEDMNvwtbz7zzV4BXs6Ykr4s" ], "script": "base64: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MjU1CQABkQAAAAIFAAAADSRsaXN0MjIyNDIyNTUAAAAAAAAAAAEDCQAAAAAAAAIFAAAADSRzaXplMjIyNDIyNTUAAAAAAAAAAAIFAAAADSRhY2MyMjIyNDIyNTUEAAAADSRhY2MzMjIyNDIyNTUJAQAAAAlpc1N5bWJvbEEAAAACBQAAAA0kYWNjMjIyMjQyMjU1CQABkQAAAAIFAAAADSRsaXN0MjIyNDIyNTUAAAAAAAAAAAIDCQAAAAAAAAIFAAAADSRzaXplMjIyNDIyNTUAAAAAAAAAAAMFAAAADSRhY2MzMjIyNDIyNTUEAAAADSRhY2M0MjIyNDIyNTUJAQAAAAlpc1N5bWJvbEEAAAACBQAAAA0kYWNjMzIyMjQyMjU1CQABkQAAAAIFAAAADSRsaXN0MjIyNDIyNTUAAAAAAAAAAAMDCQAAAAAAAAIFAAAADSRzaXplMjIyNDIyNTUAAAAAAAAAAAQFAAAADSRhY2M0MjIyNDIyNTUEAAAADSRhY2M1MjIyNDIyNTUJAQAAAAlpc1N5bWJvbEEAAAACBQAAAA0kYWNjNDIyMjQyMjU1CQABkQAAAAIFAAAADSRsaXN0MjIyNDIyNTUAAAAAAAAAAAQDCQAAAAAAAAIFAAAADSRzaXplMjIyNDIyNTUAAAAAAAAAAAUFAAAADSRhY2M1MjIyNDIyNTUEAAAADSRhY2M2MjIyNDIyNTUJAQAAAAlpc1N5bWJvbEEAAAACBQAAAA0kYWNjNTIyMjQyMjU1CQABkQAAAAIFAAAADSRsaXN0MjIyNDIyNTUAAAAAAAAAAAUDCQAAAAAAAAIFAAAADSRzaXplMjIyNDIyNTUAAAAAAAAAAAYFAAAADSRhY2M2MjIyNDIyNTUEAAAADSRhY2M3MjIyNDIyNTUJAQAAAAlpc1N5bWJvbEEAAAACBQAAAA0kYWNjNjIyMjQyMjU1CQABkQAAAAIFAAAADSRsaXN0MjIyNDIyNTUAAAAAAAAAAAYDCQAAAAAAAAIFAAAADSRzaXplMjIyNDIyNTUAAAAAAAAAAAcFAAAADSRhY2M3MjIyNDIyNTUEAAAADSRhY2M4MjIyNDIyNTUJAQAAAAlpc1N5bWJvbEEAAAACBQAAAA0kYWNjNzIyMjQyMjU1CQABkQAAAAIFAAAADSRsaXN0MjIyNDIyNTUAAAAAAAAA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AAAAAAIFAAAADSRhY2MyMjQzMDI0NjEEAAAADSRhY2MzMjQzMDI0NjEJAQAAAAlpc1N5bWJvbEQAAAACBQAAAA0kYWNjMjI0MzAyNDYxCQABkQAAAAIFAAAADSRsaXN0MjQzMDI0NjEAAAAAAAAAAAIDCQAAAAAAAAIFAAAADSRzaXplMjQzMDI0NjEAAAAAAAAAAAMFAAAADSRhY2MzMjQzMDI0NjEEAAAADSRhY2M0MjQzMDI0NjEJAQAAAAlpc1N5bWJvbEQAAAACBQAAAA0kYWNjMzI0MzAyNDYxCQABkQAAAAIFAAAADSRsaXN0MjQzMDI0NjEAAAAAAAAAAAMDCQAAAAAAAAIFAAAADSRzaXplMjQzMDI0NjEAAAAAAAAAAAQFAAAADSRhY2M0MjQzMDI0NjEEAAAADSRhY2M1MjQzMDI0NjEJAQAAAAlpc1N5bWJvbEQAAAACBQAAAA0kYWNjNDI0MzAyNDYxCQABkQAAAAIFAAAADSRsaXN0MjQzMDI0NjEAAAAAAAAAAAQDCQAAAAAAAAIFAAAADSRzaXplMjQzMDI0NjEAAAAAAAAAAAUFAAAADSRhY2M1MjQzMDI0NjEEAAAADSRhY2M2MjQzMDI0NjEJAQAAAAlpc1N5bWJvbEQAAAACBQAAAA0kYWNjNTI0MzAyNDYxCQABkQAAAAIFAAAADSRsaXN0MjQzMDI0NjEAAAAAAAAAAAUDCQAAAAAAAAIFAAAADSRzaXplMjQzMDI0NjEAAAAAAAAAAAYFAAAADSRhY2M2MjQzMDI0NjEEAAAADSRhY2M3MjQzMDI0NjEJAQAAAAlpc1N5bWJvbEQAAAACBQAAAA0kYWNjNjI0MzAyNDYxCQABkQAAAAIFAAAADSRsaXN0MjQzMDI0NjEAAAAAAAAAAAYDCQAAAAAAAAIFAAAADSRzaXplMjQzMDI0NjEAAAAAAAAAAAcFAAAADSRhY2M3MjQzMDI0NjEEAAAADSRhY2M4MjQzMDI0NjEJAQAAAAlpc1N5bWJvbEQAAAACBQAAAA0kYWNjNzI0MzAyNDYxCQABkQAAAAIFAAAADSRsaXN0MjQzMDI0NjEAAAAAAAAAAAcDCQAAAAAAAAIFAAAADSRzaXplMjQzMDI0NjEAAAAAAAAAAAgFAAAADSRhY2M4MjQzMDI0NjEEAAAADSRhY2M5MjQzMDI0NjEJAQAAAAlpc1N5bWJvbEQAAAACBQAAAA0kYWNjODI0MzAyNDYxCQABkQAAAAIFAAAADSRsaXN0MjQzMDI0NjEAAAAAAAAAAAgJAAACAAAAAQIAAAASTGlzdCBzaXplIGV4Y2VlZCA4AgAAAAFECQEAAAAQZ2V0QW1vdW50T3JDbGVhcgAAAAEJAAEsAAAAAgkAAaQAAAABBAAAAA0kbGlzdDI0OTgyNTI5BQAAAAhnZW5vdHlwZQQAAAANJHNpemUyNDk4MjUyOQkAAZAAAAABBQAAAA0kbGlzdDI0OTgyNTI5BAAAAA0kYWNjMDI0OTgyNTI5AAAAAAAAAAAAAwkAAAAAAAACBQAAAA0kc2l6ZTI0OTgyNTI5AAAAAAAAAAAABQAAAA0kYWNjMDI0OTgyNTI5BAAAAA0kYWNjMTI0OTgyNTI5CQEAAAAJaXNTeW1ib2xFAAAAAgUAAAANJGFjYzAyNDk4MjUyOQkAAZEAAAACBQAAAA0kbGlzdDI0OTgyNTI5AAAAAAAAAAAAAwkAAAAAAAACBQAAAA0kc2l6ZTI0OTgyNTI5AAAAAAAAAAABBQAAAA0kYWNjMTI0OTgyNTI5BAAAAA0kYWNjMjI0OTgyNTI5CQEAAAAJaXNTeW1ib2xFAAAAAgUAAAANJGFjYzEyNDk4MjUyOQkAAZEAAAACBQAAAA0kbGlzdDI0OTgyNTI5AAAAAAAAAAABAwkAAAAAAAACBQAAAA0kc2l6ZTI0OTgyNTI5AAAAAAAAAAACBQAAAA0kYWNjMjI0OTgyNTI5BAAAAA0kYWNjMzI0OTgyNTI5CQEAAAAJaXNTeW1ib2xFAAAAAgUAAAANJGFjYzIyNDk4MjUyOQkAAZEAAAACBQAAAA0kbGlzdDI0OTgyNTI5AAAAAAAAAAACAwkAAAAAAAACBQAAAA0kc2l6ZTI0OTgyNTI5AAAAAAAAAAADBQAAAA0kYWNjMzI0OTgyNTI5BAAAAA0kYWNjNDI0OTgyNTI5CQEAAAAJaXNTeW1ib2xFAAAAAgUAAAANJGFjYzMyNDk4MjUyOQkAAZEAAAACBQAAAA0kbGlzdDI0OTgyNTI5AAAAAAAAAAADAwkAAAAAAAACBQAAAA0kc2l6ZTI0OTgyNTI5AAAAAAAAAAAEBQAAAA0kYWNjNDI0OTgyNTI5BAAAAA0kYWNjNTI0OTgyNTI5CQEAAAAJaXNTeW1ib2xFAAAAAgUAAAANJGFjYzQyNDk4MjUyOQkAAZEAAAACBQAAAA0kbGlzdDI0OTgyNTI5AAAAAAAAAAAEAwkAAAAAAAACBQAAAA0kc2l6ZTI0OTgyNTI5AAAAAAAAAAAFBQAAAA0kYWNjNTI0OTgyNTI5BAAAAA0kYWNjNjI0OTgyNTI5CQEAAAAJaXNTeW1ib2xFAAAAAgUAAAANJGFjYzUyNDk4MjUyOQkAAZEAAAACBQAAAA0kbGlzdDI0OTgyNTI5AAAAAAAAAAAFAwkAAAAAAAACBQAAAA0kc2l6ZTI0OTgyNTI5AAAAAAAAAAAGBQAAAA0kYWNjNjI0OTgyNTI5BAAAAA0kYWNjNzI0OTgyNTI5CQEAAAAJaXNTeW1ib2xFAAAAAgUAAAANJGFjYzYyNDk4MjUyOQkAAZEAAAACBQAAAA0kbGlzdDI0OTgyNTI5AAAAAAAAAAAGAwkAAAAAAAACBQAAAA0kc2l6ZTI0OTgyNTI5AAAAAAAAAAAHBQAAAA0kYWNjNzI0OTgyNTI5BAAAAA0kYWNjODI0OTgyNTI5CQEAAAAJaXNTeW1ib2xFAAAAAgUAAAANJGFjYzcyNDk4MjUyOQkAAZEAAAACBQAAAA0kbGlzdDI0OTgyNTI5AAAAAAAAAAAHAwkAAAAAAAACBQAAAA0kc2l6ZTI0OTgyNTI5AAAAAAAAAAAIBQAAAA0kYWNjODI0OTgyNTI5BAAAAA0kYWNjOTI0OTgyNTI5CQEAAAAJaXNTeW1ib2xFAAAAAgUAAAANJGFjYzgyNDk4MjUyOQkAAZEAAAACBQAAAA0kbGlzdDI0OTgyNTI5AAAAAAAAAAAICQAAAgAAAAECAAAAEkxpc3Qgc2l6ZSBleGNlZWQgOAIAAAABRQkBAAAAEGdldEFtb3VudE9yQ2xlYXIAAAABCQABLAAAAAIJAAGkAAAAAQQAAAANJGxpc3QyNTY2MjU5NwUAAAAIZ2Vub3R5cGUEAAAADSRzaXplMjU2NjI1OTcJAAGQAAAAAQUAAAANJGxpc3QyNTY2MjU5NwQAAAANJGFjYzAyNTY2MjU5NwAAAAAAAAAAAAMJAAAAAAAAAgUAAAANJHNpemUyNTY2MjU5NwAAAAAAAAAAAAUAAAANJGFjYzAyNTY2MjU5NwQAAAANJGFjYzEyNTY2MjU5NwkBAAAACWlzU3ltYm9sRgAAAAIFAAAADSRhY2MwMjU2NjI1OTcJAAGRAAAAAgUAAAANJGxpc3QyNTY2MjU5NwAAAAAAAAAAAAMJAAAAAAAAAgUAAAANJHNpemUyNTY2MjU5NwAAAAAAAAAAAQUAAAANJGFjYzEyNTY2MjU5NwQAAAANJGFjYzIyNTY2MjU5NwkBAAAACWlzU3ltYm9sRgAAAAIFAAAADSRhY2MxMjU2NjI1OTcJAAGRAAAAAgUAAAANJGxpc3QyNTY2MjU5NwAAAAAAAAAAAQMJAAAAAAAAAgUAAAANJHNpemUyNTY2MjU5NwAAAAAAAAAAAgUAAAANJGFjYzIyNTY2MjU5NwQAAAANJGFjYzMyNTY2MjU5NwkBAAAACWlzU3ltYm9sRgAAAAIFAAAADSRhY2MyMjU2NjI1OTcJAAGRAAAAAgUAAAANJGxpc3QyNTY2MjU5NwAAAAAAAAAAAgMJAAAAAAAAAgUAAAANJHNpemUyNTY2MjU5NwAAAAAAAAAAAwUAAAANJGFjYzMyNTY2MjU5NwQAAAANJGFjYzQyNTY2MjU5NwkBAAAACWlzU3ltYm9sRgAAAAIFAAAADSRhY2MzMjU2NjI1OTcJAAGRAAAAAgUAAAANJGxpc3QyNTY2MjU5NwAAAAAAAAAAAwMJAAAAAAAAAgUAAAANJHNpemUyNTY2MjU5NwAAAAAAAAAABAUAAAANJGFjYzQyNTY2MjU5NwQAAAANJGFjYzUyNTY2MjU5NwkBAAAACWlzU3ltYm9sRgAAAAIFAAAADSRhY2M0MjU2NjI1OTcJAAGRAAAAAgUAAAANJGxpc3QyNTY2MjU5NwAAAAAAAAAABAMJAAAAAAAAAgUAAAANJHNpemUyNTY2MjU5NwAAAAAAAAAABQUAAAANJGFjYzUyNTY2MjU5NwQAAAANJGFjYzYyNTY2MjU5NwkBAAAACWlzU3ltYm9sRgAAAAIFAAAADSRhY2M1MjU2NjI1OTcJAAGRAAAAAgUAAAANJGxpc3QyNTY2MjU5NwAAAAAAAAAABQMJAAAAAAAAAgUAAAANJHNpemUyNTY2MjU5NwAAAAAAAAAABgUAAAANJGFjYzYyNTY2MjU5NwQAAAANJGFjYzcyNTY2MjU5NwkBAAAACWlzU3ltYm9sRgAAAAIFAAAADSRhY2M2MjU2NjI1OTcJAAGRAAAAAgUAAAANJGxpc3QyNTY2MjU5NwAAAAAAAAAABgMJAAAAAAAAAgUAAAANJHNpemUyNTY2MjU5NwAAAAAAAAAABwUAAAANJGFjYzcyNTY2MjU5NwQAAAANJGFjYzgyNTY2MjU5NwkBAAAACWlzU3ltYm9sRgAAAAIFAAAADSRhY2M3MjU2NjI1OTcJAAGRAAAAAgUAAAANJGxpc3QyNTY2MjU5NwAAAAAAAAAABwMJAAAAAAAAAgUAAAANJHNpemUyNTY2MjU5NwAAAAAAAAAACAUAAAANJGFjYzgyNTY2MjU5NwQAAAANJGFjYzkyNTY2MjU5NwkBAAAACWlzU3ltYm9sRgAAAAIFAAAADSRhY2M4MjU2NjI1OTcJAAGRAAAAAgUAAAANJGxpc3QyNTY2MjU5NwAAAAAAAAAACAkAAAIAAAABAgAAABJMaXN0IHNpemUgZXhjZWVkIDgCAAAAAUYJAQAAABBnZXRBbW91bnRPckNsZWFyAAAAAQkAASwAAAACCQABpAAAAAEEAAAADSRsaXN0MjYzNjI2NjcFAAAACGdlbm90eXBlBAAAAA0kc2l6ZTI2MzYyNjY3CQABkAAAAAEFAAAADSRsaXN0MjYzNjI2NjcEAAAADSRhY2MwMjYzNjI2NjcAAAAAAAAAAAADCQAAAAAAAAIFAAAADSRzaXplMjYzNjI2NjcAAAAAAAAAAAAFAAAADSRhY2MwMjYzNjI2NjcEAAAADSRhY2MxMjYzNjI2NjcJAQAAAAlpc1N5bWJvbEcAAAACBQAAAA0kYWNjMDI2MzYyNjY3CQABkQAAAAIFAAAADSRsaXN0MjYzNjI2NjcAAAAAAAAAAAADCQAAAAAAAAIFAAAADSRzaXplMjYzNjI2NjcAAAAAAAAAAAEFAAAADSRhY2MxMjYzNjI2NjcEAAAADSRhY2MyMjYzNjI2NjcJAQAAAAlpc1N5bWJvbEcAAAACBQAAAA0kYWNjMTI2MzYyNjY3CQABkQAAAAIFAAAADSRsaXN0MjYzNjI2NjcAAAAAAAAAAAEDCQAAAAAAAAIFAAAADSRzaXplMjYzNjI2NjcAAAAAAAAAAAIFAAAADSRhY2MyMjYzNjI2NjcEAAAADSRhY2MzMjYzNjI2NjcJAQAAAAlpc1N5bWJvbEcAAAACBQAAAA0kYWNjMjI2MzYyNjY3CQABkQAAAAIFAAAADSRsaXN0MjYzNjI2NjcAAAAAAAAAAAIDCQAAAAAAAAIFAAAADSRzaXplMjYzNjI2NjcAAAAAAAAAAAMFAAAADSRhY2MzMjYzNjI2NjcEAAAADSRhY2M0MjYzNjI2NjcJAQAAAAlpc1N5bWJvbEcAAAACBQAAAA0kYWNjMzI2MzYyNjY3CQABkQAAAAIFAAAADSRsaXN0MjYzNjI2NjcAAAAAAAAAAAMDCQAAAAAAAAIFAAAADSRzaXplMjYzNjI2NjcAAAAAAAAAAAQFAAAADSRhY2M0MjYzNjI2NjcEAAAADSRhY2M1MjYzNjI2NjcJAQAAAAlpc1N5bWJvbEcAAAACBQAAAA0kYWNjNDI2MzYyNjY3CQABkQAAAAIFAAAADSRsaXN0MjYzNjI2NjcAAAAAAAAAAAQDCQAAAAAAAAIFAAAADSRzaXplMjYzNjI2NjcAAAAAAAAAAAUFAAAADSRhY2M1MjYzNjI2NjcEAAAADSRhY2M2MjYzNjI2NjcJAQAAAAlpc1N5bWJvbEcAAAACBQAAAA0kYWNjNTI2MzYyNjY3CQABkQAAAAIFAAAADSRsaXN0MjYzNjI2NjcAAAAAAAAAAAUDCQAAAAAAAAIFAAAADSRzaXplMjYzNjI2NjcAAAAAAAAAAAYFAAAADSRhY2M2MjYzNjI2NjcEAAAADSRhY2M3MjYzNjI2NjcJAQAAAAlpc1N5bWJvbEcAAAACBQAAAA0kYWNjNjI2MzYyNjY3CQABkQAAAAIFAAAADSRsaXN0MjYzNjI2NjcAAAAAAAAAAAYDCQAAAAAAAAIFAAAADSRzaXplMjYzNjI2NjcAAAAAAAAAAAcFAAAADSRhY2M3MjYzNjI2NjcEAAAADSRhY2M4MjYzNjI2NjcJAQAAAAlpc1N5bWJvbEcAAAACBQAAAA0kYWNjNzI2MzYyNjY3CQABkQAAAAIFAAAADSRsaXN0MjYzNjI2NjcAAAAAAAAAAAcDCQAAAAAAAAIFAAAADSRzaXplMjYzNjI2NjcAAAAAAAAAAAgFAAAADSRhY2M4MjYzNjI2NjcEAAAADSRhY2M5MjYzNjI2NjcJAQAAAAlpc1N5bWJvbEcAAAACBQAAAA0kYWNjODI2MzYyNjY3CQABkQAAAAIFAAAADSRsaXN0MjYzNjI2NjcA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ZW4EAAAAAXMJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQABLAAAAAICAAAAB2Fzc2V0c18FAAAAA2dlbgMJAAAAAAAAAgUAAAABcwIAAAAABQAAAANuaWwJAAS1AAAAAgUAAAABcwIAAAABLAEAAAAMY2FsY0ludGVyZXN0AAAAAwAAABBwcmV2aW91c0ludGVyZXN0AAAAFnByZXZpb3VzSW50ZXJlc3RIZWlnaHQAAAARdG90YWxGYXJtaW5nUG93ZXIJAABkAAAAAgUAAAAQcHJldmlvdXNJbnRlcmVzdAkAAGkAAAACCQAAaAAAAAIJAABoAAAAAgUAAAAFc2NhbGUJAQAAABFnZXRSZXdhcmRQZXJCbG9jawAAAAAJAABlAAAAAgUAAAAGaGVpZ2h0BQAAABZwcmV2aW91c0ludGVyZXN0SGVpZ2h0BQAAABF0b3RhbEZhcm1pbmdQb3dlcgEAAAASZ2V0Q3VycmVudEludGVyZXN0AAAAAAMJAABmAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABAgAAABJ0b3RhbF9mYXJtaW5nUG93ZXIAAAAAAAAAAAAEAAAAEHByZXZpb3VzSW50ZXJlc3QJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQIAAAAXdG90YWxfbGFzdENoZWNrSW50ZXJlc3QEAAAAFnByZXZpb3VzSW50ZXJlc3RIZWlnaHQJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQIAAAAddG90YWxfbGFzdENoZWNrSW50ZXJlc3RIZWlnaHQEAAAAEXRvdGFsRmFybWluZ1Bvd2VyCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAECAAAAEnRvdGFsX2Zhcm1pbmdQb3dlcgkBAAAADGNhbGNJbnRlcmVzdAAAAAMFAAAAEHByZXZpb3VzSW50ZXJlc3QFAAAAFnByZXZpb3VzSW50ZXJlc3RIZWlnaHQFAAAAEXRvdGFsRmFybWluZ1Bvd2VyAwkBAAAAAiE9AAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABAgAAABF0b3RhbF9zdGFydEhlaWdodAAAAAAAAAAAAAkBAAAADXRyeUdldEludGVnZXIAAAABAgAAABd0b3RhbF9sYXN0Q2hlY2tJbnRlcmVzdAkAAAIAAAABAgAAABxmYXJtaW5nIGlzIG5vdCBsYXVuY2hlZCwgeWV0AQAAABRjYWxjQXNzZXRSZXdhcmREZWx0YQAAAAMAAAAHYWRkcmVzcwAAAAdhc3NldElkAAAAEWFzc2V0RmFybWluZ1Bvd2VyBAAAABZsYXN0Q2hlY2tBc3NldEludGVyZXN0CQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIYWRkcmVzc18FAAAAB2FkZHJlc3MCAAAAB19hc3NldF8FAAAAB2Fzc2V0SWQCAAAAEl9sYXN0Q2hlY2tJbnRlcmVzdAQAAAAPY3VycmVudEludGVyZXN0CQEAAAASZ2V0Q3VycmVudEludGVyZXN0AAAAAAkAAGgAAAACBQAAABFhc3NldEZhcm1pbmdQb3dlcgkAAGUAAAACBQAAAA9jdXJyZW50SW50ZXJlc3QFAAAAFmxhc3RDaGVja0Fzc2V0SW50ZXJlc3QBAAAAFGFkZEFzc2V0SWRUb0dlbkVudHJ5AAAAAgAAAAdhc3NldElkAAAACGFzc2V0R2VuBAAAAAxjdXJyZW50VmFsdWUJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAHYXNzZXRzXwUAAAAIYXNzZXRHZW4CAAAAB19sb2NrZWQDCQAAAAAAAAIFAAAADGN1cnJlbnRWYWx1ZQIAAAAABQAAAAdhc3NldElkCQABLAAAAAIJAAEsAAAAAgUAAAAMY3VycmVudFZhbHVlAgAAAAEsBQAAAAdhc3NldElkAQAAAA5nZXRTdGFrZVJlc3VsdAAAAAMAAAAHYWRkcmVzcwAAAAdhc3NldElkAAAAEWFzc2V0RmFybWluZ1Bvd2VyBAAAAAVhc3NldAkAAlgAAAABBQAAAAdhc3NldElkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABJ0b3RhbF9mYXJtaW5nUG93ZXIJAABkAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABAgAAABJ0b3RhbF9mYXJtaW5nUG93ZXIFAAAAEWFzc2V0RmFybWluZ1Bvd2VyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABd0b3RhbF9sYXN0Q2hlY2tJbnRlcmVzdAkBAAAAEmdldEN1cnJlbnRJbnRlcmVzdAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAHXRvdGFsX2xhc3RDaGVja0ludGVyZXN0SGVpZ2h0BQAAAAZoZWlnaHQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIYWRkcmVzc18FAAAAB2FkZHJlc3MCAAAAB19hc3NldF8FAAAABWFzc2V0AgAAAA1fZmFybWluZ1Bvd2VyBQAAABFhc3NldEZhcm1pbmdQb3dlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhhZGRyZXNzXwUAAAAHYWRkcmVzcwIAAAAHX2Fzc2V0XwUAAAAFYXNzZXQCAAAAEl9sYXN0Q2hlY2tJbnRlcmVzdAkBAAAAEmdldEN1cnJlbnRJbnRlcmVzdAAAAAAFAAAAA25pbAEAAAAQZ2V0VW5zdGFrZVJlc3VsdAAAAAUAAAAHYWRkcmVzcwAAAAdhc3NldElkAAAAC3Jld2FyZERlbHRhAAAAD3dpdGhkcmF3bkFtb3VudAAAABFhc3NldEZhcm1pbmdQb3dlcgQAAAAFYXNzZXQJAAJYAAAAAQUAAAAHYXNzZXRJZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAASdG90YWxfZmFybWluZ1Bvd2VyCQAAZQAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQIAAAASdG90YWxfZmFybWluZ1Bvd2VyBQAAABFhc3NldEZhcm1pbmdQb3dlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAXdG90YWxfbGFzdENoZWNrSW50ZXJlc3QJAQAAABJnZXRDdXJyZW50SW50ZXJlc3QAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAB10b3RhbF9sYXN0Q2hlY2tJbnRlcmVzdEhlaWdodAUAAAAGaGVpZ2h0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAA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XzIEAAAAEGFzc2V0UmV3YXJkRGVsdGEJAQAAABRjYWxjQXNzZXRSZXdhcmREZWx0YQAAAAMFAAAAB2FkZHJlc3MJAAJYAAAAAQUAAAAHYXNzZXRJZAUAAAARYXNzZXRGYXJtaW5nUG93ZXIJAAROAAAAAgkBAAAADmdldFN0YWtlUmVzdWx0AAAAAwUAAAAHYWRkcmVzcwUAAAAHYXNzZXRJZAUAAAARYXNzZXRGYXJtaW5nUG93ZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACGFkZHJlc3NfCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgIAAAASX3BlcmNoZXNBdmFpbGFibGVfBQAAAAVjb2xvcgkAAGUAAAACBQAAABBhdmFpbGFibGVQZXJjaGVzAAAAAAAAAAABBQAAAANuaWwAAAABaQEAAAAKdW5zdGFrZU5GVAAAAAEAAAAFYXNzZXQDCQAAZgAAAAIJAQAAAAhpc0xvY2tlZAAAAAAAAAAAAAAAAAAJAAACAAAAAQIAAAAlRUdHIG9wZXJhdGlvbnMgYXJlIHRlbXBvcmFyaWx5IGxvY2tlZAQAAAAHYXNzZXRJZAkAAlkAAAABBQAAAAVhc3NldAQAAAAHYWRkcmVzcwkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAEWFzc2V0RmFybWluZ1Bvd2VyCQEAAAAdZ2V0TGFzdEtub3duQXNzZXRGYXJtaW5nUG93ZXIAAAACBQAAAAdhZGRyZXNzBQAAAAVhc3NldAQAAAAQYXNzZXRSZXdhcmREZWx0YQkBAAAAFGNhbGNBc3NldFJld2FyZERlbHRhAAAAAwUAAAAHYWRkcmVzcwUAAAAFYXNzZXQFAAAAEWFzc2V0RmFybWluZ1Bvd2VyBAAAAAxmYXJtZWRBbW91bnQJAABkAAAAAgUAAAAQYXNzZXRSZXdhcmREZWx0YQkBAAAADXRyeUdldEludGVnZXIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACGFkZHJlc3NfBQAAAAdhZGRyZXNzAgAAAAdfYXNzZXRfBQAAAAVhc3NldAIAAAAWX2xhc3RDaGVja0Zhcm1lZEFtb3VudAQAAAAP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", "height": 2767828, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BeqMr7KtTHcN1tLpcaSLnqbbvboLCAmEGHnzKCqMDZcy Next: E8natWzahpKPt8XLeBjqAZgMJyY4E6Ked8RfE6QsPXwU Diff:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let eggsAssetId = base58' | |
4 | + | let eggsAssetId = base58'3v7zGkeHS6KrsvmTRzEzvCxm5cdzkCtM7z5cM6efcjCB' | |
5 | 5 | ||
6 | - | let perchPrice = 100 | |
6 | + | let perchPrice = (100 * 1000000) | |
7 | 7 | ||
8 | 8 | let scale = 10000 | |
9 | 9 | ||
99 | 99 | func getGen (assetName) = { | |
100 | 100 | let genotype = split(dropRight(drop(assetName, 5), 3), "") | |
101 | 101 | (((((((getAmountOrClear((toString({ | |
102 | - | let $ | |
103 | - | let $ | |
104 | - | let $ | |
105 | - | if (($ | |
106 | - | then $ | |
102 | + | let $list22242255 = genotype | |
103 | + | let $size22242255 = size($list22242255) | |
104 | + | let $acc022242255 = 0 | |
105 | + | if (($size22242255 == 0)) | |
106 | + | then $acc022242255 | |
107 | 107 | else { | |
108 | - | let $ | |
109 | - | if (($ | |
110 | - | then $ | |
108 | + | let $acc122242255 = isSymbolA($acc022242255, $list22242255[0]) | |
109 | + | if (($size22242255 == 1)) | |
110 | + | then $acc122242255 | |
111 | 111 | else { | |
112 | - | let $ | |
113 | - | if (($ | |
114 | - | then $ | |
112 | + | let $acc222242255 = isSymbolA($acc122242255, $list22242255[1]) | |
113 | + | if (($size22242255 == 2)) | |
114 | + | then $acc222242255 | |
115 | 115 | else { | |
116 | - | let $ | |
117 | - | if (($ | |
118 | - | then $ | |
116 | + | let $acc322242255 = isSymbolA($acc222242255, $list22242255[2]) | |
117 | + | if (($size22242255 == 3)) | |
118 | + | then $acc322242255 | |
119 | 119 | else { | |
120 | - | let $ | |
121 | - | if (($ | |
122 | - | then $ | |
120 | + | let $acc422242255 = isSymbolA($acc322242255, $list22242255[3]) | |
121 | + | if (($size22242255 == 4)) | |
122 | + | then $acc422242255 | |
123 | 123 | else { | |
124 | - | let $ | |
125 | - | if (($ | |
126 | - | then $ | |
124 | + | let $acc522242255 = isSymbolA($acc422242255, $list22242255[4]) | |
125 | + | if (($size22242255 == 5)) | |
126 | + | then $acc522242255 | |
127 | 127 | else { | |
128 | - | let $ | |
129 | - | if (($ | |
130 | - | then $ | |
128 | + | let $acc622242255 = isSymbolA($acc522242255, $list22242255[5]) | |
129 | + | if (($size22242255 == 6)) | |
130 | + | then $acc622242255 | |
131 | 131 | else { | |
132 | - | let $ | |
133 | - | if (($ | |
134 | - | then $ | |
132 | + | let $acc722242255 = isSymbolA($acc622242255, $list22242255[6]) | |
133 | + | if (($size22242255 == 7)) | |
134 | + | then $acc722242255 | |
135 | 135 | else { | |
136 | - | let $ | |
137 | - | if (($ | |
138 | - | then $ | |
136 | + | let $acc822242255 = isSymbolA($acc722242255, $list22242255[7]) | |
137 | + | if (($size22242255 == 8)) | |
138 | + | then $acc822242255 | |
139 | 139 | else { | |
140 | - | let $ | |
140 | + | let $acc922242255 = isSymbolA($acc822242255, $list22242255[8]) | |
141 | 141 | throw("List size exceed 8") | |
142 | 142 | } | |
143 | 143 | } | |
149 | 149 | } | |
150 | 150 | } | |
151 | 151 | }) + "A")) + getAmountOrClear((toString({ | |
152 | - | let $ | |
153 | - | let $ | |
154 | - | let $ | |
155 | - | if (($ | |
156 | - | then $ | |
152 | + | let $list22922323 = genotype | |
153 | + | let $size22922323 = size($list22922323) | |
154 | + | let $acc022922323 = 0 | |
155 | + | if (($size22922323 == 0)) | |
156 | + | then $acc022922323 | |
157 | 157 | else { | |
158 | - | let $ | |
159 | - | if (($ | |
160 | - | then $ | |
158 | + | let $acc122922323 = isSymbolB($acc022922323, $list22922323[0]) | |
159 | + | if (($size22922323 == 1)) | |
160 | + | then $acc122922323 | |
161 | 161 | else { | |
162 | - | let $ | |
163 | - | if (($ | |
164 | - | then $ | |
162 | + | let $acc222922323 = isSymbolB($acc122922323, $list22922323[1]) | |
163 | + | if (($size22922323 == 2)) | |
164 | + | then $acc222922323 | |
165 | 165 | else { | |
166 | - | let $ | |
167 | - | if (($ | |
168 | - | then $ | |
166 | + | let $acc322922323 = isSymbolB($acc222922323, $list22922323[2]) | |
167 | + | if (($size22922323 == 3)) | |
168 | + | then $acc322922323 | |
169 | 169 | else { | |
170 | - | let $ | |
171 | - | if (($ | |
172 | - | then $ | |
170 | + | let $acc422922323 = isSymbolB($acc322922323, $list22922323[3]) | |
171 | + | if (($size22922323 == 4)) | |
172 | + | then $acc422922323 | |
173 | 173 | else { | |
174 | - | let $ | |
175 | - | if (($ | |
176 | - | then $ | |
174 | + | let $acc522922323 = isSymbolB($acc422922323, $list22922323[4]) | |
175 | + | if (($size22922323 == 5)) | |
176 | + | then $acc522922323 | |
177 | 177 | else { | |
178 | - | let $ | |
179 | - | if (($ | |
180 | - | then $ | |
178 | + | let $acc622922323 = isSymbolB($acc522922323, $list22922323[5]) | |
179 | + | if (($size22922323 == 6)) | |
180 | + | then $acc622922323 | |
181 | 181 | else { | |
182 | - | let $ | |
183 | - | if (($ | |
184 | - | then $ | |
182 | + | let $acc722922323 = isSymbolB($acc622922323, $list22922323[6]) | |
183 | + | if (($size22922323 == 7)) | |
184 | + | then $acc722922323 | |
185 | 185 | else { | |
186 | - | let $ | |
187 | - | if (($ | |
188 | - | then $ | |
186 | + | let $acc822922323 = isSymbolB($acc722922323, $list22922323[7]) | |
187 | + | if (($size22922323 == 8)) | |
188 | + | then $acc822922323 | |
189 | 189 | else { | |
190 | - | let $ | |
190 | + | let $acc922922323 = isSymbolB($acc822922323, $list22922323[8]) | |
191 | 191 | throw("List size exceed 8") | |
192 | 192 | } | |
193 | 193 | } | |
199 | 199 | } | |
200 | 200 | } | |
201 | 201 | }) + "B"))) + getAmountOrClear((toString({ | |
202 | - | let $ | |
203 | - | let $ | |
204 | - | let $ | |
205 | - | if (($ | |
206 | - | then $ | |
202 | + | let $list23602391 = genotype | |
203 | + | let $size23602391 = size($list23602391) | |
204 | + | let $acc023602391 = 0 | |
205 | + | if (($size23602391 == 0)) | |
206 | + | then $acc023602391 | |
207 | 207 | else { | |
208 | - | let $ | |
209 | - | if (($ | |
210 | - | then $ | |
208 | + | let $acc123602391 = isSymbolC($acc023602391, $list23602391[0]) | |
209 | + | if (($size23602391 == 1)) | |
210 | + | then $acc123602391 | |
211 | 211 | else { | |
212 | - | let $ | |
213 | - | if (($ | |
214 | - | then $ | |
212 | + | let $acc223602391 = isSymbolC($acc123602391, $list23602391[1]) | |
213 | + | if (($size23602391 == 2)) | |
214 | + | then $acc223602391 | |
215 | 215 | else { | |
216 | - | let $ | |
217 | - | if (($ | |
218 | - | then $ | |
216 | + | let $acc323602391 = isSymbolC($acc223602391, $list23602391[2]) | |
217 | + | if (($size23602391 == 3)) | |
218 | + | then $acc323602391 | |
219 | 219 | else { | |
220 | - | let $ | |
221 | - | if (($ | |
222 | - | then $ | |
220 | + | let $acc423602391 = isSymbolC($acc323602391, $list23602391[3]) | |
221 | + | if (($size23602391 == 4)) | |
222 | + | then $acc423602391 | |
223 | 223 | else { | |
224 | - | let $ | |
225 | - | if (($ | |
226 | - | then $ | |
224 | + | let $acc523602391 = isSymbolC($acc423602391, $list23602391[4]) | |
225 | + | if (($size23602391 == 5)) | |
226 | + | then $acc523602391 | |
227 | 227 | else { | |
228 | - | let $ | |
229 | - | if (($ | |
230 | - | then $ | |
228 | + | let $acc623602391 = isSymbolC($acc523602391, $list23602391[5]) | |
229 | + | if (($size23602391 == 6)) | |
230 | + | then $acc623602391 | |
231 | 231 | else { | |
232 | - | let $ | |
233 | - | if (($ | |
234 | - | then $ | |
232 | + | let $acc723602391 = isSymbolC($acc623602391, $list23602391[6]) | |
233 | + | if (($size23602391 == 7)) | |
234 | + | then $acc723602391 | |
235 | 235 | else { | |
236 | - | let $ | |
237 | - | if (($ | |
238 | - | then $ | |
236 | + | let $acc823602391 = isSymbolC($acc723602391, $list23602391[7]) | |
237 | + | if (($size23602391 == 8)) | |
238 | + | then $acc823602391 | |
239 | 239 | else { | |
240 | - | let $ | |
240 | + | let $acc923602391 = isSymbolC($acc823602391, $list23602391[8]) | |
241 | 241 | throw("List size exceed 8") | |
242 | 242 | } | |
243 | 243 | } | |
249 | 249 | } | |
250 | 250 | } | |
251 | 251 | }) + "C"))) + getAmountOrClear((toString({ | |
252 | - | let $ | |
253 | - | let $ | |
254 | - | let $ | |
255 | - | if (($ | |
256 | - | then $ | |
252 | + | let $list24302461 = genotype | |
253 | + | let $size24302461 = size($list24302461) | |
254 | + | let $acc024302461 = 0 | |
255 | + | if (($size24302461 == 0)) | |
256 | + | then $acc024302461 | |
257 | 257 | else { | |
258 | - | let $ | |
259 | - | if (($ | |
260 | - | then $ | |
258 | + | let $acc124302461 = isSymbolD($acc024302461, $list24302461[0]) | |
259 | + | if (($size24302461 == 1)) | |
260 | + | then $acc124302461 | |
261 | 261 | else { | |
262 | - | let $ | |
263 | - | if (($ | |
264 | - | then $ | |
262 | + | let $acc224302461 = isSymbolD($acc124302461, $list24302461[1]) | |
263 | + | if (($size24302461 == 2)) | |
264 | + | then $acc224302461 | |
265 | 265 | else { | |
266 | - | let $ | |
267 | - | if (($ | |
268 | - | then $ | |
266 | + | let $acc324302461 = isSymbolD($acc224302461, $list24302461[2]) | |
267 | + | if (($size24302461 == 3)) | |
268 | + | then $acc324302461 | |
269 | 269 | else { | |
270 | - | let $ | |
271 | - | if (($ | |
272 | - | then $ | |
270 | + | let $acc424302461 = isSymbolD($acc324302461, $list24302461[3]) | |
271 | + | if (($size24302461 == 4)) | |
272 | + | then $acc424302461 | |
273 | 273 | else { | |
274 | - | let $ | |
275 | - | if (($ | |
276 | - | then $ | |
274 | + | let $acc524302461 = isSymbolD($acc424302461, $list24302461[4]) | |
275 | + | if (($size24302461 == 5)) | |
276 | + | then $acc524302461 | |
277 | 277 | else { | |
278 | - | let $ | |
279 | - | if (($ | |
280 | - | then $ | |
278 | + | let $acc624302461 = isSymbolD($acc524302461, $list24302461[5]) | |
279 | + | if (($size24302461 == 6)) | |
280 | + | then $acc624302461 | |
281 | 281 | else { | |
282 | - | let $ | |
283 | - | if (($ | |
284 | - | then $ | |
282 | + | let $acc724302461 = isSymbolD($acc624302461, $list24302461[6]) | |
283 | + | if (($size24302461 == 7)) | |
284 | + | then $acc724302461 | |
285 | 285 | else { | |
286 | - | let $ | |
287 | - | if (($ | |
288 | - | then $ | |
286 | + | let $acc824302461 = isSymbolD($acc724302461, $list24302461[7]) | |
287 | + | if (($size24302461 == 8)) | |
288 | + | then $acc824302461 | |
289 | 289 | else { | |
290 | - | let $ | |
290 | + | let $acc924302461 = isSymbolD($acc824302461, $list24302461[8]) | |
291 | 291 | throw("List size exceed 8") | |
292 | 292 | } | |
293 | 293 | } | |
299 | 299 | } | |
300 | 300 | } | |
301 | 301 | }) + "D"))) + getAmountOrClear((toString({ | |
302 | - | let $ | |
303 | - | let $ | |
304 | - | let $ | |
305 | - | if (($ | |
306 | - | then $ | |
302 | + | let $list24982529 = genotype | |
303 | + | let $size24982529 = size($list24982529) | |
304 | + | let $acc024982529 = 0 | |
305 | + | if (($size24982529 == 0)) | |
306 | + | then $acc024982529 | |
307 | 307 | else { | |
308 | - | let $ | |
309 | - | if (($ | |
310 | - | then $ | |
308 | + | let $acc124982529 = isSymbolE($acc024982529, $list24982529[0]) | |
309 | + | if (($size24982529 == 1)) | |
310 | + | then $acc124982529 | |
311 | 311 | else { | |
312 | - | let $ | |
313 | - | if (($ | |
314 | - | then $ | |
312 | + | let $acc224982529 = isSymbolE($acc124982529, $list24982529[1]) | |
313 | + | if (($size24982529 == 2)) | |
314 | + | then $acc224982529 | |
315 | 315 | else { | |
316 | - | let $ | |
317 | - | if (($ | |
318 | - | then $ | |
316 | + | let $acc324982529 = isSymbolE($acc224982529, $list24982529[2]) | |
317 | + | if (($size24982529 == 3)) | |
318 | + | then $acc324982529 | |
319 | 319 | else { | |
320 | - | let $ | |
321 | - | if (($ | |
322 | - | then $ | |
320 | + | let $acc424982529 = isSymbolE($acc324982529, $list24982529[3]) | |
321 | + | if (($size24982529 == 4)) | |
322 | + | then $acc424982529 | |
323 | 323 | else { | |
324 | - | let $ | |
325 | - | if (($ | |
326 | - | then $ | |
324 | + | let $acc524982529 = isSymbolE($acc424982529, $list24982529[4]) | |
325 | + | if (($size24982529 == 5)) | |
326 | + | then $acc524982529 | |
327 | 327 | else { | |
328 | - | let $ | |
329 | - | if (($ | |
330 | - | then $ | |
328 | + | let $acc624982529 = isSymbolE($acc524982529, $list24982529[5]) | |
329 | + | if (($size24982529 == 6)) | |
330 | + | then $acc624982529 | |
331 | 331 | else { | |
332 | - | let $ | |
333 | - | if (($ | |
334 | - | then $ | |
332 | + | let $acc724982529 = isSymbolE($acc624982529, $list24982529[6]) | |
333 | + | if (($size24982529 == 7)) | |
334 | + | then $acc724982529 | |
335 | 335 | else { | |
336 | - | let $ | |
337 | - | if (($ | |
338 | - | then $ | |
336 | + | let $acc824982529 = isSymbolE($acc724982529, $list24982529[7]) | |
337 | + | if (($size24982529 == 8)) | |
338 | + | then $acc824982529 | |
339 | 339 | else { | |
340 | - | let $ | |
340 | + | let $acc924982529 = isSymbolE($acc824982529, $list24982529[8]) | |
341 | 341 | throw("List size exceed 8") | |
342 | 342 | } | |
343 | 343 | } | |
349 | 349 | } | |
350 | 350 | } | |
351 | 351 | }) + "E"))) + getAmountOrClear((toString({ | |
352 | - | let $ | |
353 | - | let $ | |
354 | - | let $ | |
355 | - | if (($ | |
356 | - | then $ | |
352 | + | let $list25662597 = genotype | |
353 | + | let $size25662597 = size($list25662597) | |
354 | + | let $acc025662597 = 0 | |
355 | + | if (($size25662597 == 0)) | |
356 | + | then $acc025662597 | |
357 | 357 | else { | |
358 | - | let $ | |
359 | - | if (($ | |
360 | - | then $ | |
358 | + | let $acc125662597 = isSymbolF($acc025662597, $list25662597[0]) | |
359 | + | if (($size25662597 == 1)) | |
360 | + | then $acc125662597 | |
361 | 361 | else { | |
362 | - | let $ | |
363 | - | if (($ | |
364 | - | then $ | |
362 | + | let $acc225662597 = isSymbolF($acc125662597, $list25662597[1]) | |
363 | + | if (($size25662597 == 2)) | |
364 | + | then $acc225662597 | |
365 | 365 | else { | |
366 | - | let $ | |
367 | - | if (($ | |
368 | - | then $ | |
366 | + | let $acc325662597 = isSymbolF($acc225662597, $list25662597[2]) | |
367 | + | if (($size25662597 == 3)) | |
368 | + | then $acc325662597 | |
369 | 369 | else { | |
370 | - | let $ | |
371 | - | if (($ | |
372 | - | then $ | |
370 | + | let $acc425662597 = isSymbolF($acc325662597, $list25662597[3]) | |
371 | + | if (($size25662597 == 4)) | |
372 | + | then $acc425662597 | |
373 | 373 | else { | |
374 | - | let $ | |
375 | - | if (($ | |
376 | - | then $ | |
374 | + | let $acc525662597 = isSymbolF($acc425662597, $list25662597[4]) | |
375 | + | if (($size25662597 == 5)) | |
376 | + | then $acc525662597 | |
377 | 377 | else { | |
378 | - | let $ | |
379 | - | if (($ | |
380 | - | then $ | |
378 | + | let $acc625662597 = isSymbolF($acc525662597, $list25662597[5]) | |
379 | + | if (($size25662597 == 6)) | |
380 | + | then $acc625662597 | |
381 | 381 | else { | |
382 | - | let $ | |
383 | - | if (($ | |
384 | - | then $ | |
382 | + | let $acc725662597 = isSymbolF($acc625662597, $list25662597[6]) | |
383 | + | if (($size25662597 == 7)) | |
384 | + | then $acc725662597 | |
385 | 385 | else { | |
386 | - | let $ | |
387 | - | if (($ | |
388 | - | then $ | |
386 | + | let $acc825662597 = isSymbolF($acc725662597, $list25662597[7]) | |
387 | + | if (($size25662597 == 8)) | |
388 | + | then $acc825662597 | |
389 | 389 | else { | |
390 | - | let $ | |
390 | + | let $acc925662597 = isSymbolF($acc825662597, $list25662597[8]) | |
391 | 391 | throw("List size exceed 8") | |
392 | 392 | } | |
393 | 393 | } | |
399 | 399 | } | |
400 | 400 | } | |
401 | 401 | }) + "F"))) + getAmountOrClear((toString({ | |
402 | - | let $ | |
403 | - | let $ | |
404 | - | let $ | |
405 | - | if (($ | |
406 | - | then $ | |
402 | + | let $list26362667 = genotype | |
403 | + | let $size26362667 = size($list26362667) | |
404 | + | let $acc026362667 = 0 | |
405 | + | if (($size26362667 == 0)) | |
406 | + | then $acc026362667 | |
407 | 407 | else { | |
408 | - | let $ | |
409 | - | if (($ | |
410 | - | then $ | |
408 | + | let $acc126362667 = isSymbolG($acc026362667, $list26362667[0]) | |
409 | + | if (($size26362667 == 1)) | |
410 | + | then $acc126362667 | |
411 | 411 | else { | |
412 | - | let $ | |
413 | - | if (($ | |
414 | - | then $ | |
412 | + | let $acc226362667 = isSymbolG($acc126362667, $list26362667[1]) | |
413 | + | if (($size26362667 == 2)) | |
414 | + | then $acc226362667 | |
415 | 415 | else { | |
416 | - | let $ | |
417 | - | if (($ | |
418 | - | then $ | |
416 | + | let $acc326362667 = isSymbolG($acc226362667, $list26362667[2]) | |
417 | + | if (($size26362667 == 3)) | |
418 | + | then $acc326362667 | |
419 | 419 | else { | |
420 | - | let $ | |
421 | - | if (($ | |
422 | - | then $ | |
420 | + | let $acc426362667 = isSymbolG($acc326362667, $list26362667[3]) | |
421 | + | if (($size26362667 == 4)) | |
422 | + | then $acc426362667 | |
423 | 423 | else { | |
424 | - | let $ | |
425 | - | if (($ | |
426 | - | then $ | |
424 | + | let $acc526362667 = isSymbolG($acc426362667, $list26362667[4]) | |
425 | + | if (($size26362667 == 5)) | |
426 | + | then $acc526362667 | |
427 | 427 | else { | |
428 | - | let $ | |
429 | - | if (($ | |
430 | - | then $ | |
428 | + | let $acc626362667 = isSymbolG($acc526362667, $list26362667[5]) | |
429 | + | if (($size26362667 == 6)) | |
430 | + | then $acc626362667 | |
431 | 431 | else { | |
432 | - | let $ | |
433 | - | if (($ | |
434 | - | then $ | |
432 | + | let $acc726362667 = isSymbolG($acc626362667, $list26362667[6]) | |
433 | + | if (($size26362667 == 7)) | |
434 | + | then $acc726362667 | |
435 | 435 | else { | |
436 | - | let $ | |
437 | - | if (($ | |
438 | - | then $ | |
436 | + | let $acc826362667 = isSymbolG($acc726362667, $list26362667[7]) | |
437 | + | if (($size26362667 == 8)) | |
438 | + | then $acc826362667 | |
439 | 439 | else { | |
440 | - | let $ | |
440 | + | let $acc926362667 = isSymbolG($acc826362667, $list26362667[8]) | |
441 | 441 | throw("List size exceed 8") | |
442 | 442 | } | |
443 | 443 | } | |
449 | 449 | } | |
450 | 450 | } | |
451 | 451 | }) + "G"))) + getAmountOrClear((toString({ | |
452 | - | let $ | |
453 | - | let $ | |
454 | - | let $ | |
455 | - | if (($ | |
456 | - | then $ | |
452 | + | let $list27042735 = genotype | |
453 | + | let $size27042735 = size($list27042735) | |
454 | + | let $acc027042735 = 0 | |
455 | + | if (($size27042735 == 0)) | |
456 | + | then $acc027042735 | |
457 | 457 | else { | |
458 | - | let $ | |
459 | - | if (($ | |
460 | - | then $ | |
458 | + | let $acc127042735 = isSymbolH($acc027042735, $list27042735[0]) | |
459 | + | if (($size27042735 == 1)) | |
460 | + | then $acc127042735 | |
461 | 461 | else { | |
462 | - | let $ | |
463 | - | if (($ | |
464 | - | then $ | |
462 | + | let $acc227042735 = isSymbolH($acc127042735, $list27042735[1]) | |
463 | + | if (($size27042735 == 2)) | |
464 | + | then $acc227042735 | |
465 | 465 | else { | |
466 | - | let $ | |
467 | - | if (($ | |
468 | - | then $ | |
466 | + | let $acc327042735 = isSymbolH($acc227042735, $list27042735[2]) | |
467 | + | if (($size27042735 == 3)) | |
468 | + | then $acc327042735 | |
469 | 469 | else { | |
470 | - | let $ | |
471 | - | if (($ | |
472 | - | then $ | |
470 | + | let $acc427042735 = isSymbolH($acc327042735, $list27042735[3]) | |
471 | + | if (($size27042735 == 4)) | |
472 | + | then $acc427042735 | |
473 | 473 | else { | |
474 | - | let $ | |
475 | - | if (($ | |
476 | - | then $ | |
474 | + | let $acc527042735 = isSymbolH($acc427042735, $list27042735[4]) | |
475 | + | if (($size27042735 == 5)) | |
476 | + | then $acc527042735 | |
477 | 477 | else { | |
478 | - | let $ | |
479 | - | if (($ | |
480 | - | then $ | |
478 | + | let $acc627042735 = isSymbolH($acc527042735, $list27042735[5]) | |
479 | + | if (($size27042735 == 6)) | |
480 | + | then $acc627042735 | |
481 | 481 | else { | |
482 | - | let $ | |
483 | - | if (($ | |
484 | - | then $ | |
482 | + | let $acc727042735 = isSymbolH($acc627042735, $list27042735[6]) | |
483 | + | if (($size27042735 == 7)) | |
484 | + | then $acc727042735 | |
485 | 485 | else { | |
486 | - | let $ | |
487 | - | if (($ | |
488 | - | then $ | |
486 | + | let $acc827042735 = isSymbolH($acc727042735, $list27042735[7]) | |
487 | + | if (($size27042735 == 8)) | |
488 | + | then $acc827042735 | |
489 | 489 | else { | |
490 | - | let $ | |
490 | + | let $acc927042735 = isSymbolH($acc827042735, $list27042735[8]) | |
491 | 491 | throw("List size exceed 8") | |
492 | 492 | } | |
493 | 493 | } | |
590 | 590 | ||
591 | 591 | @Callable(i) | |
592 | 592 | func buyPerch (color,refererAddress) = if ((isLocked() > 0)) | |
593 | - | then throw(" | |
593 | + | then throw("EGG operations are temporarily locked") | |
594 | 594 | else if ((0 > value(indexOf(["B", "R", "G", "Y"], color)))) | |
595 | 595 | then throw("you need to set color properly") | |
596 | 596 | else { | |
600 | 600 | else if ((firstPayment.amount != perchPrice)) | |
601 | 601 | then throw(("To buy a perch you currently need the following amount of EGGlets: " + toString(perchPrice))) | |
602 | 602 | else { | |
603 | - | let refererRewardForPerch = | |
603 | + | let refererRewardForPerch = fraction(firstPayment.amount, RefererReward, 100) | |
604 | 604 | let refCall = invoke(Address(refContractAddress), "refPayment", [refererAddress], [AttachedPayment(eggsAssetId, refererRewardForPerch)]) | |
605 | 605 | if ((refCall == refCall)) | |
606 | 606 | then { | |
630 | 630 | ||
631 | 631 | ||
632 | 632 | @Callable(i) | |
633 | - | func stakeNFT () = { | |
634 | - | let assetId = value(value(i.payments[0]).assetId) | |
635 | - | let address = toString(i.caller) | |
636 | - | let color = takeRight(value(assetInfo(assetId)).name, 1) | |
637 | - | let availablePerches = tryGetInteger(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color)) | |
638 | - | if ((0 >= availablePerches)) | |
639 | - | then throw(("no perches available for the color " + color)) | |
640 | - | else { | |
641 | - | let $t088378902 = getAssetFarmingPower(assetId) | |
642 | - | let assetGen = $t088378902._1 | |
643 | - | let assetFarmingPower = $t088378902._2 | |
644 | - | let assetRewardDelta = calcAssetRewardDelta(address, toBase58String(assetId), assetFarmingPower) | |
645 | - | (getStakeResult(address, assetId, assetFarmingPower) ++ [IntegerEntry(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color), (availablePerches - 1))]) | |
646 | - | } | |
647 | - | } | |
633 | + | func stakeNFT () = if ((isLocked() > 0)) | |
634 | + | then throw("EGG operations are temporarily locked") | |
635 | + | else { | |
636 | + | let assetId = value(value(i.payments[0]).assetId) | |
637 | + | let address = toString(i.caller) | |
638 | + | let color = takeRight(value(assetInfo(assetId)).name, 1) | |
639 | + | let availablePerches = tryGetInteger(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color)) | |
640 | + | if ((0 >= availablePerches)) | |
641 | + | then throw(("no perches available for the color " + color)) | |
642 | + | else { | |
643 | + | let $t089939058 = getAssetFarmingPower(assetId) | |
644 | + | let assetGen = $t089939058._1 | |
645 | + | let assetFarmingPower = $t089939058._2 | |
646 | + | let assetRewardDelta = calcAssetRewardDelta(address, toBase58String(assetId), assetFarmingPower) | |
647 | + | (getStakeResult(address, assetId, assetFarmingPower) ++ [IntegerEntry(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color), (availablePerches - 1))]) | |
648 | + | } | |
649 | + | } | |
648 | 650 | ||
649 | 651 | ||
650 | 652 | ||
651 | 653 | @Callable(i) | |
652 | 654 | func unstakeNFT (asset) = if ((isLocked() > 0)) | |
653 | - | then throw(" | |
655 | + | then throw("EGG operations are temporarily locked") | |
654 | 656 | else { | |
655 | 657 | let assetId = fromBase58String(asset) | |
656 | 658 | let address = toString(i.caller) | |
658 | 660 | let assetRewardDelta = calcAssetRewardDelta(address, asset, assetFarmingPower) | |
659 | 661 | let farmedAmount = (assetRewardDelta + tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_lastCheckFarmedAmount"))) | |
660 | 662 | let withdrawnAmount = tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_withdrawnAmount")) | |
661 | - | let reward = ((farmedAmount - withdrawnAmount) / (scale * 100)) | |
663 | + | let reward = (((farmedAmount - withdrawnAmount) / (scale * 100)) * 1000000) | |
662 | 664 | let color = takeRight(value(assetInfo(assetId)).name, 1) | |
663 | 665 | if ((0 >= assetFarmingPower)) | |
664 | 666 | then throw("asset not available") | |
666 | 668 | then throw("use another function to unstake Jackpot NFT") | |
667 | 669 | else { | |
668 | 670 | let result = getUnstakeResult(address, assetId, assetRewardDelta, reward, assetFarmingPower) | |
669 | - | (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)]) | |
671 | + | $Tuple2((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)]), reward) | |
670 | 672 | } | |
671 | 673 | } | |
672 | 674 | ||
673 | 675 | ||
674 | 676 | ||
675 | 677 | @Callable(i) | |
676 | - | func stakeJackpot (color) = { | |
677 | - | let assetId = value(value(i.payments[0]).assetId) | |
678 | - | let address = toString(i.caller) | |
679 | - | let availablePerches = tryGetInteger(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color)) | |
680 | - | let assetIssuer = value(assetInfo(assetId)).issuer.bytes | |
681 | - | if (if ((assetIssuer == incubatorAddress)) | |
682 | - | then true | |
683 | - | else (assetIssuer == breederAddress)) | |
684 | - | then if ((takeRight(value(value(assetInfo(assetId)).name), 1) != "U")) | |
685 | - | then throw("jackpot only") | |
686 | - | else if ((0 >= availablePerches)) | |
687 | - | then throw(("no perches available for the color " + color)) | |
688 | - | else (getStakeResult(address, assetId, 100) ++ [IntegerEntry(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color), (availablePerches - 1)), StringEntry((((("address_" + toString(i.caller)) + "_asset_") + toBase58String(assetId)) + "_perchColor"), color)]) | |
689 | - | else throw("asset is not valid") | |
690 | - | } | |
678 | + | func stakeJackpot (color) = if ((isLocked() > 0)) | |
679 | + | then throw("EGG operations are temporarily locked") | |
680 | + | else { | |
681 | + | let assetId = value(value(i.payments[0]).assetId) | |
682 | + | let address = toString(i.caller) | |
683 | + | let availablePerches = tryGetInteger(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color)) | |
684 | + | let assetIssuer = value(assetInfo(assetId)).issuer.bytes | |
685 | + | if (if ((assetIssuer == incubatorAddress)) | |
686 | + | then true | |
687 | + | else (assetIssuer == breederAddress)) | |
688 | + | then if ((takeRight(value(value(assetInfo(assetId)).name), 1) != "U")) | |
689 | + | then throw("jackpot only") | |
690 | + | else if ((0 >= availablePerches)) | |
691 | + | then throw(("no perches available for the color " + color)) | |
692 | + | else (getStakeResult(address, assetId, 100) ++ [IntegerEntry(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color), (availablePerches - 1)), StringEntry((((("address_" + toString(i.caller)) + "_asset_") + toBase58String(assetId)) + "_perchColor"), color)]) | |
693 | + | else throw("asset is not valid") | |
694 | + | } | |
691 | 695 | ||
692 | 696 | ||
693 | 697 | ||
694 | 698 | @Callable(i) | |
695 | 699 | func unstakeJackpot (asset) = if ((isLocked() > 0)) | |
696 | - | then throw(" | |
700 | + | then throw("EGG operations are temporarily locked") | |
697 | 701 | else { | |
698 | 702 | let assetId = fromBase58String(asset) | |
699 | 703 | let address = toString(i.caller) | |
702 | 706 | let assetRewardDelta = calcAssetRewardDelta(address, asset, assetFarmingPower) | |
703 | 707 | let farmedAmount = (assetRewardDelta + tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_lastCheckFarmedAmount"))) | |
704 | 708 | let withdrawnAmount = tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_withdrawnAmount")) | |
705 | - | let reward = ((farmedAmount - withdrawnAmount) / (scale * 100)) | |
709 | + | let reward = (((farmedAmount - withdrawnAmount) / (scale * 100)) * 1000000) | |
706 | 710 | if ((takeRight(value(value(assetInfo(assetId)).name), 1) != "U")) | |
707 | 711 | then throw("jackpot only") | |
708 | 712 | else if ((assetFarmingPower > 0)) | |
709 | 713 | then { | |
710 | 714 | let result = getUnstakeResult(address, assetId, assetRewardDelta, reward, assetFarmingPower) | |
711 | - | (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)]) | |
715 | + | $Tuple2((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)]), reward) | |
712 | 716 | } | |
713 | 717 | else throw("") | |
714 | 718 | } | |
717 | 721 | ||
718 | 722 | @Callable(i) | |
719 | 723 | func claimReward (asset) = if ((isLocked() > 0)) | |
720 | - | then throw(" | |
724 | + | then throw("EGG operations are temporarily locked") | |
721 | 725 | else { | |
722 | 726 | let address = toString(i.caller) | |
723 | 727 | let assetId = fromBase58String(asset) | |
725 | 729 | let assetRewardDelta = calcAssetRewardDelta(address, asset, assetFarmingPower) | |
726 | 730 | let farmedAmount = (assetRewardDelta + tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_lastCheckFarmedAmount"))) | |
727 | 731 | let withdrawnAmount = tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_withdrawnAmount")) | |
728 | - | let reward = ((farmedAmount - withdrawnAmount) / (scale * 100)) | |
732 | + | let reward = (((farmedAmount - withdrawnAmount) / (scale * 100)) * 1000000) | |
729 | 733 | if ((0 >= reward)) | |
730 | 734 | then throw("you have no EGGs to withdraw") | |
731 | 735 | else $Tuple2([IntegerEntry((((("address_" + address) + "_asset_") + asset) + "_withdrawnAmount"), (tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_withdrawnAmount")) + (reward * scale2))), ScriptTransfer(Address(fromBase58String(address)), reward, eggsAssetId)], reward) |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let eggsAssetId = base58' | |
4 | + | let eggsAssetId = base58'3v7zGkeHS6KrsvmTRzEzvCxm5cdzkCtM7z5cM6efcjCB' | |
5 | 5 | ||
6 | - | let perchPrice = 100 | |
6 | + | let perchPrice = (100 * 1000000) | |
7 | 7 | ||
8 | 8 | let scale = 10000 | |
9 | 9 | ||
10 | 10 | let scale2 = 1000000 | |
11 | 11 | ||
12 | 12 | let incubatorAddress = base58'3P6TwNU39Ykkbeqhn5TE4a2736xsA1vXemM' | |
13 | 13 | ||
14 | 14 | let breederAddress = base58'3P9REuLBnYBafDqtEu6hfzs2Rv2haSU158y' | |
15 | 15 | ||
16 | 16 | let refContractAddress = base58'3PGZyyPg7Mx91yaNT8k3MWxSQzuzusMUyzX' | |
17 | 17 | ||
18 | 18 | let RefererReward = 5 | |
19 | 19 | ||
20 | 20 | let rebirthAddress = base58'3PKL9tfUmNciXvbSA3zpXr6PnDNnhn936ba' | |
21 | 21 | ||
22 | 22 | let GENS = ["A", "B", "C", "D", "E", "F", "G"] | |
23 | 23 | ||
24 | 24 | func getRewardPerBlock () = 684 | |
25 | 25 | ||
26 | 26 | ||
27 | 27 | func isLocked () = { | |
28 | 28 | let masterAddress = Address(base58'3PEPftf2kWZDmAaWBjs6BUJa9957kiA2PkU') | |
29 | 29 | match getInteger(masterAddress, "egglock") { | |
30 | 30 | case b: Int => | |
31 | 31 | b | |
32 | 32 | case _ => | |
33 | 33 | 0 | |
34 | 34 | } | |
35 | 35 | } | |
36 | 36 | ||
37 | 37 | ||
38 | 38 | func tryGetInteger (key) = match getInteger(this, key) { | |
39 | 39 | case b: Int => | |
40 | 40 | b | |
41 | 41 | case _ => | |
42 | 42 | 0 | |
43 | 43 | } | |
44 | 44 | ||
45 | 45 | ||
46 | 46 | func tryGetString (key) = match getString(this, key) { | |
47 | 47 | case a: String => | |
48 | 48 | a | |
49 | 49 | case _ => | |
50 | 50 | "" | |
51 | 51 | } | |
52 | 52 | ||
53 | 53 | ||
54 | 54 | func isSymbolA (accumulated,sym) = if ((sym == "A")) | |
55 | 55 | then (accumulated + 1) | |
56 | 56 | else (accumulated + 0) | |
57 | 57 | ||
58 | 58 | ||
59 | 59 | func isSymbolB (accumulated,sym) = if ((sym == "B")) | |
60 | 60 | then (accumulated + 1) | |
61 | 61 | else (accumulated + 0) | |
62 | 62 | ||
63 | 63 | ||
64 | 64 | func isSymbolC (accumulated,sym) = if ((sym == "C")) | |
65 | 65 | then (accumulated + 1) | |
66 | 66 | else (accumulated + 0) | |
67 | 67 | ||
68 | 68 | ||
69 | 69 | func isSymbolD (accumulated,sym) = if ((sym == "D")) | |
70 | 70 | then (accumulated + 1) | |
71 | 71 | else (accumulated + 0) | |
72 | 72 | ||
73 | 73 | ||
74 | 74 | func isSymbolE (accumulated,sym) = if ((sym == "E")) | |
75 | 75 | then (accumulated + 1) | |
76 | 76 | else (accumulated + 0) | |
77 | 77 | ||
78 | 78 | ||
79 | 79 | func isSymbolF (accumulated,sym) = if ((sym == "F")) | |
80 | 80 | then (accumulated + 1) | |
81 | 81 | else (accumulated + 0) | |
82 | 82 | ||
83 | 83 | ||
84 | 84 | func isSymbolG (accumulated,sym) = if ((sym == "G")) | |
85 | 85 | then (accumulated + 1) | |
86 | 86 | else (accumulated + 0) | |
87 | 87 | ||
88 | 88 | ||
89 | 89 | func isSymbolH (accumulated,sym) = if ((sym == "H")) | |
90 | 90 | then (accumulated + 1) | |
91 | 91 | else (accumulated + 0) | |
92 | 92 | ||
93 | 93 | ||
94 | 94 | func getAmountOrClear (amount) = if (contains(amount, "0")) | |
95 | 95 | then "" | |
96 | 96 | else amount | |
97 | 97 | ||
98 | 98 | ||
99 | 99 | func getGen (assetName) = { | |
100 | 100 | let genotype = split(dropRight(drop(assetName, 5), 3), "") | |
101 | 101 | (((((((getAmountOrClear((toString({ | |
102 | - | let $ | |
103 | - | let $ | |
104 | - | let $ | |
105 | - | if (($ | |
106 | - | then $ | |
102 | + | let $list22242255 = genotype | |
103 | + | let $size22242255 = size($list22242255) | |
104 | + | let $acc022242255 = 0 | |
105 | + | if (($size22242255 == 0)) | |
106 | + | then $acc022242255 | |
107 | 107 | else { | |
108 | - | let $ | |
109 | - | if (($ | |
110 | - | then $ | |
108 | + | let $acc122242255 = isSymbolA($acc022242255, $list22242255[0]) | |
109 | + | if (($size22242255 == 1)) | |
110 | + | then $acc122242255 | |
111 | 111 | else { | |
112 | - | let $ | |
113 | - | if (($ | |
114 | - | then $ | |
112 | + | let $acc222242255 = isSymbolA($acc122242255, $list22242255[1]) | |
113 | + | if (($size22242255 == 2)) | |
114 | + | then $acc222242255 | |
115 | 115 | else { | |
116 | - | let $ | |
117 | - | if (($ | |
118 | - | then $ | |
116 | + | let $acc322242255 = isSymbolA($acc222242255, $list22242255[2]) | |
117 | + | if (($size22242255 == 3)) | |
118 | + | then $acc322242255 | |
119 | 119 | else { | |
120 | - | let $ | |
121 | - | if (($ | |
122 | - | then $ | |
120 | + | let $acc422242255 = isSymbolA($acc322242255, $list22242255[3]) | |
121 | + | if (($size22242255 == 4)) | |
122 | + | then $acc422242255 | |
123 | 123 | else { | |
124 | - | let $ | |
125 | - | if (($ | |
126 | - | then $ | |
124 | + | let $acc522242255 = isSymbolA($acc422242255, $list22242255[4]) | |
125 | + | if (($size22242255 == 5)) | |
126 | + | then $acc522242255 | |
127 | 127 | else { | |
128 | - | let $ | |
129 | - | if (($ | |
130 | - | then $ | |
128 | + | let $acc622242255 = isSymbolA($acc522242255, $list22242255[5]) | |
129 | + | if (($size22242255 == 6)) | |
130 | + | then $acc622242255 | |
131 | 131 | else { | |
132 | - | let $ | |
133 | - | if (($ | |
134 | - | then $ | |
132 | + | let $acc722242255 = isSymbolA($acc622242255, $list22242255[6]) | |
133 | + | if (($size22242255 == 7)) | |
134 | + | then $acc722242255 | |
135 | 135 | else { | |
136 | - | let $ | |
137 | - | if (($ | |
138 | - | then $ | |
136 | + | let $acc822242255 = isSymbolA($acc722242255, $list22242255[7]) | |
137 | + | if (($size22242255 == 8)) | |
138 | + | then $acc822242255 | |
139 | 139 | else { | |
140 | - | let $ | |
140 | + | let $acc922242255 = isSymbolA($acc822242255, $list22242255[8]) | |
141 | 141 | throw("List size exceed 8") | |
142 | 142 | } | |
143 | 143 | } | |
144 | 144 | } | |
145 | 145 | } | |
146 | 146 | } | |
147 | 147 | } | |
148 | 148 | } | |
149 | 149 | } | |
150 | 150 | } | |
151 | 151 | }) + "A")) + getAmountOrClear((toString({ | |
152 | - | let $ | |
153 | - | let $ | |
154 | - | let $ | |
155 | - | if (($ | |
156 | - | then $ | |
152 | + | let $list22922323 = genotype | |
153 | + | let $size22922323 = size($list22922323) | |
154 | + | let $acc022922323 = 0 | |
155 | + | if (($size22922323 == 0)) | |
156 | + | then $acc022922323 | |
157 | 157 | else { | |
158 | - | let $ | |
159 | - | if (($ | |
160 | - | then $ | |
158 | + | let $acc122922323 = isSymbolB($acc022922323, $list22922323[0]) | |
159 | + | if (($size22922323 == 1)) | |
160 | + | then $acc122922323 | |
161 | 161 | else { | |
162 | - | let $ | |
163 | - | if (($ | |
164 | - | then $ | |
162 | + | let $acc222922323 = isSymbolB($acc122922323, $list22922323[1]) | |
163 | + | if (($size22922323 == 2)) | |
164 | + | then $acc222922323 | |
165 | 165 | else { | |
166 | - | let $ | |
167 | - | if (($ | |
168 | - | then $ | |
166 | + | let $acc322922323 = isSymbolB($acc222922323, $list22922323[2]) | |
167 | + | if (($size22922323 == 3)) | |
168 | + | then $acc322922323 | |
169 | 169 | else { | |
170 | - | let $ | |
171 | - | if (($ | |
172 | - | then $ | |
170 | + | let $acc422922323 = isSymbolB($acc322922323, $list22922323[3]) | |
171 | + | if (($size22922323 == 4)) | |
172 | + | then $acc422922323 | |
173 | 173 | else { | |
174 | - | let $ | |
175 | - | if (($ | |
176 | - | then $ | |
174 | + | let $acc522922323 = isSymbolB($acc422922323, $list22922323[4]) | |
175 | + | if (($size22922323 == 5)) | |
176 | + | then $acc522922323 | |
177 | 177 | else { | |
178 | - | let $ | |
179 | - | if (($ | |
180 | - | then $ | |
178 | + | let $acc622922323 = isSymbolB($acc522922323, $list22922323[5]) | |
179 | + | if (($size22922323 == 6)) | |
180 | + | then $acc622922323 | |
181 | 181 | else { | |
182 | - | let $ | |
183 | - | if (($ | |
184 | - | then $ | |
182 | + | let $acc722922323 = isSymbolB($acc622922323, $list22922323[6]) | |
183 | + | if (($size22922323 == 7)) | |
184 | + | then $acc722922323 | |
185 | 185 | else { | |
186 | - | let $ | |
187 | - | if (($ | |
188 | - | then $ | |
186 | + | let $acc822922323 = isSymbolB($acc722922323, $list22922323[7]) | |
187 | + | if (($size22922323 == 8)) | |
188 | + | then $acc822922323 | |
189 | 189 | else { | |
190 | - | let $ | |
190 | + | let $acc922922323 = isSymbolB($acc822922323, $list22922323[8]) | |
191 | 191 | throw("List size exceed 8") | |
192 | 192 | } | |
193 | 193 | } | |
194 | 194 | } | |
195 | 195 | } | |
196 | 196 | } | |
197 | 197 | } | |
198 | 198 | } | |
199 | 199 | } | |
200 | 200 | } | |
201 | 201 | }) + "B"))) + getAmountOrClear((toString({ | |
202 | - | let $ | |
203 | - | let $ | |
204 | - | let $ | |
205 | - | if (($ | |
206 | - | then $ | |
202 | + | let $list23602391 = genotype | |
203 | + | let $size23602391 = size($list23602391) | |
204 | + | let $acc023602391 = 0 | |
205 | + | if (($size23602391 == 0)) | |
206 | + | then $acc023602391 | |
207 | 207 | else { | |
208 | - | let $ | |
209 | - | if (($ | |
210 | - | then $ | |
208 | + | let $acc123602391 = isSymbolC($acc023602391, $list23602391[0]) | |
209 | + | if (($size23602391 == 1)) | |
210 | + | then $acc123602391 | |
211 | 211 | else { | |
212 | - | let $ | |
213 | - | if (($ | |
214 | - | then $ | |
212 | + | let $acc223602391 = isSymbolC($acc123602391, $list23602391[1]) | |
213 | + | if (($size23602391 == 2)) | |
214 | + | then $acc223602391 | |
215 | 215 | else { | |
216 | - | let $ | |
217 | - | if (($ | |
218 | - | then $ | |
216 | + | let $acc323602391 = isSymbolC($acc223602391, $list23602391[2]) | |
217 | + | if (($size23602391 == 3)) | |
218 | + | then $acc323602391 | |
219 | 219 | else { | |
220 | - | let $ | |
221 | - | if (($ | |
222 | - | then $ | |
220 | + | let $acc423602391 = isSymbolC($acc323602391, $list23602391[3]) | |
221 | + | if (($size23602391 == 4)) | |
222 | + | then $acc423602391 | |
223 | 223 | else { | |
224 | - | let $ | |
225 | - | if (($ | |
226 | - | then $ | |
224 | + | let $acc523602391 = isSymbolC($acc423602391, $list23602391[4]) | |
225 | + | if (($size23602391 == 5)) | |
226 | + | then $acc523602391 | |
227 | 227 | else { | |
228 | - | let $ | |
229 | - | if (($ | |
230 | - | then $ | |
228 | + | let $acc623602391 = isSymbolC($acc523602391, $list23602391[5]) | |
229 | + | if (($size23602391 == 6)) | |
230 | + | then $acc623602391 | |
231 | 231 | else { | |
232 | - | let $ | |
233 | - | if (($ | |
234 | - | then $ | |
232 | + | let $acc723602391 = isSymbolC($acc623602391, $list23602391[6]) | |
233 | + | if (($size23602391 == 7)) | |
234 | + | then $acc723602391 | |
235 | 235 | else { | |
236 | - | let $ | |
237 | - | if (($ | |
238 | - | then $ | |
236 | + | let $acc823602391 = isSymbolC($acc723602391, $list23602391[7]) | |
237 | + | if (($size23602391 == 8)) | |
238 | + | then $acc823602391 | |
239 | 239 | else { | |
240 | - | let $ | |
240 | + | let $acc923602391 = isSymbolC($acc823602391, $list23602391[8]) | |
241 | 241 | throw("List size exceed 8") | |
242 | 242 | } | |
243 | 243 | } | |
244 | 244 | } | |
245 | 245 | } | |
246 | 246 | } | |
247 | 247 | } | |
248 | 248 | } | |
249 | 249 | } | |
250 | 250 | } | |
251 | 251 | }) + "C"))) + getAmountOrClear((toString({ | |
252 | - | let $ | |
253 | - | let $ | |
254 | - | let $ | |
255 | - | if (($ | |
256 | - | then $ | |
252 | + | let $list24302461 = genotype | |
253 | + | let $size24302461 = size($list24302461) | |
254 | + | let $acc024302461 = 0 | |
255 | + | if (($size24302461 == 0)) | |
256 | + | then $acc024302461 | |
257 | 257 | else { | |
258 | - | let $ | |
259 | - | if (($ | |
260 | - | then $ | |
258 | + | let $acc124302461 = isSymbolD($acc024302461, $list24302461[0]) | |
259 | + | if (($size24302461 == 1)) | |
260 | + | then $acc124302461 | |
261 | 261 | else { | |
262 | - | let $ | |
263 | - | if (($ | |
264 | - | then $ | |
262 | + | let $acc224302461 = isSymbolD($acc124302461, $list24302461[1]) | |
263 | + | if (($size24302461 == 2)) | |
264 | + | then $acc224302461 | |
265 | 265 | else { | |
266 | - | let $ | |
267 | - | if (($ | |
268 | - | then $ | |
266 | + | let $acc324302461 = isSymbolD($acc224302461, $list24302461[2]) | |
267 | + | if (($size24302461 == 3)) | |
268 | + | then $acc324302461 | |
269 | 269 | else { | |
270 | - | let $ | |
271 | - | if (($ | |
272 | - | then $ | |
270 | + | let $acc424302461 = isSymbolD($acc324302461, $list24302461[3]) | |
271 | + | if (($size24302461 == 4)) | |
272 | + | then $acc424302461 | |
273 | 273 | else { | |
274 | - | let $ | |
275 | - | if (($ | |
276 | - | then $ | |
274 | + | let $acc524302461 = isSymbolD($acc424302461, $list24302461[4]) | |
275 | + | if (($size24302461 == 5)) | |
276 | + | then $acc524302461 | |
277 | 277 | else { | |
278 | - | let $ | |
279 | - | if (($ | |
280 | - | then $ | |
278 | + | let $acc624302461 = isSymbolD($acc524302461, $list24302461[5]) | |
279 | + | if (($size24302461 == 6)) | |
280 | + | then $acc624302461 | |
281 | 281 | else { | |
282 | - | let $ | |
283 | - | if (($ | |
284 | - | then $ | |
282 | + | let $acc724302461 = isSymbolD($acc624302461, $list24302461[6]) | |
283 | + | if (($size24302461 == 7)) | |
284 | + | then $acc724302461 | |
285 | 285 | else { | |
286 | - | let $ | |
287 | - | if (($ | |
288 | - | then $ | |
286 | + | let $acc824302461 = isSymbolD($acc724302461, $list24302461[7]) | |
287 | + | if (($size24302461 == 8)) | |
288 | + | then $acc824302461 | |
289 | 289 | else { | |
290 | - | let $ | |
290 | + | let $acc924302461 = isSymbolD($acc824302461, $list24302461[8]) | |
291 | 291 | throw("List size exceed 8") | |
292 | 292 | } | |
293 | 293 | } | |
294 | 294 | } | |
295 | 295 | } | |
296 | 296 | } | |
297 | 297 | } | |
298 | 298 | } | |
299 | 299 | } | |
300 | 300 | } | |
301 | 301 | }) + "D"))) + getAmountOrClear((toString({ | |
302 | - | let $ | |
303 | - | let $ | |
304 | - | let $ | |
305 | - | if (($ | |
306 | - | then $ | |
302 | + | let $list24982529 = genotype | |
303 | + | let $size24982529 = size($list24982529) | |
304 | + | let $acc024982529 = 0 | |
305 | + | if (($size24982529 == 0)) | |
306 | + | then $acc024982529 | |
307 | 307 | else { | |
308 | - | let $ | |
309 | - | if (($ | |
310 | - | then $ | |
308 | + | let $acc124982529 = isSymbolE($acc024982529, $list24982529[0]) | |
309 | + | if (($size24982529 == 1)) | |
310 | + | then $acc124982529 | |
311 | 311 | else { | |
312 | - | let $ | |
313 | - | if (($ | |
314 | - | then $ | |
312 | + | let $acc224982529 = isSymbolE($acc124982529, $list24982529[1]) | |
313 | + | if (($size24982529 == 2)) | |
314 | + | then $acc224982529 | |
315 | 315 | else { | |
316 | - | let $ | |
317 | - | if (($ | |
318 | - | then $ | |
316 | + | let $acc324982529 = isSymbolE($acc224982529, $list24982529[2]) | |
317 | + | if (($size24982529 == 3)) | |
318 | + | then $acc324982529 | |
319 | 319 | else { | |
320 | - | let $ | |
321 | - | if (($ | |
322 | - | then $ | |
320 | + | let $acc424982529 = isSymbolE($acc324982529, $list24982529[3]) | |
321 | + | if (($size24982529 == 4)) | |
322 | + | then $acc424982529 | |
323 | 323 | else { | |
324 | - | let $ | |
325 | - | if (($ | |
326 | - | then $ | |
324 | + | let $acc524982529 = isSymbolE($acc424982529, $list24982529[4]) | |
325 | + | if (($size24982529 == 5)) | |
326 | + | then $acc524982529 | |
327 | 327 | else { | |
328 | - | let $ | |
329 | - | if (($ | |
330 | - | then $ | |
328 | + | let $acc624982529 = isSymbolE($acc524982529, $list24982529[5]) | |
329 | + | if (($size24982529 == 6)) | |
330 | + | then $acc624982529 | |
331 | 331 | else { | |
332 | - | let $ | |
333 | - | if (($ | |
334 | - | then $ | |
332 | + | let $acc724982529 = isSymbolE($acc624982529, $list24982529[6]) | |
333 | + | if (($size24982529 == 7)) | |
334 | + | then $acc724982529 | |
335 | 335 | else { | |
336 | - | let $ | |
337 | - | if (($ | |
338 | - | then $ | |
336 | + | let $acc824982529 = isSymbolE($acc724982529, $list24982529[7]) | |
337 | + | if (($size24982529 == 8)) | |
338 | + | then $acc824982529 | |
339 | 339 | else { | |
340 | - | let $ | |
340 | + | let $acc924982529 = isSymbolE($acc824982529, $list24982529[8]) | |
341 | 341 | throw("List size exceed 8") | |
342 | 342 | } | |
343 | 343 | } | |
344 | 344 | } | |
345 | 345 | } | |
346 | 346 | } | |
347 | 347 | } | |
348 | 348 | } | |
349 | 349 | } | |
350 | 350 | } | |
351 | 351 | }) + "E"))) + getAmountOrClear((toString({ | |
352 | - | let $ | |
353 | - | let $ | |
354 | - | let $ | |
355 | - | if (($ | |
356 | - | then $ | |
352 | + | let $list25662597 = genotype | |
353 | + | let $size25662597 = size($list25662597) | |
354 | + | let $acc025662597 = 0 | |
355 | + | if (($size25662597 == 0)) | |
356 | + | then $acc025662597 | |
357 | 357 | else { | |
358 | - | let $ | |
359 | - | if (($ | |
360 | - | then $ | |
358 | + | let $acc125662597 = isSymbolF($acc025662597, $list25662597[0]) | |
359 | + | if (($size25662597 == 1)) | |
360 | + | then $acc125662597 | |
361 | 361 | else { | |
362 | - | let $ | |
363 | - | if (($ | |
364 | - | then $ | |
362 | + | let $acc225662597 = isSymbolF($acc125662597, $list25662597[1]) | |
363 | + | if (($size25662597 == 2)) | |
364 | + | then $acc225662597 | |
365 | 365 | else { | |
366 | - | let $ | |
367 | - | if (($ | |
368 | - | then $ | |
366 | + | let $acc325662597 = isSymbolF($acc225662597, $list25662597[2]) | |
367 | + | if (($size25662597 == 3)) | |
368 | + | then $acc325662597 | |
369 | 369 | else { | |
370 | - | let $ | |
371 | - | if (($ | |
372 | - | then $ | |
370 | + | let $acc425662597 = isSymbolF($acc325662597, $list25662597[3]) | |
371 | + | if (($size25662597 == 4)) | |
372 | + | then $acc425662597 | |
373 | 373 | else { | |
374 | - | let $ | |
375 | - | if (($ | |
376 | - | then $ | |
374 | + | let $acc525662597 = isSymbolF($acc425662597, $list25662597[4]) | |
375 | + | if (($size25662597 == 5)) | |
376 | + | then $acc525662597 | |
377 | 377 | else { | |
378 | - | let $ | |
379 | - | if (($ | |
380 | - | then $ | |
378 | + | let $acc625662597 = isSymbolF($acc525662597, $list25662597[5]) | |
379 | + | if (($size25662597 == 6)) | |
380 | + | then $acc625662597 | |
381 | 381 | else { | |
382 | - | let $ | |
383 | - | if (($ | |
384 | - | then $ | |
382 | + | let $acc725662597 = isSymbolF($acc625662597, $list25662597[6]) | |
383 | + | if (($size25662597 == 7)) | |
384 | + | then $acc725662597 | |
385 | 385 | else { | |
386 | - | let $ | |
387 | - | if (($ | |
388 | - | then $ | |
386 | + | let $acc825662597 = isSymbolF($acc725662597, $list25662597[7]) | |
387 | + | if (($size25662597 == 8)) | |
388 | + | then $acc825662597 | |
389 | 389 | else { | |
390 | - | let $ | |
390 | + | let $acc925662597 = isSymbolF($acc825662597, $list25662597[8]) | |
391 | 391 | throw("List size exceed 8") | |
392 | 392 | } | |
393 | 393 | } | |
394 | 394 | } | |
395 | 395 | } | |
396 | 396 | } | |
397 | 397 | } | |
398 | 398 | } | |
399 | 399 | } | |
400 | 400 | } | |
401 | 401 | }) + "F"))) + getAmountOrClear((toString({ | |
402 | - | let $ | |
403 | - | let $ | |
404 | - | let $ | |
405 | - | if (($ | |
406 | - | then $ | |
402 | + | let $list26362667 = genotype | |
403 | + | let $size26362667 = size($list26362667) | |
404 | + | let $acc026362667 = 0 | |
405 | + | if (($size26362667 == 0)) | |
406 | + | then $acc026362667 | |
407 | 407 | else { | |
408 | - | let $ | |
409 | - | if (($ | |
410 | - | then $ | |
408 | + | let $acc126362667 = isSymbolG($acc026362667, $list26362667[0]) | |
409 | + | if (($size26362667 == 1)) | |
410 | + | then $acc126362667 | |
411 | 411 | else { | |
412 | - | let $ | |
413 | - | if (($ | |
414 | - | then $ | |
412 | + | let $acc226362667 = isSymbolG($acc126362667, $list26362667[1]) | |
413 | + | if (($size26362667 == 2)) | |
414 | + | then $acc226362667 | |
415 | 415 | else { | |
416 | - | let $ | |
417 | - | if (($ | |
418 | - | then $ | |
416 | + | let $acc326362667 = isSymbolG($acc226362667, $list26362667[2]) | |
417 | + | if (($size26362667 == 3)) | |
418 | + | then $acc326362667 | |
419 | 419 | else { | |
420 | - | let $ | |
421 | - | if (($ | |
422 | - | then $ | |
420 | + | let $acc426362667 = isSymbolG($acc326362667, $list26362667[3]) | |
421 | + | if (($size26362667 == 4)) | |
422 | + | then $acc426362667 | |
423 | 423 | else { | |
424 | - | let $ | |
425 | - | if (($ | |
426 | - | then $ | |
424 | + | let $acc526362667 = isSymbolG($acc426362667, $list26362667[4]) | |
425 | + | if (($size26362667 == 5)) | |
426 | + | then $acc526362667 | |
427 | 427 | else { | |
428 | - | let $ | |
429 | - | if (($ | |
430 | - | then $ | |
428 | + | let $acc626362667 = isSymbolG($acc526362667, $list26362667[5]) | |
429 | + | if (($size26362667 == 6)) | |
430 | + | then $acc626362667 | |
431 | 431 | else { | |
432 | - | let $ | |
433 | - | if (($ | |
434 | - | then $ | |
432 | + | let $acc726362667 = isSymbolG($acc626362667, $list26362667[6]) | |
433 | + | if (($size26362667 == 7)) | |
434 | + | then $acc726362667 | |
435 | 435 | else { | |
436 | - | let $ | |
437 | - | if (($ | |
438 | - | then $ | |
436 | + | let $acc826362667 = isSymbolG($acc726362667, $list26362667[7]) | |
437 | + | if (($size26362667 == 8)) | |
438 | + | then $acc826362667 | |
439 | 439 | else { | |
440 | - | let $ | |
440 | + | let $acc926362667 = isSymbolG($acc826362667, $list26362667[8]) | |
441 | 441 | throw("List size exceed 8") | |
442 | 442 | } | |
443 | 443 | } | |
444 | 444 | } | |
445 | 445 | } | |
446 | 446 | } | |
447 | 447 | } | |
448 | 448 | } | |
449 | 449 | } | |
450 | 450 | } | |
451 | 451 | }) + "G"))) + getAmountOrClear((toString({ | |
452 | - | let $ | |
453 | - | let $ | |
454 | - | let $ | |
455 | - | if (($ | |
456 | - | then $ | |
452 | + | let $list27042735 = genotype | |
453 | + | let $size27042735 = size($list27042735) | |
454 | + | let $acc027042735 = 0 | |
455 | + | if (($size27042735 == 0)) | |
456 | + | then $acc027042735 | |
457 | 457 | else { | |
458 | - | let $ | |
459 | - | if (($ | |
460 | - | then $ | |
458 | + | let $acc127042735 = isSymbolH($acc027042735, $list27042735[0]) | |
459 | + | if (($size27042735 == 1)) | |
460 | + | then $acc127042735 | |
461 | 461 | else { | |
462 | - | let $ | |
463 | - | if (($ | |
464 | - | then $ | |
462 | + | let $acc227042735 = isSymbolH($acc127042735, $list27042735[1]) | |
463 | + | if (($size27042735 == 2)) | |
464 | + | then $acc227042735 | |
465 | 465 | else { | |
466 | - | let $ | |
467 | - | if (($ | |
468 | - | then $ | |
466 | + | let $acc327042735 = isSymbolH($acc227042735, $list27042735[2]) | |
467 | + | if (($size27042735 == 3)) | |
468 | + | then $acc327042735 | |
469 | 469 | else { | |
470 | - | let $ | |
471 | - | if (($ | |
472 | - | then $ | |
470 | + | let $acc427042735 = isSymbolH($acc327042735, $list27042735[3]) | |
471 | + | if (($size27042735 == 4)) | |
472 | + | then $acc427042735 | |
473 | 473 | else { | |
474 | - | let $ | |
475 | - | if (($ | |
476 | - | then $ | |
474 | + | let $acc527042735 = isSymbolH($acc427042735, $list27042735[4]) | |
475 | + | if (($size27042735 == 5)) | |
476 | + | then $acc527042735 | |
477 | 477 | else { | |
478 | - | let $ | |
479 | - | if (($ | |
480 | - | then $ | |
478 | + | let $acc627042735 = isSymbolH($acc527042735, $list27042735[5]) | |
479 | + | if (($size27042735 == 6)) | |
480 | + | then $acc627042735 | |
481 | 481 | else { | |
482 | - | let $ | |
483 | - | if (($ | |
484 | - | then $ | |
482 | + | let $acc727042735 = isSymbolH($acc627042735, $list27042735[6]) | |
483 | + | if (($size27042735 == 7)) | |
484 | + | then $acc727042735 | |
485 | 485 | else { | |
486 | - | let $ | |
487 | - | if (($ | |
488 | - | then $ | |
486 | + | let $acc827042735 = isSymbolH($acc727042735, $list27042735[7]) | |
487 | + | if (($size27042735 == 8)) | |
488 | + | then $acc827042735 | |
489 | 489 | else { | |
490 | - | let $ | |
490 | + | let $acc927042735 = isSymbolH($acc827042735, $list27042735[8]) | |
491 | 491 | throw("List size exceed 8") | |
492 | 492 | } | |
493 | 493 | } | |
494 | 494 | } | |
495 | 495 | } | |
496 | 496 | } | |
497 | 497 | } | |
498 | 498 | } | |
499 | 499 | } | |
500 | 500 | } | |
501 | 501 | }) + "H"))) | |
502 | 502 | } | |
503 | 503 | ||
504 | 504 | ||
505 | 505 | func getAssetOrigin (generation) = if ((generation == "G")) | |
506 | 506 | then incubatorAddress | |
507 | 507 | else breederAddress | |
508 | 508 | ||
509 | 509 | ||
510 | 510 | func getAssetRarity (genotype,generation) = { | |
511 | 511 | let quantity = getIntegerValue(Address(getAssetOrigin(generation)), (("stats_" + genotype) + "_quantity")) | |
512 | 512 | let power = pow((10000 / quantity), 4, 5, 1, 2, FLOOR) | |
513 | 513 | if ((power > 0)) | |
514 | 514 | then power | |
515 | 515 | else 2 | |
516 | 516 | } | |
517 | 517 | ||
518 | 518 | ||
519 | 519 | func getAssetFarmingPower (assetId) = if (if ((value(assetInfo(assetId)).issuer == Address(breederAddress))) | |
520 | 520 | then true | |
521 | 521 | else (value(assetInfo(assetId)).issuer == Address(incubatorAddress))) | |
522 | 522 | then { | |
523 | 523 | let assetName = value(assetInfo(assetId)).name | |
524 | 524 | let generation = take(takeRight(assetName, 2), 1) | |
525 | 525 | let gen = ((getGen(assetName) + "-") + generation) | |
526 | 526 | $Tuple2(gen, getAssetRarity(gen, generation)) | |
527 | 527 | } | |
528 | 528 | else throw("not valid NFT") | |
529 | 529 | ||
530 | 530 | ||
531 | 531 | func getLastKnownAssetFarmingPower (address,assetId) = tryGetInteger((((("address_" + address) + "_asset_") + assetId) + "_farmingPower")) | |
532 | 532 | ||
533 | 533 | ||
534 | 534 | func getAssetsByGen (gen) = { | |
535 | 535 | let s = tryGetString(("assets_" + gen)) | |
536 | 536 | if ((s == "")) | |
537 | 537 | then nil | |
538 | 538 | else split(s, ",") | |
539 | 539 | } | |
540 | 540 | ||
541 | 541 | ||
542 | 542 | func calcInterest (previousInterest,previousInterestHeight,totalFarmingPower) = (previousInterest + (((scale * getRewardPerBlock()) * (height - previousInterestHeight)) / totalFarmingPower)) | |
543 | 543 | ||
544 | 544 | ||
545 | 545 | func getCurrentInterest () = if ((tryGetInteger("total_farmingPower") > 0)) | |
546 | 546 | then { | |
547 | 547 | let previousInterest = tryGetInteger("total_lastCheckInterest") | |
548 | 548 | let previousInterestHeight = tryGetInteger("total_lastCheckInterestHeight") | |
549 | 549 | let totalFarmingPower = tryGetInteger("total_farmingPower") | |
550 | 550 | calcInterest(previousInterest, previousInterestHeight, totalFarmingPower) | |
551 | 551 | } | |
552 | 552 | else if ((tryGetInteger("total_startHeight") != 0)) | |
553 | 553 | then tryGetInteger("total_lastCheckInterest") | |
554 | 554 | else throw("farming is not launched, yet") | |
555 | 555 | ||
556 | 556 | ||
557 | 557 | func calcAssetRewardDelta (address,assetId,assetFarmingPower) = { | |
558 | 558 | let lastCheckAssetInterest = tryGetInteger((((("address_" + address) + "_asset_") + assetId) + "_lastCheckInterest")) | |
559 | 559 | let currentInterest = getCurrentInterest() | |
560 | 560 | (assetFarmingPower * (currentInterest - lastCheckAssetInterest)) | |
561 | 561 | } | |
562 | 562 | ||
563 | 563 | ||
564 | 564 | func addAssetIdToGenEntry (assetId,assetGen) = { | |
565 | 565 | let currentValue = tryGetString((("assets_" + assetGen) + "_locked")) | |
566 | 566 | if ((currentValue == "")) | |
567 | 567 | then assetId | |
568 | 568 | else ((currentValue + ",") + assetId) | |
569 | 569 | } | |
570 | 570 | ||
571 | 571 | ||
572 | 572 | func getStakeResult (address,assetId,assetFarmingPower) = { | |
573 | 573 | let asset = toBase58String(assetId) | |
574 | 574 | [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())] | |
575 | 575 | } | |
576 | 576 | ||
577 | 577 | ||
578 | 578 | func getUnstakeResult (address,assetId,rewardDelta,withdrawnAmount,assetFarmingPower) = { | |
579 | 579 | let asset = toBase58String(assetId) | |
580 | 580 | [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))] | |
581 | 581 | } | |
582 | 582 | ||
583 | 583 | ||
584 | 584 | @Callable(i) | |
585 | 585 | func init () = if ((i.caller != this)) | |
586 | 586 | then throw("admin only") | |
587 | 587 | else [IntegerEntry("total_startHeight", height)] | |
588 | 588 | ||
589 | 589 | ||
590 | 590 | ||
591 | 591 | @Callable(i) | |
592 | 592 | func buyPerch (color,refererAddress) = if ((isLocked() > 0)) | |
593 | - | then throw(" | |
593 | + | then throw("EGG operations are temporarily locked") | |
594 | 594 | else if ((0 > value(indexOf(["B", "R", "G", "Y"], color)))) | |
595 | 595 | then throw("you need to set color properly") | |
596 | 596 | else { | |
597 | 597 | let firstPayment = value(i.payments[0]) | |
598 | 598 | if ((firstPayment.assetId != eggsAssetId)) | |
599 | 599 | then throw(("You can attach only EGG tokens with the following asset id: " + toBase58String(eggsAssetId))) | |
600 | 600 | else if ((firstPayment.amount != perchPrice)) | |
601 | 601 | then throw(("To buy a perch you currently need the following amount of EGGlets: " + toString(perchPrice))) | |
602 | 602 | else { | |
603 | - | let refererRewardForPerch = | |
603 | + | let refererRewardForPerch = fraction(firstPayment.amount, RefererReward, 100) | |
604 | 604 | let refCall = invoke(Address(refContractAddress), "refPayment", [refererAddress], [AttachedPayment(eggsAssetId, refererRewardForPerch)]) | |
605 | 605 | if ((refCall == refCall)) | |
606 | 606 | then { | |
607 | 607 | let perchAmountKey = ((("address_" + toString(i.caller)) + "_perchesAvailable_") + color) | |
608 | 608 | let perchAmount = tryGetInteger(perchAmountKey) | |
609 | 609 | [IntegerEntry(perchAmountKey, (perchAmount + 1))] | |
610 | 610 | } | |
611 | 611 | else throw("Strict value is not equal to itself.") | |
612 | 612 | } | |
613 | 613 | } | |
614 | 614 | ||
615 | 615 | ||
616 | 616 | ||
617 | 617 | @Callable(i) | |
618 | 618 | func addFreePerch (address,color) = if ((0 > value(indexOf(["B", "R", "G", "Y"], color)))) | |
619 | 619 | then throw("you need to set color properly") | |
620 | 620 | else if (if ((i.caller != Address(rebirthAddress))) | |
621 | 621 | then (i.caller != this) | |
622 | 622 | else false) | |
623 | 623 | then throw("rebirth only") | |
624 | 624 | else { | |
625 | 625 | let perchAmountKey = ((("address_" + address) + "_perchesAvailable_") + color) | |
626 | 626 | let perchAmount = tryGetInteger(perchAmountKey) | |
627 | 627 | $Tuple2([IntegerEntry(perchAmountKey, (perchAmount + 1))], "") | |
628 | 628 | } | |
629 | 629 | ||
630 | 630 | ||
631 | 631 | ||
632 | 632 | @Callable(i) | |
633 | - | func stakeNFT () = { | |
634 | - | let assetId = value(value(i.payments[0]).assetId) | |
635 | - | let address = toString(i.caller) | |
636 | - | let color = takeRight(value(assetInfo(assetId)).name, 1) | |
637 | - | let availablePerches = tryGetInteger(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color)) | |
638 | - | if ((0 >= availablePerches)) | |
639 | - | then throw(("no perches available for the color " + color)) | |
640 | - | else { | |
641 | - | let $t088378902 = getAssetFarmingPower(assetId) | |
642 | - | let assetGen = $t088378902._1 | |
643 | - | let assetFarmingPower = $t088378902._2 | |
644 | - | let assetRewardDelta = calcAssetRewardDelta(address, toBase58String(assetId), assetFarmingPower) | |
645 | - | (getStakeResult(address, assetId, assetFarmingPower) ++ [IntegerEntry(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color), (availablePerches - 1))]) | |
646 | - | } | |
647 | - | } | |
633 | + | func stakeNFT () = if ((isLocked() > 0)) | |
634 | + | then throw("EGG operations are temporarily locked") | |
635 | + | else { | |
636 | + | let assetId = value(value(i.payments[0]).assetId) | |
637 | + | let address = toString(i.caller) | |
638 | + | let color = takeRight(value(assetInfo(assetId)).name, 1) | |
639 | + | let availablePerches = tryGetInteger(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color)) | |
640 | + | if ((0 >= availablePerches)) | |
641 | + | then throw(("no perches available for the color " + color)) | |
642 | + | else { | |
643 | + | let $t089939058 = getAssetFarmingPower(assetId) | |
644 | + | let assetGen = $t089939058._1 | |
645 | + | let assetFarmingPower = $t089939058._2 | |
646 | + | let assetRewardDelta = calcAssetRewardDelta(address, toBase58String(assetId), assetFarmingPower) | |
647 | + | (getStakeResult(address, assetId, assetFarmingPower) ++ [IntegerEntry(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color), (availablePerches - 1))]) | |
648 | + | } | |
649 | + | } | |
648 | 650 | ||
649 | 651 | ||
650 | 652 | ||
651 | 653 | @Callable(i) | |
652 | 654 | func unstakeNFT (asset) = if ((isLocked() > 0)) | |
653 | - | then throw(" | |
655 | + | then throw("EGG operations are temporarily locked") | |
654 | 656 | else { | |
655 | 657 | let assetId = fromBase58String(asset) | |
656 | 658 | let address = toString(i.caller) | |
657 | 659 | let assetFarmingPower = getLastKnownAssetFarmingPower(address, asset) | |
658 | 660 | let assetRewardDelta = calcAssetRewardDelta(address, asset, assetFarmingPower) | |
659 | 661 | let farmedAmount = (assetRewardDelta + tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_lastCheckFarmedAmount"))) | |
660 | 662 | let withdrawnAmount = tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_withdrawnAmount")) | |
661 | - | let reward = ((farmedAmount - withdrawnAmount) / (scale * 100)) | |
663 | + | let reward = (((farmedAmount - withdrawnAmount) / (scale * 100)) * 1000000) | |
662 | 664 | let color = takeRight(value(assetInfo(assetId)).name, 1) | |
663 | 665 | if ((0 >= assetFarmingPower)) | |
664 | 666 | then throw("asset not available") | |
665 | 667 | else if ((color == "U")) | |
666 | 668 | then throw("use another function to unstake Jackpot NFT") | |
667 | 669 | else { | |
668 | 670 | let result = getUnstakeResult(address, assetId, assetRewardDelta, reward, assetFarmingPower) | |
669 | - | (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)]) | |
671 | + | $Tuple2((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)]), reward) | |
670 | 672 | } | |
671 | 673 | } | |
672 | 674 | ||
673 | 675 | ||
674 | 676 | ||
675 | 677 | @Callable(i) | |
676 | - | func stakeJackpot (color) = { | |
677 | - | let assetId = value(value(i.payments[0]).assetId) | |
678 | - | let address = toString(i.caller) | |
679 | - | let availablePerches = tryGetInteger(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color)) | |
680 | - | let assetIssuer = value(assetInfo(assetId)).issuer.bytes | |
681 | - | if (if ((assetIssuer == incubatorAddress)) | |
682 | - | then true | |
683 | - | else (assetIssuer == breederAddress)) | |
684 | - | then if ((takeRight(value(value(assetInfo(assetId)).name), 1) != "U")) | |
685 | - | then throw("jackpot only") | |
686 | - | else if ((0 >= availablePerches)) | |
687 | - | then throw(("no perches available for the color " + color)) | |
688 | - | else (getStakeResult(address, assetId, 100) ++ [IntegerEntry(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color), (availablePerches - 1)), StringEntry((((("address_" + toString(i.caller)) + "_asset_") + toBase58String(assetId)) + "_perchColor"), color)]) | |
689 | - | else throw("asset is not valid") | |
690 | - | } | |
678 | + | func stakeJackpot (color) = if ((isLocked() > 0)) | |
679 | + | then throw("EGG operations are temporarily locked") | |
680 | + | else { | |
681 | + | let assetId = value(value(i.payments[0]).assetId) | |
682 | + | let address = toString(i.caller) | |
683 | + | let availablePerches = tryGetInteger(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color)) | |
684 | + | let assetIssuer = value(assetInfo(assetId)).issuer.bytes | |
685 | + | if (if ((assetIssuer == incubatorAddress)) | |
686 | + | then true | |
687 | + | else (assetIssuer == breederAddress)) | |
688 | + | then if ((takeRight(value(value(assetInfo(assetId)).name), 1) != "U")) | |
689 | + | then throw("jackpot only") | |
690 | + | else if ((0 >= availablePerches)) | |
691 | + | then throw(("no perches available for the color " + color)) | |
692 | + | else (getStakeResult(address, assetId, 100) ++ [IntegerEntry(((("address_" + toString(i.caller)) + "_perchesAvailable_") + color), (availablePerches - 1)), StringEntry((((("address_" + toString(i.caller)) + "_asset_") + toBase58String(assetId)) + "_perchColor"), color)]) | |
693 | + | else throw("asset is not valid") | |
694 | + | } | |
691 | 695 | ||
692 | 696 | ||
693 | 697 | ||
694 | 698 | @Callable(i) | |
695 | 699 | func unstakeJackpot (asset) = if ((isLocked() > 0)) | |
696 | - | then throw(" | |
700 | + | then throw("EGG operations are temporarily locked") | |
697 | 701 | else { | |
698 | 702 | let assetId = fromBase58String(asset) | |
699 | 703 | let address = toString(i.caller) | |
700 | 704 | let color = tryGetString((((("address_" + address) + "_asset_") + asset) + "_perchColor")) | |
701 | 705 | let assetFarmingPower = getLastKnownAssetFarmingPower(address, asset) | |
702 | 706 | let assetRewardDelta = calcAssetRewardDelta(address, asset, assetFarmingPower) | |
703 | 707 | let farmedAmount = (assetRewardDelta + tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_lastCheckFarmedAmount"))) | |
704 | 708 | let withdrawnAmount = tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_withdrawnAmount")) | |
705 | - | let reward = ((farmedAmount - withdrawnAmount) / (scale * 100)) | |
709 | + | let reward = (((farmedAmount - withdrawnAmount) / (scale * 100)) * 1000000) | |
706 | 710 | if ((takeRight(value(value(assetInfo(assetId)).name), 1) != "U")) | |
707 | 711 | then throw("jackpot only") | |
708 | 712 | else if ((assetFarmingPower > 0)) | |
709 | 713 | then { | |
710 | 714 | let result = getUnstakeResult(address, assetId, assetRewardDelta, reward, assetFarmingPower) | |
711 | - | (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)]) | |
715 | + | $Tuple2((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)]), reward) | |
712 | 716 | } | |
713 | 717 | else throw("") | |
714 | 718 | } | |
715 | 719 | ||
716 | 720 | ||
717 | 721 | ||
718 | 722 | @Callable(i) | |
719 | 723 | func claimReward (asset) = if ((isLocked() > 0)) | |
720 | - | then throw(" | |
724 | + | then throw("EGG operations are temporarily locked") | |
721 | 725 | else { | |
722 | 726 | let address = toString(i.caller) | |
723 | 727 | let assetId = fromBase58String(asset) | |
724 | 728 | let assetFarmingPower = getLastKnownAssetFarmingPower(address, asset) | |
725 | 729 | let assetRewardDelta = calcAssetRewardDelta(address, asset, assetFarmingPower) | |
726 | 730 | let farmedAmount = (assetRewardDelta + tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_lastCheckFarmedAmount"))) | |
727 | 731 | let withdrawnAmount = tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_withdrawnAmount")) | |
728 | - | let reward = ((farmedAmount - withdrawnAmount) / (scale * 100)) | |
732 | + | let reward = (((farmedAmount - withdrawnAmount) / (scale * 100)) * 1000000) | |
729 | 733 | if ((0 >= reward)) | |
730 | 734 | then throw("you have no EGGs to withdraw") | |
731 | 735 | else $Tuple2([IntegerEntry((((("address_" + address) + "_asset_") + asset) + "_withdrawnAmount"), (tryGetInteger((((("address_" + address) + "_asset_") + asset) + "_withdrawnAmount")) + (reward * scale2))), ScriptTransfer(Address(fromBase58String(address)), reward, eggsAssetId)], reward) | |
732 | 736 | } | |
733 | 737 | ||
734 | 738 | ||
735 | 739 | @Verifier(tx) | |
736 | 740 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
737 | 741 |
github/deemru/w8io/6500d08 304.26 ms ◑