tx · 68FRaBw93dsNeQFx1DF1fnvGxQsbzg7bCF7w4xdb38EE

3N33m3JMhEN5QxhDKujcsbpFHo3UcHE4Jwt:  -0.03300000 Waves

2024.12.29 21:14 [3436153] smart account 3N33m3JMhEN5QxhDKujcsbpFHo3UcHE4Jwt > SELF 0.00000000 Waves

{ "type": 13, "id": "68FRaBw93dsNeQFx1DF1fnvGxQsbzg7bCF7w4xdb38EE", "fee": 3300000, "feeAssetId": null, "timestamp": 1735496044836, "version": 2, "chainId": 84, "sender": "3N33m3JMhEN5QxhDKujcsbpFHo3UcHE4Jwt", "senderPublicKey": "9Rp4v3BUwexbq4Ta6b1K2wTRxefC3irpr2tHC51mSAjz", "proofs": [ "4UnybD9Zea9UbLWfhjkcUpVpTE1dN13pvBQtwSKcSaetXXB1zQwbTVWKyhm9ACyhymxH13T2sVHzYGTnEw7adzRk" ], "script": "base64:AAIFAAAAAAAAADgIAhIECgIICBIDCgEIEgQKAggIEgUKAwgIARIDCgEIEgUKAwgEBBIDCgEIEgASAwoBCBIECgIICAAAAEEAAAAABVNjYWxlAAAAAAAF9eEAAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIAAAAHYWRkcmVzcwAAAANrZXkEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWECAAAAAAEAAAAMdHJ5R2V0U3RyaW5nAAAAAQAAAANrZXkJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIFAAAABHRoaXMFAAAAA2tleQEAAAAHZ2V0Qm9vbAAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGwAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAHQm9vbGVhbgQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgcBAAAACWlzVGVzdEVudgAAAAAJAQAAAAdnZXRCb29sAAAAAQIAAAAHVEVTVEVOVgEAAAAcc3RhdGljS2V5X3JlZkNvbnRyYWN0QWRkcmVzcwAAAAACAAAAGXN0YXRpY19yZWZDb250cmFjdEFkZHJlc3MAAAAAFWtleUdsb2JhbExhc3RJbnRlcmVzdAIAAAAZZ2xvYmFsX2xhc3RDaGVja19pbnRlcmVzdAEAAAAXc3RhdGljS2V5X29yYWNsZUFkZHJlc3MAAAAAAgAAABRzdGF0aWNfb3JhY2xlQWRkcmVzcwEAAAAUc3RhdGljS2V5X2VnZ0Fzc2V0SWQAAAAAAgAAABFzdGF0aWNfZWdnQXNzZXRJZAEAAAAac3RhdGljS2V5X2luY3ViYXRvckFkZHJlc3MAAAAAAgAAABdzdGF0aWNfaW5jdWJhdG9yQWRkcmVzcwEAAAAYc3RhdGljS2V5X2JyZWVkZXJBZGRyZXNzAAAAAAIAAAAVc3RhdGljX2JyZWVkZXJBZGRyZXNzAQAAABtzdGF0aWNLZXlfYWNjQm9vc3RlckFkZHJlc3MAAAAAAgAAABhzdGF0aWNfYWNjQm9vc3RlckFkZHJlc3MBAAAAGHN0YXRpY0tleV9jb3Vwb25zQWRkcmVzcwAAAAACAAAAFXN0YXRpY19jb3Vwb25zQWRkcmVzcwEAAAAVc3RhdGljS2V5X2J1cm5BZGRyZXNzAAAAAAIAAAASc3RhdGljX2J1cm5BZGRyZXNzAQAAABJzdGF0aWNLZXlfZXh0cmFGZWUAAAAAAgAAAA9zdGF0aWNfZXh0cmFGZWUBAAAAF3N0YXRpY0tleV9mZWVBZ2dyZWdhdG9yAAAAAAIAAAAUc3RhdGljX2ZlZUFnZ3JlZ2F0b3IAAAAAD2tleUdsb2JhbEVhcm5lZAIAAAAPZ2xvYmFsX2Vhcm5pbmdzAQAAABJzdGF0aWNLZXlfcGVyY2hGZWUAAAAAAgAAAA9zdGF0aWNfcGVyY2hGZWUBAAAAGHN0YXRpY0tleV9yZWJpcnRoQWRkcmVzcwAAAAACAAAAFXN0YXRpY19yZWJpcnRoQWRkcmVzcwEAAAAec3RhdGljS2V5X3R1cnRsZVJlYmlydGhBZGRyZXNzAAAAAAIAAAAbc3RhdGljX3R1cnRsZVJlYmlydGhBZGRyZXNzAQAAABZzdGF0aWNLZXlfaXRlbXNBZGRyZXNzAAAAAAIAAAATc3RhdGljX2l0ZW1zQWRkcmVzcwEAAAAOdG90YWxTdGFrZWRLZXkAAAAAAgAAAAx0b3RhbF9zdGFrZWQBAAAAH3N0YXRpY0tleV9wcm94eVN0YWtpbmdDb250cmFjdHMAAAAAAgAAABxzdGF0aWNfcHJveHlTdGFraW5nQ29udHJhY3RzAQAAABlzdGF0aWNLZXlfY2ZNYXN0ZXJBZGRyZXNzAAAAAAIAAAAWc3RhdGljX2NmTWFzdGVyQWRkcmVzcwEAAAATc3RhdGljS2V5X3BvdGlvbkZlZQAAAAACAAAAEHN0YXRpY19wb3Rpb25GZWUBAAAAHnN0YXRpY0tleV9jYW5pbmVTdGFraW5nQWRkcmVzcwAAAAACAAAAG3N0YXRpY19jYW5pbmVTdGFraW5nQWRkcmVzcwEAAAAac3RhdGljS2V5X3dlYXJhYmxlc0FkZHJlc3MAAAAAAgAAABdzdGF0aWNfd2VhcmFibGVzQWRkcmVzcwEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQEAAAAXc3RhdGljS2V5X29yYWNsZUFkZHJlc3MAAAAAAQAAABFnZXRSZWJpcnRoQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAGHN0YXRpY0tleV9yZWJpcnRoQWRkcmVzcwAAAAABAAAADWdldEVnZ0Fzc2V0SWQAAAAACQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAUc3RhdGljS2V5X2VnZ0Fzc2V0SWQAAAAAAQAAABNnZXRJbmN1YmF0b3JBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAac3RhdGljS2V5X2luY3ViYXRvckFkZHJlc3MAAAAAAQAAABFnZXRCcmVlZGVyQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAGHN0YXRpY0tleV9icmVlZGVyQWRkcmVzcwAAAAABAAAAFGdldEFjY0Jvb3N0ZXJBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAbc3RhdGljS2V5X2FjY0Jvb3N0ZXJBZGRyZXNzAAAAAAEAAAARZ2V0Q291cG9uc0FkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABhzdGF0aWNLZXlfY291cG9uc0FkZHJlc3MAAAAAAQAAAA5nZXRCdXJuQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAFXN0YXRpY0tleV9idXJuQWRkcmVzcwAAAAABAAAAEGdldEZlZUFnZ3JlZ2F0b3IAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABdzdGF0aWNLZXlfZmVlQWdncmVnYXRvcgAAAAABAAAAFWdldFJlZkNvbnRyYWN0QWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAHHN0YXRpY0tleV9yZWZDb250cmFjdEFkZHJlc3MAAAAAAQAAABdnZXRUdXJ0bGVSZWJpcnRoQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAHnN0YXRpY0tleV90dXJ0bGVSZWJpcnRoQWRkcmVzcwAAAAABAAAAD2dldEl0ZW1zQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAFnN0YXRpY0tleV9pdGVtc0FkZHJlc3MAAAAAAQAAAA9nZXRQcm94eVN0YWtpbmcAAAAACQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAH3N0YXRpY0tleV9wcm94eVN0YWtpbmdDb250cmFjdHMAAAAAAQAAABJnZXRDZk1hc3RlckFkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABlzdGF0aWNLZXlfY2ZNYXN0ZXJBZGRyZXNzAAAAAAEAAAAMZ2V0UG90aW9uRmVlAAAAAAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABNzdGF0aWNLZXlfcG90aW9uRmVlAAAAAAEAAAAXZ2V0Q2FuaW5lU3Rha2luZ0FkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAAB5zdGF0aWNLZXlfY2FuaW5lU3Rha2luZ0FkZHJlc3MAAAAAAQAAABNnZXRXZWFyYWJsZXNBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAac3RhdGljS2V5X3dlYXJhYmxlc0FkZHJlc3MAAAAAAQAAABRrZXlMYXN0Q2hlY2tJbnRlcmVzdAAAAAIAAAAHYWRkcmVzcwAAAAVhc3NldAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhhZGRyZXNzXwUAAAAHYWRkcmVzcwIAAAAHX2Fzc2V0XwUAAAAFYXNzZXQCAAAAEl9sYXN0Q2hlY2tJbnRlcmVzdAEAAAARYXNzZXRGYXJtaW5nUG93ZXIAAAACAAAAB2FkZHJlc3MAAAAFYXNzZXQJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIYWRkcmVzc18FAAAAB2FkZHJlc3MCAAAAB19hc3NldF8FAAAABWFzc2V0AgAAAA1fZmFybWluZ1Bvd2VyAQAAABByZXdhcmRDbGFpbWVkS2V5AAAAAgAAAAdhZGRyZXNzAAAABWFzc2V0CQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdhZGRyZXNzAgAAAAdfYXNzZXRfBQAAAAVhc3NldAIAAAAIX2NsYWltZWQBAAAAEnRvdGFsU3Rha2VkVXNlcktleQAAAAEAAAAHYWRkcmVzcwkAASwAAAACAgAAAA10b3RhbF9zdGFrZWRfBQAAAAdhZGRyZXNzAAAAAA1SZWZlcmVyUmV3YXJkAAAAAAAAAAAFAQAAABZjaGVja0FkZGl0aW9uYWxQYXltZW50AAAAAQAAAAdwYXltZW50AwkBAAAACWlz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ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgUAAAAGcmFyaXR5AQAAABJ1cGRhdGVGYXJtaW5nUG93ZXIAAAADAAAAB2FkZHJlc3MAAAAFYXNzZXQAAAAMb3JpZ2luQ2FsbGVyBAAAAAt0b3RhbFN0YWtlZAkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAAOdG90YWxTdGFrZWRLZXkAAAAABAAAAA90b3RhbFN0YWtlZFVzZXIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAAEnRvdGFsU3Rha2VkVXNlcktleQAAAAEFAAAAB2FkZHJlc3MEAAAACWN1cnJlbnRGUAkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAARYXNzZXRGYXJtaW5nUG93ZXIAAAACBQAAAAdhZGRyZXNzBQAAAAVhc3NldAQAAAAFbmV3RlAJAQAAAAphc0ludFR1cGxlAAAAAQkAA/wAAAAEBQAAAAR0aGlzAgAAABJjYWxjdWxhdGVGYXJtUG93ZXIJAARMAAAAAgUAAAAFYXNzZXQJAARMAAAAAgUAAAAMb3JpZ2luQ2FsbGVyBQAAAANuaWwFAAAAA25pbAMJAQAAAAIhPQAAAAIFAAAACWN1cnJlbnRGUAAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADnRvdGFsU3Rha2VkS2V5AAAAAAkAAGQAAAACCQAAZQAAAAIFAAAAC3RvdGFsU3Rha2VkBQAAAAljdXJyZW50RlAIBQAAAAVuZXdGUAAAAAJfMQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAEnRvdGFsU3Rha2VkVXNlcktleQAAAAEFAAAAB2FkZHJlc3MJAABkAAAAAgkAAGUAAAACBQAAAA90b3RhbFN0YWtlZFVzZXIFAAAACWN1cnJlbnRGUAgFAAAABW5ld0ZQAAAAAl8xCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAARYXNzZXRGYXJtaW5nUG93ZXIAAAACBQAAAAdhZGRyZXNzBQAAAAVhc3NldAgFAAAABW5ld0ZQAAAAAl8xBQAAAANuaWwFAAAAA25pbAEAAAASY2xhaW1TdGFraW5nUmVzdWx0AAAABQAAAAdhZGRyZXNzAAAABWFzc2V0AAAABnJlY2FsYwAAAA93YWxsZXRUb1JlY2VpdmUAAAALYm9udXNDYWxsZXIEAAAAD2N1cnJlbnRJbnRlcmVzdAkBAAAADXRyeUdldEludGVnZXIAAAABBQAAABVrZXlHbG9iYWxMYXN0SW50ZXJlc3QEAAAAEWxhc3RDaGVja0ludGVyZXN0CQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAABRrZXlMYXN0Q2hlY2tJbnRlcmVzdAAAAAIFAAAAB2FkZHJlc3MFAAAABWFzc2V0BAAAAAxzdGFrZWRBbW91bnQJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAAEWFzc2V0RmFybWluZ1Bvd2VyAAAAAgUAAAAHYWRkcmVzcwUAAAAFYXNzZXQEAAAACGZwVXBkYXRlAwUAAAAGcmVjYWxjCQEAAAASdXBkYXRlRmFybWluZ1Bvd2VyAAAAAwUAAAAHYWRkcmVzcwUAAAAFYXNzZXQFAAAAC2JvbnVzQ2FsbGVyBQAAAANuaWwDCQAAAAAAAAIFAAAACGZwVXBkYXRlBQAAAAhmcFVwZGF0ZQQAAAAGcmV3YXJkAwkAAGYAAAACBQAAABFsYXN0Q2hlY2tJbnRlcmVzdAAAAAAAAAAAAAkAAGsAAAADCQAAZQAAAAIFAAAAD2N1cnJlbnRJbnRlcmVzdAUAAAARbGFzdENoZWNrSW50ZXJlc3QFAAAADHN0YWtlZEFtb3VudAUAAAAFU2NhbGUAAAAAAAAAAAAJAAUUAAAAAgkABE4AAAACCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAD3dhbGxldFRvUmVjZWl2ZQUAAAAGcmV3YXJkCQEAAAANZ2V0RWdnQXNzZXRJZAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABRrZXlMYXN0Q2hlY2tJbnRlcmVzdAAAAAIFAAAAB2FkZHJlc3MFAAAABWFzc2V0BQAAAA9jdXJyZW50SW50ZXJlc3QJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABByZXdhcmRDbGFpbWVkS2V5AAAAAgUAAAAPd2FsbGV0VG9SZWNlaXZlBQAAAAVhc3NldAkAAGQAAAACCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAABByZXdhcmRDbGFpbWVkS2V5AAAAAgUAAAAPd2FsbGV0VG9SZWNlaXZlBQAAAAVhc3NldAUAAAAGcmV3YXJkBQAAAANuaWwFAAAACGZwVXBkYXRlBQAAAAZyZXdhcmQJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQAAAAlhc0Jvb2xlYW4AAAABAAAABXZhbHVlBAAAAAckbWF0Y2gwBQAAAAV2YWx1ZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAHQm9vbGVhbgQAAAAHYm9vbGVhbgUAAAAHJG1hdGNoMAUAAAAHYm9vbGVhbgkAAAIAAAABAgAAACJGQUI6IHdyb25nIHR5cGUsIGV4cGVjdGVkOiBCb29sZWFuAQAAABNjYWxjdWxhdGVQZXJjaFByaWNlAAAAAQAAAAdhZGRyZXNzBAAAABFoYXNBcnRlZmFjdFN0YWtlZAkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAAFGdldEFjY0Jvb3N0ZXJBZGRyZXNzAAAAAAkAASwAAAACCQABLAAAAAICAAAAC0FSVC1YTUlTVExfBQAAAAdhZGRyZXNzAgAAAAZfb3duZXIEAAAACnBlcmNoUHJpY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAASc3RhdGljS2V5X3BlcmNoRmVlAAAAAAMJAAAAAAAAAgUAAAARaGFzQXJ0ZWZhY3RTdGFrZWQCAAAAAAUAAAAKcGVyY2hQcmljZQkAAGgAAAACCQAAaQAAAAIFAAAACnBlcmNoUHJpY2UAAAAAAAAAAAoAAAAAAAAAAAkBAAAAEGlzUHJveHlTdGFraW5nU2MAAAABAAAAB2FkZHJlc3MEAAAAEGFsbG93ZWRDb250cmFjdHMJAQAAAA9nZXRQcm94eVN0YWtpbmcAAAAABAAAABRhbGxvd2VkQ29udHJhY3RzTGlzdAkABLUAAAACBQAAABBhbGxvd2VkQ29udHJhY3RzAgAAAAE7CQEAAAACIT0AAAACCQAETwAAAAIFAAAAFGFsbG93ZWRDb250cmFjdHNMaXN0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AAAGYW1vdW50BQAAAANuaWwCAAAAAAAAAAFpAQAAAA5taWdyYXRlUGVyY2hlcwAAAAEAAAAHYWRkcmVzcwQAAAAKb2xkRmFybWluZwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAACAAAAFXN0YXRpY19mYXJtaW5nQWRkcmVzcwoBAAAAF3RyeUdldEludGVnZXJPbGRGYXJtaW5nAAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAKb2xkRmFybWluZwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIAAAAAAAAAAAAEAAAADHBlcmNoQW1vdW50QgkBAAAAF3RyeUdldEludGVnZXJPbGRGYXJtaW5nAAAAAQkAASwAAAACCQABLAAAAAICAAAACGFkZHJlc3NfBQAAAAdhZGRyZXNzAgAAABNfcGVyY2hlc0F2YWlsYWJsZV9CAwkAAAAAAAACBQAAAAxwZXJjaEFtb3VudEIFAAAADHBlcmNoQW1vdW50QgQAAAAMcGVyY2hBbW91bnRSCQEAAAAXdHJ5R2V0SW50ZWdlck9sZEZhcm1pbmcAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAIYWRkcmVzc18FAAAAB2FkZHJlc3MCAAAAE19wZXJjaGVzQXZhaWxhYmxlX1IDCQAAAAAAAAIFAAAADHBlcmNoQW1vdW50UgUAAAAMcGVyY2hBbW91bnRSBAAAAAxwZXJjaEFtb3VudEcJAQAAABd0cnlHZXRJbnRlZ2VyT2xkRmFybWluZwAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAhhZGRyZXNzXwUAAAAHYWRkcmVzcwIAAAATX3BlcmNoZXNBdmFpbGFibGVfRwMJAAAAAAAAAgUAAAAMcGVyY2hBbW91bnRHBQAAAAxwZXJjaEFtb3VudEcEAAAADHBlcmNoQW1vdW50WQkBAAAAF3RyeUdldEludGVnZXJPbGRGYXJtaW5nAAAAAQkAASwAAAACCQABLAAAAAICAAAACGFkZHJlc3NfBQAAAAdhZGRyZXNzAgAAABNfcGVyY2hl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", "height": 3436153, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: F4j42U56yjKoGDm4MKitVGQvkTtLwogvjh2tGAaRDKBM Next: hJBrS7xNYDxv92ejZFGaRW7KoEizuynVrSScY2sYobt Diff:
OldNewDifferences
9292 func E () = "static_canineStakingAddress"
9393
9494
95-func F () = Address(fromBase58String(g(m())))
95+func F () = "static_wearablesAddress"
9696
9797
98-func G () = Address(fromBase58String(b(F(), x())))
98+func G () = Address(fromBase58String(g(m())))
9999
100100
101-func H () = fromBase58String(b(F(), n()))
101+func H () = Address(fromBase58String(b(G(), x())))
102102
103103
104-func I () = Address(fromBase58String(b(F(), o())))
104+func I () = fromBase58String(b(G(), n()))
105105
106106
107-func J () = Address(fromBase58String(b(F(), p())))
107+func J () = Address(fromBase58String(b(G(), o())))
108108
109109
110-func K () = Address(fromBase58String(b(F(), q())))
110+func K () = Address(fromBase58String(b(G(), p())))
111111
112112
113-func L () = Address(fromBase58String(b(F(), r())))
113+func L () = Address(fromBase58String(b(G(), q())))
114114
115115
116-func M () = Address(fromBase58String(b(F(), s())))
116+func M () = Address(fromBase58String(b(G(), r())))
117117
118118
119-func N () = Address(fromBase58String(b(F(), u())))
119+func N () = Address(fromBase58String(b(G(), s())))
120120
121121
122-func O () = Address(fromBase58String(b(F(), k())))
122+func O () = Address(fromBase58String(b(G(), u())))
123123
124124
125-func P () = Address(fromBase58String(b(F(), y())))
125+func P () = Address(fromBase58String(b(G(), k())))
126126
127127
128-func Q () = Address(fromBase58String(b(F(), z())))
128+func Q () = Address(fromBase58String(b(G(), y())))
129129
130130
131-func R () = b(F(), B())
131+func R () = Address(fromBase58String(b(G(), z())))
132132
133133
134-func S () = Address(fromBase58String(b(F(), C())))
134+func S () = b(G(), B())
135135
136136
137-func T () = getIntegerValue(F(), D())
137+func T () = Address(fromBase58String(b(G(), C())))
138138
139139
140-func U () = Address(fromBase58String(b(F(), E())))
140+func U () = getIntegerValue(G(), D())
141141
142142
143-func V (c,W) = (((("address_" + c) + "_asset_") + W) + "_lastCheckInterest")
143+func V () = Address(fromBase58String(b(G(), E())))
144144
145145
146-func X (c,W) = (((("address_" + c) + "_asset_") + W) + "_farmingPower")
146+func W () = Address(fromBase58String(b(G(), F())))
147147
148148
149-func Y (c,W) = (((c + "_asset_") + W) + "_claimed")
149+func X (c,Y) = (((("address_" + c) + "_asset_") + Y) + "_lastCheckInterest")
150150
151151
152-func Z (c) = ("total_staked_" + c)
152+func Z (c,Y) = (((("address_" + c) + "_asset_") + Y) + "_farmingPower")
153153
154154
155-let aa = 5
155+func aa (c,Y) = (((c + "_asset_") + Y) + "_claimed")
156156
157-func ab (ac) = if (isDefined(ac.assetId))
157+
158+func ab (c) = ("total_staked_" + c)
159+
160+
161+let ac = 5
162+
163+func ad (ae) = if (isDefined(ae.assetId))
158164 then throw("FCAP: Please attach waves")
159165 else {
160- let ad = getIntegerValue(F(), t())
161- if ((ac.amount != ad))
162- then throw((("FCAP: Please attach exactly " + toString(ad)) + " amount of wavelets"))
163- else [ScriptTransfer(N(), ad, unit)]
166+ let af = getIntegerValue(G(), t())
167+ if ((ae.amount != af))
168+ then throw((("FCAP: Please attach exactly " + toString(af)) + " amount of wavelets"))
169+ else [ScriptTransfer(O(), af, unit)]
164170 }
165171
166172
167-func ae (d) = {
173+func ag (d) = {
168174 let e = getInteger(this, d)
169175 if ($isInstanceOf(e, "Int"))
170176 then {
175181 }
176182
177183
178-func af (ag) = {
179- let e = ag
184+func ah (ai) = {
185+ let e = ai
180186 if ($isInstanceOf(e, "Int"))
181187 then {
182- let ah = e
183- ah
188+ let aj = e
189+ aj
184190 }
185191 else throw("FAI: wrong type, expected: Int")
186192 }
187193
188194
189-func ai (ag) = {
190- let e = ag
195+func ak (ai) = {
196+ let e = ai
191197 if ($isInstanceOf(e, "(Int, Int)"))
192198 then {
193- let ah = e
194- ah
199+ let aj = e
200+ aj
195201 }
196202 else throw("FAI: wrong type, expected: (Int,Int)")
197203 }
198204
199205
200-func aj (ak) = {
201- let al = ae(l)
202- let am = ae(A())
203- let an = if ((am > 0))
204- then fraction(ak, a, am)
206+func al (am) = {
207+ let an = ag(l)
208+ let ao = ag(A())
209+ let ap = if ((ao > 0))
210+ then fraction(am, a, ao)
205211 else 0
206-[IntegerEntry(v, (ae(v) + ak)), IntegerEntry(l, (al + an))]
212+[IntegerEntry(v, (ag(v) + am)), IntegerEntry(l, (an + ap))]
207213 }
208214
209215
210-func ao (ag) = {
211- let e = ag
216+func aq (ai) = {
217+ let e = ai
212218 if ($isInstanceOf(e, "String"))
213219 then {
214- let ap = e
215- ap
220+ let ar = e
221+ ar
216222 }
217223 else throw("FAS: wrong type, expected: String")
218224 }
219225
220226
221-func aq (d) = {
227+func as (d) = {
222228 let e = getBoolean(this, d)
223229 if ($isInstanceOf(e, "Boolean"))
224230 then {
229235 }
230236
231237
232-func ar (c,d) = {
238+func at (c,d) = {
233239 let e = getBoolean(c, d)
234240 if ($isInstanceOf(e, "Boolean"))
235241 then {
240246 }
241247
242248
243-func as (at) = if ((at == "G"))
244- then I()
245- else J()
249+func au (av) = if ((av == "G"))
250+ then J()
251+ else K()
246252
247253
248-func au (av,at) = {
249- let aw = valueOrErrorMessage(getInteger(as(at), (("stats_" + av) + "_quantity")), (("stats_" + av) + "_quantity not found"))
250- let ax = pow((10000 / aw), 4, 5, 1, 2, FLOOR)
251- if ((ax > 0))
252- then ax
254+func aw (ax,av) = {
255+ let ay = valueOrErrorMessage(getInteger(au(av), (("stats_" + ax) + "_quantity")), (("stats_" + ax) + "_quantity not found"))
256+ let az = pow((10000 / ay), 4, 5, 1, 2, FLOOR)
257+ if ((az > 0))
258+ then az
253259 else 2
254260 }
255261
256262
257-func ay (az,aA) = {
258- let aB = if (az)
263+func aA (aB,aC) = {
264+ let aD = if (aB)
259265 then 100
260266 else {
261- let at = take(takeRight(aA, 2), 1)
262- let aC = ao(invoke(J(), "getGenFromName", [aA], nil))
263- if ((aC == aC))
264- then au(aC, at)
267+ let av = take(takeRight(aC, 2), 1)
268+ let aE = aq(invoke(K(), "getGenFromName", [aC], nil))
269+ if ((aE == aE))
270+ then aw(aE, av)
265271 else throw("Strict value is not equal to itself.")
266272 }
267- aB
273+ aD
268274 }
269275
270276
271-func aD (c,W,aE) = {
272- let aF = ae(A())
273- let aG = ae(Z(c))
274- let aH = ae(X(c, W))
275- let aI = ai(invoke(this, "calculateFarmPower", [W, aE], nil))
276- if ((aH != 0))
277- then [IntegerEntry(A(), ((aF - aH) + aI._1)), IntegerEntry(Z(c), ((aG - aH) + aI._1)), IntegerEntry(X(c, W), aI._1)]
277+func aF (c,Y,aG) = {
278+ let aH = ag(A())
279+ let aI = ag(ab(c))
280+ let aJ = ag(Z(c, Y))
281+ let aK = ak(invoke(this, "calculateFarmPower", [Y, aG], nil))
282+ if ((aJ != 0))
283+ then [IntegerEntry(A(), ((aH - aJ) + aK._1)), IntegerEntry(ab(c), ((aI - aJ) + aK._1)), IntegerEntry(Z(c, Y), aK._1)]
278284 else nil
279285 }
280286
281287
282-func aJ (c,W,aK,aL,aM) = {
283- let al = ae(l)
284- let aN = ae(V(c, W))
285- let aO = ae(X(c, W))
286- let aP = if (aK)
287- then aD(c, W, aM)
288+func aL (c,Y,aM,aN,aO) = {
289+ let an = ag(l)
290+ let aP = ag(X(c, Y))
291+ let aQ = ag(Z(c, Y))
292+ let aR = if (aM)
293+ then aF(c, Y, aO)
288294 else nil
289- if ((aP == aP))
295+ if ((aR == aR))
290296 then {
291- let aQ = if ((aN > 0))
292- then fraction((al - aN), aO, a)
297+ let aS = if ((aP > 0))
298+ then fraction((an - aP), aQ, a)
293299 else 0
294- $Tuple2(([ScriptTransfer(addressFromStringValue(aL), aQ, H()), IntegerEntry(V(c, W), al), IntegerEntry(Y(aL, W), (ae(Y(aL, W)) + aQ))] ++ aP), aQ)
300+ $Tuple2(([ScriptTransfer(addressFromStringValue(aN), aS, I()), IntegerEntry(X(c, Y), an), IntegerEntry(aa(aN, Y), (ag(aa(aN, Y)) + aS))] ++ aR), aS)
295301 }
296302 else throw("Strict value is not equal to itself.")
297303 }
298304
299305
300-func aR (ag) = {
301- let e = ag
306+func aT (ai) = {
307+ let e = ai
302308 if ($isInstanceOf(e, "Boolean"))
303309 then {
304- let aS = e
305- aS
310+ let aU = e
311+ aU
306312 }
307313 else throw("FAB: wrong type, expected: Boolean")
308314 }
309315
310316
311-func aT (c) = {
312- let aU = b(K(), (("ART-XMISTL_" + c) + "_owner"))
313- let aV = getIntegerValue(F(), w())
314- if ((aU == ""))
315- then aV
316- else ((aV / 10) * 9)
317+func aV (c) = {
318+ let aW = b(L(), (("ART-XMISTL_" + c) + "_owner"))
319+ let aX = getIntegerValue(G(), w())
320+ if ((aW == ""))
321+ then aX
322+ else ((aX / 10) * 9)
317323 }
318324
319325
320-func aW (c) = {
321- let aX = R()
322- let aY = split(aX, ";")
323- (indexOf(aY, c) != unit)
326+func aY (c) = {
327+ let aZ = S()
328+ let ba = split(aZ, ";")
329+ (indexOf(ba, c) != unit)
324330 }
325331
326332
327-@Callable(aZ)
328-func calculateFarmPower (ba,bb) = if (!(if ((value(assetInfo(fromBase58String(ba))).issuer == J()))
333+@Callable(bb)
334+func calculateFarmPower (bc,bd) = if (!(if ((value(assetInfo(fromBase58String(bc))).issuer == K()))
329335 then true
330- else (value(assetInfo(fromBase58String(ba))).issuer == I())))
336+ else (value(assetInfo(fromBase58String(bc))).issuer == J())))
331337 then throw("This does not seem like a valid Duck!")
332- else {
333- let aA = value(assetInfo(fromBase58String(ba))).name
334- let bc = takeRight(aA, 1)
335- let az = (takeRight(aA, 1) == "U")
336- let aB = ay(az, aA)
337- let av = split(dropRight(drop(aA, 5), 3), "")
338- func bd (be,bf) = if (!(containsElement(be, bf)))
339- then (be :+ bf)
340- else be
338+ else if (if (at(K(), (bc + "_blacklisted")))
339+ then true
340+ else at(J(), (bc + "_blacklisted")))
341+ then throw("Screw urself")
342+ else {
343+ let aC = value(assetInfo(fromBase58String(bc))).name
344+ let be = takeRight(aC, 1)
345+ let aB = (takeRight(aC, 1) == "U")
346+ let aD = aA(aB, aC)
347+ let ax = split(dropRight(drop(aC, 5), 3), "")
348+ func bf (bg,bh) = if (!(containsElement(bg, bh)))
349+ then (bg :+ bh)
350+ else bg
341351
342- let bg = {
343- let bh = av
344- let bi = size(bh)
345- let bj = nil
346- func bk (bl,bm) = if ((bm >= bi))
347- then bl
348- else bd(bl, bh[bm])
352+ let bi = {
353+ let bj = ax
354+ let bk = size(bj)
355+ let bl = nil
356+ func bm (bn,bo) = if ((bo >= bk))
357+ then bn
358+ else bf(bn, bj[bo])
349359
350- func bn (bl,bm) = if ((bm >= bi))
351- then bl
352- else throw("List size exceeds 8")
360+ func bp (bn,bo) = if ((bo >= bk))
361+ then bn
362+ else throw("List size exceeds 8")
353363
354- bn(bk(bk(bk(bk(bk(bk(bk(bk(bj, 0), 1), 2), 3), 4), 5), 6), 7), 8)
364+ bp(bm(bm(bm(bm(bm(bm(bm(bm(bl, 0), 1), 2), 3), 4), 5), 6), 7), 8)
365+ }
366+ let bq = if ((be == "U"))
367+ then 8
368+ else size(bi)
369+ let az = pow(15, 1, bq, 0, 2, DOWN)
370+ let br = if (j())
371+ then 2500000
372+ else 3750000
373+ let bs = (((height - br) * 100) / (((60 * 24) * 30) * 3))
374+ let bt = ag((bc + "_basePower"))
375+ let bu = if ((bt > 0))
376+ then bt
377+ else ((az * bs) / 100)
378+ let bv = ((bu * aD) / 100)
379+ let bw = ah(invoke(R(), "calculateFarmingPowerBoost", [bc, bd], nil))
380+ if ((bw == bw))
381+ then {
382+ let bx = ah(invoke(W(), "calculateWearblesBoost", [bc], nil))
383+ if ((bx == bx))
384+ then {
385+ let by = ((bv + ((bv * bw) / 100)) + ((bv * bx) / 1000))
386+ $Tuple2(nil, $Tuple2(by, bu))
387+ }
388+ else throw("Strict value is not equal to itself.")
389+ }
390+ else throw("Strict value is not equal to itself.")
355391 }
356- let bo = if ((bc == "U"))
357- then 8
358- else size(bg)
359- let ax = pow(15, 1, bo, 0, 2, DOWN)
360- let bp = if (j())
361- then 2500000
362- else 3750000
363- let bq = (((height - bp) * 100) / (((60 * 24) * 30) * 3))
364- let br = ae((ba + "_basePower"))
365- let bs = if ((br > 0))
366- then br
367- else ((ax * bq) / 100)
368- let bt = ((bs * aB) / 100)
369- let bu = af(invoke(Q(), "calculateFarmingPowerBoost", [ba, bb], nil))
370- if ((bu == bu))
371- then {
372- let bv = (bt + ((bt * bu) / 100))
373- $Tuple2(nil, $Tuple2(bv, bs))
374- }
375- else throw("Strict value is not equal to itself.")
376- }
377392
378393
379394
380-@Callable(aZ)
381-func configureOracle (bw) = if ((aZ.caller != this))
395+@Callable(bb)
396+func configureOracle (bz) = if ((bb.caller != this))
382397 then throw("FCO: admin only")
383- else [StringEntry(m(), bw)]
398+ else [StringEntry(m(), bz)]
384399
385400
386401
387-@Callable(aZ)
388-func buyPerch (bx,by) = {
389- let bz = ab(aZ.payments[0])
390- if ((bz == bz))
402+@Callable(bb)
403+func buyPerch (bA,bB) = {
404+ let bC = ad(bb.payments[0])
405+ if ((bC == bC))
391406 then {
392- let bA = if ((bx == "U"))
407+ let bD = if ((bA == "U"))
393408 then "B"
394- else bx
395- if ((0 > value(indexOf(["B", "R", "G", "Y"], bA))))
409+ else bA
410+ if ((0 > value(indexOf(["B", "R", "G", "Y"], bD))))
396411 then throw("you need to set color properly")
397412 else {
398- let bB = aT(toString(aZ.caller))
399- let bC = if ((aZ.originCaller == aZ.caller))
413+ let bE = aV(toString(bb.caller))
414+ let bF = if ((bb.originCaller == bb.caller))
400415 then {
401- let bD = af(invoke(L(), "useCoupons", [bB], nil))
402- if ((bD == bD))
403- then (bB - bD)
416+ let bG = ah(invoke(M(), "useCoupons", [bE], nil))
417+ if ((bG == bG))
418+ then (bE - bG)
404419 else throw("Strict value is not equal to itself.")
405420 }
406- else bB
407- let ac = if ((bC != 0))
421+ else bE
422+ let ae = if ((bF != 0))
408423 then {
409- let bE = if ((size(aZ.payments) == 2))
410- then value(aZ.payments[1])
411- else value(aZ.payments[0])
412- if ((bE.assetId != H()))
413- then throw(("FBP: You can attach only EGG tokens with the following asset id: " + toBase58String(H())))
414- else if ((bE.amount != bC))
415- then throw(((("FBP: To buy a perch you currently need the following amount of EGGlets: " + toString(bC)) + " ") + toString(aZ.caller)))
424+ let bH = if ((size(bb.payments) == 2))
425+ then value(bb.payments[1])
426+ else value(bb.payments[0])
427+ if ((bH.assetId != I()))
428+ then throw(("FBP: You can attach only EGG tokens with the following asset id: " + toBase58String(I())))
429+ else if ((bH.amount != bF))
430+ then throw(((("FBP: To buy a perch you currently need the following amount of EGGlets: " + toString(bF)) + " ") + toString(bb.caller)))
416431 else {
417- let bF = fraction(bC, 5, 100)
418- let bG = aR(invoke(O(), "refPayment", [by], [AttachedPayment(H(), bF)]))
419- if ((bG == bG))
432+ let bI = fraction(bF, 5, 100)
433+ let bJ = aT(invoke(P(), "refPayment", [bB], [AttachedPayment(I(), bI)]))
434+ if ((bJ == bJ))
420435 then {
421- let bH = if (bG)
422- then (bC - bF)
423- else bC
424- let bI = invoke(M(), "burnAttachedPayments", nil, [AttachedPayment(H(), bH)])
425- if ((bI == bI))
426- then bC
436+ let bK = if (bJ)
437+ then (bF - bI)
438+ else bF
439+ let bL = invoke(N(), "burnAttachedPayments", nil, [AttachedPayment(I(), bK)])
440+ if ((bL == bL))
441+ then bF
427442 else throw("Strict value is not equal to itself.")
428443 }
429444 else throw("Strict value is not equal to itself.")
430445 }
431446 }
432447 else 0
433- if ((ac == ac))
448+ if ((ae == ae))
434449 then {
435- let bJ = ((("address_" + toString(aZ.caller)) + "_perchesAvailable_") + bA)
436- let bK = ae(bJ)
437- ([IntegerEntry(bJ, (bK + 1))] ++ bz)
450+ let bM = ((("address_" + toString(bb.caller)) + "_perchesAvailable_") + bD)
451+ let bN = ag(bM)
452+ ([IntegerEntry(bM, (bN + 1))] ++ bC)
438453 }
439454 else throw("Strict value is not equal to itself.")
440455 }
444459
445460
446461
447-@Callable(aZ)
448-func addFreePerch (c,bA,ak) = if ((0 > value(indexOf(["B", "R", "G", "Y"], bA))))
462+@Callable(bb)
463+func addFreePerch (c,bD,am) = if ((0 > value(indexOf(["B", "R", "G", "Y"], bD))))
449464 then throw("you need to set color properly")
450- else if (if (if ((aZ.caller != G()))
451- then (aZ.caller != P())
465+ else if (if (if (if ((bb.caller != H()))
466+ then (bb.caller != Q())
452467 else false)
453- then (aZ.caller != this)
468+ then (bb.caller != this)
469+ else false)
470+ then (bb.caller != M())
454471 else false)
455472 then throw("rebirth and admin only")
456473 else {
457- let bJ = ((("address_" + c) + "_perchesAvailable_") + bA)
458- let bK = ae(bJ)
459- $Tuple2([IntegerEntry(bJ, (bK + ak))], "")
474+ let bM = ((("address_" + c) + "_perchesAvailable_") + bD)
475+ let bN = ag(bM)
476+ $Tuple2([IntegerEntry(bM, (bN + am))], "")
460477 }
461478
462479
463480
464-@Callable(aZ)
481+@Callable(bb)
465482 func migratePerches (c) = {
466- let bL = addressFromStringValue(b(F(), "static_farmingAddress"))
467- func bM (d) = {
468- let e = getInteger(bL, d)
483+ let bO = addressFromStringValue(b(G(), "static_farmingAddress"))
484+ func bP (d) = {
485+ let e = getInteger(bO, d)
469486 if ($isInstanceOf(e, "Int"))
470487 then {
471488 let i = e
474491 else 0
475492 }
476493
477- let bN = bM((("address_" + c) + "_perchesAvailable_B"))
478- if ((bN == bN))
494+ let bQ = bP((("address_" + c) + "_perchesAvailable_B"))
495+ if ((bQ == bQ))
479496 then {
480- let bO = bM((("address_" + c) + "_perchesAvailable_R"))
481- if ((bO == bO))
497+ let bR = bP((("address_" + c) + "_perchesAvailable_R"))
498+ if ((bR == bR))
482499 then {
483- let bP = bM((("address_" + c) + "_perchesAvailable_G"))
484- if ((bP == bP))
500+ let bS = bP((("address_" + c) + "_perchesAvailable_G"))
501+ if ((bS == bS))
485502 then {
486- let bQ = bM((("address_" + c) + "_perchesAvailable_Y"))
487- if ((bQ == bQ))
503+ let bT = bP((("address_" + c) + "_perchesAvailable_Y"))
504+ if ((bT == bT))
488505 then {
489- let bR = invoke(this, "addFreePerch", [c, "B", bN], nil)
490- if ((bR == bR))
506+ let bU = invoke(this, "addFreePerch", [c, "B", bQ], nil)
507+ if ((bU == bU))
491508 then {
492- let bS = invoke(this, "addFreePerch", [c, "R", bO], nil)
493- if ((bS == bS))
509+ let bV = invoke(this, "addFreePerch", [c, "R", bR], nil)
510+ if ((bV == bV))
494511 then {
495- let bT = invoke(this, "addFreePerch", [c, "G", bP], nil)
496- if ((bT == bT))
512+ let bW = invoke(this, "addFreePerch", [c, "G", bS], nil)
513+ if ((bW == bW))
497514 then {
498- let bU = invoke(this, "addFreePerch", [c, "Y", bQ], nil)
499- if ((bU == bU))
500- then if (if (if (if ((bN == 0))
501- then (bO == 0)
515+ let bX = invoke(this, "addFreePerch", [c, "Y", bT], nil)
516+ if ((bX == bX))
517+ then if (if (if (if ((bQ == 0))
518+ then (bR == 0)
502519 else false)
503- then (bP == 0)
520+ then (bS == 0)
504521 else false)
505- then (bQ == 0)
522+ then (bT == 0)
506523 else false)
507524 then throw("Nothing to migrate")
508525 else {
509- let bV = invoke(bL, "removePerches", [c], nil)
510- if ((bV == bV))
526+ let bY = invoke(bO, "removePerches", [c], nil)
527+ if ((bY == bY))
511528 then nil
512529 else throw("Strict value is not equal to itself.")
513530 }
530547
531548
532549
533-@Callable(aZ)
534-func stakeNFT (bW,bX,bY) = if (if (bY)
535- then !(aW(toString(aZ.caller)))
550+@Callable(bb)
551+func stakeNFT (bZ,ca,cb) = if (if (cb)
552+ then !(aY(toString(bb.caller)))
536553 else false)
537554 then throw("You can't stake without a perch")
538555 else {
539- let bz = ab(aZ.payments[0])
540- if ((bz == bz))
556+ let bC = ad(bb.payments[0])
557+ if ((bC == bC))
541558 then {
542- let bZ = value(aZ.payments[1])
543- let ba = value(bZ.assetId)
544- let aA = value(value(assetInfo(ba)).name)
545- let az = (takeRight(aA, 1) == "U")
546- let c = toString(aZ.caller)
547- let ca = if (bX)
548- then toString(aZ.originCaller)
559+ let cc = value(bb.payments[1])
560+ let bc = value(cc.assetId)
561+ let aC = value(value(assetInfo(bc)).name)
562+ let aB = (takeRight(aC, 1) == "U")
563+ let c = toString(bb.caller)
564+ let cd = if (ca)
565+ then toString(bb.originCaller)
549566 else c
550- let cb = if (bY)
567+ let ce = if (cb)
551568 then nil
552569 else {
553- let bA = if (az)
554- then bW
555- else takeRight(aA, 1)
556- let cc = ae(((("address_" + ca) + "_perchesAvailable_") + bA))
557- if ((0 >= cc))
558- then throw(("no perches available for the color " + bA))
559- else [IntegerEntry(((("address_" + ca) + "_perchesAvailable_") + bA), (cc - 1)), StringEntry((((("address_" + c) + "_asset_") + toBase58String(ba)) + "_perchColor"), bA)]
570+ let bD = if (aB)
571+ then bZ
572+ else takeRight(aC, 1)
573+ let cf = ag(((("address_" + cd) + "_perchesAvailable_") + bD))
574+ if ((0 >= cf))
575+ then throw(("no perches available for the color " + bD))
576+ else [IntegerEntry(((("address_" + cd) + "_perchesAvailable_") + bD), (cf - 1)), StringEntry((((("address_" + c) + "_asset_") + toBase58String(bc)) + "_perchColor"), bD)]
560577 }
561- if ((cb == cb))
562- then if ((bZ.amount != 1))
578+ if ((ce == ce))
579+ then if ((cc.amount != 1))
563580 then throw("NFT is not attached")
564581 else {
565- let cd = ai(invoke(this, "calculateFarmPower", [toBase58String(ba), toString(aZ.originCaller)], nil))
566- if ((cd == cd))
582+ let cg = ak(invoke(this, "calculateFarmPower", [toBase58String(bc), toString(bb.originCaller)], nil))
583+ if ((cg == cg))
567584 then {
568- let ce = aJ(c, toBase58String(ba), false, c, toString(aZ.originCaller))
569- if ((ce == ce))
570- then ((([IntegerEntry(A(), (ae(A()) + cd._1)), IntegerEntry(Z(c), (ae(Z(c)) + cd._1)), StringEntry((toBase58String(ba) + "_owner"), c), BooleanEntry((toBase58String(ba) + "_use_origin"), bX), StringEntry((toBase58String(ba) + "_original_caller"), toString(aZ.originCaller)), IntegerEntry(X(c, toBase58String(ba)), cd._1), IntegerEntry((toBase58String(ba) + "_basePower"), cd._2), BooleanEntry((toBase58String(ba) + "_without_perch"), bY)] ++ bz) ++ cb) ++ ce._1)
585+ let ch = aL(c, toBase58String(bc), false, c, toString(bb.originCaller))
586+ if ((ch == ch))
587+ then ((([IntegerEntry(A(), (ag(A()) + cg._1)), IntegerEntry(ab(c), (ag(ab(c)) + cg._1)), StringEntry((toBase58String(bc) + "_owner"), c), BooleanEntry((toBase58String(bc) + "_use_origin"), ca), StringEntry((toBase58String(bc) + "_original_caller"), toString(bb.originCaller)), IntegerEntry(Z(c, toBase58String(bc)), cg._1), IntegerEntry((toBase58String(bc) + "_basePower"), cg._2), BooleanEntry((toBase58String(bc) + "_without_perch"), cb)] ++ bC) ++ ce) ++ ch._1)
571588 else throw("Strict value is not equal to itself.")
572589 }
573590 else throw("Strict value is not equal to itself.")
579596
580597
581598
582-@Callable(aZ)
583-func unstakeNFT (W) = {
584- let c = toString(aZ.caller)
585- if ((g((W + "_owner")) != toString(aZ.caller)))
599+@Callable(bb)
600+func unstakeNFT (Y) = {
601+ let c = toString(bb.caller)
602+ if ((g((Y + "_owner")) != toString(bb.caller)))
586603 then throw("You don't own this duck!!")
587604 else {
588- let ce = aJ(c, W, false, c, toString(aZ.originCaller))
589- if ((ce == ce))
605+ let ch = aL(c, Y, false, c, toString(bb.originCaller))
606+ if ((ch == ch))
590607 then {
591- let bz = ab(aZ.payments[0])
592- if ((bz == bz))
608+ let bC = ad(bb.payments[0])
609+ if ((bC == bC))
593610 then {
594- let bA = g((((("address_" + c) + "_asset_") + W) + "_perchColor"))
595- let cf = aq((W + "_without_perch"))
596- let cb = if (cf)
611+ let bD = g((((("address_" + c) + "_asset_") + Y) + "_perchColor"))
612+ let ci = as((Y + "_without_perch"))
613+ let ce = if (ci)
597614 then nil
598615 else {
599- let bX = aq((W + "_use_origin"))
600- let cg = if (bX)
601- then toString(aZ.originCaller)
616+ let ca = as((Y + "_use_origin"))
617+ let cj = if (ca)
618+ then toString(bb.originCaller)
602619 else c
603-[IntegerEntry(((("address_" + cg) + "_perchesAvailable_") + bA), (ae(((("address_" + cg) + "_perchesAvailable_") + bA)) + 1))]
620+[IntegerEntry(((("address_" + cj) + "_perchesAvailable_") + bD), (ag(((("address_" + cj) + "_perchesAvailable_") + bD)) + 1))]
604621 }
605- if ((cb == cb))
622+ if ((ce == ce))
606623 then {
607- let ch = ae(X(c, W))
608- if ((ch == ch))
609- then $Tuple2(((([IntegerEntry(A(), (ae(A()) - ch)), IntegerEntry(Z(c), (ae(Z(c)) - ch)), DeleteEntry((W + "_owner")), DeleteEntry(X(c, W)), DeleteEntry((((("address_" + c) + "_asset_") + W) + "_perchColor")), DeleteEntry((W + "_original_caller")), DeleteEntry((W + "_use_origin")), DeleteEntry((W + "_without_perch")), ScriptTransfer(Address(fromBase58String(c)), 1, fromBase58String(W))] ++ bz) ++ cb) ++ ce._1), ce._2)
624+ let ck = ag(Z(c, Y))
625+ if ((ck == ck))
626+ then $Tuple2(((([IntegerEntry(A(), (ag(A()) - ck)), IntegerEntry(ab(c), (ag(ab(c)) - ck)), DeleteEntry((Y + "_owner")), DeleteEntry(Z(c, Y)), DeleteEntry((((("address_" + c) + "_asset_") + Y) + "_perchColor")), DeleteEntry((Y + "_original_caller")), DeleteEntry((Y + "_use_origin")), DeleteEntry((Y + "_without_perch")), ScriptTransfer(Address(fromBase58String(c)), 1, fromBase58String(Y))] ++ bC) ++ ce) ++ ch._1), ch._2)
610627 else throw("Strict value is not equal to itself.")
611628 }
612629 else throw("Strict value is not equal to itself.")
619636
620637
621638
622-@Callable(aZ)
639+@Callable(bb)
623640 func topUpReward () = {
624- let bE = value(aZ.payments[0])
625- if ((bE.assetId != H()))
626- then throw(("FBP: You can attach only EGG tokens with the following asset id: " + toBase58String(H())))
641+ let bH = value(bb.payments[0])
642+ if ((bH.assetId != I()))
643+ then throw(("FBP: You can attach only EGG tokens with the following asset id: " + toBase58String(I())))
627644 else {
628- let ci = aj(bE.amount)
629- $Tuple2(ci, true)
645+ let cl = al(bH.amount)
646+ $Tuple2(cl, true)
630647 }
631648 }
632649
633650
634651
635-@Callable(aZ)
636-func claimReward (ba) = {
637- let bz = if ((aZ.originCaller == S()))
652+@Callable(bb)
653+func claimReward (bc) = {
654+ let bC = if ((bb.originCaller == T()))
638655 then nil
639- else ab(aZ.payments[0])
640- if ((bz == bz))
641- then if (if ((g((ba + "_owner")) != toString(aZ.caller)))
642- then (g((ba + "_original_caller")) != toString(aZ.caller))
656+ else ad(bb.payments[0])
657+ if ((bC == bC))
658+ then if (if ((g((bc + "_owner")) != toString(bb.caller)))
659+ then (g((bc + "_original_caller")) != toString(bb.caller))
643660 else false)
644- then throw((("You don't own this duck (" + ba) + ")!! "))
645- else if ((size(aZ.payments) > 1))
661+ then throw((("You don't own this duck (" + bc) + ")!! "))
662+ else if ((size(bb.payments) > 1))
646663 then throw("Please don't add extra payments")
647664 else {
648- let cj = if ((aZ.originCaller != S()))
649- then toString(aZ.caller)
650- else g((ba + "_original_caller"))
651- let ck = if ((aZ.originCaller != S()))
652- then toString(aZ.caller)
653- else g((ba + "_owner"))
654- let cl = if ((aZ.originCaller != S()))
655- then toString(aZ.originCaller)
656- else g((ba + "_original_caller"))
657- let ce = aJ(ck, ba, true, cj, cl)
658- $Tuple2((bz ++ ce._1), ce._2)
665+ let cm = if ((bb.originCaller != T()))
666+ then toString(bb.caller)
667+ else g((bc + "_original_caller"))
668+ let cn = if ((bb.originCaller != T()))
669+ then toString(bb.caller)
670+ else g((bc + "_owner"))
671+ let co = if ((bb.originCaller != T()))
672+ then toString(bb.originCaller)
673+ else g((bc + "_original_caller"))
674+ let ch = aL(cn, bc, true, cm, co)
675+ $Tuple2((bC ++ ch._1), ch._2)
659676 }
660677 else throw("Strict value is not equal to itself.")
661678 }
662679
663680
664681
665-@Callable(aZ)
666-func redeemItem (cm,cn) = {
667- let co = aZ.payments[0]
668- if ((co == co))
682+@Callable(bb)
683+func redeemItem (cp,cq) = {
684+ let cr = bb.payments[0]
685+ if ((cr == cr))
669686 then {
670- let cp = value(aZ.payments[1])
671- if ((cp == cp))
672- then if ((cp.amount != 1))
687+ let cs = value(bb.payments[1])
688+ if ((cs == cs))
689+ then if ((cs.amount != 1))
673690 then throw("You need to attach exactly 1 potion")
674691 else {
675- let cq = ao(invoke(Q(), "checkArtefactDetails", [toBase58String(value(value(cp).assetId))], nil))
676- if ((cq == cq))
677- then if ((cq != "ART-POTION"))
692+ let ct = aq(invoke(R(), "checkArtefactDetails", [toBase58String(value(value(cs).assetId))], nil))
693+ if ((ct == ct))
694+ then if ((ct != "ART-POTION"))
678695 then throw("You need to attach a ART-POTION artefact")
679- else if ((co.assetId != unit))
696+ else if ((cr.assetId != unit))
680697 then throw("You need to attach waves")
681- else if ((co.amount != T()))
682- then throw((("You need to attach exactly " + toString(T())) + " waves"))
698+ else if ((cr.amount != U()))
699+ then throw((("You need to attach exactly " + toString(U())) + " waves"))
683700 else {
684- let cr = (co.amount / 2)
685- let cs = (co.amount - cr)
686- let br = ae((cn + "_basePower"))
687- if ((br == 0))
701+ let cu = (cr.amount / 2)
702+ let cv = (cr.amount - cu)
703+ let bt = ag((cq + "_basePower"))
704+ if ((bt == 0))
688705 then throw("This is not a valid duck or the duck waves never staked!")
689- else if ((g((cn + "_owner")) != ""))
706+ else if ((g((cq + "_owner")) != ""))
690707 then throw("Please usntake your duck first!!")
691708 else {
692- let ct = invoke(U(), "addWavesAndStakeMore", nil, [AttachedPayment(unit, cs)])
693- if ((ct == ct))
694- then [ScriptTransfer(N(), cr, unit), DeleteEntry((cn + "_basePower"))]
709+ let cw = invoke(V(), "addWavesAndStakeMore", nil, [AttachedPayment(unit, cv)])
710+ if ((cw == cw))
711+ then [ScriptTransfer(O(), cu, unit), DeleteEntry((cq + "_basePower"))]
695712 else throw("Strict value is not equal to itself.")
696713 }
697714 }
703720 }
704721
705722
706-@Verifier(cu)
707-func cv () = if (j())
708- then sigVerify(cu.bodyBytes, cu.proofs[0], cu.senderPublicKey)
723+@Verifier(cx)
724+func cy () = if (j())
725+ then sigVerify(cx.bodyBytes, cx.proofs[0], cx.senderPublicKey)
709726 else {
710- let cw = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
711- let cx = base58'7DsP2WaMLocbHuUxux7pbXRjTrrZ1TFQPsi5QumS3gr8'
712- let cy = base58'BpFWP3p3JgYrrP45xfrKzeMcWMEXoinj4FVPPkUiA8D3'
713- let cz = if (sigVerify(cu.bodyBytes, cu.proofs[0], cw))
727+ let cz = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
728+ let cA = base58'7DsP2WaMLocbHuUxux7pbXRjTrrZ1TFQPsi5QumS3gr8'
729+ let cB = base58'BpFWP3p3JgYrrP45xfrKzeMcWMEXoinj4FVPPkUiA8D3'
730+ let cC = if (sigVerify(cx.bodyBytes, cx.proofs[0], cz))
714731 then 1
715- else if (sigVerify(cu.bodyBytes, cu.proofs[1], cw))
732+ else if (sigVerify(cx.bodyBytes, cx.proofs[1], cz))
716733 then 1
717- else if (sigVerify(cu.bodyBytes, cu.proofs[2], cw))
734+ else if (sigVerify(cx.bodyBytes, cx.proofs[2], cz))
718735 then 1
719736 else 0
720- let cA = if (sigVerify(cu.bodyBytes, cu.proofs[0], cx))
737+ let cD = if (sigVerify(cx.bodyBytes, cx.proofs[0], cA))
721738 then 1
722- else if (sigVerify(cu.bodyBytes, cu.proofs[1], cx))
739+ else if (sigVerify(cx.bodyBytes, cx.proofs[1], cA))
723740 then 1
724- else if (sigVerify(cu.bodyBytes, cu.proofs[2], cx))
741+ else if (sigVerify(cx.bodyBytes, cx.proofs[2], cA))
725742 then 1
726743 else 0
727- let cB = if (sigVerify(cu.bodyBytes, cu.proofs[0], cy))
744+ let cE = if (sigVerify(cx.bodyBytes, cx.proofs[0], cB))
728745 then 1
729- else if (sigVerify(cu.bodyBytes, cu.proofs[1], cy))
746+ else if (sigVerify(cx.bodyBytes, cx.proofs[1], cB))
730747 then 1
731- else if (sigVerify(cu.bodyBytes, cu.proofs[2], cy))
748+ else if (sigVerify(cx.bodyBytes, cx.proofs[2], cB))
732749 then 1
733750 else 0
734- let cC = ((cz + cA) + cB)
735- let e = cu
736- (cC >= 2)
751+ let cF = ((cC + cD) + cE)
752+ let e = cx
753+ (cF >= 2)
737754 }
738755
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 100000000
55
66 func b (c,d) = {
77 let e = getString(c, d)
88 if ($isInstanceOf(e, "String"))
99 then {
1010 let f = e
1111 f
1212 }
1313 else ""
1414 }
1515
1616
1717 func g (d) = b(this, d)
1818
1919
2020 func h (d) = {
2121 let e = getBoolean(this, d)
2222 if ($isInstanceOf(e, "Boolean"))
2323 then {
2424 let i = e
2525 i
2626 }
2727 else false
2828 }
2929
3030
3131 func j () = h("TESTENV")
3232
3333
3434 func k () = "static_refContractAddress"
3535
3636
3737 let l = "global_lastCheck_interest"
3838
3939 func m () = "static_oracleAddress"
4040
4141
4242 func n () = "static_eggAssetId"
4343
4444
4545 func o () = "static_incubatorAddress"
4646
4747
4848 func p () = "static_breederAddress"
4949
5050
5151 func q () = "static_accBoosterAddress"
5252
5353
5454 func r () = "static_couponsAddress"
5555
5656
5757 func s () = "static_burnAddress"
5858
5959
6060 func t () = "static_extraFee"
6161
6262
6363 func u () = "static_feeAggregator"
6464
6565
6666 let v = "global_earnings"
6767
6868 func w () = "static_perchFee"
6969
7070
7171 func x () = "static_rebirthAddress"
7272
7373
7474 func y () = "static_turtleRebirthAddress"
7575
7676
7777 func z () = "static_itemsAddress"
7878
7979
8080 func A () = "total_staked"
8181
8282
8383 func B () = "static_proxyStakingContracts"
8484
8585
8686 func C () = "static_cfMasterAddress"
8787
8888
8989 func D () = "static_potionFee"
9090
9191
9292 func E () = "static_canineStakingAddress"
9393
9494
95-func F () = Address(fromBase58String(g(m())))
95+func F () = "static_wearablesAddress"
9696
9797
98-func G () = Address(fromBase58String(b(F(), x())))
98+func G () = Address(fromBase58String(g(m())))
9999
100100
101-func H () = fromBase58String(b(F(), n()))
101+func H () = Address(fromBase58String(b(G(), x())))
102102
103103
104-func I () = Address(fromBase58String(b(F(), o())))
104+func I () = fromBase58String(b(G(), n()))
105105
106106
107-func J () = Address(fromBase58String(b(F(), p())))
107+func J () = Address(fromBase58String(b(G(), o())))
108108
109109
110-func K () = Address(fromBase58String(b(F(), q())))
110+func K () = Address(fromBase58String(b(G(), p())))
111111
112112
113-func L () = Address(fromBase58String(b(F(), r())))
113+func L () = Address(fromBase58String(b(G(), q())))
114114
115115
116-func M () = Address(fromBase58String(b(F(), s())))
116+func M () = Address(fromBase58String(b(G(), r())))
117117
118118
119-func N () = Address(fromBase58String(b(F(), u())))
119+func N () = Address(fromBase58String(b(G(), s())))
120120
121121
122-func O () = Address(fromBase58String(b(F(), k())))
122+func O () = Address(fromBase58String(b(G(), u())))
123123
124124
125-func P () = Address(fromBase58String(b(F(), y())))
125+func P () = Address(fromBase58String(b(G(), k())))
126126
127127
128-func Q () = Address(fromBase58String(b(F(), z())))
128+func Q () = Address(fromBase58String(b(G(), y())))
129129
130130
131-func R () = b(F(), B())
131+func R () = Address(fromBase58String(b(G(), z())))
132132
133133
134-func S () = Address(fromBase58String(b(F(), C())))
134+func S () = b(G(), B())
135135
136136
137-func T () = getIntegerValue(F(), D())
137+func T () = Address(fromBase58String(b(G(), C())))
138138
139139
140-func U () = Address(fromBase58String(b(F(), E())))
140+func U () = getIntegerValue(G(), D())
141141
142142
143-func V (c,W) = (((("address_" + c) + "_asset_") + W) + "_lastCheckInterest")
143+func V () = Address(fromBase58String(b(G(), E())))
144144
145145
146-func X (c,W) = (((("address_" + c) + "_asset_") + W) + "_farmingPower")
146+func W () = Address(fromBase58String(b(G(), F())))
147147
148148
149-func Y (c,W) = (((c + "_asset_") + W) + "_claimed")
149+func X (c,Y) = (((("address_" + c) + "_asset_") + Y) + "_lastCheckInterest")
150150
151151
152-func Z (c) = ("total_staked_" + c)
152+func Z (c,Y) = (((("address_" + c) + "_asset_") + Y) + "_farmingPower")
153153
154154
155-let aa = 5
155+func aa (c,Y) = (((c + "_asset_") + Y) + "_claimed")
156156
157-func ab (ac) = if (isDefined(ac.assetId))
157+
158+func ab (c) = ("total_staked_" + c)
159+
160+
161+let ac = 5
162+
163+func ad (ae) = if (isDefined(ae.assetId))
158164 then throw("FCAP: Please attach waves")
159165 else {
160- let ad = getIntegerValue(F(), t())
161- if ((ac.amount != ad))
162- then throw((("FCAP: Please attach exactly " + toString(ad)) + " amount of wavelets"))
163- else [ScriptTransfer(N(), ad, unit)]
166+ let af = getIntegerValue(G(), t())
167+ if ((ae.amount != af))
168+ then throw((("FCAP: Please attach exactly " + toString(af)) + " amount of wavelets"))
169+ else [ScriptTransfer(O(), af, unit)]
164170 }
165171
166172
167-func ae (d) = {
173+func ag (d) = {
168174 let e = getInteger(this, d)
169175 if ($isInstanceOf(e, "Int"))
170176 then {
171177 let i = e
172178 i
173179 }
174180 else 0
175181 }
176182
177183
178-func af (ag) = {
179- let e = ag
184+func ah (ai) = {
185+ let e = ai
180186 if ($isInstanceOf(e, "Int"))
181187 then {
182- let ah = e
183- ah
188+ let aj = e
189+ aj
184190 }
185191 else throw("FAI: wrong type, expected: Int")
186192 }
187193
188194
189-func ai (ag) = {
190- let e = ag
195+func ak (ai) = {
196+ let e = ai
191197 if ($isInstanceOf(e, "(Int, Int)"))
192198 then {
193- let ah = e
194- ah
199+ let aj = e
200+ aj
195201 }
196202 else throw("FAI: wrong type, expected: (Int,Int)")
197203 }
198204
199205
200-func aj (ak) = {
201- let al = ae(l)
202- let am = ae(A())
203- let an = if ((am > 0))
204- then fraction(ak, a, am)
206+func al (am) = {
207+ let an = ag(l)
208+ let ao = ag(A())
209+ let ap = if ((ao > 0))
210+ then fraction(am, a, ao)
205211 else 0
206-[IntegerEntry(v, (ae(v) + ak)), IntegerEntry(l, (al + an))]
212+[IntegerEntry(v, (ag(v) + am)), IntegerEntry(l, (an + ap))]
207213 }
208214
209215
210-func ao (ag) = {
211- let e = ag
216+func aq (ai) = {
217+ let e = ai
212218 if ($isInstanceOf(e, "String"))
213219 then {
214- let ap = e
215- ap
220+ let ar = e
221+ ar
216222 }
217223 else throw("FAS: wrong type, expected: String")
218224 }
219225
220226
221-func aq (d) = {
227+func as (d) = {
222228 let e = getBoolean(this, d)
223229 if ($isInstanceOf(e, "Boolean"))
224230 then {
225231 let i = e
226232 i
227233 }
228234 else false
229235 }
230236
231237
232-func ar (c,d) = {
238+func at (c,d) = {
233239 let e = getBoolean(c, d)
234240 if ($isInstanceOf(e, "Boolean"))
235241 then {
236242 let i = e
237243 i
238244 }
239245 else false
240246 }
241247
242248
243-func as (at) = if ((at == "G"))
244- then I()
245- else J()
249+func au (av) = if ((av == "G"))
250+ then J()
251+ else K()
246252
247253
248-func au (av,at) = {
249- let aw = valueOrErrorMessage(getInteger(as(at), (("stats_" + av) + "_quantity")), (("stats_" + av) + "_quantity not found"))
250- let ax = pow((10000 / aw), 4, 5, 1, 2, FLOOR)
251- if ((ax > 0))
252- then ax
254+func aw (ax,av) = {
255+ let ay = valueOrErrorMessage(getInteger(au(av), (("stats_" + ax) + "_quantity")), (("stats_" + ax) + "_quantity not found"))
256+ let az = pow((10000 / ay), 4, 5, 1, 2, FLOOR)
257+ if ((az > 0))
258+ then az
253259 else 2
254260 }
255261
256262
257-func ay (az,aA) = {
258- let aB = if (az)
263+func aA (aB,aC) = {
264+ let aD = if (aB)
259265 then 100
260266 else {
261- let at = take(takeRight(aA, 2), 1)
262- let aC = ao(invoke(J(), "getGenFromName", [aA], nil))
263- if ((aC == aC))
264- then au(aC, at)
267+ let av = take(takeRight(aC, 2), 1)
268+ let aE = aq(invoke(K(), "getGenFromName", [aC], nil))
269+ if ((aE == aE))
270+ then aw(aE, av)
265271 else throw("Strict value is not equal to itself.")
266272 }
267- aB
273+ aD
268274 }
269275
270276
271-func aD (c,W,aE) = {
272- let aF = ae(A())
273- let aG = ae(Z(c))
274- let aH = ae(X(c, W))
275- let aI = ai(invoke(this, "calculateFarmPower", [W, aE], nil))
276- if ((aH != 0))
277- then [IntegerEntry(A(), ((aF - aH) + aI._1)), IntegerEntry(Z(c), ((aG - aH) + aI._1)), IntegerEntry(X(c, W), aI._1)]
277+func aF (c,Y,aG) = {
278+ let aH = ag(A())
279+ let aI = ag(ab(c))
280+ let aJ = ag(Z(c, Y))
281+ let aK = ak(invoke(this, "calculateFarmPower", [Y, aG], nil))
282+ if ((aJ != 0))
283+ then [IntegerEntry(A(), ((aH - aJ) + aK._1)), IntegerEntry(ab(c), ((aI - aJ) + aK._1)), IntegerEntry(Z(c, Y), aK._1)]
278284 else nil
279285 }
280286
281287
282-func aJ (c,W,aK,aL,aM) = {
283- let al = ae(l)
284- let aN = ae(V(c, W))
285- let aO = ae(X(c, W))
286- let aP = if (aK)
287- then aD(c, W, aM)
288+func aL (c,Y,aM,aN,aO) = {
289+ let an = ag(l)
290+ let aP = ag(X(c, Y))
291+ let aQ = ag(Z(c, Y))
292+ let aR = if (aM)
293+ then aF(c, Y, aO)
288294 else nil
289- if ((aP == aP))
295+ if ((aR == aR))
290296 then {
291- let aQ = if ((aN > 0))
292- then fraction((al - aN), aO, a)
297+ let aS = if ((aP > 0))
298+ then fraction((an - aP), aQ, a)
293299 else 0
294- $Tuple2(([ScriptTransfer(addressFromStringValue(aL), aQ, H()), IntegerEntry(V(c, W), al), IntegerEntry(Y(aL, W), (ae(Y(aL, W)) + aQ))] ++ aP), aQ)
300+ $Tuple2(([ScriptTransfer(addressFromStringValue(aN), aS, I()), IntegerEntry(X(c, Y), an), IntegerEntry(aa(aN, Y), (ag(aa(aN, Y)) + aS))] ++ aR), aS)
295301 }
296302 else throw("Strict value is not equal to itself.")
297303 }
298304
299305
300-func aR (ag) = {
301- let e = ag
306+func aT (ai) = {
307+ let e = ai
302308 if ($isInstanceOf(e, "Boolean"))
303309 then {
304- let aS = e
305- aS
310+ let aU = e
311+ aU
306312 }
307313 else throw("FAB: wrong type, expected: Boolean")
308314 }
309315
310316
311-func aT (c) = {
312- let aU = b(K(), (("ART-XMISTL_" + c) + "_owner"))
313- let aV = getIntegerValue(F(), w())
314- if ((aU == ""))
315- then aV
316- else ((aV / 10) * 9)
317+func aV (c) = {
318+ let aW = b(L(), (("ART-XMISTL_" + c) + "_owner"))
319+ let aX = getIntegerValue(G(), w())
320+ if ((aW == ""))
321+ then aX
322+ else ((aX / 10) * 9)
317323 }
318324
319325
320-func aW (c) = {
321- let aX = R()
322- let aY = split(aX, ";")
323- (indexOf(aY, c) != unit)
326+func aY (c) = {
327+ let aZ = S()
328+ let ba = split(aZ, ";")
329+ (indexOf(ba, c) != unit)
324330 }
325331
326332
327-@Callable(aZ)
328-func calculateFarmPower (ba,bb) = if (!(if ((value(assetInfo(fromBase58String(ba))).issuer == J()))
333+@Callable(bb)
334+func calculateFarmPower (bc,bd) = if (!(if ((value(assetInfo(fromBase58String(bc))).issuer == K()))
329335 then true
330- else (value(assetInfo(fromBase58String(ba))).issuer == I())))
336+ else (value(assetInfo(fromBase58String(bc))).issuer == J())))
331337 then throw("This does not seem like a valid Duck!")
332- else {
333- let aA = value(assetInfo(fromBase58String(ba))).name
334- let bc = takeRight(aA, 1)
335- let az = (takeRight(aA, 1) == "U")
336- let aB = ay(az, aA)
337- let av = split(dropRight(drop(aA, 5), 3), "")
338- func bd (be,bf) = if (!(containsElement(be, bf)))
339- then (be :+ bf)
340- else be
338+ else if (if (at(K(), (bc + "_blacklisted")))
339+ then true
340+ else at(J(), (bc + "_blacklisted")))
341+ then throw("Screw urself")
342+ else {
343+ let aC = value(assetInfo(fromBase58String(bc))).name
344+ let be = takeRight(aC, 1)
345+ let aB = (takeRight(aC, 1) == "U")
346+ let aD = aA(aB, aC)
347+ let ax = split(dropRight(drop(aC, 5), 3), "")
348+ func bf (bg,bh) = if (!(containsElement(bg, bh)))
349+ then (bg :+ bh)
350+ else bg
341351
342- let bg = {
343- let bh = av
344- let bi = size(bh)
345- let bj = nil
346- func bk (bl,bm) = if ((bm >= bi))
347- then bl
348- else bd(bl, bh[bm])
352+ let bi = {
353+ let bj = ax
354+ let bk = size(bj)
355+ let bl = nil
356+ func bm (bn,bo) = if ((bo >= bk))
357+ then bn
358+ else bf(bn, bj[bo])
349359
350- func bn (bl,bm) = if ((bm >= bi))
351- then bl
352- else throw("List size exceeds 8")
360+ func bp (bn,bo) = if ((bo >= bk))
361+ then bn
362+ else throw("List size exceeds 8")
353363
354- bn(bk(bk(bk(bk(bk(bk(bk(bk(bj, 0), 1), 2), 3), 4), 5), 6), 7), 8)
364+ bp(bm(bm(bm(bm(bm(bm(bm(bm(bl, 0), 1), 2), 3), 4), 5), 6), 7), 8)
365+ }
366+ let bq = if ((be == "U"))
367+ then 8
368+ else size(bi)
369+ let az = pow(15, 1, bq, 0, 2, DOWN)
370+ let br = if (j())
371+ then 2500000
372+ else 3750000
373+ let bs = (((height - br) * 100) / (((60 * 24) * 30) * 3))
374+ let bt = ag((bc + "_basePower"))
375+ let bu = if ((bt > 0))
376+ then bt
377+ else ((az * bs) / 100)
378+ let bv = ((bu * aD) / 100)
379+ let bw = ah(invoke(R(), "calculateFarmingPowerBoost", [bc, bd], nil))
380+ if ((bw == bw))
381+ then {
382+ let bx = ah(invoke(W(), "calculateWearblesBoost", [bc], nil))
383+ if ((bx == bx))
384+ then {
385+ let by = ((bv + ((bv * bw) / 100)) + ((bv * bx) / 1000))
386+ $Tuple2(nil, $Tuple2(by, bu))
387+ }
388+ else throw("Strict value is not equal to itself.")
389+ }
390+ else throw("Strict value is not equal to itself.")
355391 }
356- let bo = if ((bc == "U"))
357- then 8
358- else size(bg)
359- let ax = pow(15, 1, bo, 0, 2, DOWN)
360- let bp = if (j())
361- then 2500000
362- else 3750000
363- let bq = (((height - bp) * 100) / (((60 * 24) * 30) * 3))
364- let br = ae((ba + "_basePower"))
365- let bs = if ((br > 0))
366- then br
367- else ((ax * bq) / 100)
368- let bt = ((bs * aB) / 100)
369- let bu = af(invoke(Q(), "calculateFarmingPowerBoost", [ba, bb], nil))
370- if ((bu == bu))
371- then {
372- let bv = (bt + ((bt * bu) / 100))
373- $Tuple2(nil, $Tuple2(bv, bs))
374- }
375- else throw("Strict value is not equal to itself.")
376- }
377392
378393
379394
380-@Callable(aZ)
381-func configureOracle (bw) = if ((aZ.caller != this))
395+@Callable(bb)
396+func configureOracle (bz) = if ((bb.caller != this))
382397 then throw("FCO: admin only")
383- else [StringEntry(m(), bw)]
398+ else [StringEntry(m(), bz)]
384399
385400
386401
387-@Callable(aZ)
388-func buyPerch (bx,by) = {
389- let bz = ab(aZ.payments[0])
390- if ((bz == bz))
402+@Callable(bb)
403+func buyPerch (bA,bB) = {
404+ let bC = ad(bb.payments[0])
405+ if ((bC == bC))
391406 then {
392- let bA = if ((bx == "U"))
407+ let bD = if ((bA == "U"))
393408 then "B"
394- else bx
395- if ((0 > value(indexOf(["B", "R", "G", "Y"], bA))))
409+ else bA
410+ if ((0 > value(indexOf(["B", "R", "G", "Y"], bD))))
396411 then throw("you need to set color properly")
397412 else {
398- let bB = aT(toString(aZ.caller))
399- let bC = if ((aZ.originCaller == aZ.caller))
413+ let bE = aV(toString(bb.caller))
414+ let bF = if ((bb.originCaller == bb.caller))
400415 then {
401- let bD = af(invoke(L(), "useCoupons", [bB], nil))
402- if ((bD == bD))
403- then (bB - bD)
416+ let bG = ah(invoke(M(), "useCoupons", [bE], nil))
417+ if ((bG == bG))
418+ then (bE - bG)
404419 else throw("Strict value is not equal to itself.")
405420 }
406- else bB
407- let ac = if ((bC != 0))
421+ else bE
422+ let ae = if ((bF != 0))
408423 then {
409- let bE = if ((size(aZ.payments) == 2))
410- then value(aZ.payments[1])
411- else value(aZ.payments[0])
412- if ((bE.assetId != H()))
413- then throw(("FBP: You can attach only EGG tokens with the following asset id: " + toBase58String(H())))
414- else if ((bE.amount != bC))
415- then throw(((("FBP: To buy a perch you currently need the following amount of EGGlets: " + toString(bC)) + " ") + toString(aZ.caller)))
424+ let bH = if ((size(bb.payments) == 2))
425+ then value(bb.payments[1])
426+ else value(bb.payments[0])
427+ if ((bH.assetId != I()))
428+ then throw(("FBP: You can attach only EGG tokens with the following asset id: " + toBase58String(I())))
429+ else if ((bH.amount != bF))
430+ then throw(((("FBP: To buy a perch you currently need the following amount of EGGlets: " + toString(bF)) + " ") + toString(bb.caller)))
416431 else {
417- let bF = fraction(bC, 5, 100)
418- let bG = aR(invoke(O(), "refPayment", [by], [AttachedPayment(H(), bF)]))
419- if ((bG == bG))
432+ let bI = fraction(bF, 5, 100)
433+ let bJ = aT(invoke(P(), "refPayment", [bB], [AttachedPayment(I(), bI)]))
434+ if ((bJ == bJ))
420435 then {
421- let bH = if (bG)
422- then (bC - bF)
423- else bC
424- let bI = invoke(M(), "burnAttachedPayments", nil, [AttachedPayment(H(), bH)])
425- if ((bI == bI))
426- then bC
436+ let bK = if (bJ)
437+ then (bF - bI)
438+ else bF
439+ let bL = invoke(N(), "burnAttachedPayments", nil, [AttachedPayment(I(), bK)])
440+ if ((bL == bL))
441+ then bF
427442 else throw("Strict value is not equal to itself.")
428443 }
429444 else throw("Strict value is not equal to itself.")
430445 }
431446 }
432447 else 0
433- if ((ac == ac))
448+ if ((ae == ae))
434449 then {
435- let bJ = ((("address_" + toString(aZ.caller)) + "_perchesAvailable_") + bA)
436- let bK = ae(bJ)
437- ([IntegerEntry(bJ, (bK + 1))] ++ bz)
450+ let bM = ((("address_" + toString(bb.caller)) + "_perchesAvailable_") + bD)
451+ let bN = ag(bM)
452+ ([IntegerEntry(bM, (bN + 1))] ++ bC)
438453 }
439454 else throw("Strict value is not equal to itself.")
440455 }
441456 }
442457 else throw("Strict value is not equal to itself.")
443458 }
444459
445460
446461
447-@Callable(aZ)
448-func addFreePerch (c,bA,ak) = if ((0 > value(indexOf(["B", "R", "G", "Y"], bA))))
462+@Callable(bb)
463+func addFreePerch (c,bD,am) = if ((0 > value(indexOf(["B", "R", "G", "Y"], bD))))
449464 then throw("you need to set color properly")
450- else if (if (if ((aZ.caller != G()))
451- then (aZ.caller != P())
465+ else if (if (if (if ((bb.caller != H()))
466+ then (bb.caller != Q())
452467 else false)
453- then (aZ.caller != this)
468+ then (bb.caller != this)
469+ else false)
470+ then (bb.caller != M())
454471 else false)
455472 then throw("rebirth and admin only")
456473 else {
457- let bJ = ((("address_" + c) + "_perchesAvailable_") + bA)
458- let bK = ae(bJ)
459- $Tuple2([IntegerEntry(bJ, (bK + ak))], "")
474+ let bM = ((("address_" + c) + "_perchesAvailable_") + bD)
475+ let bN = ag(bM)
476+ $Tuple2([IntegerEntry(bM, (bN + am))], "")
460477 }
461478
462479
463480
464-@Callable(aZ)
481+@Callable(bb)
465482 func migratePerches (c) = {
466- let bL = addressFromStringValue(b(F(), "static_farmingAddress"))
467- func bM (d) = {
468- let e = getInteger(bL, d)
483+ let bO = addressFromStringValue(b(G(), "static_farmingAddress"))
484+ func bP (d) = {
485+ let e = getInteger(bO, d)
469486 if ($isInstanceOf(e, "Int"))
470487 then {
471488 let i = e
472489 i
473490 }
474491 else 0
475492 }
476493
477- let bN = bM((("address_" + c) + "_perchesAvailable_B"))
478- if ((bN == bN))
494+ let bQ = bP((("address_" + c) + "_perchesAvailable_B"))
495+ if ((bQ == bQ))
479496 then {
480- let bO = bM((("address_" + c) + "_perchesAvailable_R"))
481- if ((bO == bO))
497+ let bR = bP((("address_" + c) + "_perchesAvailable_R"))
498+ if ((bR == bR))
482499 then {
483- let bP = bM((("address_" + c) + "_perchesAvailable_G"))
484- if ((bP == bP))
500+ let bS = bP((("address_" + c) + "_perchesAvailable_G"))
501+ if ((bS == bS))
485502 then {
486- let bQ = bM((("address_" + c) + "_perchesAvailable_Y"))
487- if ((bQ == bQ))
503+ let bT = bP((("address_" + c) + "_perchesAvailable_Y"))
504+ if ((bT == bT))
488505 then {
489- let bR = invoke(this, "addFreePerch", [c, "B", bN], nil)
490- if ((bR == bR))
506+ let bU = invoke(this, "addFreePerch", [c, "B", bQ], nil)
507+ if ((bU == bU))
491508 then {
492- let bS = invoke(this, "addFreePerch", [c, "R", bO], nil)
493- if ((bS == bS))
509+ let bV = invoke(this, "addFreePerch", [c, "R", bR], nil)
510+ if ((bV == bV))
494511 then {
495- let bT = invoke(this, "addFreePerch", [c, "G", bP], nil)
496- if ((bT == bT))
512+ let bW = invoke(this, "addFreePerch", [c, "G", bS], nil)
513+ if ((bW == bW))
497514 then {
498- let bU = invoke(this, "addFreePerch", [c, "Y", bQ], nil)
499- if ((bU == bU))
500- then if (if (if (if ((bN == 0))
501- then (bO == 0)
515+ let bX = invoke(this, "addFreePerch", [c, "Y", bT], nil)
516+ if ((bX == bX))
517+ then if (if (if (if ((bQ == 0))
518+ then (bR == 0)
502519 else false)
503- then (bP == 0)
520+ then (bS == 0)
504521 else false)
505- then (bQ == 0)
522+ then (bT == 0)
506523 else false)
507524 then throw("Nothing to migrate")
508525 else {
509- let bV = invoke(bL, "removePerches", [c], nil)
510- if ((bV == bV))
526+ let bY = invoke(bO, "removePerches", [c], nil)
527+ if ((bY == bY))
511528 then nil
512529 else throw("Strict value is not equal to itself.")
513530 }
514531 else throw("Strict value is not equal to itself.")
515532 }
516533 else throw("Strict value is not equal to itself.")
517534 }
518535 else throw("Strict value is not equal to itself.")
519536 }
520537 else throw("Strict value is not equal to itself.")
521538 }
522539 else throw("Strict value is not equal to itself.")
523540 }
524541 else throw("Strict value is not equal to itself.")
525542 }
526543 else throw("Strict value is not equal to itself.")
527544 }
528545 else throw("Strict value is not equal to itself.")
529546 }
530547
531548
532549
533-@Callable(aZ)
534-func stakeNFT (bW,bX,bY) = if (if (bY)
535- then !(aW(toString(aZ.caller)))
550+@Callable(bb)
551+func stakeNFT (bZ,ca,cb) = if (if (cb)
552+ then !(aY(toString(bb.caller)))
536553 else false)
537554 then throw("You can't stake without a perch")
538555 else {
539- let bz = ab(aZ.payments[0])
540- if ((bz == bz))
556+ let bC = ad(bb.payments[0])
557+ if ((bC == bC))
541558 then {
542- let bZ = value(aZ.payments[1])
543- let ba = value(bZ.assetId)
544- let aA = value(value(assetInfo(ba)).name)
545- let az = (takeRight(aA, 1) == "U")
546- let c = toString(aZ.caller)
547- let ca = if (bX)
548- then toString(aZ.originCaller)
559+ let cc = value(bb.payments[1])
560+ let bc = value(cc.assetId)
561+ let aC = value(value(assetInfo(bc)).name)
562+ let aB = (takeRight(aC, 1) == "U")
563+ let c = toString(bb.caller)
564+ let cd = if (ca)
565+ then toString(bb.originCaller)
549566 else c
550- let cb = if (bY)
567+ let ce = if (cb)
551568 then nil
552569 else {
553- let bA = if (az)
554- then bW
555- else takeRight(aA, 1)
556- let cc = ae(((("address_" + ca) + "_perchesAvailable_") + bA))
557- if ((0 >= cc))
558- then throw(("no perches available for the color " + bA))
559- else [IntegerEntry(((("address_" + ca) + "_perchesAvailable_") + bA), (cc - 1)), StringEntry((((("address_" + c) + "_asset_") + toBase58String(ba)) + "_perchColor"), bA)]
570+ let bD = if (aB)
571+ then bZ
572+ else takeRight(aC, 1)
573+ let cf = ag(((("address_" + cd) + "_perchesAvailable_") + bD))
574+ if ((0 >= cf))
575+ then throw(("no perches available for the color " + bD))
576+ else [IntegerEntry(((("address_" + cd) + "_perchesAvailable_") + bD), (cf - 1)), StringEntry((((("address_" + c) + "_asset_") + toBase58String(bc)) + "_perchColor"), bD)]
560577 }
561- if ((cb == cb))
562- then if ((bZ.amount != 1))
578+ if ((ce == ce))
579+ then if ((cc.amount != 1))
563580 then throw("NFT is not attached")
564581 else {
565- let cd = ai(invoke(this, "calculateFarmPower", [toBase58String(ba), toString(aZ.originCaller)], nil))
566- if ((cd == cd))
582+ let cg = ak(invoke(this, "calculateFarmPower", [toBase58String(bc), toString(bb.originCaller)], nil))
583+ if ((cg == cg))
567584 then {
568- let ce = aJ(c, toBase58String(ba), false, c, toString(aZ.originCaller))
569- if ((ce == ce))
570- then ((([IntegerEntry(A(), (ae(A()) + cd._1)), IntegerEntry(Z(c), (ae(Z(c)) + cd._1)), StringEntry((toBase58String(ba) + "_owner"), c), BooleanEntry((toBase58String(ba) + "_use_origin"), bX), StringEntry((toBase58String(ba) + "_original_caller"), toString(aZ.originCaller)), IntegerEntry(X(c, toBase58String(ba)), cd._1), IntegerEntry((toBase58String(ba) + "_basePower"), cd._2), BooleanEntry((toBase58String(ba) + "_without_perch"), bY)] ++ bz) ++ cb) ++ ce._1)
585+ let ch = aL(c, toBase58String(bc), false, c, toString(bb.originCaller))
586+ if ((ch == ch))
587+ then ((([IntegerEntry(A(), (ag(A()) + cg._1)), IntegerEntry(ab(c), (ag(ab(c)) + cg._1)), StringEntry((toBase58String(bc) + "_owner"), c), BooleanEntry((toBase58String(bc) + "_use_origin"), ca), StringEntry((toBase58String(bc) + "_original_caller"), toString(bb.originCaller)), IntegerEntry(Z(c, toBase58String(bc)), cg._1), IntegerEntry((toBase58String(bc) + "_basePower"), cg._2), BooleanEntry((toBase58String(bc) + "_without_perch"), cb)] ++ bC) ++ ce) ++ ch._1)
571588 else throw("Strict value is not equal to itself.")
572589 }
573590 else throw("Strict value is not equal to itself.")
574591 }
575592 else throw("Strict value is not equal to itself.")
576593 }
577594 else throw("Strict value is not equal to itself.")
578595 }
579596
580597
581598
582-@Callable(aZ)
583-func unstakeNFT (W) = {
584- let c = toString(aZ.caller)
585- if ((g((W + "_owner")) != toString(aZ.caller)))
599+@Callable(bb)
600+func unstakeNFT (Y) = {
601+ let c = toString(bb.caller)
602+ if ((g((Y + "_owner")) != toString(bb.caller)))
586603 then throw("You don't own this duck!!")
587604 else {
588- let ce = aJ(c, W, false, c, toString(aZ.originCaller))
589- if ((ce == ce))
605+ let ch = aL(c, Y, false, c, toString(bb.originCaller))
606+ if ((ch == ch))
590607 then {
591- let bz = ab(aZ.payments[0])
592- if ((bz == bz))
608+ let bC = ad(bb.payments[0])
609+ if ((bC == bC))
593610 then {
594- let bA = g((((("address_" + c) + "_asset_") + W) + "_perchColor"))
595- let cf = aq((W + "_without_perch"))
596- let cb = if (cf)
611+ let bD = g((((("address_" + c) + "_asset_") + Y) + "_perchColor"))
612+ let ci = as((Y + "_without_perch"))
613+ let ce = if (ci)
597614 then nil
598615 else {
599- let bX = aq((W + "_use_origin"))
600- let cg = if (bX)
601- then toString(aZ.originCaller)
616+ let ca = as((Y + "_use_origin"))
617+ let cj = if (ca)
618+ then toString(bb.originCaller)
602619 else c
603-[IntegerEntry(((("address_" + cg) + "_perchesAvailable_") + bA), (ae(((("address_" + cg) + "_perchesAvailable_") + bA)) + 1))]
620+[IntegerEntry(((("address_" + cj) + "_perchesAvailable_") + bD), (ag(((("address_" + cj) + "_perchesAvailable_") + bD)) + 1))]
604621 }
605- if ((cb == cb))
622+ if ((ce == ce))
606623 then {
607- let ch = ae(X(c, W))
608- if ((ch == ch))
609- then $Tuple2(((([IntegerEntry(A(), (ae(A()) - ch)), IntegerEntry(Z(c), (ae(Z(c)) - ch)), DeleteEntry((W + "_owner")), DeleteEntry(X(c, W)), DeleteEntry((((("address_" + c) + "_asset_") + W) + "_perchColor")), DeleteEntry((W + "_original_caller")), DeleteEntry((W + "_use_origin")), DeleteEntry((W + "_without_perch")), ScriptTransfer(Address(fromBase58String(c)), 1, fromBase58String(W))] ++ bz) ++ cb) ++ ce._1), ce._2)
624+ let ck = ag(Z(c, Y))
625+ if ((ck == ck))
626+ then $Tuple2(((([IntegerEntry(A(), (ag(A()) - ck)), IntegerEntry(ab(c), (ag(ab(c)) - ck)), DeleteEntry((Y + "_owner")), DeleteEntry(Z(c, Y)), DeleteEntry((((("address_" + c) + "_asset_") + Y) + "_perchColor")), DeleteEntry((Y + "_original_caller")), DeleteEntry((Y + "_use_origin")), DeleteEntry((Y + "_without_perch")), ScriptTransfer(Address(fromBase58String(c)), 1, fromBase58String(Y))] ++ bC) ++ ce) ++ ch._1), ch._2)
610627 else throw("Strict value is not equal to itself.")
611628 }
612629 else throw("Strict value is not equal to itself.")
613630 }
614631 else throw("Strict value is not equal to itself.")
615632 }
616633 else throw("Strict value is not equal to itself.")
617634 }
618635 }
619636
620637
621638
622-@Callable(aZ)
639+@Callable(bb)
623640 func topUpReward () = {
624- let bE = value(aZ.payments[0])
625- if ((bE.assetId != H()))
626- then throw(("FBP: You can attach only EGG tokens with the following asset id: " + toBase58String(H())))
641+ let bH = value(bb.payments[0])
642+ if ((bH.assetId != I()))
643+ then throw(("FBP: You can attach only EGG tokens with the following asset id: " + toBase58String(I())))
627644 else {
628- let ci = aj(bE.amount)
629- $Tuple2(ci, true)
645+ let cl = al(bH.amount)
646+ $Tuple2(cl, true)
630647 }
631648 }
632649
633650
634651
635-@Callable(aZ)
636-func claimReward (ba) = {
637- let bz = if ((aZ.originCaller == S()))
652+@Callable(bb)
653+func claimReward (bc) = {
654+ let bC = if ((bb.originCaller == T()))
638655 then nil
639- else ab(aZ.payments[0])
640- if ((bz == bz))
641- then if (if ((g((ba + "_owner")) != toString(aZ.caller)))
642- then (g((ba + "_original_caller")) != toString(aZ.caller))
656+ else ad(bb.payments[0])
657+ if ((bC == bC))
658+ then if (if ((g((bc + "_owner")) != toString(bb.caller)))
659+ then (g((bc + "_original_caller")) != toString(bb.caller))
643660 else false)
644- then throw((("You don't own this duck (" + ba) + ")!! "))
645- else if ((size(aZ.payments) > 1))
661+ then throw((("You don't own this duck (" + bc) + ")!! "))
662+ else if ((size(bb.payments) > 1))
646663 then throw("Please don't add extra payments")
647664 else {
648- let cj = if ((aZ.originCaller != S()))
649- then toString(aZ.caller)
650- else g((ba + "_original_caller"))
651- let ck = if ((aZ.originCaller != S()))
652- then toString(aZ.caller)
653- else g((ba + "_owner"))
654- let cl = if ((aZ.originCaller != S()))
655- then toString(aZ.originCaller)
656- else g((ba + "_original_caller"))
657- let ce = aJ(ck, ba, true, cj, cl)
658- $Tuple2((bz ++ ce._1), ce._2)
665+ let cm = if ((bb.originCaller != T()))
666+ then toString(bb.caller)
667+ else g((bc + "_original_caller"))
668+ let cn = if ((bb.originCaller != T()))
669+ then toString(bb.caller)
670+ else g((bc + "_owner"))
671+ let co = if ((bb.originCaller != T()))
672+ then toString(bb.originCaller)
673+ else g((bc + "_original_caller"))
674+ let ch = aL(cn, bc, true, cm, co)
675+ $Tuple2((bC ++ ch._1), ch._2)
659676 }
660677 else throw("Strict value is not equal to itself.")
661678 }
662679
663680
664681
665-@Callable(aZ)
666-func redeemItem (cm,cn) = {
667- let co = aZ.payments[0]
668- if ((co == co))
682+@Callable(bb)
683+func redeemItem (cp,cq) = {
684+ let cr = bb.payments[0]
685+ if ((cr == cr))
669686 then {
670- let cp = value(aZ.payments[1])
671- if ((cp == cp))
672- then if ((cp.amount != 1))
687+ let cs = value(bb.payments[1])
688+ if ((cs == cs))
689+ then if ((cs.amount != 1))
673690 then throw("You need to attach exactly 1 potion")
674691 else {
675- let cq = ao(invoke(Q(), "checkArtefactDetails", [toBase58String(value(value(cp).assetId))], nil))
676- if ((cq == cq))
677- then if ((cq != "ART-POTION"))
692+ let ct = aq(invoke(R(), "checkArtefactDetails", [toBase58String(value(value(cs).assetId))], nil))
693+ if ((ct == ct))
694+ then if ((ct != "ART-POTION"))
678695 then throw("You need to attach a ART-POTION artefact")
679- else if ((co.assetId != unit))
696+ else if ((cr.assetId != unit))
680697 then throw("You need to attach waves")
681- else if ((co.amount != T()))
682- then throw((("You need to attach exactly " + toString(T())) + " waves"))
698+ else if ((cr.amount != U()))
699+ then throw((("You need to attach exactly " + toString(U())) + " waves"))
683700 else {
684- let cr = (co.amount / 2)
685- let cs = (co.amount - cr)
686- let br = ae((cn + "_basePower"))
687- if ((br == 0))
701+ let cu = (cr.amount / 2)
702+ let cv = (cr.amount - cu)
703+ let bt = ag((cq + "_basePower"))
704+ if ((bt == 0))
688705 then throw("This is not a valid duck or the duck waves never staked!")
689- else if ((g((cn + "_owner")) != ""))
706+ else if ((g((cq + "_owner")) != ""))
690707 then throw("Please usntake your duck first!!")
691708 else {
692- let ct = invoke(U(), "addWavesAndStakeMore", nil, [AttachedPayment(unit, cs)])
693- if ((ct == ct))
694- then [ScriptTransfer(N(), cr, unit), DeleteEntry((cn + "_basePower"))]
709+ let cw = invoke(V(), "addWavesAndStakeMore", nil, [AttachedPayment(unit, cv)])
710+ if ((cw == cw))
711+ then [ScriptTransfer(O(), cu, unit), DeleteEntry((cq + "_basePower"))]
695712 else throw("Strict value is not equal to itself.")
696713 }
697714 }
698715 else throw("Strict value is not equal to itself.")
699716 }
700717 else throw("Strict value is not equal to itself.")
701718 }
702719 else throw("Strict value is not equal to itself.")
703720 }
704721
705722
706-@Verifier(cu)
707-func cv () = if (j())
708- then sigVerify(cu.bodyBytes, cu.proofs[0], cu.senderPublicKey)
723+@Verifier(cx)
724+func cy () = if (j())
725+ then sigVerify(cx.bodyBytes, cx.proofs[0], cx.senderPublicKey)
709726 else {
710- let cw = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
711- let cx = base58'7DsP2WaMLocbHuUxux7pbXRjTrrZ1TFQPsi5QumS3gr8'
712- let cy = base58'BpFWP3p3JgYrrP45xfrKzeMcWMEXoinj4FVPPkUiA8D3'
713- let cz = if (sigVerify(cu.bodyBytes, cu.proofs[0], cw))
727+ let cz = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
728+ let cA = base58'7DsP2WaMLocbHuUxux7pbXRjTrrZ1TFQPsi5QumS3gr8'
729+ let cB = base58'BpFWP3p3JgYrrP45xfrKzeMcWMEXoinj4FVPPkUiA8D3'
730+ let cC = if (sigVerify(cx.bodyBytes, cx.proofs[0], cz))
714731 then 1
715- else if (sigVerify(cu.bodyBytes, cu.proofs[1], cw))
732+ else if (sigVerify(cx.bodyBytes, cx.proofs[1], cz))
716733 then 1
717- else if (sigVerify(cu.bodyBytes, cu.proofs[2], cw))
734+ else if (sigVerify(cx.bodyBytes, cx.proofs[2], cz))
718735 then 1
719736 else 0
720- let cA = if (sigVerify(cu.bodyBytes, cu.proofs[0], cx))
737+ let cD = if (sigVerify(cx.bodyBytes, cx.proofs[0], cA))
721738 then 1
722- else if (sigVerify(cu.bodyBytes, cu.proofs[1], cx))
739+ else if (sigVerify(cx.bodyBytes, cx.proofs[1], cA))
723740 then 1
724- else if (sigVerify(cu.bodyBytes, cu.proofs[2], cx))
741+ else if (sigVerify(cx.bodyBytes, cx.proofs[2], cA))
725742 then 1
726743 else 0
727- let cB = if (sigVerify(cu.bodyBytes, cu.proofs[0], cy))
744+ let cE = if (sigVerify(cx.bodyBytes, cx.proofs[0], cB))
728745 then 1
729- else if (sigVerify(cu.bodyBytes, cu.proofs[1], cy))
746+ else if (sigVerify(cx.bodyBytes, cx.proofs[1], cB))
730747 then 1
731- else if (sigVerify(cu.bodyBytes, cu.proofs[2], cy))
748+ else if (sigVerify(cx.bodyBytes, cx.proofs[2], cB))
732749 then 1
733750 else 0
734- let cC = ((cz + cA) + cB)
735- let e = cu
736- (cC >= 2)
751+ let cF = ((cC + cD) + cE)
752+ let e = cx
753+ (cF >= 2)
737754 }
738755

github/deemru/w8io/169f3d6 
443.25 ms