tx · 8VspEaJS8h49pfAjG4mjN9k99pfKGtRssFEhq2Chczc2

3MqVkF33wRVpm1odFZ7buWunkQrB8y6KWQU:  -0.01400000 Waves

2020.04.24 15:58 [968774] smart account 3MqVkF33wRVpm1odFZ7buWunkQrB8y6KWQU > SELF 0.00000000 Waves

{ "type": 13, "id": "8VspEaJS8h49pfAjG4mjN9k99pfKGtRssFEhq2Chczc2", "fee": 1400000, "feeAssetId": null, "timestamp": 1587733074396, "version": 1, "sender": "3MqVkF33wRVpm1odFZ7buWunkQrB8y6KWQU", "senderPublicKey": "UTN6pqKeKEScSzDAsnUb11wBPCkCGr4V5NyWZB9hFHy", "proofs": [], "script": "base64:AAIDAAAAAAAAAAgIARIAEgASAAAAADQAAAAADWlzc3VlckFzc2V0SWQBAAAAIJz3KakhN9dcmPN5qpSg6V3B0NxyfUbFd39iLGb8nOJxAAAAABFpbnZlc3RtZW50QXNzZXRJZAEAAAAgzKCED038fo8oldF/i+/T049zqsmC9lchpEYxh38s/DEAAAAAGGludmVzdG1lbnRBc3NldElkSXNXYXZlcwcAAAAADm93bmVyUHVibGljS2V5AQAAACC7Z0248bCn8IpOmLhobRuXa637auj7c+pbL1vvlhKaVAAAAAAMb3duZXJBZGRyZXNzCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAA5vd25lclB1YmxpY0tleQAAAAASb3duZXJBZGRyZXNzU3RyaW5nAgAAACMzTjlGaU1lajRvR2FpYjNYd1J4SnFHaEdNTXM5SGs0aHhNYgAAAAATYXNzZXREZWNpbWFsc09mZnNldAAAAAAAAAAAAQAAAAAPdG9rZW5zYWxlQW1vdW50AAAAAAAAAAjKAAAAAAlzdGFydFRpbWUAAAAAAF44EzgAAAAAB2VuZFRpbWUAAAAAAGH5KLgAAAAABXByaWNlAAAAAAAAGS1QAAAAAA1zb2Z0Q2FwQW1vdW50AAAAAAAAAABkAAAAAAptaW5QYXltZW50AAAAAAAAGS1QAAAAAAtzd2FwQXNzZXRJZAEAAAAg4KGp0nBaxAGHpiWH+UR4Idzq5HmjsEOFlP8XMqmQBXsAAAAACnN3YXBBbW91bnQAAAAAAAAATxoAAAAACXN3YXBQcmljZQAAAAV0+95gAAAAAAALY29tcGFueVR5cGUAAAAAAAAAAAIAAAAAC2lzVG9rZW5zYWxlAAAAAAAAAAAAAAAAAAZpc1N3YXAAAAAAAAAAAAEAAAAAEmlzVG9rZW5zYWxlQW5kU3dhcAAAAAAAAAAAAgAAAAAWc3dhcEtleVN1bUFtb3VudFByZWZpeAIAAAAOc3dhcFN1bUFtb3VudCAAAAAAFnN3YXBLZXlTdW1Bc3NldHNQcmVmaXgCAAAADnN3YXBTdW1Bc3NldHMgAAAAABFzd2FwS2V5RGlzdEFzc2V0cwIAAAAKc3dhcEFzc2V0cwAAAAAWc3dhcEtleUNvbGxlY3RlZEFtb3VudAIAAAAKc3dhcEFtb3VudAAAAAASa2V5U3VtQW1vdW50UHJlZml4AgAAAApzdW1BbW91bnQgAAAAABZrZXlTdW1QYWlkQW1vdW50UHJlZml4AgAAAAtwYWlkQW1vdW50IAAAAAASa2V5U3VtQXNzZXRzUHJlZml4AgAAAApzdW1Bc3NldHMgAAAAABVrZXlBbGxvd0FjY291bnRQcmVmaXgCAAAABmFsbG93IAAAAAANa2V5RGlzdEFzc2V0cwIAAAAGYXNzZXRzAAAAABJrZXlDb2xsZWN0ZWRBbW91bnQCAAAABmFtb3VudAAAAAAJa2V5SXNzdWVyAgAAAAZpc3N1ZXIAAAAAEHdoaXRlbGlzdEFkZHJlc3MJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVSy4ps+uwlECTaFaLiWJr0yF21GhUEUIDUAAAAAFGRBcHBXaGl0ZWxpc3RBZGRyZXNzCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFUfmUCX1snxW1v/+xY2Nws9888KP/E5q8WAAAAAAlwQWRkcmVzczEJAQAAABFhZGRyZXNzRnJvbVN0cmluZwAAAAECAAAAIzNOQ1ZEYVQxQVNiUmQ0MmhCU3c0RUc2b2pHVlJHdHZNaXoxAAAAAAlwQWRkcmVzczIJAQAAABFhZGRyZXNzRnJvbVN0cmluZwAAAAECAAAAIzNNczJrVEF4ZHJjWER4d2VkZmJOalNpNmV3R0NVcXQzaGVaAAAAAAlwQWRkcmVzczMJAQAAABFhZGRyZXNzRnJvbVN0cmluZwAAAAECAAAAIzNONm9nbm03eG5RU0Zpb3duUzFEZjFMYWNKVVFYdmZERkxlAAAAAAlwQWRkcmVzczQJAQAAABFhZGRyZXNzRnJvbVN0cmluZwAAAAECAAAAIzNNdFZDbU45TVpiV2Y5cXhpTUZvRVBCcmRjMmZMcDNTdnVDAAAAAAlwQWRkcmVzczUJAQAAABFhZGRyZXNzRnJvbVN0cmluZwAAAAECAAAAIzNNdVdHOGdzVEs0UlFCc205N3NNQ3VVWFc5OUp2Unh3WVNnAAAAAAN2ZXICAAAADTQuMC4wLXRlc3RuZXQAAAAACnZhbGlkU3RhdGUAAAAAAAAAA+gBAAAAEGlzVG9rZW5zYWxlQWxsb3cAAAAAAwkAAAAAAAACBQAAAAtjb21wYW55VHlwZQUAAAALaXNU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dFByaWNlAwMDCQAAZgAAAAIAAAAAAAAAAAAJAABlAAAAAgUAAAANYWNjb3VudEFzc2V0cwUAAAAKdG9rZW5zQ2FsYwYJAABmAAAAAgUAAAASbWluUGF5bWVudEluQXNzZXRzBQAAAAp0b2tlbnNDYWxjBgMJAQAAAAIhPQAAAAIFAAAACnRva2Vuc0NhbGMFAAAADWFjY291bnRBc3NldHMJAABmAAAAAgUAAAAKdG9rZW5zQ2FsYwkAAGUAAAACBQAAAA1hY2NvdW50QXNzZXRzBQAAABJtaW5QYXltZW50SW5Bc3NldHMHCQAAAgAAAAECAAAAGUluY29ycmVjdCBwYXltZW50IGFtb3VudC4EAAAAEW5ld0ludmVzdG9yQW1vdW50CQAAZAAAAAIJAQAAAAlnZXRBbW91bnQAAAABCQABLAAAAAIFAAAAEmtleVN1bUFtb3VudFByZWZpeAUAAAAKY3VycmVudEtleQUAAAAHcGF5bWVudAQAAAARbmV3SW52ZXN0b3JBc3NldHMJAABkAAAAAgkBAAAACWdldEFtb3VudAAAAAEJAAEsAAAAAgUAAAASa2V5U3VtQXNzZXRzUHJlZml4BQAAAApjdXJyZW50S2V5BQAAAAp0b2tlbnNDYWxjBAAAABBuZXdBY2NvdW50QXNzZXRzCQAAZQAAAAIFAAAADWFjY291bnRBc3NldHMFAAAACnRva2Vuc0NhbGMEAAAAEG5ld0FjY291bnRBbW91bnQJAABkAAAAAgUAAAANYWNjb3VudEFtb3VudAUAAAAHcGF5bWVudAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABJrZXlTdW1BbW91bnRQcmVmaXgFAAAACmN1cnJlbnRLZXkFAAAAEW5ld0ludmVzdG9yQW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEmtleVN1bUFzc2V0c1ByZWZpeAUAAAAKY3VycmVudEtleQUAAAARbmV3SW52ZXN0b3JBc3NldHMJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADWtleURpc3RBc3NldHMFAAAAEG5ld0FjY291bnRBc3NldHMJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAEmtleUNvbGxlY3RlZEFtb3VudAUAAAAQbmV3QWNjb3VudEFtb3VudAUAAAADbmlsAAAAAWkBAAAAC3N3YXBEZXBvc2l0AAAAAAQAAAAMY3VycmVudFByaWNlBQAAAAlzd2FwUHJpY2UEAAAADWFjY291bnRBbW91bnQJAQAAAAlnZXRBbW91bnQAAAABBQAAABZzd2FwS2V5Q29sbGVjdGVkQW1vdW50AwkBAAAAASEAAAABCQEAAAALaXNTd2FwQWxsb3cAAAAACQAAAgAAAAECAAAAOFRoaXMgc3dhcC1kZXBvc2l0IG1ldGhvZCBpcyB1bnNvcHBlcnRlZCBmb3IgdGhpcyBjb21wYW55AwkBAAAAASEAAAABCQEAAAAKaGFzU3RhcnRlZAAAAAAJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAcVGhlIFRva2Vuc2FsZSB3b3JrcyBiZXR3ZWVuIAkAAaQAAAABBQAAAAlzdGFydFRpbWUCAAAABSBhbmQgCQABpAAAAAEFAAAAB2VuZFRpbWUDCQEAAAAMc3dhcEhhc0VuZGVkAAAAAAkAAAIAAAABAgAAAGZUaGUgcmVxdWlyZWQgYW1vdW50IGhhcyBhbHJlYWR5IGJlZW4gYWNjdW11bGF0ZWQuIElmIHlvdSBhcmUgYW4gaW52ZXN0b3IsIHlvdSBjYW4gd2l0aGRyYXcgeW91ciBmdW5kcy4EAAAAB3BheW1lbnQJAQAAAA5nZXRTd2FwUGF5bWVudAAAAAEFAAAAAWkEAAAACmN1cnJlbnRLZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAOaXNBY2NvdW50QWxsb3cEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAQd2hpdGVsaXN0QWRkcmVzcwUAAAAKY3VycmVudEtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAP////////8BAwkAAGYAAAACBQAAAAp2YWxpZFN0YXRlBQAAAA5pc0FjY291bnRBbGxvdwkAAAIAAAABAgAAAChZb3VyIGFjY291bnQgaGFzIG5vIHJpZ2h0IHRvIHNlbmQgZnVuZHMuBAAAAA1hY2NvdW50QXNzZXRzBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAEXN3YXBLZXlEaXN0QXNzZXRzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEFAAAACnN3YXBBbW91bnQEAAAACnRva2Vuc0NhbGMJAABrAAAAAwUAAAAHcGF5bWVudAUAAAATYXNzZXREZWNpbWFsc09mZnNldAUAAAAMY3VycmVudFByaWNlAwkAAGYAAAACAAAAAAAAAAAACQAAZQAAAAIFAAAADWFjY291bnRBc3NldHMFAAAACnRva2Vuc0NhbGMJAAACAAAAAQIAAAAZSW5jb3JyZWN0IHBheW1lbnQgYW1vdW50LgQAAAARbmV3SW52ZXN0b3JBbW91bnQJAABkAAAAAgkBAAAACWdldEFtb3VudAAAAAEJAAEsAAAAAgUAAAAWc3dhcEtleVN1bUFtb3VudFByZWZpeAUAAAAKY3VycmVudEtleQUAAAAHcGF5bWVudAQAAAARbmV3SW52ZXN0b3JBc3NldHMJAABkAAAAAgkBAAAACWdldEFtb3VudAAAAAEJAAEsAAAAAgUAAAAWc3dhcEtleVN1bUFzc2V0c1ByZWZpeAUAAAAKY3VycmVudEtleQUAAAAKdG9rZW5zQ2FsYwQAAAAQbmV3QWNjb3VudEFzc2V0cwkAAGUAAAACBQAAAA1hY2NvdW50QXNzZXRzBQAAAAp0b2tlbnNDYWxjBAAAABBuZXdBY2NvdW50QW1vdW50CQAAZAAAAAIFAAAADWFjY291bnRBbW91bnQFAAAAB3BheW1lbnQJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAWc3dhcEtleVN1bUFtb3VudFByZWZpeAUAAAAKY3VycmVudEtleQUAAAARbmV3SW52ZXN0b3JBbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAWc3dhcEtleVN1bUFzc2V0c1ByZWZpeAUAAAAKY3VycmVudEtleQUAAAARbmV3SW52ZXN0b3JBc3NldHMJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAEXN3YXBLZXlEaXN0QXNzZXRzBQAAABBuZXdBY2NvdW50QXNzZXRzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABZzd2FwS2V5Q29sbGVjdGVkQW1vdW50BQAAABBuZXdBY2NvdW50QW1vdW50BQAAAANuaWwAAAABaQEAAAAKd2l0aGRyYXdhbAAAAAAEAAAACmRBcHBTdGF0dXMEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAUZEFwcFdoaXRlbGlzdEFkZHJlc3MJAAQlAAAAAQUAAAAEdGhpcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAAAwkAAAAAAAACBQAAAApkQXBwU3RhdHVzAAAAAAAAAAAACQAAAgAAAAECAAAAQldpdGhkcmF3YWxzIGFyZSBub3QgYXZhaWxhYmxlIHVudGlsIHRoZSBpc3N1ZXIgcGFzc2VzIHZlcmlmaWNhdGlvbgQAAAAKY3VycmVudEtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAABVjdXJyZW50SW52ZXN0b3JBc3NldHMJAQAAAAlnZXRBbW91bnQAAAABCQABLAAAAAIFAAAAEmtleVN1bUFzc2V0c1ByZWZpeAUAAAAKY3VycmVudEtleQQAAAAVY3VycmVudEludmVzdG9yQW1vdW50CQEAAAAJZ2V0QW1vdW50AAAAAQkAASwAAAACBQAAABJrZXlTdW1BbW91bnRQcmVmaXgFAAAACmN1cnJlbnRLZXkEAAAAGWN1cnJlbnRJbnZlc3RvclN3YXBBc3NldHMJAQAAAAlnZXRBbW91bnQAAAABCQABLAAAAAIFAAAAFnN3YXBLZXlTdW1Bc3NldHNQcmVmaXgFAAAACmN1cnJlbnRLZXkEAAAAGWN1cnJlbnRJbnZlc3RvclN3YXBBbW91bnQJAQAAAAlnZXRBbW91bnQAAAABCQABLAAAAAIFAAAAFnN3YXBLZXlTdW1BbW91bnRQcmVmaXgFAAAACmN1cnJlbnRLZXkEAAAAEWFjY291bnRTd2FwQW1vdW50CQEAAAAJZ2V0QW1vdW50AAAAAQUAAAAWc3dhcEtleUNvbGxlY3RlZEFtb3VudAQAAAARYWNjb3VudFN3YXBBc3NldHMJAQAAAAlnZXRBbW91bnQAAAABBQAAABFzd2FwS2V5RGlzdEFzc2V0cwQAAAANYWNjb3VudEFtb3VudAkBAAAACWdldEFtb3VudAAAAAEFAAAAEmtleUNvbGxlY3RlZEFtb3VudAQAAAANYWNjb3VudEFzc2V0cwkBAAAACWdldEFtb3VudAAAAAEFAAAADWtleURpc3RBc3NldHMEAAAAHGludmVzdG1lbnRBc3NldElkRm9yVHJhbnNmZXIJAQAAAB9nZXRJbnZlc3RtZW50QXNzZXRJZEZvclRyYW5zZmVyAAAAAgUAAAAYaW52ZXN0bWVudEFzc2V0SWRJc1dhdmVzBQAAABFpbnZlc3RtZW50QXNzZXRJZAMJAQAAAAEhAAAAAQkBAAAAD2NvbXBhbnlIYXNFbmRlZAAAAAAJAAACAAAAAQIAAAAbVGhlIENvbXBhbnkgaXMgc3RpbGwgYWN0aXZlAwMJAAAAAAAAAgUAAAAKY3VycmVudEtleQUAAAASb3duZXJBZGRyZXNzU3RyaW5nCQAAAAAAAAIFAAAACmRBcHBTdGF0dXMAAAAAAAAAAAEHBAAAABVpc3N1ZXJBbHJlYWR5R290RnVuZHMJAQAAAAlnZXRBbW91bnQAAAABBQAAAAlrZXlJc3N1ZXIDCQAAAAAAAAIFAAAAFWlzc3VlckFscmVhZHlHb3RGdW5kcwAAAAAAAAAAAAMDCQEAAAAQaXNUb2tlbnNhbGVBbGxvdwAAAAAJAQAAAAtpc1N3YXBBbGxvdwAAAAAHAwkAAGcAAAACBQAAAA1hY2NvdW50QW1vdW50BQAAAA1zb2Z0Q2FwQW1vdW50CQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAJa2V5SXNzdWVyAAAAAAAAAAABBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAMb3duZXJBZGRyZXNzBQAAAA1hY2NvdW50QW1vdW50BQAAABxpbnZlc3RtZW50QXNzZXRJZEZvclRyYW5zZmVyCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2Zl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ABJrZXlTdW1Bc3NldHNQcmVmaXgFAAAACmN1cnJlbnRLZXkAAAAAAAAAAAAFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAFWN1cnJlbnRJbnZlc3RvckFtb3VudAUAAAAcaW52ZXN0bWVudEFzc2V0SWRGb3JUcmFuc2ZlcgUAAAADbmlsAwkAAAAAAAACBQAAAApkQXBwU3RhdHVzAAAAAAAAAAABCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABZzd2FwS2V5U3VtQW1vdW50UHJlZml4BQAAAApjdXJyZW50S2V5AAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAFnN3YXBLZXlTdW1Bc3NldHNQcmVmaXgFAAAACmN1cnJlbnRLZXkAAAAAAAAAAAAFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAGWN1cnJlbnRJbnZlc3RvclN3YXBBc3NldHMFAAAADWlzc3VlckFzc2V0SWQFAAAAA25pbAkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAWc3dhcEtleVN1bUFtb3VudFByZWZpeAUAAAAKY3VycmVudEtleQAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABZzd2FwS2V5U3VtQXNzZXRzUHJlZml4BQAAAApjdXJyZW50S2V5AAAAAAAAAAAABQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAABljdXJyZW50SW52ZXN0b3JTd2FwQW1vdW50BQAAAAtzd2FwQXNzZXRJZAUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAQAAAAHJG1hdGNoMAUAAAACdHgDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAAAnR4BQAAAAckbWF0Y2gwBgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAPQnVyblRyYW5zYWN0aW9uBAAAAAJ0eAUAAAAHJG1hdGNoMAYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAElJlaXNzdWVUcmFuc2FjdGlvbgQAAAACdHgFAAAAByRtYXRjaDAGAwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAZU2V0QXNzZXRTY3JpcHRUcmFuc2FjdGlvbgYJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAUU2V0U2NyaXB0VHJhbnNhY3Rpb24EAAAAAnR4BQAAAAckbWF0Y2gwBAAAAAtwS2V5MVNpZ25lZAMJAQAAAAlpc0RlZmluZWQAAAABCQAEGgAAAAIJAQAAAAdleHRyYWN0AAAAAQUAAAAJcEFkZHJlc3MxCQACWAAAAAEIBQAAAAJ0eAAAAAJpZAAAAAAAAAAAAQAAAAAAAAAAAAQAAAALcEtleTJTaWduZWQDCQEAAAAJaXNEZWZpbmVkAAAAAQkABBoAAAACCQEAAAAHZXh0cmFjdAAAAAEFAAAACXBBZGRyZXNzMgkAAlgAAAABCAUAAAACdHgAAAACaWQAAAAAAAAAAAEAAAAAAAAAAAAEAAAAC3BLZXkzU2lnbmVkAwkBAAAACWlzRGVmaW5lZAAAAAEJAAQaAAAAAgkBAAAAB2V4dHJhY3QAAAABBQAAAAlwQWRkcmVzczMJAAJYAAAAAQgFAAAAAnR4AAAAAmlkAAAAAAAAAAABAAAAAAAAAAAABAAAAAtwS2V5NFNpZ25lZAMJAQAAAAlpc0RlZmluZWQAAAABCQAEGgAAAAIJAQAAAAdleHRyYWN0AAAAAQUAAAAJcEFkZHJlc3M0CQACWAAAAAEIBQAAAAJ0eAAAAAJpZAAAAAAAAAAAAQAAAAAAAAAAAAQAAAALcEtleTVTaWduZWQDCQEAAAAJaXNEZWZpbmVkAAAAAQkABBoAAAACCQEAAAAHZXh0cmFjdAAAAAEFAAAACXBBZGRyZXNzNQkAAlgAAAABCAUAAAACdHgAAAACaWQAAAAAAAAAAAEAAAAAAAAAAAAJAABnAAAAAgkAAGQAAAACCQAAZAAAAAIJAABkAAAAAgkAAGQAAAACBQAAAAtwS2V5MVNpZ25lZAUAAAALcEtleTJTaWduZWQFAAAAC3BLZXkzU2lnbmVkBQAAAAtwS2V5NFNpZ25lZAUAAAALcEtleTVTaWduZWQAAAAAAAAAAAMHtrLxXg==", "chainId": 84, "height": 968774, "spentComplexity": 0 } View: original | compacted Prev: GBojAm7ALxov3cgnRgwDhg6LGAoKJhEYrhHn4ggR1FmR Next: none Diff:
OldNewDifferences
363363
364364 @Verifier(tx)
365365 func verify () = match tx {
366+ case tx: TransferTransaction =>
367+ true
366368 case tx: BurnTransaction =>
367369 true
368370 case tx: ReissueTransaction =>
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let issuerAssetId = base58'BZjCBg7ZKG6VHphfkMXD2N4dneXK7Pq84zuoZ2odmcVE'
55
66 let investmentAssetId = base58'Emn8cyGDFgnLCKLTXqVWhKJARhtR2muBUuZaSmqNzDfn'
77
88 let investmentAssetIdIsWaves = false
99
1010 let ownerPublicKey = base58'DcYbuABsnwB6G1gNnArLPHCKwFWto3xJpBXyyY7Xkynj'
1111
1212 let ownerAddress = addressFromPublicKey(ownerPublicKey)
1313
1414 let ownerAddressString = "3N9FiMej4oGaib3XwRxJqGhGMMs9Hk4hxMb"
1515
1616 let assetDecimalsOffset = 1
1717
1818 let tokensaleAmount = 2250
1919
2020 let startTime = 1580733240
2121
2222 let endTime = 1643718840
2323
2424 let price = 1650000
2525
2626 let softCapAmount = 100
2727
2828 let minPayment = 1650000
2929
3030 let swapAssetId = base58'G7sJQse5JnS7BB2TTppRnEtjpoTnQKX6jpTPrnY2f8nn'
3131
3232 let swapAmount = 20250
3333
3434 let swapPrice = 6000000000000
3535
3636 let companyType = 2
3737
3838 let isTokensale = 0
3939
4040 let isSwap = 1
4141
4242 let isTokensaleAndSwap = 2
4343
4444 let swapKeySumAmountPrefix = "swapSumAmount "
4545
4646 let swapKeySumAssetsPrefix = "swapSumAssets "
4747
4848 let swapKeyDistAssets = "swapAssets"
4949
5050 let swapKeyCollectedAmount = "swapAmount"
5151
5252 let keySumAmountPrefix = "sumAmount "
5353
5454 let keySumPaidAmountPrefix = "paidAmount "
5555
5656 let keySumAssetsPrefix = "sumAssets "
5757
5858 let keyAllowAccountPrefix = "allow "
5959
6060 let keyDistAssets = "assets"
6161
6262 let keyCollectedAmount = "amount"
6363
6464 let keyIssuer = "issuer"
6565
6666 let whitelistAddress = Address(base58'3N6DwWxT82nGJUwBwd7L514r2u71gr7WhwJ')
6767
6868 let dAppWhitelistAddress = Address(base58'3N1SPvLZgv6FMfe5WNUtnPzt3okYxcJhYnR')
6969
7070 let pAddress1 = addressFromString("3NCVDaT1ASbRd42hBSw4EG6ojGVRGtvMiz1")
7171
7272 let pAddress2 = addressFromString("3Ms2kTAxdrcXDxwedfbNjSi6ewGCUqt3heZ")
7373
7474 let pAddress3 = addressFromString("3N6ognm7xnQSFiownS1Df1LacJUQXvfDFLe")
7575
7676 let pAddress4 = addressFromString("3MtVCmN9MZbWf9qxiMFoEPBrdc2fLp3SvuC")
7777
7878 let pAddress5 = addressFromString("3MuWG8gsTK4RQBsm97sMCuUXW99JvRxwYSg")
7979
8080 let ver = "4.0.0-testnet"
8181
8282 let validState = 1000
8383
8484 func isTokensaleAllow () = if ((companyType == isTokensale))
8585 then true
8686 else (companyType == isTokensaleAndSwap)
8787
8888
8989 func isSwapAllow () = if ((companyType == isSwap))
9090 then true
9191 else (companyType == isTokensaleAndSwap)
9292
9393
9494 func getCurrentTime () = {
9595 let blockInfo = value(blockInfoByHeight(height))
9696 (blockInfo.timestamp / 1000)
9797 }
9898
9999
100100 func getInvestmentAssetIdForTransfer (isWaves,assetId) = if ((isWaves == false))
101101 then assetId
102102 else unit
103103
104104
105105 func getCurrentPrice () = price
106106
107107
108108 func getAmount (key) = match getInteger(this, key) {
109109 case a: Int =>
110110 a
111111 case _ =>
112112 0
113113 }
114114
115115
116116 func hasStarted () = (getCurrentTime() >= startTime)
117117
118118
119119 func tokensaleHasEnded () = {
120120 let assets = match getInteger(this, keyDistAssets) {
121121 case a: Int =>
122122 a
123123 case _ =>
124124 tokensaleAmount
125125 }
126126 if ((getCurrentTime() > endTime))
127127 then true
128128 else (assets == 0)
129129 }
130130
131131
132132 func swapHasEnded () = {
133133 let assets = match getInteger(this, swapKeyDistAssets) {
134134 case a: Int =>
135135 a
136136 case _ =>
137137 swapAmount
138138 }
139139 if ((getCurrentTime() > endTime))
140140 then true
141141 else (assets == 0)
142142 }
143143
144144
145145 func companyHasEnded () = if (if (isSwapAllow())
146146 then isTokensaleAllow()
147147 else false)
148148 then if (tokensaleHasEnded())
149149 then swapHasEnded()
150150 else false
151151 else if (isTokensaleAllow())
152152 then tokensaleHasEnded()
153153 else if (isSwapAllow())
154154 then swapHasEnded()
155155 else false
156156
157157
158158 func getPayment (i) = match i.payment {
159159 case p: AttachedPayment =>
160160 let isPaymentOk = match p.assetId {
161161 case assetId: ByteVector =>
162162 if (!(investmentAssetIdIsWaves))
163163 then (assetId == investmentAssetId)
164164 else false
165165 case _ =>
166166 (investmentAssetIdIsWaves == true)
167167 }
168168 if (isPaymentOk)
169169 then if ((assetDecimalsOffset == 1))
170170 then if (((p.amount % price) == 0))
171171 then p.amount
172172 else throw("payment amount must be a multiple of token price")
173173 else p.amount
174174 else throw("Invalid asset ID of investment")
175175 case _ =>
176176 throw("Payment must be attached")
177177 }
178178
179179
180180 func getSwapPayment (i) = match i.payment {
181181 case p: AttachedPayment =>
182182 let isPaymentOk = match p.assetId {
183183 case assetId: ByteVector =>
184184 (assetId == swapAssetId)
185185 case _ =>
186186 false
187187 }
188188 if (isPaymentOk)
189189 then if ((assetDecimalsOffset == 1))
190190 then if (((p.amount % swapPrice) == 0))
191191 then p.amount
192192 else throw("payment amount must be a multiple of token price")
193193 else p.amount
194194 else throw("Invalid asset ID of investment")
195195 case _ =>
196196 throw("Payment must be attached")
197197 }
198198
199199
200200 @Callable(i)
201201 func deposit () = {
202202 let currentPrice = getCurrentPrice()
203203 let accountAmount = getAmount(keyCollectedAmount)
204204 if (!(isTokensaleAllow()))
205205 then throw("This deposit method is unsopperted for this company")
206206 else if (!(hasStarted()))
207207 then throw(((("The Tokensale works between " + toString(startTime)) + " and ") + toString(endTime)))
208208 else if (tokensaleHasEnded())
209209 then throw("The required amount has already been accumulated. If you are an investor, you can withdraw your funds.")
210210 else {
211211 let payment = getPayment(i)
212212 let currentKey = toBase58String(i.caller.bytes)
213213 let isAccountAllow = match getInteger(whitelistAddress, currentKey) {
214214 case a: Int =>
215215 a
216216 case _ =>
217217 -255
218218 }
219219 if ((validState > isAccountAllow))
220220 then throw("Your account has no right to send funds.")
221221 else {
222222 let accountAssets = match getInteger(this, keyDistAssets) {
223223 case a: Int =>
224224 a
225225 case _ =>
226226 tokensaleAmount
227227 }
228228 let tokensCalc = fraction(payment, assetDecimalsOffset, currentPrice)
229229 let minPaymentInAssets = fraction(minPayment, assetDecimalsOffset, currentPrice)
230230 if (if (if ((0 > (accountAssets - tokensCalc)))
231231 then true
232232 else (minPaymentInAssets > tokensCalc))
233233 then true
234234 else if ((tokensCalc != accountAssets))
235235 then (tokensCalc > (accountAssets - minPaymentInAssets))
236236 else false)
237237 then throw("Incorrect payment amount.")
238238 else {
239239 let newInvestorAmount = (getAmount((keySumAmountPrefix + currentKey)) + payment)
240240 let newInvestorAssets = (getAmount((keySumAssetsPrefix + currentKey)) + tokensCalc)
241241 let newAccountAssets = (accountAssets - tokensCalc)
242242 let newAccountAmount = (accountAmount + payment)
243243 WriteSet([DataEntry((keySumAmountPrefix + currentKey), newInvestorAmount), DataEntry((keySumAssetsPrefix + currentKey), newInvestorAssets), DataEntry(keyDistAssets, newAccountAssets), DataEntry(keyCollectedAmount, newAccountAmount)])
244244 }
245245 }
246246 }
247247 }
248248
249249
250250
251251 @Callable(i)
252252 func swapDeposit () = {
253253 let currentPrice = swapPrice
254254 let accountAmount = getAmount(swapKeyCollectedAmount)
255255 if (!(isSwapAllow()))
256256 then throw("This swap-deposit method is unsopperted for this company")
257257 else if (!(hasStarted()))
258258 then throw(((("The Tokensale works between " + toString(startTime)) + " and ") + toString(endTime)))
259259 else if (swapHasEnded())
260260 then throw("The required amount has already been accumulated. If you are an investor, you can withdraw your funds.")
261261 else {
262262 let payment = getSwapPayment(i)
263263 let currentKey = toBase58String(i.caller.bytes)
264264 let isAccountAllow = match getInteger(whitelistAddress, currentKey) {
265265 case a: Int =>
266266 a
267267 case _ =>
268268 -255
269269 }
270270 if ((validState > isAccountAllow))
271271 then throw("Your account has no right to send funds.")
272272 else {
273273 let accountAssets = match getInteger(this, swapKeyDistAssets) {
274274 case a: Int =>
275275 a
276276 case _ =>
277277 swapAmount
278278 }
279279 let tokensCalc = fraction(payment, assetDecimalsOffset, currentPrice)
280280 if ((0 > (accountAssets - tokensCalc)))
281281 then throw("Incorrect payment amount.")
282282 else {
283283 let newInvestorAmount = (getAmount((swapKeySumAmountPrefix + currentKey)) + payment)
284284 let newInvestorAssets = (getAmount((swapKeySumAssetsPrefix + currentKey)) + tokensCalc)
285285 let newAccountAssets = (accountAssets - tokensCalc)
286286 let newAccountAmount = (accountAmount + payment)
287287 WriteSet([DataEntry((swapKeySumAmountPrefix + currentKey), newInvestorAmount), DataEntry((swapKeySumAssetsPrefix + currentKey), newInvestorAssets), DataEntry(swapKeyDistAssets, newAccountAssets), DataEntry(swapKeyCollectedAmount, newAccountAmount)])
288288 }
289289 }
290290 }
291291 }
292292
293293
294294
295295 @Callable(i)
296296 func withdrawal () = {
297297 let dAppStatus = match getInteger(dAppWhitelistAddress, toString(this)) {
298298 case a: Int =>
299299 a
300300 case _ =>
301301 0
302302 }
303303 if ((dAppStatus == 0))
304304 then throw("Withdrawals are not available until the issuer passes verification")
305305 else {
306306 let currentKey = toBase58String(i.caller.bytes)
307307 let currentInvestorAssets = getAmount((keySumAssetsPrefix + currentKey))
308308 let currentInvestorAmount = getAmount((keySumAmountPrefix + currentKey))
309309 let currentInvestorSwapAssets = getAmount((swapKeySumAssetsPrefix + currentKey))
310310 let currentInvestorSwapAmount = getAmount((swapKeySumAmountPrefix + currentKey))
311311 let accountSwapAmount = getAmount(swapKeyCollectedAmount)
312312 let accountSwapAssets = getAmount(swapKeyDistAssets)
313313 let accountAmount = getAmount(keyCollectedAmount)
314314 let accountAssets = getAmount(keyDistAssets)
315315 let investmentAssetIdForTransfer = getInvestmentAssetIdForTransfer(investmentAssetIdIsWaves, investmentAssetId)
316316 if (!(companyHasEnded()))
317317 then throw("The Company is still active")
318318 else if (if ((currentKey == ownerAddressString))
319319 then (dAppStatus == 1)
320320 else false)
321321 then {
322322 let issuerAlreadyGotFunds = getAmount(keyIssuer)
323323 if ((issuerAlreadyGotFunds == 0))
324324 then if (if (isTokensaleAllow())
325325 then isSwapAllow()
326326 else false)
327327 then if ((accountAmount >= softCapAmount))
328328 then ScriptResult(WriteSet([DataEntry(keyIssuer, 1)]), TransferSet([ScriptTransfer(ownerAddress, accountAmount, investmentAssetIdForTransfer), ScriptTransfer(ownerAddress, accountSwapAmount, swapAssetId)]))
329329 else ScriptResult(WriteSet([DataEntry(keyIssuer, 1)]), TransferSet([ScriptTransfer(ownerAddress, accountSwapAmount, swapAssetId)]))
330330 else if (isTokensaleAllow())
331331 then if ((accountAmount >= softCapAmount))
332332 then ScriptResult(WriteSet([DataEntry(keyIssuer, 1)]), TransferSet([ScriptTransfer(ownerAddress, accountAmount, investmentAssetIdForTransfer)]))
333333 else throw("No funds for issuer")
334334 else ScriptResult(WriteSet([DataEntry(keyIssuer, 1)]), TransferSet([ScriptTransfer(ownerAddress, accountSwapAmount, swapAssetId)]))
335335 else throw("The issuer has already taken its share!")
336336 }
337337 else if (if ((currentInvestorAmount == 0))
338338 then (currentInvestorSwapAmount == 0)
339339 else false)
340340 then throw("Don't have money")
341341 else if (if (isTokensaleAllow())
342342 then isSwapAllow()
343343 else false)
344344 then if (if ((softCapAmount > accountAmount))
345345 then (dAppStatus == 1)
346346 else false)
347347 then ScriptResult(WriteSet([DataEntry((keySumAmountPrefix + currentKey), 0), DataEntry((keySumAssetsPrefix + currentKey), 0), DataEntry((swapKeySumAmountPrefix + currentKey), 0), DataEntry((swapKeySumAssetsPrefix + currentKey), 0)]), TransferSet([ScriptTransfer(i.caller, currentInvestorAmount, investmentAssetIdForTransfer), ScriptTransfer(i.caller, currentInvestorSwapAssets, issuerAssetId)]))
348348 else if ((dAppStatus == 1))
349349 then ScriptResult(WriteSet([DataEntry((keySumAmountPrefix + currentKey), 0), DataEntry((keySumAssetsPrefix + currentKey), 0), DataEntry((swapKeySumAmountPrefix + currentKey), 0), DataEntry((swapKeySumAssetsPrefix + currentKey), 0)]), TransferSet([ScriptTransfer(i.caller, currentInvestorAssets, issuerAssetId), ScriptTransfer(i.caller, currentInvestorSwapAssets, issuerAssetId)]))
350350 else ScriptResult(WriteSet([DataEntry((keySumAmountPrefix + currentKey), 0), DataEntry((keySumAssetsPrefix + currentKey), 0), DataEntry((swapKeySumAmountPrefix + currentKey), 0), DataEntry((swapKeySumAssetsPrefix + currentKey), 0)]), TransferSet([ScriptTransfer(i.caller, currentInvestorAmount, investmentAssetIdForTransfer), ScriptTransfer(i.caller, currentInvestorSwapAmount, swapAssetId)]))
351351 else if (isTokensaleAllow())
352352 then if (if ((accountAmount >= softCapAmount))
353353 then (dAppStatus == 1)
354354 else false)
355355 then ScriptResult(WriteSet([DataEntry((keySumAmountPrefix + currentKey), 0), DataEntry((keySumAssetsPrefix + currentKey), 0)]), TransferSet([ScriptTransfer(i.caller, currentInvestorAssets, issuerAssetId)]))
356356 else ScriptResult(WriteSet([DataEntry((keySumAmountPrefix + currentKey), 0), DataEntry((keySumAssetsPrefix + currentKey), 0)]), TransferSet([ScriptTransfer(i.caller, currentInvestorAmount, investmentAssetIdForTransfer)]))
357357 else if ((dAppStatus == 1))
358358 then ScriptResult(WriteSet([DataEntry((swapKeySumAmountPrefix + currentKey), 0), DataEntry((swapKeySumAssetsPrefix + currentKey), 0)]), TransferSet([ScriptTransfer(i.caller, currentInvestorSwapAssets, issuerAssetId)]))
359359 else ScriptResult(WriteSet([DataEntry((swapKeySumAmountPrefix + currentKey), 0), DataEntry((swapKeySumAssetsPrefix + currentKey), 0)]), TransferSet([ScriptTransfer(i.caller, currentInvestorSwapAmount, swapAssetId)]))
360360 }
361361 }
362362
363363
364364 @Verifier(tx)
365365 func verify () = match tx {
366+ case tx: TransferTransaction =>
367+ true
366368 case tx: BurnTransaction =>
367369 true
368370 case tx: ReissueTransaction =>
369371 true
370372 case tx: SetAssetScriptTransaction|SetScriptTransaction =>
371373 let pKey1Signed = if (isDefined(getInteger(extract(pAddress1), toBase58String(tx.id))))
372374 then 1
373375 else 0
374376 let pKey2Signed = if (isDefined(getInteger(extract(pAddress2), toBase58String(tx.id))))
375377 then 1
376378 else 0
377379 let pKey3Signed = if (isDefined(getInteger(extract(pAddress3), toBase58String(tx.id))))
378380 then 1
379381 else 0
380382 let pKey4Signed = if (isDefined(getInteger(extract(pAddress4), toBase58String(tx.id))))
381383 then 1
382384 else 0
383385 let pKey5Signed = if (isDefined(getInteger(extract(pAddress5), toBase58String(tx.id))))
384386 then 1
385387 else 0
386388 (((((pKey1Signed + pKey2Signed) + pKey3Signed) + pKey4Signed) + pKey5Signed) >= 3)
387389 case _ =>
388390 false
389391 }
390392

github/deemru/w8io/6500d08 
61.78 ms