tx · 7A3Ha7iLy3rQuNzYPXZLcqU6AMSMg4Jv1okYXwt2a4YU 3MtCto83UgaYLqkeqUVj3apiBt6YzTHgTsf: -0.01500000 Waves 2025.01.18 01:55 [3463736] smart account 3MtCto83UgaYLqkeqUVj3apiBt6YzTHgTsf > SELF 0.00000000 Waves
{ "type": 13, "id": "7A3Ha7iLy3rQuNzYPXZLcqU6AMSMg4Jv1okYXwt2a4YU", "fee": 1500000, "feeAssetId": null, "timestamp": 1737154561979, "version": 2, "chainId": 84, "sender": "3MtCto83UgaYLqkeqUVj3apiBt6YzTHgTsf", "senderPublicKey": "7w98hrFimkZ4X8eVspfS6M6P1C8twEuqbXBchKv5zUkn", "proofs": [ "7te45ZPsSinzax2QgdS2V9yVeuA8wb6PiMkNgenCnwwaPdfNiz3N8ChAPiFKJcsBRHZ2MgSyC3xEGiF2zRaJac6" ], "script": "base64:AAIFAAAAAAAAABcIAhIECgIICBIDCgEIEgMKAQgSAwoBCAAAADQBAAAAF3N0YXRpY0tleV9vcmFjbGVBZGRyZXNzAAAAAAIAAAAUc3RhdGljX29yYWNsZUFkZHJlc3MBAAAAFHN0YXRpY0tleV9lZ2dBc3NldElkAAAAAAIAAAARc3RhdGljX2VnZ0Fzc2V0SWQBAAAAGHN0YXRpY0tleV9icmVlZGVyQWRkcmVzcwAAAAACAAAAFXN0YXRpY19icmVlZGVyQWRkcmVzcwEAAAAac3RhdGljS2V5X2luY3ViYXRvckFkZHJlc3MAAAAAAgAAABdzdGF0aWNfaW5jdWJhdG9yQWRkcmVzcwEAAAAZc3RhdGljS2V5X2JhYnlEdWNrQWRkcmVzcwAAAAACAAAAFnN0YXRpY19iYWJ5RHVja0FkZHJlc3MBAAAAGHN0YXRpY0tleV9mYXJtaW5nQWRkcmVzcwAAAAACAAAAGHN0YXRpY19mYXJtaW5nQWRkcmVzc05ldwEAAAAZc3RhdGljS2V5X2NmTWFzdGVyQWRkcmVzcwAAAAACAAAAFnN0YXRpY19jZk1hc3RlckFkZHJlc3MBAAAAFXN0YXRpY0tleV9odW50QWRkcmVzcwAAAAACAAAAEnN0YXRpY19odW50QWRkcmVzcwEAAAAYc3RhdGljS2V5X3JlYmlydGhBZGRyZXNzAAAAAAIAAAAVc3RhdGljX3JlYmlydGhBZGRyZXNzAQAAAB5zdGF0aWNLZXlfdHVydGxlQnJlZWRlckFkZHJlc3MAAAAAAgAAABtzdGF0aWNfdHVydGxlQnJlZWRlckFkZHJlc3MBAAAAIHN0YXRpY0tleV90dXJ0bGVJbmN1YmF0b3JBZGRyZXNzAAAAAAIAAAAdc3RhdGljX3R1cnRsZUluY3ViYXRvckFkZHJlc3MBAAAAHnN0YXRpY0tleV90dXJ0bGVTdGFraW5nQWRkcmVzcwAAAAACAAAAG3N0YXRpY190dXJ0bGVTdGFraW5nQWRkcmVzcwEAAAAec3RhdGljS2V5X3R1cnRsZVJlYmlydGhBZGRyZXNzAAAAAAIAAAAbc3RhdGljX3R1cnRsZVJlYmlydGhBZGRyZXNzAQAAABlzdGF0aWNLZXlfY2FwYWNpdHlBZGRyZXNzAAAAAAIAAAAWc3RhdGljX2NhcGFjaXR5QWRkcmVzcwEAAAAcc3RhdGljS2V5X3ZlZ2dGYXJtaW5nQWRkcmVzcwAAAAACAAAAGXN0YXRpY192ZWdnRmFybWluZ0FkZHJlc3MBAAAAHnN0YXRpY0tleV9tdXRhbnRGYXJtaW5nQWRkcmVzcwAAAAACAAAAG3N0YXRpY19tdXRhbnRGYXJtaW5nQWRkcmVzcwEAAAAec3RhdGljS2V5X2ZlbGluZUZhcm1pbmdBZGRyZXNzAAAAAAIAAAAbc3RhdGljX2ZlbGluZVN0YWtpbmdBZGRyZXNzAQAAAB5zdGF0aWNLZXlfY2FuaW5lRmFybWluZ0FkZHJlc3MAAAAAAgAAABtzdGF0aWNfY2FuaW5lU3Rha2luZ0FkZHJlc3MBAAAAHnN0YXRpY0tleV9jYW5pbmVCcmVlZGVyQWRkcmVzcwAAAAACAAAAG3N0YXRpY19jYW5pbmVCcmVlZGVyQWRkcmVzcwEAAAAec3RhdGljS2V5X2ZlbGluZUJyZWVkZXJBZGRyZXNzAAAAAAIAAAAbc3RhdGljX2ZlbGluZUJyZWVkZXJBZGRyZXNzAQAAAB1zdGF0aWNLZXlfZWFnbGVCcmVlZGVyQWRkcmVzcwAAAAACAAAAGnN0YXRpY19lYWdsZUJyZWVkZXJBZGRyZXNzAQAAAB1zdGF0aWNLZXlfZWFnbGVGYXJtaW5nQWRkcmVzcwAAAAACAAAAGnN0YXRpY19lYWdsZVN0YWtpbmdBZGRyZXNzAQAAAA10cnlHZXRCb29sZWFuAAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQbAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAdCb29sZWFuBAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiBwEAAAANdHJ5R2V0SW50ZWdlcgAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAAAAAAAAAAAAAQAAAA5pc1ZhbGlkQWRkcmVzcwAAAAEAAAAHYWRkcmVzcwQAAAAHJG1hdGNoMAkABCYAAAABBQAAAAdhZGRyZXNzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAdBZGRyZXNzBAAAAAFhBQAAAAckbWF0Y2gwBgcBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQIAAAAAAQAAAAx0cnlHZXRTdHJpbmcAAAABAAAAA2tleQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgUAAAAEdGhpcwUAAAADa2V5AQAAAAlnZXRPcmFjbGUAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAABdzdGF0aWNLZXlfb3JhY2xlQWRkcmVzcwAAAAABAAAADWdldEVnZ0Fzc2V0SWQAAAAACQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAUc3RhdGljS2V5X2VnZ0Fzc2V0SWQAAAAAAQAAABFnZXRCcmVlZGVyQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAGHN0YXRpY0tleV9icmVlZGVyQWRkcmVzcwAAAAABAAAAE2dldEluY3ViYXRvckFkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABpzdGF0aWNLZXlfaW5jdWJhdG9yQWRkcmVzcwAAAAABAAAAEmdldEJhYnlEdWNrQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAGXN0YXRpY0tleV9iYWJ5RHVja0FkZHJlc3MAAAAAAQAAABFnZXRGYXJtaW5nQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAGHN0YXRpY0tleV9mYXJtaW5nQWRkcmVzcwAAAAABAAAAEmdldENmTWFzdGVyQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAGXN0YXRpY0tleV9jZk1hc3RlckFkZHJlc3MAAAAAAQAAAA5nZXRIdW50QWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAFXN0YXRpY0tleV9odW50QWRkcmVzcwAAAAABAAAAEWdldFJlYmlydGhBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAYc3RhdGljS2V5X3JlYmlydGhBZGRyZXNzAAAAAAEAAAAXZ2V0VHVydGxlQnJlZWRlckFkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAAB5zdGF0aWNLZXlfdHVydGxlQnJlZWRlckFkZHJlc3MAAAAAAQAAABlnZXRUdXJ0bGVJbmN1YmF0b3JBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAgc3RhdGljS2V5X3R1cnRsZUluY3ViYXRvckFkZHJlc3MAAAAAAQAAABdnZXRUdXJ0bGVTdGFraW5nQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAHnN0YXRpY0tleV90dXJ0bGVTdGFraW5nQWRkcmVzcwAAAAABAAAAF2dldFR1cnRsZVJlYmlydGhBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAec3RhdGljS2V5X3R1cnRsZVJlYmlydGhBZGRyZXNzAAAAAAEAAAASZ2V0Q2FwYWNpdHlBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAZc3RhdGljS2V5X2NhcGFjaXR5QWRkcmVzcwAAAAABAAAAFWdldFZlZ2dGYXJtaW5nQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAHHN0YXRpY0tleV92ZWdnRmFybWluZ0FkZHJlc3MAAAAAAQAAABdnZXRNdXRhbnRGYXJtaW5nQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAHnN0YXRpY0tleV9tdXRhbnRGYXJtaW5nQWRkcmVzcwAAAAABAAAAF2dldEZlbGluZUZhcm1pbmdBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAec3RhdGljS2V5X2ZlbGluZUZhcm1pbmdBZGRyZXNzAAAAAAEAAAAXZ2V0Q2FuaW5lRmFybWluZ0FkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAAB5zdGF0aWNLZXlfY2FuaW5lRmFybWluZ0FkZHJlc3MAAAAAAQAAABdnZXRDYW5pbmVCcmVlZGVyQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAHnN0YXRpY0tleV9jYW5pbmVCcmVlZGVyQWRkcmVzcwAAAAABAAAAF2dldEZlbGluZUJyZWVkZXJBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAec3RhdGljS2V5X2ZlbGluZUJyZWVkZXJBZGRyZXNzAAAAAAEAAAAWZ2V0RWFnbGVGYXJtaW5nQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAHXN0YXRpY0tleV9lYWdsZUZhcm1pbmdBZGRyZXNzAAAAAAEAAAAWZ2V0RWFnbGVCcmVlZGVyQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAHXN0YXRpY0tleV9lYWdsZUJyZWVkZXJBZGRyZXNzAAAAAAEAAAARZ2V0VHJ1c3RlZEFkZHJlc3MAAAAACQAETAAAAAIJAQAAABFnZXRCcmVlZGVyQWRkcmVzcwAAAAAJAARMAAAAAgkBAAAAEmdldEJhYnlEdWNrQWRkcmVzcwAAAAAJAARMAAAAAgkBAAAAEWdldEZhcm1pbmdBZGRyZXNzAAAAAAkABEwAAAACCQEAAAAOZ2V0SHVudEFkZHJlc3MAAAAACQAETAAAAAIJAQAAABFnZXRSZWJpcnRoQWRkcmVzcwAAAAAJAARMAAAAAgkBAAAAF2dldFR1cnRsZUJyZWVkZXJBZGRyZXNzAAAAAAkABEwAAAACCQEAAAAZZ2V0VHVydGxlSW5jdWJhdG9yQWRkcmVzcwAAAAAJAARMAAAAAgkBAAAAF2dldFR1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AAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQDCQEAAAACIT0AAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAdhc3NldElkCQEAAAANZ2V0RWdnQXNzZXRJZAAAAAAJAAACAAAAAQIAAAAeRG9uJ3QgdHJ5IHRvIGNoZWF0IHRoZSBzeXN0ZW0hAwkAAAAAAAACCQEAAAANdHJ5R2V0Qm9vbGVhbgAAAAEJAAEsAAAAAgUAAAAOcmVmZXJlckFkZHJlc3MCAAAADF93aGl0ZWxpc3RlZAcFAAAADnNlbmRGdW5kc1RvRGFvAwkAAAAAAAACCQAEJgAAAAEFAAAADnJlZmVyZXJBZGRyZXNzBQAAAAR1bml0BQAAAA5zZW5kRnVuZHNUb0RhbwQAAAATcmVmZXJlckFkZHJlc3NWYWx1ZQkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAOcmVmZXJlckFkZHJlc3MEAAAAE3JlZmVyYWxBZGRyZXNzVmFsdWUJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAADnJlZmVyYWxBZGRyZXNzBAAAABFwYXltZW50Rm9yUmVmZXJlcgUAAAAJcmVmQW1vdW50BAAAABNyZWZlcmVyRWFybmVkUmV3YXJkCQABLAAAAAIJAAEsAAAAAgIAAAAIYWRkcmVzc18FAAAADnJlZmVyZXJBZGRyZXNzAgAAAA1fZWFybmVkUmV3YXJkBAAAABZyZWZlcmFsRGVsaXZlcmVkUmV3YXJkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACHJlZmVyZXJfBQAAAA5yZWZlcmVyQWRkcmVzcwIAAAAJX3JlZmVyYWxfBQAAAA5yZWZlcmFsQWRkcmVzcwIAAAAQX2RlbGl2ZXJlZFJld2FyZAMJAAAAAAAAAgUAAAAOcmVmZXJlckFkZHJlc3MFAAAADnJlZmVyYWxBZGRyZXNzBQAAAA5zZW5kRnVuZHNUb0RhbwkABRQAAAACCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhhZGRyZXNzXwUAAAAOcmVmZXJhbEFkZHJlc3MCAAAACl9yZWZlcmVkQnkFAAAADnJlZmVyZXJBZGRyZXNzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABNyZWZlcmVyRWFybmVkUmV3YXJkCQAAZAAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQUAAAATcmVmZXJlckVhcm5lZFJld2FyZAUAAAARcGF5bWVudEZvclJlZmVyZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAFnJlZmVyYWxEZWxpdmVyZWRSZXdhcmQJAABkAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABBQAAABZyZWZlcmFsRGVsaXZlcmVkUmV3YXJkBQAAABFwYXltZW50Rm9yUmVmZXJlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhyZWZlcmVyXwUAAAAOcmVmZXJlckFkZHJlc3MCAAAACV9yZWZlcmFsXwUAAAAOcmVmZXJhbEFkZHJlc3MCAAAAB19hbW91bnQJAABkAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACHJlZmVyZXJfBQAAAA5yZWZlcmVyQWRkcmVzcwIAAAAJX3JlZmVyYWxfBQAAAA5yZWZlcmFsQWRkcmVzcwIAAAAHX2Ftb3VudAAAAAAAAAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAABNyZWZlcmVyQWRkcmVzc1ZhbHVlBQAAABFwYXltZW50Rm9yUmVmZXJlcgkBAAAADWdldEVnZ0Fzc2V0SWQAAAAABQAAAANuaWwGAAAAAWkBAAAAD2NvbmZpZ3VyZU9yYWNsZQAAAAEAAAAGb3JhY2xlAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzCQAAAgAAAAECAAAAEFJDQ086IGFkbWluIG9ubHkJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAF3N0YXRpY0tleV9vcmFjbGVBZGRyZXNzAAAAAAUAAAAGb3JhY2xlBQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAAAwkBAAAACWlzVGVzdEVudgAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5BAAAAAlmaXJzdFVzZXIBAAAAIFEc5P1m/xJp0vFaFJ87suL0O3/By2gnojRebDjXV91tBAAAAApzZWNvbmRVc2VyAQAAACBccg5LrvEhT2bmGUX6aqKx7bE2KVlfGczMsOFNQYhqfQQAAAAJdGhpcmRVc2VyAQAAACCgr5HlLXlDYWEyEq2OufoYWVGdLVNJNsPQo/eoYBk7TgQAAAAPZmlyc3RVc2VyU2lnbmVkAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAFAAAACWZpcnN0VXNlcgAAAAAAAAAAAQMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAABBQAAAAlmaXJzdFVzZXIAAAAAAAAAAAEDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAgUAAAAJZmlyc3RVc2VyAAAAAAAAAAABAAAAAAAAAAAABAAAABBzZWNvbmRVc2VyU2lnbmVkAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAFAAAACnNlY29uZFVzZXIAAAAAAAAAAAEDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAQUAAAAKc2Vjb25kVXNlcgAAAAAAAAAAAQMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAACBQAAAApzZWNvbmRVc2VyAAAAAAAAAAABAAAAAAAAAAAABAAAAA90aGlyZFVzZXJTaWduZWQDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAAJdGhpcmRVc2VyAAAAAAAAAAABAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAEFAAAACXRoaXJkVXNlcgAAAAAAAAAAAQMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAACBQAAAAl0aGlyZFVzZXIAAAAAAAAAAAEAAAAAAAAAAAAEAAAAD3NpZ25hdHVyZXNDb3VudAkAAGQAAAACCQAAZAAAAAIFAAAAD2ZpcnN0VXNlclNpZ25lZAUAAAAQc2Vjb25kVXNlclNpZ25lZAUAAAAPdGhpcmRVc2VyU2lnbmVkBAAAAAckbWF0Y2gwBQAAAAJ0eAkAAGcAAAACBQAAAA9zaWduYXR1cmVzQ291bnQAAAAAAAAAAAHyOm5D", "height": 3463736, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 28PurJ8i8d4Yid8Go6UAUd8uNaxRP8qbpW8LQLUrwr3t Next: none Diff:
Old | New | Differences | |
---|---|---|---|
61 | 61 | func t () = "static_felineBreederAddress" | |
62 | 62 | ||
63 | 63 | ||
64 | - | func u (v) = { | |
65 | - | let w = getBoolean(this, v) | |
66 | - | if ($isInstanceOf(w, "Boolean")) | |
64 | + | func u () = "static_eagleBreederAddress" | |
65 | + | ||
66 | + | ||
67 | + | func v () = "static_eagleStakingAddress" | |
68 | + | ||
69 | + | ||
70 | + | func w (x) = { | |
71 | + | let y = getBoolean(this, x) | |
72 | + | if ($isInstanceOf(y, "Boolean")) | |
67 | 73 | then { | |
68 | - | let | |
69 | - | | |
74 | + | let z = y | |
75 | + | z | |
70 | 76 | } | |
71 | 77 | else false | |
72 | 78 | } | |
73 | 79 | ||
74 | 80 | ||
75 | - | func | |
76 | - | let | |
77 | - | if ($isInstanceOf( | |
81 | + | func A (x) = { | |
82 | + | let y = getInteger(this, x) | |
83 | + | if ($isInstanceOf(y, "Int")) | |
78 | 84 | then { | |
79 | - | let | |
80 | - | | |
85 | + | let z = y | |
86 | + | z | |
81 | 87 | } | |
82 | 88 | else 0 | |
83 | 89 | } | |
84 | 90 | ||
85 | 91 | ||
86 | - | func | |
87 | - | let | |
88 | - | if ($isInstanceOf( | |
92 | + | func B (C) = { | |
93 | + | let y = addressFromString(C) | |
94 | + | if ($isInstanceOf(y, "Address")) | |
89 | 95 | then { | |
90 | - | let | |
96 | + | let D = y | |
91 | 97 | true | |
92 | 98 | } | |
93 | 99 | else false | |
94 | 100 | } | |
95 | 101 | ||
96 | 102 | ||
97 | - | func | |
98 | - | let | |
99 | - | if ($isInstanceOf( | |
103 | + | func E (C,x) = { | |
104 | + | let y = getString(C, x) | |
105 | + | if ($isInstanceOf(y, "String")) | |
100 | 106 | then { | |
101 | - | let | |
102 | - | | |
107 | + | let D = y | |
108 | + | D | |
103 | 109 | } | |
104 | 110 | else "" | |
105 | 111 | } | |
106 | 112 | ||
107 | 113 | ||
108 | - | func | |
114 | + | func F (x) = E(this, x) | |
109 | 115 | ||
110 | 116 | ||
111 | - | func | |
117 | + | func G () = Address(fromBase58String(F(a()))) | |
112 | 118 | ||
113 | 119 | ||
114 | - | func | |
120 | + | func H () = fromBase58String(E(G(), b())) | |
115 | 121 | ||
116 | 122 | ||
117 | - | func | |
123 | + | func I () = Address(fromBase58String(E(G(), c()))) | |
118 | 124 | ||
119 | 125 | ||
120 | - | func | |
126 | + | func J () = Address(fromBase58String(E(G(), d()))) | |
121 | 127 | ||
122 | 128 | ||
123 | - | func | |
129 | + | func K () = Address(fromBase58String(E(G(), e()))) | |
124 | 130 | ||
125 | 131 | ||
126 | - | func | |
132 | + | func L () = Address(fromBase58String(E(G(), f()))) | |
127 | 133 | ||
128 | 134 | ||
129 | - | func | |
135 | + | func M () = Address(fromBase58String(E(G(), g()))) | |
130 | 136 | ||
131 | 137 | ||
132 | - | func | |
138 | + | func N () = Address(fromBase58String(E(G(), h()))) | |
133 | 139 | ||
134 | 140 | ||
135 | - | func | |
141 | + | func O () = Address(fromBase58String(E(G(), i()))) | |
136 | 142 | ||
137 | 143 | ||
138 | - | func | |
144 | + | func P () = Address(fromBase58String(E(G(), j()))) | |
139 | 145 | ||
140 | 146 | ||
141 | - | func | |
147 | + | func Q () = Address(fromBase58String(E(G(), k()))) | |
142 | 148 | ||
143 | 149 | ||
144 | - | func | |
150 | + | func R () = Address(fromBase58String(E(G(), l()))) | |
145 | 151 | ||
146 | 152 | ||
147 | - | func | |
153 | + | func S () = Address(fromBase58String(E(G(), m()))) | |
148 | 154 | ||
149 | 155 | ||
150 | - | func | |
156 | + | func T () = Address(fromBase58String(E(G(), n()))) | |
151 | 157 | ||
152 | 158 | ||
153 | - | func | |
159 | + | func U () = Address(fromBase58String(E(G(), o()))) | |
154 | 160 | ||
155 | 161 | ||
156 | - | func | |
162 | + | func V () = Address(fromBase58String(E(G(), p()))) | |
157 | 163 | ||
158 | 164 | ||
159 | - | func | |
165 | + | func W () = Address(fromBase58String(E(G(), q()))) | |
160 | 166 | ||
161 | 167 | ||
162 | - | func | |
168 | + | func X () = Address(fromBase58String(E(G(), r()))) | |
163 | 169 | ||
164 | 170 | ||
165 | - | func | |
171 | + | func Y () = Address(fromBase58String(E(G(), s()))) | |
166 | 172 | ||
167 | 173 | ||
168 | - | func | |
174 | + | func Z () = Address(fromBase58String(E(G(), t()))) | |
169 | 175 | ||
170 | 176 | ||
171 | - | func | |
177 | + | func aa () = Address(fromBase58String(E(G(), v()))) | |
172 | 178 | ||
173 | 179 | ||
174 | - | func Z (v) = { | |
175 | - | let w = getBoolean(K(), v) | |
176 | - | if ($isInstanceOf(w, "Boolean")) | |
180 | + | func ab () = Address(fromBase58String(E(G(), u()))) | |
181 | + | ||
182 | + | ||
183 | + | func ac () = [I(), K(), L(), N(), O(), P(), Q(), R(), S(), T(), U(), V(), W(), X(), Y(), Z(), aa(), ab()] | |
184 | + | ||
185 | + | ||
186 | + | func ad (x) = { | |
187 | + | let y = getBoolean(M(), x) | |
188 | + | if ($isInstanceOf(y, "Boolean")) | |
177 | 189 | then { | |
178 | - | let | |
179 | - | | |
190 | + | let z = y | |
191 | + | z | |
180 | 192 | } | |
181 | 193 | else false | |
182 | 194 | } | |
183 | 195 | ||
184 | 196 | ||
185 | - | func | |
197 | + | func ae () = w("TESTENV") | |
186 | 198 | ||
187 | 199 | ||
188 | - | @Callable( | |
189 | - | func addRefKey ( | |
200 | + | @Callable(af) | |
201 | + | func addRefKey (ag,ah) = if ((af.caller != this)) | |
190 | 202 | then throw("admin only") | |
191 | 203 | else { | |
192 | - | let | |
193 | - | if (( | |
194 | - | then [StringEntry( | |
195 | - | else throw((("The ref key \"" + | |
204 | + | let ai = (("key_" + ah) + "_refererAddress") | |
205 | + | if ((F(ai) == "")) | |
206 | + | then [StringEntry(ai, ag), StringEntry(((("address_" + ag) + "_refererKey_") + ah), ah)] | |
207 | + | else throw((("The ref key \"" + ah) + "\" is already registered")) | |
196 | 208 | } | |
197 | 209 | ||
198 | 210 | ||
199 | 211 | ||
200 | - | @Callable( | |
201 | - | func whitelistAddress ( | |
212 | + | @Callable(af) | |
213 | + | func whitelistAddress (ag) = if ((af.caller != this)) | |
202 | 214 | then throw("RF: Only for admin!") | |
203 | - | else [BooleanEntry(( | |
215 | + | else [BooleanEntry((ag + "_whitelisted"), true)] | |
204 | 216 | ||
205 | 217 | ||
206 | 218 | ||
207 | - | @Callable( | |
208 | - | func refPayment ( | |
209 | - | let | |
219 | + | @Callable(af) | |
220 | + | func refPayment (ah) = { | |
221 | + | let aj = if (ae()) | |
210 | 222 | then "3Mx9X6Dpj3thXL2So77C4DG9AmBM4WX8Mvw" | |
211 | 223 | else "3PEwRcYNAUtoFvKpBhKoiwajnZfdoDR6h4h" | |
212 | - | let | |
213 | - | let | |
214 | - | let | |
215 | - | if ((indexOf( | |
224 | + | let ak = A("dao_refund") | |
225 | + | let al = $Tuple2([ScriptTransfer(addressFromStringValue(aj), af.payments[0].amount, af.payments[0].assetId), IntegerEntry("dao_refund", (ak + af.payments[0].amount))], true) | |
226 | + | let am = toString(af.originCaller) | |
227 | + | if ((indexOf(ac(), af.caller) == unit)) | |
216 | 228 | then throw("RC: This method can be called only by farming and incubator dApps") | |
217 | - | else if (if (( | |
218 | - | then ( | |
229 | + | else if (if ((ah == "")) | |
230 | + | then (F((("address_" + am) + "_referedBy")) == "") | |
219 | 231 | else false) | |
220 | - | then | |
221 | - | else if ( | |
222 | - | then | |
232 | + | then al | |
233 | + | else if (ad(("farm_" + am))) | |
234 | + | then al | |
223 | 235 | else { | |
224 | - | let | |
225 | - | let | |
226 | - | if ($isInstanceOf( | |
236 | + | let an = { | |
237 | + | let y = getString(this, (("key_" + ah) + "_refererAddress")) | |
238 | + | if ($isInstanceOf(y, "String")) | |
227 | 239 | then { | |
228 | - | let | |
229 | - | | |
240 | + | let ao = y | |
241 | + | ao | |
230 | 242 | } | |
231 | - | else | |
243 | + | else ah | |
232 | 244 | } | |
233 | - | let | |
234 | - | let | |
235 | - | if ($isInstanceOf( | |
245 | + | let ag = { | |
246 | + | let y = getString(this, (("address_" + am) + "_referedBy")) | |
247 | + | if ($isInstanceOf(y, "String")) | |
236 | 248 | then { | |
237 | - | let | |
238 | - | | |
249 | + | let ao = y | |
250 | + | ao | |
239 | 251 | } | |
240 | - | else | |
252 | + | else an | |
241 | 253 | } | |
242 | - | let | |
243 | - | if (( | |
254 | + | let ap = af.payments[0].amount | |
255 | + | if ((af.payments[0].assetId != H())) | |
244 | 256 | then throw("Don't try to cheat the system!") | |
245 | - | else if (( | |
246 | - | then | |
247 | - | else if ((addressFromString( | |
248 | - | then | |
257 | + | else if ((w((ag + "_whitelisted")) == false)) | |
258 | + | then al | |
259 | + | else if ((addressFromString(ag) == unit)) | |
260 | + | then al | |
249 | 261 | else { | |
250 | - | let | |
251 | - | let | |
252 | - | let | |
253 | - | let | |
254 | - | let | |
255 | - | if (( | |
256 | - | then | |
257 | - | else $Tuple2([StringEntry((("address_" + | |
262 | + | let aq = addressFromStringValue(ag) | |
263 | + | let ar = addressFromStringValue(am) | |
264 | + | let as = ap | |
265 | + | let at = (("address_" + ag) + "_earnedReward") | |
266 | + | let au = (((("referer_" + ag) + "_referal_") + am) + "_deliveredReward") | |
267 | + | if ((ag == am)) | |
268 | + | then al | |
269 | + | else $Tuple2([StringEntry((("address_" + am) + "_referedBy"), ag), IntegerEntry(at, (A(at) + as)), IntegerEntry(au, (A(au) + as)), IntegerEntry((((("referer_" + ag) + "_referal_") + am) + "_amount"), (A((((("referer_" + ag) + "_referal_") + am) + "_amount")) + 1)), ScriptTransfer(aq, as, H())], true) | |
258 | 270 | } | |
259 | 271 | } | |
260 | 272 | } | |
261 | 273 | ||
262 | 274 | ||
263 | 275 | ||
264 | - | @Callable( | |
265 | - | func configureOracle ( | |
276 | + | @Callable(af) | |
277 | + | func configureOracle (av) = if ((af.caller != this)) | |
266 | 278 | then throw("RCCO: admin only") | |
267 | - | else [StringEntry(a(), | |
279 | + | else [StringEntry(a(), av)] | |
268 | 280 | ||
269 | 281 | ||
270 | - | @Verifier( | |
271 | - | func | |
272 | - | then sigVerify( | |
282 | + | @Verifier(aw) | |
283 | + | func ax () = if (ae()) | |
284 | + | then sigVerify(aw.bodyBytes, aw.proofs[0], aw.senderPublicKey) | |
273 | 285 | else { | |
274 | - | let | |
275 | - | let | |
276 | - | let | |
277 | - | let | |
286 | + | let ay = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4' | |
287 | + | let az = base58'7DsP2WaMLocbHuUxux7pbXRjTrrZ1TFQPsi5QumS3gr8' | |
288 | + | let aA = base58'BpFWP3p3JgYrrP45xfrKzeMcWMEXoinj4FVPPkUiA8D3' | |
289 | + | let aB = if (sigVerify(aw.bodyBytes, aw.proofs[0], ay)) | |
278 | 290 | then 1 | |
279 | - | else if (sigVerify( | |
291 | + | else if (sigVerify(aw.bodyBytes, aw.proofs[1], ay)) | |
280 | 292 | then 1 | |
281 | - | else if (sigVerify( | |
293 | + | else if (sigVerify(aw.bodyBytes, aw.proofs[2], ay)) | |
282 | 294 | then 1 | |
283 | 295 | else 0 | |
284 | - | let | |
296 | + | let aC = if (sigVerify(aw.bodyBytes, aw.proofs[0], az)) | |
285 | 297 | then 1 | |
286 | - | else if (sigVerify( | |
298 | + | else if (sigVerify(aw.bodyBytes, aw.proofs[1], az)) | |
287 | 299 | then 1 | |
288 | - | else if (sigVerify( | |
300 | + | else if (sigVerify(aw.bodyBytes, aw.proofs[2], az)) | |
289 | 301 | then 1 | |
290 | 302 | else 0 | |
291 | - | let | |
303 | + | let aD = if (sigVerify(aw.bodyBytes, aw.proofs[0], aA)) | |
292 | 304 | then 1 | |
293 | - | else if (sigVerify( | |
305 | + | else if (sigVerify(aw.bodyBytes, aw.proofs[1], aA)) | |
294 | 306 | then 1 | |
295 | - | else if (sigVerify( | |
307 | + | else if (sigVerify(aw.bodyBytes, aw.proofs[2], aA)) | |
296 | 308 | then 1 | |
297 | 309 | else 0 | |
298 | - | let | |
299 | - | let | |
300 | - | ( | |
310 | + | let aE = ((aB + aC) + aD) | |
311 | + | let y = aw | |
312 | + | (aE >= 1) | |
301 | 313 | } | |
302 | 314 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | func a () = "static_oracleAddress" | |
5 | 5 | ||
6 | 6 | ||
7 | 7 | func b () = "static_eggAssetId" | |
8 | 8 | ||
9 | 9 | ||
10 | 10 | func c () = "static_breederAddress" | |
11 | 11 | ||
12 | 12 | ||
13 | 13 | func d () = "static_incubatorAddress" | |
14 | 14 | ||
15 | 15 | ||
16 | 16 | func e () = "static_babyDuckAddress" | |
17 | 17 | ||
18 | 18 | ||
19 | 19 | func f () = "static_farmingAddressNew" | |
20 | 20 | ||
21 | 21 | ||
22 | 22 | func g () = "static_cfMasterAddress" | |
23 | 23 | ||
24 | 24 | ||
25 | 25 | func h () = "static_huntAddress" | |
26 | 26 | ||
27 | 27 | ||
28 | 28 | func i () = "static_rebirthAddress" | |
29 | 29 | ||
30 | 30 | ||
31 | 31 | func j () = "static_turtleBreederAddress" | |
32 | 32 | ||
33 | 33 | ||
34 | 34 | func k () = "static_turtleIncubatorAddress" | |
35 | 35 | ||
36 | 36 | ||
37 | 37 | func l () = "static_turtleStakingAddress" | |
38 | 38 | ||
39 | 39 | ||
40 | 40 | func m () = "static_turtleRebirthAddress" | |
41 | 41 | ||
42 | 42 | ||
43 | 43 | func n () = "static_capacityAddress" | |
44 | 44 | ||
45 | 45 | ||
46 | 46 | func o () = "static_veggFarmingAddress" | |
47 | 47 | ||
48 | 48 | ||
49 | 49 | func p () = "static_mutantFarmingAddress" | |
50 | 50 | ||
51 | 51 | ||
52 | 52 | func q () = "static_felineStakingAddress" | |
53 | 53 | ||
54 | 54 | ||
55 | 55 | func r () = "static_canineStakingAddress" | |
56 | 56 | ||
57 | 57 | ||
58 | 58 | func s () = "static_canineBreederAddress" | |
59 | 59 | ||
60 | 60 | ||
61 | 61 | func t () = "static_felineBreederAddress" | |
62 | 62 | ||
63 | 63 | ||
64 | - | func u (v) = { | |
65 | - | let w = getBoolean(this, v) | |
66 | - | if ($isInstanceOf(w, "Boolean")) | |
64 | + | func u () = "static_eagleBreederAddress" | |
65 | + | ||
66 | + | ||
67 | + | func v () = "static_eagleStakingAddress" | |
68 | + | ||
69 | + | ||
70 | + | func w (x) = { | |
71 | + | let y = getBoolean(this, x) | |
72 | + | if ($isInstanceOf(y, "Boolean")) | |
67 | 73 | then { | |
68 | - | let | |
69 | - | | |
74 | + | let z = y | |
75 | + | z | |
70 | 76 | } | |
71 | 77 | else false | |
72 | 78 | } | |
73 | 79 | ||
74 | 80 | ||
75 | - | func | |
76 | - | let | |
77 | - | if ($isInstanceOf( | |
81 | + | func A (x) = { | |
82 | + | let y = getInteger(this, x) | |
83 | + | if ($isInstanceOf(y, "Int")) | |
78 | 84 | then { | |
79 | - | let | |
80 | - | | |
85 | + | let z = y | |
86 | + | z | |
81 | 87 | } | |
82 | 88 | else 0 | |
83 | 89 | } | |
84 | 90 | ||
85 | 91 | ||
86 | - | func | |
87 | - | let | |
88 | - | if ($isInstanceOf( | |
92 | + | func B (C) = { | |
93 | + | let y = addressFromString(C) | |
94 | + | if ($isInstanceOf(y, "Address")) | |
89 | 95 | then { | |
90 | - | let | |
96 | + | let D = y | |
91 | 97 | true | |
92 | 98 | } | |
93 | 99 | else false | |
94 | 100 | } | |
95 | 101 | ||
96 | 102 | ||
97 | - | func | |
98 | - | let | |
99 | - | if ($isInstanceOf( | |
103 | + | func E (C,x) = { | |
104 | + | let y = getString(C, x) | |
105 | + | if ($isInstanceOf(y, "String")) | |
100 | 106 | then { | |
101 | - | let | |
102 | - | | |
107 | + | let D = y | |
108 | + | D | |
103 | 109 | } | |
104 | 110 | else "" | |
105 | 111 | } | |
106 | 112 | ||
107 | 113 | ||
108 | - | func | |
114 | + | func F (x) = E(this, x) | |
109 | 115 | ||
110 | 116 | ||
111 | - | func | |
117 | + | func G () = Address(fromBase58String(F(a()))) | |
112 | 118 | ||
113 | 119 | ||
114 | - | func | |
120 | + | func H () = fromBase58String(E(G(), b())) | |
115 | 121 | ||
116 | 122 | ||
117 | - | func | |
123 | + | func I () = Address(fromBase58String(E(G(), c()))) | |
118 | 124 | ||
119 | 125 | ||
120 | - | func | |
126 | + | func J () = Address(fromBase58String(E(G(), d()))) | |
121 | 127 | ||
122 | 128 | ||
123 | - | func | |
129 | + | func K () = Address(fromBase58String(E(G(), e()))) | |
124 | 130 | ||
125 | 131 | ||
126 | - | func | |
132 | + | func L () = Address(fromBase58String(E(G(), f()))) | |
127 | 133 | ||
128 | 134 | ||
129 | - | func | |
135 | + | func M () = Address(fromBase58String(E(G(), g()))) | |
130 | 136 | ||
131 | 137 | ||
132 | - | func | |
138 | + | func N () = Address(fromBase58String(E(G(), h()))) | |
133 | 139 | ||
134 | 140 | ||
135 | - | func | |
141 | + | func O () = Address(fromBase58String(E(G(), i()))) | |
136 | 142 | ||
137 | 143 | ||
138 | - | func | |
144 | + | func P () = Address(fromBase58String(E(G(), j()))) | |
139 | 145 | ||
140 | 146 | ||
141 | - | func | |
147 | + | func Q () = Address(fromBase58String(E(G(), k()))) | |
142 | 148 | ||
143 | 149 | ||
144 | - | func | |
150 | + | func R () = Address(fromBase58String(E(G(), l()))) | |
145 | 151 | ||
146 | 152 | ||
147 | - | func | |
153 | + | func S () = Address(fromBase58String(E(G(), m()))) | |
148 | 154 | ||
149 | 155 | ||
150 | - | func | |
156 | + | func T () = Address(fromBase58String(E(G(), n()))) | |
151 | 157 | ||
152 | 158 | ||
153 | - | func | |
159 | + | func U () = Address(fromBase58String(E(G(), o()))) | |
154 | 160 | ||
155 | 161 | ||
156 | - | func | |
162 | + | func V () = Address(fromBase58String(E(G(), p()))) | |
157 | 163 | ||
158 | 164 | ||
159 | - | func | |
165 | + | func W () = Address(fromBase58String(E(G(), q()))) | |
160 | 166 | ||
161 | 167 | ||
162 | - | func | |
168 | + | func X () = Address(fromBase58String(E(G(), r()))) | |
163 | 169 | ||
164 | 170 | ||
165 | - | func | |
171 | + | func Y () = Address(fromBase58String(E(G(), s()))) | |
166 | 172 | ||
167 | 173 | ||
168 | - | func | |
174 | + | func Z () = Address(fromBase58String(E(G(), t()))) | |
169 | 175 | ||
170 | 176 | ||
171 | - | func | |
177 | + | func aa () = Address(fromBase58String(E(G(), v()))) | |
172 | 178 | ||
173 | 179 | ||
174 | - | func Z (v) = { | |
175 | - | let w = getBoolean(K(), v) | |
176 | - | if ($isInstanceOf(w, "Boolean")) | |
180 | + | func ab () = Address(fromBase58String(E(G(), u()))) | |
181 | + | ||
182 | + | ||
183 | + | func ac () = [I(), K(), L(), N(), O(), P(), Q(), R(), S(), T(), U(), V(), W(), X(), Y(), Z(), aa(), ab()] | |
184 | + | ||
185 | + | ||
186 | + | func ad (x) = { | |
187 | + | let y = getBoolean(M(), x) | |
188 | + | if ($isInstanceOf(y, "Boolean")) | |
177 | 189 | then { | |
178 | - | let | |
179 | - | | |
190 | + | let z = y | |
191 | + | z | |
180 | 192 | } | |
181 | 193 | else false | |
182 | 194 | } | |
183 | 195 | ||
184 | 196 | ||
185 | - | func | |
197 | + | func ae () = w("TESTENV") | |
186 | 198 | ||
187 | 199 | ||
188 | - | @Callable( | |
189 | - | func addRefKey ( | |
200 | + | @Callable(af) | |
201 | + | func addRefKey (ag,ah) = if ((af.caller != this)) | |
190 | 202 | then throw("admin only") | |
191 | 203 | else { | |
192 | - | let | |
193 | - | if (( | |
194 | - | then [StringEntry( | |
195 | - | else throw((("The ref key \"" + | |
204 | + | let ai = (("key_" + ah) + "_refererAddress") | |
205 | + | if ((F(ai) == "")) | |
206 | + | then [StringEntry(ai, ag), StringEntry(((("address_" + ag) + "_refererKey_") + ah), ah)] | |
207 | + | else throw((("The ref key \"" + ah) + "\" is already registered")) | |
196 | 208 | } | |
197 | 209 | ||
198 | 210 | ||
199 | 211 | ||
200 | - | @Callable( | |
201 | - | func whitelistAddress ( | |
212 | + | @Callable(af) | |
213 | + | func whitelistAddress (ag) = if ((af.caller != this)) | |
202 | 214 | then throw("RF: Only for admin!") | |
203 | - | else [BooleanEntry(( | |
215 | + | else [BooleanEntry((ag + "_whitelisted"), true)] | |
204 | 216 | ||
205 | 217 | ||
206 | 218 | ||
207 | - | @Callable( | |
208 | - | func refPayment ( | |
209 | - | let | |
219 | + | @Callable(af) | |
220 | + | func refPayment (ah) = { | |
221 | + | let aj = if (ae()) | |
210 | 222 | then "3Mx9X6Dpj3thXL2So77C4DG9AmBM4WX8Mvw" | |
211 | 223 | else "3PEwRcYNAUtoFvKpBhKoiwajnZfdoDR6h4h" | |
212 | - | let | |
213 | - | let | |
214 | - | let | |
215 | - | if ((indexOf( | |
224 | + | let ak = A("dao_refund") | |
225 | + | let al = $Tuple2([ScriptTransfer(addressFromStringValue(aj), af.payments[0].amount, af.payments[0].assetId), IntegerEntry("dao_refund", (ak + af.payments[0].amount))], true) | |
226 | + | let am = toString(af.originCaller) | |
227 | + | if ((indexOf(ac(), af.caller) == unit)) | |
216 | 228 | then throw("RC: This method can be called only by farming and incubator dApps") | |
217 | - | else if (if (( | |
218 | - | then ( | |
229 | + | else if (if ((ah == "")) | |
230 | + | then (F((("address_" + am) + "_referedBy")) == "") | |
219 | 231 | else false) | |
220 | - | then | |
221 | - | else if ( | |
222 | - | then | |
232 | + | then al | |
233 | + | else if (ad(("farm_" + am))) | |
234 | + | then al | |
223 | 235 | else { | |
224 | - | let | |
225 | - | let | |
226 | - | if ($isInstanceOf( | |
236 | + | let an = { | |
237 | + | let y = getString(this, (("key_" + ah) + "_refererAddress")) | |
238 | + | if ($isInstanceOf(y, "String")) | |
227 | 239 | then { | |
228 | - | let | |
229 | - | | |
240 | + | let ao = y | |
241 | + | ao | |
230 | 242 | } | |
231 | - | else | |
243 | + | else ah | |
232 | 244 | } | |
233 | - | let | |
234 | - | let | |
235 | - | if ($isInstanceOf( | |
245 | + | let ag = { | |
246 | + | let y = getString(this, (("address_" + am) + "_referedBy")) | |
247 | + | if ($isInstanceOf(y, "String")) | |
236 | 248 | then { | |
237 | - | let | |
238 | - | | |
249 | + | let ao = y | |
250 | + | ao | |
239 | 251 | } | |
240 | - | else | |
252 | + | else an | |
241 | 253 | } | |
242 | - | let | |
243 | - | if (( | |
254 | + | let ap = af.payments[0].amount | |
255 | + | if ((af.payments[0].assetId != H())) | |
244 | 256 | then throw("Don't try to cheat the system!") | |
245 | - | else if (( | |
246 | - | then | |
247 | - | else if ((addressFromString( | |
248 | - | then | |
257 | + | else if ((w((ag + "_whitelisted")) == false)) | |
258 | + | then al | |
259 | + | else if ((addressFromString(ag) == unit)) | |
260 | + | then al | |
249 | 261 | else { | |
250 | - | let | |
251 | - | let | |
252 | - | let | |
253 | - | let | |
254 | - | let | |
255 | - | if (( | |
256 | - | then | |
257 | - | else $Tuple2([StringEntry((("address_" + | |
262 | + | let aq = addressFromStringValue(ag) | |
263 | + | let ar = addressFromStringValue(am) | |
264 | + | let as = ap | |
265 | + | let at = (("address_" + ag) + "_earnedReward") | |
266 | + | let au = (((("referer_" + ag) + "_referal_") + am) + "_deliveredReward") | |
267 | + | if ((ag == am)) | |
268 | + | then al | |
269 | + | else $Tuple2([StringEntry((("address_" + am) + "_referedBy"), ag), IntegerEntry(at, (A(at) + as)), IntegerEntry(au, (A(au) + as)), IntegerEntry((((("referer_" + ag) + "_referal_") + am) + "_amount"), (A((((("referer_" + ag) + "_referal_") + am) + "_amount")) + 1)), ScriptTransfer(aq, as, H())], true) | |
258 | 270 | } | |
259 | 271 | } | |
260 | 272 | } | |
261 | 273 | ||
262 | 274 | ||
263 | 275 | ||
264 | - | @Callable( | |
265 | - | func configureOracle ( | |
276 | + | @Callable(af) | |
277 | + | func configureOracle (av) = if ((af.caller != this)) | |
266 | 278 | then throw("RCCO: admin only") | |
267 | - | else [StringEntry(a(), | |
279 | + | else [StringEntry(a(), av)] | |
268 | 280 | ||
269 | 281 | ||
270 | - | @Verifier( | |
271 | - | func | |
272 | - | then sigVerify( | |
282 | + | @Verifier(aw) | |
283 | + | func ax () = if (ae()) | |
284 | + | then sigVerify(aw.bodyBytes, aw.proofs[0], aw.senderPublicKey) | |
273 | 285 | else { | |
274 | - | let | |
275 | - | let | |
276 | - | let | |
277 | - | let | |
286 | + | let ay = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4' | |
287 | + | let az = base58'7DsP2WaMLocbHuUxux7pbXRjTrrZ1TFQPsi5QumS3gr8' | |
288 | + | let aA = base58'BpFWP3p3JgYrrP45xfrKzeMcWMEXoinj4FVPPkUiA8D3' | |
289 | + | let aB = if (sigVerify(aw.bodyBytes, aw.proofs[0], ay)) | |
278 | 290 | then 1 | |
279 | - | else if (sigVerify( | |
291 | + | else if (sigVerify(aw.bodyBytes, aw.proofs[1], ay)) | |
280 | 292 | then 1 | |
281 | - | else if (sigVerify( | |
293 | + | else if (sigVerify(aw.bodyBytes, aw.proofs[2], ay)) | |
282 | 294 | then 1 | |
283 | 295 | else 0 | |
284 | - | let | |
296 | + | let aC = if (sigVerify(aw.bodyBytes, aw.proofs[0], az)) | |
285 | 297 | then 1 | |
286 | - | else if (sigVerify( | |
298 | + | else if (sigVerify(aw.bodyBytes, aw.proofs[1], az)) | |
287 | 299 | then 1 | |
288 | - | else if (sigVerify( | |
300 | + | else if (sigVerify(aw.bodyBytes, aw.proofs[2], az)) | |
289 | 301 | then 1 | |
290 | 302 | else 0 | |
291 | - | let | |
303 | + | let aD = if (sigVerify(aw.bodyBytes, aw.proofs[0], aA)) | |
292 | 304 | then 1 | |
293 | - | else if (sigVerify( | |
305 | + | else if (sigVerify(aw.bodyBytes, aw.proofs[1], aA)) | |
294 | 306 | then 1 | |
295 | - | else if (sigVerify( | |
307 | + | else if (sigVerify(aw.bodyBytes, aw.proofs[2], aA)) | |
296 | 308 | then 1 | |
297 | 309 | else 0 | |
298 | - | let | |
299 | - | let | |
300 | - | ( | |
310 | + | let aE = ((aB + aC) + aD) | |
311 | + | let y = aw | |
312 | + | (aE >= 1) | |
301 | 313 | } | |
302 | 314 |
github/deemru/w8io/169f3d6 100.08 ms ◑![]()