tx · 6LadjuZLEh2bJtGV1v24z7G6T7geKaXFHo5idC34KEFv

3PEVpbeDDkjmKqiMm25MgMZfazR7U1Eivzi:  -0.02000000 Waves

2022.08.12 11:51 [3246532] smart account 3PEVpbeDDkjmKqiMm25MgMZfazR7U1Eivzi > SELF 0.00000000 Waves

{ "type": 13, "id": "6LadjuZLEh2bJtGV1v24z7G6T7geKaXFHo5idC34KEFv", "fee": 2000000, "feeAssetId": null, "timestamp": 1660294309050, "version": 2, "chainId": 87, "sender": "3PEVpbeDDkjmKqiMm25MgMZfazR7U1Eivzi", "senderPublicKey": "7kGVvqWtJxnwwNwaepvnSHefn71KaKkgcYrDhYiuXzjj", "proofs": [ "EscXoGsiGXoSqYsUkckovJm6pNAvD2Bg4ZEnZWV1ytc3NR5zewiajcKpGrKWVrvto1X3MG2Jq5oC8Ko7sAnatpQ" ], "script": "base64:AAIFAAAAAAAAAEMIAhIDCgEIEgMKAQgSAwoBARIICgYIAQQBAQESAwoBBBIAEgASABIDCgEIEgYKBAgIAQESAwoBCBIDCgEIEgQKAggIAAAAJAAAAAALa2V5TUFjY1BLZXkCAAAACW1hc3Rlcl9wawAAAAANa2V5QmFja3VwUEtleQIAAAAHYmFja19wawAAAAAId2Fyc1BLZXkCAAAAB3dhcnNfcGsBAAAABmdldFN0cgAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAgAAAAAAAAAADm1BY2NQS2V5U3RyaW5nCQEAAAAGZ2V0U3RyAAAAAQUAAAALa2V5TUFjY1BLZXkAAAAAEGJhY2t1cFBLZXlTdHJpbmcJAQAAAAZnZXRTdHIAAAABBQAAAA1rZXlCYWNrdXBQS2V5AQAAAAxnZXRCYWNrdXBLZXkAAAAAAwkAAAAAAAACBQAAABBiYWNrdXBQS2V5U3RyaW5nAgAAAAAIBQAAAAR0aGlzAAAABWJ5dGVzCQACWQAAAAEFAAAAEGJhY2t1cFBLZXlTdHJpbmcAAAAACG1BY2NQS2V5CQACWQAAAAEFAAAADm1BY2NQS2V5U3RyaW5nAAAAAAhtQWNjQWRkcgkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAAIbUFjY1BLZXkAAAAACmZlZVBlcmNlbnQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAACG1BY2NBZGRyCQABLAAAAAIJAAEsAAAAAgIAAAACZl8JAAQlAAAAAQUAAAAEdGhpcwIAAAAEX2ZlZQAAAAAOc3Rha2luZ0FkZHJlc3MJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAhtQWNjQWRkcgkAASwAAAACCQABLAAAAAICAAAAAmZfCQAEJQAAAAEFAAAABHRoaXMCAAAADl9zdGFrZV9hZGRyZXNzCQABLAAAAAIJAAEsAAAAAgIAAAACZl8JAAQlAAAAAQUAAAAEdGhpcwIAAAAaX3N0YWtlX2FkZHJlc3Mgbm90IGRlZmluZWQAAAAACHdBY2NQS2V5CQACWQAAAAEJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAhtQWNjQWRkcgUAAAAId2Fyc1BLZXkJAAEsAAAAAgUAAAAId2Fyc1BLZXkCAAAADCBub3QgZGVmaW5lZAAAAAAPa1RvdGFsTGlxdWlkaXR5AgAAAA90b3RhbF9saXF1aWRpdHkAAAAADGtJbml0aWFsaXplZAIAAAALSU5JVElBTElaRUQAAAAAE2tMaXF1aWRpdHlUaHJlc2hvbGQCAAAAE0xJUVVJRElUWV9USFJFU0hPTEQAAAAAE2tUb3RhbEZhcm1pbmdSZXdhcmQCAAAAFHRvdGFsX2Zhcm1pbmdfcmV3YXJkAAAAAA1rU2hhcmVBc3NldElkAgAAAA5TSEFSRV9BU1NFVF9JRAAAAAAOa0luY3ViYXRvckRhcHACAAAADklOQ1VCQVRPUl9EQVBQAAAAAAxrQnJlZWRlckRhcHACAAAADEJSRUVERVJfREFQUAAAAAAMa0Zhcm1pbmdEYXBwAgAAAAxGQVJNSU5HX0RBUFAAAAAAEGtNYXJrZXRQcm94eURhcHACAAAAFk1BUktFVFBMQUNFX1BST1hZX0RBUFAAAAAADGtBdWN0aW9uRGFwcAIAAAAMQVVDVElPTl9EQVBQAAAAAAdrTG9ja2VkAgAAAAZMT0NLRUQAAAAAEGtDZW9Db2xsZWN0ZWRGZWUCAAAAEWNlb19jb2xsZWN0ZWRfZmVlAAAAABdrQ2VvQ29sbGVjdGVkRmVlT3ZlcmFsbAIAAAAPY2VvX2ZlZV9vdmVyYWxsAAAAABJrTG9ja2VkSW52ZXN0bWVudHMCAAAAEmxvY2tlZF9pbnZlc3RtZW50cwAAAAAQa2V5VG90YWxDb21wb3VuZAIAAAAOdG90YWxfY29tcG91bmQAAAAAD2tleUdsb2JhbFN0YWtlZAIAAAANZ2xvYmFsX3N0YWtlZAEAAAAGZ2V0SW50AAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIAAAAAAAAAAAABAAAAB2dldEJvb2wAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABBsAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0Jvb2xlYW4EAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIFAAAABHVuaXQBAAAAB2dldFN0ckEAAAACAAAAAWEAAAABawQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAFhBQAAAAFrAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWICAAAAAAEAAAAHZ2V0SW50QQAAAAIAAAAHYWRkcmVzcwAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIAAAAAAAAAAAABAAAAEmdldE1hcmtldFByb3h5QWRkcgAAAAAJAQAAAAdnZXRTdHJBAAAAAgUAAAAIbUFjY0FkZHIFAAAAEGtNYXJrZXRQcm94eURhcHABAAAACGdldEVnZ0lkAAAAAAkAAlkAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAhtQWNjQWRkcgIAAAAMRUdHX0FTU0VUX0lEAQAAAA9nZXRTaGFyZUFzc2V0SWQAAAAACQACWQAAAAEJAQAAAAZnZXRTdHIAAAABBQAAAA1rU2hhcmVBc3NldElkAQAAAAVhc0ludAAAAAEAAAAFdmFsdWUEAAAAByRtYXRjaDAFAAAABXZhbHVlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAA2ludAUAAAAHJG1hdGNoMAUAAAADaW50CQAAAgAAAAECAAAAGXdyb25nIHR5cGUsIGV4cGVjdGVkOiBJbnQAAAANAAAAAWkBAAAADWluaXRNYXN0ZXJLZXkAAAABAAAACXB1YmxpY0tleQMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAABlZb3UgY2Fubm90IGRvIHRoaXMgYWN0aW9uAwkBAAAAAiE9AAAAAgUAAAAObUFjY1BLZXlTdHJpbmcCAAAAAAkAAAIAAAABAgAAADJNYXN0ZXIgcHVibGljIGtleSBhbHJlYWR5IHNldCwgeW91IGNhbid0IG92ZXJyaWRlIQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAtrZXlNQWNjUEtleQUAAAAJcHVibGljS2V5BQAAAANuaWwAAAABaQEAAAANaW5pdEJhY2t1cEtleQAAAAEAAAAJcHVibGljS2V5AwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAAhtQWNjUEtleQkAAAIAAAABAgAAABlZb3UgY2Fubm90IGRvIHRoaXMgYWN0aW9uCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAADWtleUJhY2t1cFBLZXkFAAAACXB1YmxpY0tleQUAAAADbmlsAAAAAWkBAAAAHmNhbGN1bGF0ZUNvbXBvdW5kU2hhcmVBbmRJc3N1ZQAAAAEAAAAGYW1vdW50AwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzCQAAAgAAAAECAAAAGVlvdSBjYW5ub3QgZG8gdGhpcyBhY3Rpb24DCQAAAAAAAAIJAQAAAAdnZXRCb29sAAAAAQUAAAASa0xvY2tlZEludmVzdG1lbnRzBgkABRQAAAACBQAAAANuaWwAAAAAAAAAAAAEAAAADHNoYXJlQXNzZXRJZAkBAAAAD2dldFNoYXJlQXNzZXRJZAAAAAAEAAAADXRvdGFsQ29tcG91bmQJAQAAAAdnZXRJbnRBAAAAAgUAAAAOc3Rha2luZ0FkZHJlc3MFAAAAEGtleVRvdGFsQ29tcG91bmQEAAAAC3RvdGFsU3Rha2VkCQEAAAAHZ2V0SW50QQAAAAIFAAAADnN0YWtpbmdBZGRyZXNzBQAAAA9rZXlHbG9iYWxTdGFrZWQEAAAAC3RvdGFsTG9ja2VkCQAAZAAAAAIFAAAAC3RvdGFsU3Rha2VkBQAAAA10b3RhbENvbXBvdW5kBAAAABFhbW91bnRGb3JDb21wb3VuZAkAAGsAAAADBQAAAAZhbW91bnQFAAAADXRvdGFsQ29tcG91bmQFAAAAC3RvdGFsTG9ja2VkCQAFFAAAAAIJAARMAAAAAgkB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AAEFAAAADWtTaGFyZUFzc2V0SWQEAAAAB3JlaXNzdWUJAQAAAAdSZWlzc3VlAAAAAwkBAAAAD2dldFNoYXJlQXNzZXRJZAAAAAAFAAAAEXNoYXJlVG9rZW5zVG9HaXZlBgQAAAANa1BhcnRpY2lwYXRlZAkAASwAAAACCQABLAAAAAICAAAACGFjY291bnRfCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgIAAAANX3BhcnRpY2lwYXRlZAQAAAATYWxyZWFkeVBhcnRpY2lwYXRlZAkBAAAAB2dldEJvb2wAAAABBQAAAA1rUGFydGljaXBhdGVkCQAFFAAAAAIJAARMAAAAAgUAAAAHcmVpc3N1ZQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAEXNoYXJlVG9rZW5zVG9HaXZlBQAAAA1zaGFyZVRva2Vuc0lkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA9rVG90YWxMaXF1aWRpdHkJAABkAAAAAgUAAAAOdG90YWxMaXF1aWRpdHkJAQAAAAV2YWx1ZQAAAAEICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAANa1BhcnRpY2lwYXRlZAYFAAAAA25pbAUAAAARc2hhcmVUb2tlbnNUb0dpdmUAAAABaQEAAAAXY2xhaW1GYXJtaW5nUmV3YXJkUHJveHkAAAABAAAAA2lkcwMJAQAAAAIhPQAAAAIIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQUAAAAIbUFjY1BLZXkJAAACAAAAAQIAAAADXzIzBAAAAAplZ2dBc3NldElkCQEAAAAIZ2V0RWdnSWQAAAAABAAAAAxzaGFyZUFzc2V0SWQJAQAAAA9nZXRTaGFyZUFzc2V0SWQAAAAABAAAAAtmYXJtaW5nRGFwcAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAAB2dldFN0ckEAAAACBQAAAAhtQWNjQWRkcgUAAAAMa0Zhcm1pbmdEYXBwCgEAAAALY2xhaW1SZXdhcmQAAAACAAAABWFjY3VtAAAABW5mdElkBAAAAAZpbnZSZXMJAAP8AAAABAUAAAALZmFybWluZ0RhcHACAAAAC2NsYWltUmV3YXJkCQAETAAAAAIFAAAABW5mdElkBQAAAANuaWwFAAAAA25pbAMJAAAAAAAAAgUAAAAGaW52UmVzBQAAAAZpbnZSZXMEAAAAByRtYXRjaDAFAAAABmludlJlcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAANpbnQFAAAAByRtYXRjaDAJAABkAAAAAgUAAAAFYWNjdW0FAAAAA2ludAkAAAIAAAABAgAAAAJfNQkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EAAAABm5mdElkcwkABLUAAAACBQAAAANpZHMCAAAAATsEAAAACmZvbGRSZXN1bHQKAAAAAAIkbAUAAAAGbmZ0SWRzCgAAAAACJHMJAAGQAAAAAQUAAAACJGwKAAAAAAUkYWNjMAAAAAAAAAAAAAoBAAAABSRmMF8xAAAAAgAAAAIkYQAAAAIkaQMJAABnAAAAAgUAAAACJGkFAAAAAiRzBQAAAAIkYQkBAAAAC2NsYWltUmV3YXJkAAAAAgUAAAACJGEJAAGRAAAAAgUAAAACJGwFAAAAAiRpCgEAAAAFJGYwXzIAAAACAAAAAiRhAAAAAiRpAwkAAGcAAAACBQAAAAIkaQUAAAACJHMFAAAAAiRhCQAAAgAAAAECAAAAFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEAAAAFJGYwXzIAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACBQAAAAUkYWNjMAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAgAAAAAAAAAAAwAAAAAAAAAABAAAAAAAAAAABQAAAAAAAAAABgAAAAAAAAAABwAAAAAAAAAACAAAAAAAAAAACQAAAAAAAAAACgQAAAANY2xhaW1lZFJld2FyZAQAAAAHJG1hdGNoMAUAAAAKZm9sZFJlc3VsdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAANpbnQFAAAAByRtYXRjaDAFAAAAA2ludAkAAAIAAAABAgAAAAJfNgQAAAASdG90YWxGYXJtaW5nUmV3YXJkCQEAAAAGZ2V0SW50AAAAAQUAAAATa1RvdGFsRmFybWluZ1Jld2FyZAQAAAAOZmFybUNlb0ZlZVNpemUJAABrAAAAAwUAAAANY2xhaW1lZFJld2FyZAUAAAAKZmVlUGVyY2VudAAAAAAAAAAAZAQAAAANY3VycmVudENlb0ZlZQkBAAAABmdldEludAAAAAEFAAAAEGtDZW9Db2xsZWN0ZWRGZWUEAAAADWNlb0ZlZU92ZXJhbGwJAQAAAAZnZXRJbnQAAAABBQAAABdrQ2VvQ29sbGVjdGVkRmVlT3ZlcmFsbAQAAAALYW1vdW50VG9QYXkJAABlAAAAAgUAAAANY2xhaW1lZFJld2FyZAUAAAAOZmFybUNlb0ZlZVNpemUEAAAADmFtb3VudENvbXBvdW5kCQEAAAAFYXNJbnQAAAABCQAD/AAAAAQFAAAABHRoaXMCAAAAHmNhbGN1bGF0ZUNvbXBvdW5kU2hhcmVBbmRJc3N1ZQkABEwAAAACBQAAAAthbW91bnRUb1BheQUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAADmFtb3VudENvbXBvdW5kBQAAAA5hbW91bnRDb21wb3VuZAQAAAAFdG9wVXAJAAP8AAAABAUAAAAOc3Rha2luZ0FkZHJlc3MCAAAAC3RvcFVwUmV3YXJkBQAAAANuaWwJAARMAAAAAgkBAAAAD0F0dGFjaGVkUGF5bWVudAAAAAIFAAAACmVnZ0Fzc2V0SWQJAABlAAAAAgUAAAALYW1vdW50VG9QYXkFAAAADmFtb3VudENvbXBvdW5kCQAETAAAAAIJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACBQAAAAxzaGFyZUFzc2V0SWQFAAAADmFtb3VudENvbXBvdW5kBQAAAANuaWwDCQAAAAAAAAIFAAAABXRvcFVwBQAAAAV0b3BVcAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAATa1RvdGFsRmFybWluZ1Jld2FyZAkAAGQAAAACBQAAABJ0b3RhbEZhcm1pbmdSZXdhcmQF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BQAAAAhmdW5jdGlvbgIAAAAOdW5zdGFrZUphY2twb3QHCQAAAgAAAAECAAAAEUJhZCBmdW5jdGlvbiBuYW1lAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzCQAAAgAAAAECAAAAIUNhbiBiZSBjYWxsZWQgb25seSBieSB0aGUgYWNjb3VudAQAAAAKZWdnQXNzZXRJZAkBAAAACGdldEVnZ0lkAAAAAAQAAAAMc2hhcmVBc3NldElkCQEAAAAPZ2V0U2hhcmVBc3NldElkAAAAAAQAAAASZmFybWluZ0RhcHBBZGRyZXNzCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAAHZ2V0U3RyQQAAAAIFAAAACG1BY2NBZGRyAgAAAAxGQVJNSU5HX0RBUFAEAAAADnVuc3Rha2VkUmV3YXJkCQAD/AAAAAQFAAAAEmZhcm1pbmdEYXBwQWRkcmVzcwUAAAAIZnVuY3Rpb24JAARMAAAAAgUAAAAHYXNzZXRJZAUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAADnVuc3Rha2VkUmV3YXJkBQAAAA51bnN0YWtlZFJld2FyZAQAAAAGcmV3YXJkBAAAAAckbWF0Y2gwBQAAAA51bnN0YWtlZFJld2FyZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAANpbnQFAAAAByRtYXRjaDAFAAAAA2ludAkAAAIAAAABAgAAABZFcnJvciBkdXJpbmcgdW5zdGFraW5nBAAAAA1jdXJyZW50Q2VvRmVlCQEAAAAGZ2V0SW50AAAAAQUAAAAQa0Nlb0NvbGxlY3RlZEZlZQQAAAANY2VvRmVlT3ZlcmFsbAkBAAAABmdldEludAAAAAEFAAAAF2tDZW9Db2xsZWN0ZWRGZWVPdmVyYWxsBAAAAA5mYXJtQ2VvRmVlU2l6ZQkAAGsAAAADBQAAAAZyZXdhcmQFAAAACmZlZVBlcmNlbnQAAAAAAAAAAGQEAAAAC2Ftb3VudFRvUGF5CQAAZQAAAAIFAAAABnJld2FyZAUAAAAOZmFybUNlb0ZlZVNpemUEAAAAEWFtb3VudENvbXBvbnRDYWxsCQAD/AAAAAQFAAAABHRoaXMCAAAAHmNhbGN1bGF0ZUNvbXBvdW5kU2hhcmVBbmRJc3N1ZQkABEwAAAACBQAAAAthbW91bnRUb1BheQUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAAEWFtb3VudENvbXBvbnRDYWxsBQAAABFhbW91bnRDb21wb250Q2FsbAQAAAAOYW1vdW50Q29tcG91bmQJAQAAAAVhc0ludAAAAAEJAAP8AAAABAUAAAAEdGhpcwIAAAAeY2FsY3VsYXRlQ29tcG91bmRTaGFyZUFuZElzc3VlCQAETAAAAAIFAAAAC2Ftb3VudFRvUGF5BQAAAANuaWwFAAAAA25pbAMJAAAAAAAAAgUAAAAOYW1vdW50Q29tcG91bmQFAAAADmFtb3VudENvbXBvdW5kBAAAAAV0b3BVcAkAA/wAAAAEBQAAAA5zdGFraW5nQWRkcmVzcwIAAAALdG9wVXBSZXdhcmQFAAAAA25pbAkABEwAAAACCQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAgUAAAAKZWdnQXNzZXRJZAkAAGUAAAACBQAAAAthbW91bnRUb1BheQUAAAAOYW1vdW50Q29tcG91bmQJAARMAAAAAgkBAAAAD0F0dGFjaGVkUGF5bWVudAAAAAIFAAAADHNoYXJlQXNzZXRJZAUAAAAOYW1vdW50Q29tcG91bmQFAAAAA25pbAMJAAAAAAAAAgUAAAAFdG9wVXAFAAAABXRvcFVwCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABBrQ2VvQ29sbGVjdGVkRmVlCQAAZAAAAAIFAAAADWN1cnJlbnRDZW9GZWUFAAAADmZhcm1DZW9GZWVTaXplCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABdrQ2VvQ29sbGVjdGVkRmVlT3ZlcmFsbAkAAGQAAAACBQAAAA1jZW9GZWVPdmVyYWxsBQAAAA5mYXJtQ2VvRmVlU2l6ZQUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0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", "height": 3246532, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: G62TQT3c6TRMheXgPNKtzrBCQhRTGSKxQ4yrF3HrDcb2 Next: Ck6J9PAoCwCjvzvbpxSxaPuoeo5H92Es2k1pr1kcz2i4 Diff:
OldNewDifferences
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let keyMAccPKey = "master_pk"
5+
6+let keyBackupPKey = "back_pk"
57
68 let warsPKey = "wars_pk"
79
1416
1517
1618 let mAccPKeyString = getStr(keyMAccPKey)
19+
20+let backupPKeyString = getStr(keyBackupPKey)
21+
22+func getBackupKey () = if ((backupPKeyString == ""))
23+ then this.bytes
24+ else fromBase58String(backupPKeyString)
25+
1726
1827 let mAccPKey = fromBase58String(mAccPKeyString)
1928
112121 else if ((mAccPKeyString != ""))
113122 then throw("Master public key already set, you can't override!")
114123 else [StringEntry(keyMAccPKey, publicKey)]
124+
125+
126+
127+@Callable(i)
128+func initBackupKey (publicKey) = if ((i.caller != addressFromPublicKey(mAccPKey)))
129+ then throw("You cannot do this action")
130+ else [StringEntry(keyBackupPKey, publicKey)]
115131
116132
117133
365381 else false)
366382 then (mAccPKeyString == "")
367383 else false)
368- then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
369- else if ((sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) == false))
384+ then if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
385+ then true
386+ else sigVerify(tx.bodyBytes, tx.proofs[0], getBackupKey())
387+ else if (if ((sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) == false))
388+ then (sigVerify(tx.bodyBytes, tx.proofs[0], getBackupKey()) == false)
389+ else false)
370390 then throw("_100")
371391 else if ((checkStarted == false))
372392 then throw("_14")
376396 then true
377397 else (inv.feeAssetId != unit))
378398 then throw("_15")
379- else if ((size(inv.payments) > 2))
399+ else if ((size(inv.payments) > 3))
380400 then throw("_17")
381401 else if (if ((addressFromRecipient(inv.dApp) == this))
382402 then containsElement(acceptedCallsThis, inv.function)
383403 else false)
384- then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
404+ then if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
405+ then true
406+ else sigVerify(tx.bodyBytes, tx.proofs[0], getBackupKey())
385407 else if (if ((addressFromRecipient(inv.dApp) == addressFromStringValue(getMarketProxyAddr())))
386408 then (inv.function == "callMarketplaceProxy")
387409 else false)
388- then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
410+ then if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
411+ then true
412+ else sigVerify(tx.bodyBytes, tx.proofs[0], getBackupKey())
389413 else if (if ((addressFromRecipient(inv.dApp) == stakingAddress))
390414 then containsElement(acceptedCallsStaking, inv.function)
391415 else false)
392- then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
416+ then if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
417+ then true
418+ else sigVerify(tx.bodyBytes, tx.proofs[0], getBackupKey())
393419 else {
394420 let allowedContracts = getStrA(mAccAddr, "allowed_contracts")
395421 let allowedContractsList = split(allowedContracts, ";")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let keyMAccPKey = "master_pk"
5+
6+let keyBackupPKey = "back_pk"
57
68 let warsPKey = "wars_pk"
79
810 func getStr (key) = match getString(this, key) {
911 case b: String =>
1012 b
1113 case _ =>
1214 ""
1315 }
1416
1517
1618 let mAccPKeyString = getStr(keyMAccPKey)
19+
20+let backupPKeyString = getStr(keyBackupPKey)
21+
22+func getBackupKey () = if ((backupPKeyString == ""))
23+ then this.bytes
24+ else fromBase58String(backupPKeyString)
25+
1726
1827 let mAccPKey = fromBase58String(mAccPKeyString)
1928
2029 let mAccAddr = addressFromPublicKey(mAccPKey)
2130
2231 let feePercent = getIntegerValue(mAccAddr, (("f_" + toString(this)) + "_fee"))
2332
2433 let stakingAddress = addressFromStringValue(valueOrErrorMessage(getString(mAccAddr, (("f_" + toString(this)) + "_stake_address")), (("f_" + toString(this)) + "_stake_address not defined")))
2534
2635 let wAccPKey = fromBase58String(valueOrErrorMessage(getString(mAccAddr, warsPKey), (warsPKey + " not defined")))
2736
2837 let kTotalLiquidity = "total_liquidity"
2938
3039 let kInitialized = "INITIALIZED"
3140
3241 let kLiquidityThreshold = "LIQUIDITY_THRESHOLD"
3342
3443 let kTotalFarmingReward = "total_farming_reward"
3544
3645 let kShareAssetId = "SHARE_ASSET_ID"
3746
3847 let kIncubatorDapp = "INCUBATOR_DAPP"
3948
4049 let kBreederDapp = "BREEDER_DAPP"
4150
4251 let kFarmingDapp = "FARMING_DAPP"
4352
4453 let kMarketProxyDapp = "MARKETPLACE_PROXY_DAPP"
4554
4655 let kAuctionDapp = "AUCTION_DAPP"
4756
4857 let kLocked = "LOCKED"
4958
5059 let kCeoCollectedFee = "ceo_collected_fee"
5160
5261 let kCeoCollectedFeeOverall = "ceo_fee_overall"
5362
5463 let kLockedInvestments = "locked_investments"
5564
5665 let keyTotalCompound = "total_compound"
5766
5867 let keyGlobalStaked = "global_staked"
5968
6069 func getInt (key) = match getInteger(this, key) {
6170 case b: Int =>
6271 b
6372 case _ =>
6473 0
6574 }
6675
6776
6877 func getBool (key) = match getBoolean(this, key) {
6978 case b: Boolean =>
7079 b
7180 case _ =>
7281 unit
7382 }
7483
7584
7685 func getStrA (a,k) = match getString(a, k) {
7786 case b: String =>
7887 b
7988 case _ =>
8089 ""
8190 }
8291
8392
8493 func getIntA (address,key) = match getInteger(address, key) {
8594 case b: Int =>
8695 b
8796 case _ =>
8897 0
8998 }
9099
91100
92101 func getMarketProxyAddr () = getStrA(mAccAddr, kMarketProxyDapp)
93102
94103
95104 func getEggId () = fromBase58String(getStringValue(mAccAddr, "EGG_ASSET_ID"))
96105
97106
98107 func getShareAssetId () = fromBase58String(getStr(kShareAssetId))
99108
100109
101110 func asInt (value) = match value {
102111 case int: Int =>
103112 int
104113 case _ =>
105114 throw("wrong type, expected: Int")
106115 }
107116
108117
109118 @Callable(i)
110119 func initMasterKey (publicKey) = if ((i.caller != this))
111120 then throw("You cannot do this action")
112121 else if ((mAccPKeyString != ""))
113122 then throw("Master public key already set, you can't override!")
114123 else [StringEntry(keyMAccPKey, publicKey)]
124+
125+
126+
127+@Callable(i)
128+func initBackupKey (publicKey) = if ((i.caller != addressFromPublicKey(mAccPKey)))
129+ then throw("You cannot do this action")
130+ else [StringEntry(keyBackupPKey, publicKey)]
115131
116132
117133
118134 @Callable(i)
119135 func calculateCompoundShareAndIssue (amount) = if ((i.caller != this))
120136 then throw("You cannot do this action")
121137 else if ((getBool(kLockedInvestments) == true))
122138 then $Tuple2(nil, 0)
123139 else {
124140 let shareAssetId = getShareAssetId()
125141 let totalCompound = getIntA(stakingAddress, keyTotalCompound)
126142 let totalStaked = getIntA(stakingAddress, keyGlobalStaked)
127143 let totalLocked = (totalStaked + totalCompound)
128144 let amountForCompound = fraction(amount, totalCompound, totalLocked)
129145 $Tuple2([Reissue(shareAssetId, amountForCompound, true)], amountForCompound)
130146 }
131147
132148
133149
134150 @Callable(i)
135151 func initCollectiveFarm (name,minimumThreshold,migration,totalFarmingReward,totalLiquidity,totalFarmToken) = if ((mAccPKeyString == ""))
136152 then throw("First initiatie a master public key!")
137153 else if ((i.callerPublicKey != mAccPKey))
138154 then throw("_1")
139155 else if ((getBool(kInitialized) != unit))
140156 then throw("_2")
141157 else if (if ((migration == false))
142158 then if ((i.payments[0].amount != 10000000))
143159 then true
144160 else (i.payments[0].assetId != getEggId())
145161 else false)
146162 then throw("_20")
147163 else {
148164 let shareTokens = if (migration)
149165 then totalFarmToken
150166 else 10000000
151167 let shareToken = Issue(name, (("Team token for the \"" + name) + "\" collective farm"), shareTokens, 8, true)
152168 let totLiquidity = if (migration)
153169 then totalLiquidity
154170 else 10000000
155171 let totFarmingReward = if (migration)
156172 then [IntegerEntry(kTotalFarmingReward, totalFarmingReward)]
157173 else nil
158174 ([StringEntry(kShareAssetId, toBase58String(calculateAssetId(shareToken))), BooleanEntry(kInitialized, true), IntegerEntry(kTotalLiquidity, totLiquidity), shareToken, ScriptTransfer(i.caller, shareTokens, calculateAssetId(shareToken)), BooleanEntry(kLocked, false), IntegerEntry(kLiquidityThreshold, minimumThreshold)] ++ totFarmingReward)
159175 }
160176
161177
162178
163179 @Callable(i)
164180 func setLock (s) = if ((i.callerPublicKey != mAccPKey))
165181 then throw("_21")
166182 else [BooleanEntry(kLocked, s)]
167183
168184
169185
170186 @Callable(i)
171187 func lockInvestments () = if ((i.caller != this))
172188 then throw("You cannot lock this contract")
173189 else [BooleanEntry(kLockedInvestments, true)]
174190
175191
176192
177193 @Callable(i)
178194 func unlockInvestments () = if ((i.caller != this))
179195 then throw("You cannot lock this contract")
180196 else [BooleanEntry(kLockedInvestments, false)]
181197
182198
183199
184200 @Callable(i)
185201 func provideLiquidity () = {
186202 let eggAssetId = getEggId()
187203 if (if (if ((i.callerPublicKey != wAccPKey))
188204 then (i.callerPublicKey != mAccPKey)
189205 else false)
190206 then (getBool(kLockedInvestments) == true)
191207 else false)
192208 then throw("Contract is locked for investments by it's CEO. Please invest in another collective farm.")
193209 else if ((getBool(kLocked) == true))
194210 then throw("_22")
195211 else if ((i.payments[0].assetId != eggAssetId))
196212 then throw("_4")
197213 else if ((1000000 > i.payments[0].amount))
198214 then throw("Min amount to invest is 0.01 EGG")
199215 else {
200216 let totalLiquidity = getInt(kTotalLiquidity)
201217 let shareTokensToGive = i.payments[0].amount
202218 let shareTokensId = fromBase58String(getStr(kShareAssetId))
203219 let reissue = Reissue(getShareAssetId(), shareTokensToGive, true)
204220 let kParticipated = (("account_" + toString(i.caller)) + "_participated")
205221 let alreadyParticipated = getBool(kParticipated)
206222 $Tuple2([reissue, ScriptTransfer(i.caller, shareTokensToGive, shareTokensId), IntegerEntry(kTotalLiquidity, (totalLiquidity + value(i.payments[0].amount))), BooleanEntry(kParticipated, true)], shareTokensToGive)
207223 }
208224 }
209225
210226
211227
212228 @Callable(i)
213229 func claimFarmingRewardProxy (ids) = if ((i.callerPublicKey != mAccPKey))
214230 then throw("_23")
215231 else {
216232 let eggAssetId = getEggId()
217233 let shareAssetId = getShareAssetId()
218234 let farmingDapp = addressFromStringValue(getStrA(mAccAddr, kFarmingDapp))
219235 func claimReward (accum,nftId) = {
220236 let invRes = invoke(farmingDapp, "claimReward", [nftId], nil)
221237 if ((invRes == invRes))
222238 then match invRes {
223239 case int: Int =>
224240 (accum + int)
225241 case _ =>
226242 throw("_5")
227243 }
228244 else throw("Strict value is not equal to itself.")
229245 }
230246
231247 let nftIds = split(ids, ";")
232248 let foldResult = {
233249 let $l = nftIds
234250 let $s = size($l)
235251 let $acc0 = 0
236252 func $f0_1 ($a,$i) = if (($i >= $s))
237253 then $a
238254 else claimReward($a, $l[$i])
239255
240256 func $f0_2 ($a,$i) = if (($i >= $s))
241257 then $a
242258 else throw("List size exceeds 10")
243259
244260 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
245261 }
246262 let claimedReward = match foldResult {
247263 case int: Int =>
248264 int
249265 case _ =>
250266 throw("_6")
251267 }
252268 let totalFarmingReward = getInt(kTotalFarmingReward)
253269 let farmCeoFeeSize = fraction(claimedReward, feePercent, 100)
254270 let currentCeoFee = getInt(kCeoCollectedFee)
255271 let ceoFeeOverall = getInt(kCeoCollectedFeeOverall)
256272 let amountToPay = (claimedReward - farmCeoFeeSize)
257273 let amountCompound = asInt(invoke(this, "calculateCompoundShareAndIssue", [amountToPay], nil))
258274 if ((amountCompound == amountCompound))
259275 then {
260276 let topUp = invoke(stakingAddress, "topUpReward", nil, [AttachedPayment(eggAssetId, (amountToPay - amountCompound)), AttachedPayment(shareAssetId, amountCompound)])
261277 if ((topUp == topUp))
262278 then [IntegerEntry(kTotalFarmingReward, (totalFarmingReward + amountToPay)), IntegerEntry(kCeoCollectedFee, (currentCeoFee + farmCeoFeeSize)), IntegerEntry(kCeoCollectedFeeOverall, (ceoFeeOverall + farmCeoFeeSize))]
263279 else throw("Strict value is not equal to itself.")
264280 }
265281 else throw("Strict value is not equal to itself.")
266282 }
267283
268284
269285
270286 @Callable(i)
271287 func claimCeoFee (address1,address2,address1Share,address2Share) = if ((0 > address1Share))
272288 then throw("Share 1 can't be negative")
273289 else if ((0 > address2Share))
274290 then throw("Share 2 can't be negative")
275291 else if (((address1Share + address2Share) != 100))
276292 then throw("Sum of shares should be 100")
277293 else if ((getBool(kLocked) == true))
278294 then throw("_22")
279295 else if ((i.caller == this))
280296 then {
281297 let currentCeoCollectedFee = getInt(kCeoCollectedFee)
282298 let address1Reward = if ((address2 == ""))
283299 then currentCeoCollectedFee
284300 else fraction(currentCeoCollectedFee, address1Share, 100)
285301 let address2Reward = if ((address2 == ""))
286302 then 0
287303 else fraction(currentCeoCollectedFee, address2Share, 100)
288304 let scriptTransferAddress2 = if ((address2 == ""))
289305 then nil
290306 else [ScriptTransfer(addressFromStringValue(address2), address2Reward, getEggId())]
291307 (scriptTransferAddress2 ++ [ScriptTransfer(addressFromStringValue(address1), address1Reward, getEggId()), IntegerEntry(kCeoCollectedFee, 0)])
292308 }
293309 else throw("Only manager can call the contract")
294310
295311
296312
297313 @Callable(i)
298314 func startLiquidation (auctionId) = throw("_7")
299315
300316
301317
302318 @Callable(i)
303319 func voteForLiquidation (auctionId) = throw("_7")
304320
305321
306322
307323 @Callable(i)
308324 func callUnstakeProxy (function,assetId) = if ((getBool(kLocked) == true))
309325 then throw("Contract is locked now")
310326 else if (if ((function != "unstakeNFT"))
311327 then (function != "unstakeJackpot")
312328 else false)
313329 then throw("Bad function name")
314330 else if ((i.caller != this))
315331 then throw("Can be called only by the account")
316332 else {
317333 let eggAssetId = getEggId()
318334 let shareAssetId = getShareAssetId()
319335 let farmingDappAddress = addressFromStringValue(getStrA(mAccAddr, "FARMING_DAPP"))
320336 let unstakedReward = invoke(farmingDappAddress, function, [assetId], nil)
321337 if ((unstakedReward == unstakedReward))
322338 then {
323339 let reward = match unstakedReward {
324340 case int: Int =>
325341 int
326342 case _ =>
327343 throw("Error during unstaking")
328344 }
329345 let currentCeoFee = getInt(kCeoCollectedFee)
330346 let ceoFeeOverall = getInt(kCeoCollectedFeeOverall)
331347 let farmCeoFeeSize = fraction(reward, feePercent, 100)
332348 let amountToPay = (reward - farmCeoFeeSize)
333349 let amountCompontCall = invoke(this, "calculateCompoundShareAndIssue", [amountToPay], nil)
334350 if ((amountCompontCall == amountCompontCall))
335351 then {
336352 let amountCompound = asInt(invoke(this, "calculateCompoundShareAndIssue", [amountToPay], nil))
337353 if ((amountCompound == amountCompound))
338354 then {
339355 let topUp = invoke(stakingAddress, "topUpReward", nil, [AttachedPayment(eggAssetId, (amountToPay - amountCompound)), AttachedPayment(shareAssetId, amountCompound)])
340356 if ((topUp == topUp))
341357 then [IntegerEntry(kCeoCollectedFee, (currentCeoFee + farmCeoFeeSize)), IntegerEntry(kCeoCollectedFeeOverall, (ceoFeeOverall + farmCeoFeeSize))]
342358 else throw("Strict value is not equal to itself.")
343359 }
344360 else throw("Strict value is not equal to itself.")
345361 }
346362 else throw("Strict value is not equal to itself.")
347363 }
348364 else throw("Strict value is not equal to itself.")
349365 }
350366
351367
352368 @Verifier(tx)
353369 func verify () = {
354370 let checkStarted = (getInt(kTotalLiquidity) >= getInt(kLiquidityThreshold))
355371 match tx {
356372 case inv: InvokeScriptTransaction =>
357373 let acceptedCallsStaking = ["stakeFarmTokens", "claimReward", "withdrawFarmTokens"]
358374 let acceptedCallsThis = ["callUnstakeProxy", "claimCeoFee", "lockInvestments", "unlockInvestments"]
359375 if (if ((inv.function == "unstakeNFT"))
360376 then true
361377 else (inv.function == "unstakeJackpot"))
362378 then throw("You cannot call these functions directly")
363379 else if (if (if ((addressFromRecipient(inv.dApp) == this))
364380 then (inv.function == "initMasterKey")
365381 else false)
366382 then (mAccPKeyString == "")
367383 else false)
368- then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
369- else if ((sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) == false))
384+ then if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
385+ then true
386+ else sigVerify(tx.bodyBytes, tx.proofs[0], getBackupKey())
387+ else if (if ((sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) == false))
388+ then (sigVerify(tx.bodyBytes, tx.proofs[0], getBackupKey()) == false)
389+ else false)
370390 then throw("_100")
371391 else if ((checkStarted == false))
372392 then throw("_14")
373393 else if ((getBool(kLocked) == true))
374394 then throw("_22")
375395 else if (if ((inv.fee > 900000))
376396 then true
377397 else (inv.feeAssetId != unit))
378398 then throw("_15")
379- else if ((size(inv.payments) > 2))
399+ else if ((size(inv.payments) > 3))
380400 then throw("_17")
381401 else if (if ((addressFromRecipient(inv.dApp) == this))
382402 then containsElement(acceptedCallsThis, inv.function)
383403 else false)
384- then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
404+ then if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
405+ then true
406+ else sigVerify(tx.bodyBytes, tx.proofs[0], getBackupKey())
385407 else if (if ((addressFromRecipient(inv.dApp) == addressFromStringValue(getMarketProxyAddr())))
386408 then (inv.function == "callMarketplaceProxy")
387409 else false)
388- then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
410+ then if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
411+ then true
412+ else sigVerify(tx.bodyBytes, tx.proofs[0], getBackupKey())
389413 else if (if ((addressFromRecipient(inv.dApp) == stakingAddress))
390414 then containsElement(acceptedCallsStaking, inv.function)
391415 else false)
392- then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
416+ then if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
417+ then true
418+ else sigVerify(tx.bodyBytes, tx.proofs[0], getBackupKey())
393419 else {
394420 let allowedContracts = getStrA(mAccAddr, "allowed_contracts")
395421 let allowedContractsList = split(allowedContracts, ";")
396422 let dappToCall = toString(addressFromRecipient(inv.dApp))
397423 (indexOf(allowedContractsList, dappToCall) != unit)
398424 }
399425 case ss: SetScriptTransaction =>
400426 sigVerify(tx.bodyBytes, tx.proofs[0], mAccPKey)
401427 case mt: MassTransferTransaction =>
402428 sigVerify(tx.bodyBytes, tx.proofs[0], mAccPKey)
403429 case _ =>
404430 false
405431 }
406432 }
407433

github/deemru/w8io/6500d08 
69.70 ms