tx · 9thVThUJhA5k9JZeGzpztUfVMrVPoHP86Ga7ERjb97ZK

3N1s2w4NHgbrXxNZXH9RtaVT9ptHRJcgSp2:  -0.02300000 Waves

2023.11.28 11:35 [2863014] smart account 3N1s2w4NHgbrXxNZXH9RtaVT9ptHRJcgSp2 > SELF 0.00000000 Waves

{ "type": 13, "id": "9thVThUJhA5k9JZeGzpztUfVMrVPoHP86Ga7ERjb97ZK", "fee": 2300000, "feeAssetId": null, "timestamp": 1701160585332, "version": 2, "chainId": 84, "sender": "3N1s2w4NHgbrXxNZXH9RtaVT9ptHRJcgSp2", "senderPublicKey": "DNKNL32sAVUYg4iGA3tW8Z6VXrENmGCmKfG6DLar82aP", "proofs": [ "3xvAPnMQt28bYamJwuebMb9DVWQpn48Zu3VFLEhcVWqMRvRvf7E2qGnTTyfXF8LJhrx4yMC78tuUiU38sGwxXM5p" ], "script": "base64:AAIFAAAAAAAAADAIAhIMCgoBAQgIAQEBCAEBEgwKCgEBCAgBAQEIAQESABIECgIIARIDCgEIEgMKAQgAAAAMAAAAABZwb29sX2xpcXVpZGl0eV9hZGRyZXNzAgAAACMzTjR3QmdZdFdnSlcyTFRSZWYyZWtXUVRyRVhDUmZYbUdMaAAAAAAURGFwcF9BZGRyZXNzX3B1Yl9rZXkBAAAAIMjtmNqG7lU1WGDHPJboKlti9SIwxR/k7IFRCWjnzhpzAAAAABhwcm9kdWN0X2xhdW5jaF90aW1lc3RhbXAAAAABir9gFiAAAAAAC0N1cnJlbmN5X0lEAgAAAAVXQVZFUwAAAAAUcHJvZHVjdF9sYXVuY2hfZXJyb3ICAAAAI1Byb2R1Y3QgTGF1bmNoIFRpbWVzdGFtcCBpcyBzZXQgYXQgAAAAABBub19wYXltZW50X2Vycm9yAgAAADdObyBwYXltZW50IGF0dGFjaGVkLCBQbGVhc2UgQXR0YWNoIFRva2VuIGluIHBheW1lbnRbMV0uAAAAABJjbG9zZWRfb3JhY2xlX2Vyb3ICAAAAMU9yYWNsZSBpcyBjbG9zZWQuIFdhaXQgVW50aWwgT3JhY2xlIGlzIFR1cm5lZCBPbi4AAAAAEXdoaXRlbGlzdF9hZGRyZXNzCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAABREYXBwX0FkZHJlc3NfcHViX2tleQAAAAAJZDJkY2FsbGVyCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzTXdvV3hCd0ZLeGpVS0s1M1J4Ym53cnM4bTJNc1ZNUFBhNwAAAAALbmV0d29ya19mZWUAAAAAAAANu6AAAAAAEm1pbmltdW1fb3JkZXJfc2l6ZQAAAAAAAJiWgAAAAAASbWF4aW11bV9vcmRlcl9zaXplAAAAAAJUC+QAAAAABgAAAAFpAQAAAA9wbGFjZW9wdGlvbkNhbGwAAAAKAAAABkFtb3VudAAAAA9PcHRpb25Db3VudGVySUQAAAAHVXNlcl9JRAAAAAxVc2VyX0FkZHJlc3MAAAAFUHJpY2UAAAALQ2FsbF9MaW1pdHMAAAAKUHV0X0xpbWl0cwAAAA1PcmFjbGVfU3RhdHVzAAAAFVN0YXJ0X09yZGVyX1RpbWVzdGFtcAAAABNFbmRfT3JkZXJfVGltZXN0YW1wBAAAAA1jYWxsZXJhZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAADWlmQmxhY2tsaXN0ZWQJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABFhZGRyX0JMQUNLTElTVEVEXwUAAAAMVXNlcl9BZGRyZXNzBAAAAAhyZWFkX1RQTAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAFnBvb2xfbGlxdWlkaXR5X2FkZHJlc3MCAAAAFFRvdGFsX1Bvb2xfTGlxdWlkaXR5AgAAACRObyBJbml0aWFsIFBvb2wgTGlxdWlkaXR5IHdhcyBGb3VuZC4EAAAAD3JlYWRfdXNlcl9mdW5kcwkBAAAAEUBleHRyTmF0aXZlKDEwNTUpAAAAAQkAASwAAAACCQABLAAAAAIFAAAAC0N1cnJlbmN5X0lEAgAAAAFfBQAAAAxVc2VyX0FkZHJlc3MEAAAAEXVwZGF0ZV91c2VyX2Z1bmRzCQAAZQAAAAIJAABlAAAAAgUAAAAPcmVhZF91c2VyX2Z1bmRzBQAAAAZBbW91bnQFAAAAC25ldHdvcmtfZmVlBAAAACFyZWFkX3N0YXJ0X29yZGVyX3Blcm1pdF90aW1lc3RhbXAFAAAAFVN0YXJ0X09yZGVyX1RpbWVzdGFtcAQAAAAfcmVhZF9lbmRfb3JkZXJfcGVybWl0X3RpbWVzdGFtcAUAAAATRW5kX09yZGVyX1RpbWVzdGFtcAQAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAD09wdGlvbkNvdW50ZXJJRAQAAAAST3Bpb25FeHBpcmVDb3VudGVyAAAAAAAAAAABBAAAABVPcHRpb25FeHBpcmVDb3VudGVySUQJAABkAAAAAgUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAEk9waW9uRXhwaXJlQ291bnRlcgQAAAAUUHJldmlvdXNPcHRpb25PcmRlcnMEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAATVG90YWxfT3B0aW9uX09yZGVycwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABFUb3RhbE9wdGlvbk9yZGVycwkAAGQAAAACBQAAABRQcmV2aW91c09wdGlvbk9yZGVycwAAAAAAAAAAAQQAAAAnUHJldmlvdXNGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAiVG90YWxfRnVuZHNfQWRkZWRfSW5fT3B0aW9uX09yZGVyXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAACRUb3RhbEZ1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIJAABkAAAAAgUAAAAnUHJldmlvdXNGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyBQAAAAZBbW91bnQEAAAAJVByZXZpb3VzT3B0aW9uT3JkZXJzaW5TcGVjaWZpY0NvdW50ZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABRUb3RhbF9PcHRpb25fT3JkZXJzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAACJUb3RhbE9wdGlvbk9yZGVyc2luU3BlY2lmaWNDb3VudGVyCQAAZAAAAAIFAAAAJVByZXZpb3VzT3B0aW9uT3JkZXJzaW5TcGVjaWZpY0NvdW50ZXIAAAAAAAAAAAEEAAAADFByZXZpb3VzQ2FsbAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAAAtUb3RhbF9DYWxscwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAlUb3RhbENhbGwJAABkAAAAAgUAAAAMUHJldmlvdXNDYWxsAAAAAAAAAAABBAAAAB1QcmV2aW91c0NhbGxpblNwZWNpZmljQ291bnRlcgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAADFRvdGFsX0NhbGxzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABpUb3RhbENhbGxpblNwZWNpZmljQ291bnRlcgkAAGQAAAACBQAAAB1QcmV2aW91c0NhbGxpblNwZWNpZmljQ291bnRlcgAAAAAAAAAAAQQAAAAQUHJldmlvdXNVc2VyQ2FsbAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAAMX1RvdGFsX0NhbGxzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAADVRvdGFsVXNlckNhbGwJAABkAAAAAgUAAAAQUHJldmlvdXNVc2VyQ2FsbAAAAAAAAAAAAQQAAAAhUHJldmlvdXNVc2VyQ2FsbGluU3BlY2lmaWNDb3VudGVyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAADV9Ub3RhbF9DYWxsc18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAeVG90YWxVc2VyQ2FsbGluU3BlY2lmaWNDb3VudGVyCQAAZAAAAAIFAAAAIVByZXZpb3VzVXNlckNhbGxpblNwZWNpZmljQ291bnRlcgAAAAAAAAAAAQQAAAANRnVuZHNfYXRfcmlzawkAAGsAAAADBQAAAAhyZWFkX1RQTAAAAAAAAAAABQAAAAAAAAAAZAMDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAAEXdoaXRlbGlzdF9hZGRyZXNzBgkAAAAAAAACCAUAAAABaQAAAAZjYWxsZXIFAAAACWQyZGNhbGxlcgkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAJVRoaXMgQWRkcmVzcyBpcyBub3QgQXV0aG9yaXplZC4gT25seSAJAAQlAAAAAQUAAAARd2hpdGVsaXN0X2FkZHJlc3MCAAAABCBvciAJAAQlAAAAAQUAAAAJZDJkY2FsbGVyAgAAACIgaXMgQXV0aG9yaXplZCBBZGRyZXNzIHRvIFNpZ24gaXQuAwkAAGYAAAACBQAAABhwcm9kdWN0X2xhdW5jaF90aW1lc3RhbXAIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQAAAgAAAAEJAAEsAAAAAgUAAAAUcHJvZHVjdF9sYXVuY2hfZXJyb3IJAAGkAAAAAQUAAAAYcHJvZHVjdF9sYXVuY2hfdGltZXN0YW1wAwkAAAAAAAACBQAAAA1PcmFjbGVfU3RhdHVzAgAAAAVDTE9TRQkAAAIAAAABBQAAABJjbG9zZWRfb3JhY2xlX2Vyb3IDCQAAAAAAAAIFAAAADWlmQmxhY2tsaXN0ZWQCAAAAA1llcwkAAAIAAAABCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAA+IEFkZHJlc3MgaXMgQmxhY2tsaXN0ZWQuIFBsZWFzZSBjb250YWN0IEFkbWluIHRvIFdoaXRlbGlzdCBpdC4DCQAAZwAAAAIIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wBQAAAB9yZWFkX2VuZF9vcmRlcl9wZXJtaXRfdGltZXN0YW1wCQAAAgAAAAECAAAAR09wdGlvbiBPcmRlciBwbGFjaW5nIFRpbWluZyBMaW1pdHMgYXJlIE92ZXIuIFBsZWFzZSBKb2luIGluIE5leHQgQ3ljbGUuAwkAAGYAAAACBQAAACRUb3RhbEZ1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIFAAAADUZ1bmRzX2F0X3Jpc2sJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAENObyBtb3JlIG9yZGVycyBhY2NlcHRlZCwgT3B0aW9uIEhvdXNlIFJpc2sgU2l6ZSBpcyBvbmx5IGxpbWl0ZWQgdG8gCQABpAAAAAEFAAAADUZ1bmRzX2F0X3Jpc2sCAAAAGCwgUGVuZGluZyBIb3VzZSBSaXNrIGlzIAkAAaQAAAABCQAAZQAAAAIFAAAADUZ1bmRzX2F0X3Jpc2sFAAAAJ1ByZXZpb3VzRnVuZHNBZGRlZEluU3BlY2lmaWNPcHRpb25PcmRlcgIAAAAVLiBKb2luIGluIG5leHQgQ3ljbGUuAwkAAGYAAAACBQAAABJtaW5pbXVtX29yZGVyX3NpemUFAAAABkFtb3VudAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAgUGxhY2VkIE9yZGVyIFNpemUgaXMgbGVzcyB0aGFuIFsJAAGkAAAAAQUAAAASbWluaW11bV9vcmRlcl9zaXplAgAAAA0vMTBeOF0gV0FWRVMuAwkAAGYAAAACBQAAAAZBbW91bnQFAAAAEm1heGltdW1fb3JkZXJfc2l6ZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAgUGxhY2VkIE9yZGVyIFNpemUgaXMgbW9yZSB0aGFuIFsJAAGkAAAAAQUAAAASbWF4aW11bV9vcmRlcl9zaXplAgAAAA0vMTBeOF0gV0FWRVMuAwkAAGYAAAACAAAAAAAAAAAABQAAABF1cGRhdGVfdXNlcl9mdW5kcwkAAAIAAAABCQABLAAAAAICAAAAXFBsYWNlZCBPcmRlciBBbW91bnQgaXMgZ29pbmcgbmVnYXRpdmUuIFBsZWFzZSByZWR1Y2UgdGhlIE9yZGVyIFNpemUuIE5lZ2F0aXZlIEZ1bmQgQW1vdW50ID0gCQABpAAAAAEFAAAAEXVwZGF0ZV91c2VyX2Z1bmRzAwkBAAAAAiE9AAAAAgkAATEAAAABCQABpAAAAAEFAAAAFVN0YXJ0X09yZGVyX1RpbWVzdGFtcAAAAAAAAAAADQkAAAIAAAABAgAAAG9TdGFydCBUaW1lc3RhbXAgaXMgV3JvbmcuIFBsZWFzZSBFbnRlciBhIFZhbGlkIFRpbWVzdGFtcC4gUHJvYmFibHkgeW91IGVudGVyZWQgYW4gVGltZXN0YW1wIGxlc3MgdGhhbiAxMyBDaGFycy4DCQEAAAACIT0AAAACCQABMQAAAAEJAAGkAAAAAQUAAAATRW5kX09yZGVyX1RpbWVzdGFtcAAAAAAAAAAADQkAAAIAAAABAgAAAG1FbmQgVGltZXN0YW1wIGlzIFdyb25nLiBQbGVhc2UgRW50ZXIgYSBWYWxpZCBUaW1lc3RhbXAuIFByb2JhYmx5IHlvdSBlbnRlcmVkIGFuIFRpbWVzdGFtcCBsZXNzIHRoYW4gMTMgQ2hhcnMuCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgIAAAAIVXNlcl9JRF8FAAAADFVzZXJfQWRkcmVzcwUAAAAHVXNlcl9JRAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAC0N1cnJlbmN5X0lEAgAAAAFfBQAAAAxVc2VyX0FkZHJlc3MFAAAAEXVwZGF0ZV91c2VyX2Z1bmRzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABpOZXR3b3JrX0ZlZV9Ub19QbGFjZV9PcmRlcgUAAAALbmV0d29ya19mZWUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAFQ2FsbF8FAAAADFVzZXJfQWRkcmVzcwIAAAABXwkAAaQAAAABBQAAAA1Ub3RhbFVzZXJDYWxsCQABpAAAAAEFAAAABVByaWNlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAxDYWxsX0Ftb3VudF8FAAAADFVzZXJfQWRkcmVzcwIAAAABXwkAAaQAAAABBQAAAA1Ub3RhbFVzZXJDYWxsBQAAAAZBbW91bnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAPQ2FsbF9TdGFydF9FbmRfBQAAAAxVc2VyX0FkZHJlc3MCAAAAAV8JAAGkAAAAAQUAAAANVG90YWxVc2VyQ2FsbAkAASwAAAACCQABLAAAAAIJAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQCAAAAAV8JAAGkAAAAAQUAAAAVT3B0aW9uRXhwaXJlQ291bnRlcklECQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABNUb3RhbF9PcHRpb25fT3JkZXJzBQAAABFUb3RhbE9wdGlvbk9yZGVycwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAACJUb3RhbF9GdW5kc19BZGRlZF9Jbl9PcHRpb25fT3JkZXJfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAACRUb3RhbEZ1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAFFRvdGFsX1Bvb2xfTGlxdWlkaXR5BQAAAAhyZWFkX1RQTAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAA5GdW5kc19BdF9SaXNrXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAANRnVuZHNfYXRfcmlzawkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAALQ2FsbF9MaW1pdHMFAAAAC0NhbGxfTGltaXRzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApQdXRfTGltaXRzBQAAAApQdXRfTGltaXRzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAFFRvdGFsX09wdGlvbl9PcmRlcnNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAACJUb3RhbE9wdGlvbk9yZGVyc2luU3BlY2lmaWNDb3VudGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAtUb3RhbF9DYWxscwUAAAAJVG90YWxDYWxsCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADFRvdGFsX0NhbGxzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAaVG90YWxDYWxsaW5TcGVjaWZpY0NvdW50ZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAAAxfVG90YWxfQ2FsbHMFAAAADVRvdGFsVXNlckNhbGwJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAADV9Ub3RhbF9DYWxsc18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAHlRvdGFsVXNlckNhbGxpblNwZWNpZmljQ291bnRlcgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwUAAAALbmV0d29ya19mZWUFAAAABHVuaXQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAWcG9vbF9saXF1aWRpdHlfYWRkcmVzcwUAAAAGQW1vdW50BQAAAAR1bml0BQAAAANuaWwAAAABaQEAAAAOcGxhY2VvcHRpb25QdXQAAAAKAAAABkFtb3VudAAAAA9PcHRpb25Db3VudGVySUQAAAAHVXNlcl9JRAAAAAxVc2VyX0FkZHJlc3MAAAAFUHJpY2UAAAALQ2FsbF9MaW1pdHMAAAAKUHV0X0xpbWl0cwAAAA1PcmFjbGVfU3RhdHVzAAAAFVN0YXJ0X09yZGVyX1RpbWVzdGFtcAAAABNFbmRfT3JkZXJfVGltZXN0YW1wBAAAAA1jYWxsZXJhZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAADWlmQmxhY2tsaXN0ZWQJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABFhZGRyX0JMQUNLTElTVEVEXwUAAAAMVXNlcl9BZGRyZXNzBAAAAAhyZWFkX1RQTAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAFnBvb2xfbGlxdWlkaXR5X2FkZHJlc3MCAAAAFFRvdGFsX1Bvb2xfTGlxdWlkaXR5AgAAACRObyBJbml0aWFsIFBvb2wgTGlxdWlkaXR5IHdhcyBGb3VuZC4EAAAAD3JlYWRfdXNlcl9mdW5kcwkBAAAAEUBleHRyTmF0aXZlKDEwNTUpAAAAAQkAASwAAAACCQABLAAAAAIFAAAAC0N1cnJlbmN5X0lEAgAAAAFfBQAAAAxVc2VyX0FkZHJlc3MEAAAAEXVwZGF0ZV91c2VyX2Z1bmRzCQAAZQAAAAIJAABlAAAAAgUAAAAPcmVhZF91c2VyX2Z1bmRzBQAAAAZBbW91bnQFAAAAC25ldHdvcmtfZmVlBAAAACFyZWFkX3N0YXJ0X29yZGVyX3Blcm1pdF90aW1lc3RhbXAFAAAAFVN0YXJ0X09yZGVyX1RpbWVzdGFtcAQAAAAfcmVhZF9lbmRfb3JkZXJfcGVybWl0X3RpbWVzdGFtcAUAAAATRW5kX09yZGVyX1RpbWVzdGFtcAQAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAD09wdGlvbkNvdW50ZXJJRAQAAAAST3Bpb25FeHBpcmVDb3VudGVyAAAAAAAAAAABBAAAABVPcHRpb25FeHBpcmVDb3VudGVySUQJAABkAAAAAgUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAEk9waW9uRXhwaXJlQ291bnRlcgQAAAAUUHJldmlvdXNPcHRpb25PcmRlcnMEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAATVG90YWxfT3B0aW9uX09yZGVycwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABFUb3RhbE9wdGlvbk9yZGVycwkAAGQAAAACBQAAABRQcmV2aW91c09wdGlvbk9yZGVycwAAAAAAAAAAAQQAAAAnUHJldmlvdXNGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAiVG90YWxfRnVuZHNfQWRkZWRfSW5fT3B0aW9uX09yZGVyXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAACRUb3RhbEZ1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIJAABkAAAAAgUAAAAnUHJldmlvdXNGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyBQAAAAZBbW91bnQEAAAAJVByZXZpb3VzT3B0aW9uT3JkZXJzaW5TcGVjaWZpY0NvdW50ZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABRUb3RhbF9PcHRpb25fT3JkZXJzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAACJUb3RhbE9wdGlvbk9yZGVyc2luU3BlY2lmaWNDb3VudGVyCQAAZAAAAAIFAAAAJVByZXZpb3VzT3B0aW9uT3JkZXJzaW5TcGVjaWZpY0NvdW50ZXIAAAAAAAAAAAEEAAAAC1ByZXZpb3VzUHV0BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAAClRvdGFsX1B1dHMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAIVG90YWxQdXQJAABkAAAAAgUAAAALUHJldmlvdXNQdXQAAAAAAAAAAAEEAAAAHFByZXZpb3VzUHV0aW5TcGVjaWZpY0NvdW50ZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAtUb3RhbF9QdXRzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABlUb3RhbFB1dGluU3BlY2lmaWNDb3VudGVyCQAAZAAAAAIFAAAAHFByZXZpb3VzUHV0aW5TcGVjaWZpY0NvdW50ZXIAAAAAAAAAAAEEAAAAD1ByZXZpb3VzVXNlclB1dAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAALX1RvdGFsX1B1dHMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAMVG90YWxVc2VyUHV0CQAAZAAAAAIFAAAAD1ByZXZpb3VzVXNlclB1dAAAAAAAAAAAAQQAAAAgUHJldmlvdXNVc2VyUHV0aW5TcGVjaWZpY0NvdW50ZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAAMX1RvdGFsX1B1dHNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAHVRvdGFsVXNlclB1dGluU3BlY2lmaWNDb3VudGVyCQAAZAAAAAIFAAAAIFByZXZpb3VzVXNlclB1dGluU3BlY2lmaWNDb3VudGVyAAAAAAAAAAABBAAAAA1GdW5kc19hdF9yaXNrCQAAawAAAAMFAAAACHJlYWRfVFBMAAAAAAAAAAAFAAAAAAAAAABkAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAlVGhpcyBBZGRyZXNzIGlzIG5vdCBBdXRob3JpemVkLiBPbmx5IAkABCUAAAABBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwIAAAAiIGlzIEF1dGhvcml6ZWQgQWRkcmVzcyB0byBTaWduIGl0LgMJAABmAAAAAgUAAAAYcHJvZHVjdF9sYXVuY2hfdGltZXN0YW1wCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABCQABLAAAAAIFAAAAFHByb2R1Y3RfbGF1bmNoX2Vycm9yCQABpAAAAAEFAAAAGHByb2R1Y3RfbGF1bmNoX3RpbWVzdGFtcAMJAAAAAAAAAgUAAAANT3JhY2xlX1N0YXR1cwIAAAAFQ0xPU0UJAAACAAAAAQUAAAASY2xvc2VkX29yYWNsZV9lcm9yAwkAAAAAAAACBQAAAA1pZkJsYWNrbGlzdGVkAgAAAANZZXMJAAACAAAAAQkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAAPiBBZGRyZXNzIGlzIEJsYWNrbGlzdGVkLiBQbGVhc2UgY29udGFjdCBBZG1pbiB0byBXaGl0ZWxpc3QgaXQuAwkAAGcAAAACCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAUAAAAfcmVhZF9lbmRfb3JkZXJfcGVybWl0X3RpbWVzdGFtcAkAAAIAAAABAgAAAEdPcHRpb24gT3JkZXIgcGxhY2luZyBUaW1pbmcgTGltaXRzIGFyZSBPdmVyLiBQbGVhc2UgSm9pbiBpbiBOZXh0IEN5Y2xlLgMJAABmAAAAAgUAAAAkVG90YWxGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyBQAAAA1GdW5kc19hdF9yaXNrCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAABDTm8gbW9yZSBvcmRlcnMgYWNjZXB0ZWQsIE9wdGlvbiBIb3VzZSBSaXNrIFNpemUgaXMgb25seSBsaW1pdGVkIHRvIAkAAaQAAAABBQAAAA1GdW5kc19hdF9yaXNrAgAAABgsIFBlbmRpbmcgSG91c2UgUmlzayBpcyAJAAGkAAAAAQkAAGUAAAACBQAAAA1GdW5kc19hdF9yaXNrBQAAACdQcmV2aW91c0Z1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXICAAAAFS4gSm9pbiBpbiBuZXh0IEN5Y2xlLgMJAABmAAAAAgUAAAASbWluaW11bV9vcmRlcl9zaXplBQAAAAZBbW91bnQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAIFBsYWNlZCBPcmRlciBTaXplIGlzIGxlc3MgdGhhbiBbCQABpAAAAAEFAAAAEm1pbmltdW1fb3JkZXJfc2l6ZQIAAAANLzEwXjhdIFdBVkVTLgMJAABmAAAAAgUAAAAGQW1vdW50BQAAABJtYXhpbXVtX29yZGVyX3NpemUJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAIFBsYWNlZCBPcmRlciBTaXplIGlzIG1vcmUgdGhhbiBbCQABpAAAAAEFAAAAEm1heGltdW1fb3JkZXJfc2l6ZQIAAAANLzEwXjhdIFdBVkVTLgMJAABmAAAAAgAAAAAAAAAAAAUAAAARdXBkYXRlX3VzZXJfZnVuZHMJAAACAAAAAQkAASwAAAACAgAAAFxQbGFjZWQgT3JkZXIgQW1vdW50IGlzIGdvaW5nIG5lZ2F0aXZlLiBQbGVhc2UgcmVkdWNlIHRoZSBPcmRlciBTaXplLiBOZWdhdGl2ZSBGdW5kIEFtb3VudCA9IAkAAaQAAAABBQAAABF1cGRhdGVfdXNlcl9mdW5kcwMJAQAAAAIhPQAAAAIJAAExAAAAAQkAAaQAAAABBQAAABVTdGFydF9PcmRlcl9UaW1lc3RhbXAAAAAAAAAAAA0JAAACAAAAAQIAAABvU3RhcnQgVGltZXN0YW1wIGlzIFdyb25nLiBQbGVhc2UgRW50ZXIgYSBWYWxpZCBUaW1lc3RhbXAuIFByb2JhYmx5IHlvdSBlbnRlcmVkIGFuIFRpbWVzdGFtcCBsZXNzIHRoYW4gMTMgQ2hhcnMuAwkBAAAAAiE9AAAAAgkAATEAAAABCQABpAAAAAEFAAAAE0VuZF9PcmRlcl9UaW1lc3RhbXAAAAAAAAAAAA0JAAACAAAAAQIAAABtRW5kIFRpbWVzdGFtcCBpcyBXcm9uZy4gUGxlYXNlIEVudGVyIGEgVmFsaWQgVGltZXN0YW1wLiBQcm9iYWJseSB5b3UgZW50ZXJlZCBhbiBUaW1lc3RhbXAgbGVzcyB0aGFuIDEzIENoYXJzLgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAICAAAACFVzZXJfSURfBQAAAAxVc2VyX0FkZHJlc3MFAAAAB1VzZXJfSUQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAtDdXJyZW5jeV9JRAIAAAABXwUAAAAMVXNlcl9BZGRyZXNzBQAAABF1cGRhdGVfdXNlcl9mdW5kcwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAaTmV0d29ya19GZWVfVG9fUGxhY2VfT3JkZXIFAAAAC25ldHdvcmtfZmVlCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABFB1dF8FAAAADFVzZXJfQWRkcmVzcwIAAAABXwkAAaQAAAABBQAAAAxUb3RhbFVzZXJQdXQJAAGkAAAAAQUAAAAFUHJpY2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAC1B1dF9BbW91bnRfBQAAAAxVc2VyX0FkZHJlc3MCAAAAAV8JAAGkAAAAAQUAAAAMVG90YWxVc2VyUHV0BQAAAAZBbW91bnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAOUHV0X1N0YXJ0X0VuZF8FAAAADFVzZXJfQWRkcmVzcwIAAAABXwkAAaQAAAABBQAAAAxUb3RhbFVzZXJQdXQJAAEsAAAAAgkAASwAAAACCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEAgAAAAFfCQABpAAAAAEFAAAAFU9wdGlvbkV4cGlyZUNvdW50ZXJJRAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAATVG90YWxfT3B0aW9uX09yZGVycwUAAAARVG90YWxPcHRpb25PcmRlcnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAiVG90YWxfRnVuZHNfQWRkZWRfSW5fT3B0aW9uX09yZGVyXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAkVG90YWxGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABRUb3RhbF9Qb29sX0xpcXVpZGl0eQUAAAAIcmVhZF9UUEwJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAORnVuZHNfQXRfUmlza18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAADUZ1bmRzX2F0X3Jpc2sJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAC0NhbGxfTGltaXRzBQAAAAtDYWxsX0xpbWl0cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAKUHV0X0xpbWl0cwUAAAAKUHV0X0xpbWl0cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABRUb3RhbF9PcHRpb25fT3JkZXJzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAiVG90YWxPcHRpb25PcmRlcnNpblNwZWNpZmljQ291bnRlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAKVG90YWxfUHV0cwUAAAAIVG90YWxQdXQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAALVG90YWxfUHV0c18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAGVRvdGFsUHV0aW5TcGVjaWZpY0NvdW50ZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAAAtfVG90YWxfUHV0cwUAAAAMVG90YWxVc2VyUHV0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAAAxfVG90YWxfUHV0c18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAHVRvdGFsVXNlclB1dGluU3BlY2lmaWNDb3VudGVyCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAEXdoaXRlbGlzdF9hZGRyZXNzBQAAAAtuZXR3b3JrX2ZlZQUAAAAEdW5pdAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAABZwb29sX2xpcXVpZGl0eV9hZGRyZXNzBQAAAAZBbW91bnQFAAAABHVuaXQFAAAAA25pbAAAAAFpAQAAABBEZXBvc2l0VXNlckZ1bmRzAAAAAAQAAAANY2FsbGVyYWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAANwbXQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQIAAABJTm8gcGF5bWVudCBhdHRhY2hlZCwgUGxlYXNlIEF0dGFjaCBvbmx5IFdoaXRlbGlzdGVkIFRva2VucyBpbiBwYXltZW50WzFdLgQAAAANaWZCbGFja2xpc3RlZAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAICAAAAEWFkZHJfQkxBQ0tMSVNURURfBQAAAA1jYWxsZXJhZGRyZXNzBAAAABNQcmV2aW91c1VzZXJEZXBvc2l0BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAtDdXJyZW5jeV9JRAIAAAABXwUAAAANY2FsbGVyYWRkcmVzcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABBUb3RhbFVzZXJEZXBvc2l0CQAAZAAAAAIFAAAAE1ByZXZpb3VzVXNlckRlcG9zaXQIBQAAAANwbXQAAAAGYW1vdW50BAAAABhQcmV2aW91c0RlcG9zaXRDb3VudGVySUQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAASRGVwb3NpdF9Db3VudGVyX0lEAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAFVRvdGFsRGVwb3NpdENvdW50ZXJJRAkAAGQAAAACBQAAABhQcmV2aW91c0RlcG9zaXRDb3VudGVySUQAAAAAAAAAAAEDCQAAZgAAAAIFAAAAGHByb2R1Y3RfbGF1bmNoX3RpbWVzdGFtcAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAAACAAAAAQkAASwAAAACBQAAABRwcm9kdWN0X2xhdW5jaF9lcnJvcgkAAaQAAAABBQAAABhwcm9kdWN0X2xhdW5jaF90aW1lc3RhbXADCQAAAAAAAAIFAAAADWlmQmxhY2tsaXN0ZWQCAAAAA1llcwkAAAIAAAABCQABLAAAAAIFAAAADWNhbGxlcmFkZHJlc3MCAAAAPiBBZGRyZXNzIGlzIEJsYWNrbGlzdGVkLiBQbGVhc2UgY29udGFjdCBBZG1pbiB0byBXaGl0ZWxpc3QgaXQuAwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAkAAAIAAAABAgAAAC5Pbmx5IFdBVkVTIGlzIGFsbG93ZWQgdG8gZGVwb3NpdCBhdCB0aGUgbW9tZW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAALQ3VycmVuY3lfSUQCAAAAAV8FAAAADWNhbGxlcmFkZHJlc3MFAAAAEFRvdGFsVXNlckRlcG9zaXQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABVUb3RhbERlcG9zaXRDb3VudGVySUQCAAAAAV8FAAAAC0N1cnJlbmN5X0lEAgAAAAFfBQAAAA1jYWxsZXJhZGRyZXNzCAUAAAADcG10AAAABmFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAASRGVwb3NpdF9Db3VudGVyX0lEBQAAABVUb3RhbERlcG9zaXRDb3VudGVySUQFAAAAA25pbAAAAAFpAQAAABFXaXRoZHJhd1VzZXJGdW5kcwAAAAIAAAAMVXNlcl9BZGRyZXNzAAAABkFtb3VudAQAAAANY2FsbGVyYWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAA9yZWFkdXNlcmJhbGFuY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDU1KQAAAAEJAAEsAAAAAgkAASwAAAACBQAAAAtDdXJyZW5jeV9JRAIAAAABXwUAAAAMVXNlcl9BZGRyZXNzBAAAABF1cGRhdGVfdXNlcl9mdW5kcwkAAGUAAAACCQAAZQAAAAIFAAAAD3JlYWR1c2VyYmFsYW5jZQUAAAAGQW1vdW50BQAAAAtuZXR3b3JrX2ZlZQQAAAAXbWluaW1pbV93aXRoZHJhd19hbW91bnQAAAAAAACYloADCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAAEXdoaXRlbGlzdF9hZGRyZXNzCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACVUaGlzIEFkZHJlc3MgaXMgbm90IEF1dGhvcml6ZWQuIE9ubHkgCQAEJQAAAAEFAAAAEXdoaXRlbGlzdF9hZGRyZXNzAgAAACIgaXMgQXV0aG9yaXplZCBBZGRyZXNzIHRvIFNpZ24gaXQuAwkAAGYAAAACBQAAABdtaW5pbWltX3dpdGhkcmF3X2Ftb3VudAUAAAAGQW1vdW50CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAABtNaW5pbXVtIFdpdGhkcmF3IEFtb3VudCBpcyAJAAGkAAAAAQUAAAAXbWluaW1pbV93aXRoZHJhd19hbW91bnQCAAAADS8xMF44XSBXQVZFUy4DCQAAZgAAAAIAAAAAAAAAAAAFAAAAEXVwZGF0ZV91c2VyX2Z1bmRzCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAADVQbGFjZWQgV2l0aGRyYXcgQW1vdW50IGlzIGdvaW5nIGluIG5lZ2F0aXZlIFN0YXRlIG9mIAkAAaQAAAABBQAAABF1cGRhdGVfdXNlcl9mdW5kcwIAAAANLzEwXjhdIFdBVkVTLgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAQUHJldmlvdXNfQmFsYW5jZQUAAAAPcmVhZHVzZXJiYWxhbmNlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABdOZXR3b3JrX0ZlZV9Ub19XaXRoZHJhdwUAAAALbmV0d29ya19mZWUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAtDdXJyZW5jeV9JRAIAAAABXwUAAAAMVXNlcl9BZGRyZXNzBQAAABF1cGRhdGVfdXNlcl9mdW5kcwkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwUAAAALbmV0d29ya19mZWUFAAAABHVuaXQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAMVXNlcl9BZGRyZXNzBQAAAAZBbW91bnQFAAAABHVuaXQFAAAAA25pbAAAAAFpAQAAABBCbGFja0xpc3RBZGRyZXNzAAAAAQAAAAtVc2VyQWRkcmVzcwQAAAANaWZCbGFja2xpc3RlZAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAICAAAAEWFkZHJfQkxBQ0tMSVNURURfBQAAAAtVc2VyQWRkcmVzcwQAAAAYUHJldmlvdXNCbGFja0xpc3RBZGRyZXNzBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAAGlRvdGFsX0JsYWNrX0xpc3RlZF9BZGRyZXNzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAFVRvdGFsQmxhY2tMaXN0QWRkcmVzcwkAAGQAAAACBQAAABhQcmV2aW91c0JsYWNrTGlzdEFkZHJlc3MAAAAAAAAAAAEDCQAAZgAAAAIFAAAAGHByb2R1Y3RfbGF1bmNoX3RpbWVzdGFtcAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAAACAAAAAQkAASwAAAACBQAAABRwcm9kdWN0X2xhdW5jaF9lcnJvcgkAAaQAAAABBQAAABhwcm9kdWN0X2xhdW5jaF90aW1lc3RhbXADCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAAEXdoaXRlbGlzdF9hZGRyZXNzCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACVUaGlzIEFkZHJlc3MgaXMgbm90IEF1dGhvcml6ZWQuIE9ubHkgCQAEJQAAAAEFAAAAEXdoaXRlbGlzdF9hZGRyZXNzAgAAACIgaXMgQXV0aG9yaXplZCBBZGRyZXNzIHRvIFNpZ24gaXQuAwkAAAAAAAACBQAAAA1pZkJsYWNrbGlzdGVkAgAAAANZZXMJAAACAAAAAQIAAAAqQWRkcmVzcyBpcyBhbHJlYWR5IGF2YWlsYWJsZSBpbiBCbGFja2xpc3QuCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgIAAAARYWRkcl9CTEFDS0xJU1RFRF8FAAAAC1VzZXJBZGRyZXNzAgAAAANZZXMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAGlRvdGFsX0JsYWNrX0xpc3RlZF9BZGRyZXNzBQAAABVUb3RhbEJsYWNrTGlzdEFkZHJlc3MFAAAAA25pbAAAAAFpAQAAABZEZWxldGVCbGFja0xpc3RBZGRyZXNzAAAAAQAAAAtVc2VyQWRkcmVzcwQAAAANaWZCbGFja2xpc3RlZAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAICAAAAEWFkZHJfQkxBQ0tMSVNURURfBQAAAAtVc2VyQWRkcmVzcwQAAAAYUHJldmlvdXNCbGFja0xpc3RBZGRyZXNzBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAAGlRvdGFsX0JsYWNrX0xpc3RlZF9BZGRyZXNzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAFVRvdGFsQmxhY2tMaXN0QWRkcmVzcwkAAGUAAAACBQAAABhQcmV2aW91c0JsYWNrTGlzdEFkZHJlc3MAAAAAAAAAAAEDCQAAZgAAAAIFAAAAGHByb2R1Y3RfbGF1bmNoX3RpbWVzdGFtcAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAAACAAAAAQkAASwAAAACAgAAACNQcm9kdWN0IExhdW5jaCBUaW1lc3RhbXAgaXMgc2V0IGF0IAkAAaQAAAABBQAAABhwcm9kdWN0X2xhdW5jaF90aW1lc3RhbXADCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAAEXdoaXRlbGlzdF9hZGRyZXNzCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACVUaGlzIEFkZHJlc3MgaXMgbm90IEF1dGhvcml6ZWQuIE9ubHkgCQAEJQAAAAEFAAAAEXdoaXRlbGlzdF9hZGRyZXNzAgAAACIgaXMgQXV0aG9yaXplZCBBZGRyZXNzIHRvIFNpZ24gaXQuAwkAAAAAAAACBQAAAA1pZkJsYWNrbGlzdGVkAgAAAANZZXMJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACAgAAABFhZGRyX0JMQUNLTElTVEVEXwUAAAALVXNlckFkZHJlc3MJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAGlRvdGFsX0JsYWNrX0xpc3RlZF9BZGRyZXNzBQAAABVUb3RhbEJsYWNrTGlzdEFkZHJlc3MFAAAAA25pbAkAAAIAAAABAgAAACZBZGRyZXNzIGlzIG5vdCBhdmFpbGFibGUgaW4gQmxhY2tsaXN0LgAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAEAAAAByRtYXRjaDAFAAAAAnR4AwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAFT3JkZXIGAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNFeGNoYW5nZVRyYW5zYWN0aW9uBgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAXTWFzc1RyYW5zZmVyVHJhbnNhY3Rpb24GCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAAAXQFAAAAByRtYXRjaDAHCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleVP4mQ0=", "height": 2863014, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4h1dcPSVFRuPq7ga7AsKhhCXbxzjvAuFPd9JPGiNDnw6 Next: BVcwPjLiPjqnrH8ivv9xj1LVNGAFaMNx2pm7KjPi3JdX Diff:
OldNewDifferences
1717
1818 let h = addressFromPublicKey(b)
1919
20-let i = 900000
20+let i = addressFromStringValue("3MwoWxBwFKxjUKK53Rxbnwrs8m2MsVMPPa7")
2121
22-let j = 10000000
22+let j = 900000
2323
24-let k = 10000000000
24+let k = 10000000
2525
26-@Callable(l)
27-func placeoptionCall (m,n,o,p,q,r,s,t,u,v) = {
28- let w = toBase58String(l.caller.bytes)
29- let x = getString(this, ("addr_BLACKLISTED_" + p))
30- let y = valueOrErrorMessage(getInteger(addressFromStringValue(a), "Total_Pool_Liquidity"), "No Initial Pool Liquidity was Found.")
31- let z = getIntegerValue(((d + "_") + p))
32- let A = ((z - m) - i)
33- let B = u
26+let l = 10000000000
27+
28+@Callable(m)
29+func placeoptionCall (n,o,p,q,r,s,t,u,v,w) = {
30+ let x = toBase58String(m.caller.bytes)
31+ let y = getString(this, ("addr_BLACKLISTED_" + q))
32+ let z = valueOrErrorMessage(getInteger(addressFromStringValue(a), "Total_Pool_Liquidity"), "No Initial Pool Liquidity was Found.")
33+ let A = getIntegerValue(((d + "_") + q))
34+ let B = ((A - n) - j)
3435 let C = v
35- let D = n
36- let E = 1
37- let F = (D + E)
38- let G = {
39- let H = getInteger(this, "Total_Option_Orders")
40- if ($isInstanceOf(H, "Int"))
36+ let D = w
37+ let E = o
38+ let F = 1
39+ let G = (E + F)
40+ let H = {
41+ let I = getInteger(this, "Total_Option_Orders")
42+ if ($isInstanceOf(I, "Int"))
4143 then {
42- let I = H
43- I
44+ let J = I
45+ J
4446 }
4547 else 0
4648 }
47- let J = (G + 1)
48- let K = {
49- let H = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(D)))
50- if ($isInstanceOf(H, "Int"))
49+ let K = (H + 1)
50+ let L = {
51+ let I = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(E)))
52+ if ($isInstanceOf(I, "Int"))
5153 then {
52- let I = H
53- I
54+ let J = I
55+ J
5456 }
5557 else 0
5658 }
57- let L = (K + m)
58- let M = {
59- let H = getInteger(this, ("Total_Option_Orders_" + toString(D)))
60- if ($isInstanceOf(H, "Int"))
59+ let M = (L + n)
60+ let N = {
61+ let I = getInteger(this, ("Total_Option_Orders_" + toString(E)))
62+ if ($isInstanceOf(I, "Int"))
6163 then {
62- let I = H
63- I
64+ let J = I
65+ J
6466 }
6567 else 0
6668 }
67- let N = (M + 1)
68- let O = {
69- let H = getInteger(this, "Total_Calls")
70- if ($isInstanceOf(H, "Int"))
69+ let O = (N + 1)
70+ let P = {
71+ let I = getInteger(this, "Total_Calls")
72+ if ($isInstanceOf(I, "Int"))
7173 then {
72- let I = H
73- I
74+ let J = I
75+ J
7476 }
7577 else 0
7678 }
77- let P = (O + 1)
78- let Q = {
79- let H = getInteger(this, ("Total_Calls_" + toString(D)))
80- if ($isInstanceOf(H, "Int"))
79+ let Q = (P + 1)
80+ let R = {
81+ let I = getInteger(this, ("Total_Calls_" + toString(E)))
82+ if ($isInstanceOf(I, "Int"))
8183 then {
82- let I = H
83- I
84+ let J = I
85+ J
8486 }
8587 else 0
8688 }
87- let R = (Q + 1)
88- let S = {
89- let H = getInteger(this, (p + "_Total_Calls"))
90- if ($isInstanceOf(H, "Int"))
89+ let S = (R + 1)
90+ let T = {
91+ let I = getInteger(this, (q + "_Total_Calls"))
92+ if ($isInstanceOf(I, "Int"))
9193 then {
92- let I = H
93- I
94+ let J = I
95+ J
9496 }
9597 else 0
9698 }
97- let T = (S + 1)
98- let U = {
99- let H = getInteger(this, ((p + "_Total_Calls_") + toString(D)))
100- if ($isInstanceOf(H, "Int"))
99+ let U = (T + 1)
100+ let V = {
101+ let I = getInteger(this, ((q + "_Total_Calls_") + toString(E)))
102+ if ($isInstanceOf(I, "Int"))
101103 then {
102- let I = H
103- I
104+ let J = I
105+ J
104106 }
105107 else 0
106108 }
107- let V = (U + 1)
108- let W = fraction(y, 5, 100)
109- if ((l.caller != h))
110- then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
109+ let W = (V + 1)
110+ let X = fraction(z, 5, 100)
111+ if (if ((m.caller != h))
112+ then true
113+ else (m.caller == i))
114+ then throw((((("This Address is not Authorized. Only " + toString(h)) + " or ") + toString(i)) + " is Authorized Address to Sign it."))
111115 else if ((c > lastBlock.timestamp))
112116 then throw((e + toString(c)))
113- else if ((t == "CLOSE"))
117+ else if ((u == "CLOSE"))
114118 then throw(g)
115- else if ((x == "Yes"))
116- then throw((p + " Address is Blacklisted. Please contact Admin to Whitelist it."))
117- else if ((lastBlock.timestamp >= C))
119+ else if ((y == "Yes"))
120+ then throw((q + " Address is Blacklisted. Please contact Admin to Whitelist it."))
121+ else if ((lastBlock.timestamp >= D))
118122 then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.")
119- else if ((L > W))
120- then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(W)) + ", Pending House Risk is ") + toString((W - K))) + ". Join in next Cycle."))
121- else if ((j > m))
122- then throw((("Placed Order Size is less than [" + toString(j)) + "/10^8] WAVES."))
123- else if ((m > k))
124- then throw((("Placed Order Size is more than [" + toString(k)) + "/10^8] WAVES."))
125- else if ((0 > A))
126- then throw(("Placed Order Amount is going negative. Please reduce the Order Size. Negative Fund Amount = " + toString(A)))
127- else if ((size(toString(u)) != 13))
123+ else if ((M > X))
124+ then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(X)) + ", Pending House Risk is ") + toString((X - L))) + ". Join in next Cycle."))
125+ else if ((k > n))
126+ then throw((("Placed Order Size is less than [" + toString(k)) + "/10^8] WAVES."))
127+ else if ((n > l))
128+ then throw((("Placed Order Size is more than [" + toString(l)) + "/10^8] WAVES."))
129+ else if ((0 > B))
130+ then throw(("Placed Order Amount is going negative. Please reduce the Order Size. Negative Fund Amount = " + toString(B)))
131+ else if ((size(toString(v)) != 13))
128132 then throw("Start Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
129- else if ((size(toString(v)) != 13))
133+ else if ((size(toString(w)) != 13))
130134 then throw("End Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
131- else [StringEntry(("User_ID_" + p), o), IntegerEntry(((d + "_") + p), A), IntegerEntry("Network_Fee_To_Place_Order", i), StringEntry(((("Call_" + p) + "_") + toString(T)), toString(q)), IntegerEntry(((("Call_Amount_" + p) + "_") + toString(T)), m), StringEntry(((("Call_Start_End_" + p) + "_") + toString(T)), ((toString(D) + "_") + toString(F))), IntegerEntry("Total_Option_Orders", J), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(D)), L), IntegerEntry("Total_Pool_Liquidity", y), IntegerEntry(("Funds_At_Risk_" + toString(D)), W), IntegerEntry("Call_Limits", r), IntegerEntry("Put_Limits", s), IntegerEntry(("Total_Option_Orders_" + toString(D)), N), IntegerEntry("Total_Calls", P), IntegerEntry(("Total_Calls_" + toString(D)), R), IntegerEntry((p + "_Total_Calls"), T), IntegerEntry(((p + "_Total_Calls_") + toString(D)), V), ScriptTransfer(h, i, unit), ScriptTransfer(addressFromStringValue(a), m, unit)]
135+ else [StringEntry(("User_ID_" + q), p), IntegerEntry(((d + "_") + q), B), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + q) + "_") + toString(U)), toString(r)), IntegerEntry(((("Call_Amount_" + q) + "_") + toString(U)), n), StringEntry(((("Call_Start_End_" + q) + "_") + toString(U)), ((toString(E) + "_") + toString(G))), IntegerEntry("Total_Option_Orders", K), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(E)), M), IntegerEntry("Total_Pool_Liquidity", z), IntegerEntry(("Funds_At_Risk_" + toString(E)), X), IntegerEntry("Call_Limits", s), IntegerEntry("Put_Limits", t), IntegerEntry(("Total_Option_Orders_" + toString(E)), O), IntegerEntry("Total_Calls", Q), IntegerEntry(("Total_Calls_" + toString(E)), S), IntegerEntry((q + "_Total_Calls"), U), IntegerEntry(((q + "_Total_Calls_") + toString(E)), W), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), n, unit)]
132136 }
133137
134138
135139
136-@Callable(l)
137-func placeoptionPut (m,n,o,p,q,r,s,t,u,v) = {
138- let w = toBase58String(l.caller.bytes)
139- let x = getString(this, ("addr_BLACKLISTED_" + p))
140- let y = valueOrErrorMessage(getInteger(addressFromStringValue(a), "Total_Pool_Liquidity"), "No Initial Pool Liquidity was Found.")
141- let z = getIntegerValue(((d + "_") + p))
142- let A = ((z - m) - i)
143- let B = u
140+@Callable(m)
141+func placeoptionPut (n,o,p,q,r,s,t,u,v,w) = {
142+ let x = toBase58String(m.caller.bytes)
143+ let y = getString(this, ("addr_BLACKLISTED_" + q))
144+ let z = valueOrErrorMessage(getInteger(addressFromStringValue(a), "Total_Pool_Liquidity"), "No Initial Pool Liquidity was Found.")
145+ let A = getIntegerValue(((d + "_") + q))
146+ let B = ((A - n) - j)
144147 let C = v
145- let D = n
146- let E = 1
147- let F = (D + E)
148- let G = {
149- let H = getInteger(this, "Total_Option_Orders")
150- if ($isInstanceOf(H, "Int"))
148+ let D = w
149+ let E = o
150+ let F = 1
151+ let G = (E + F)
152+ let H = {
153+ let I = getInteger(this, "Total_Option_Orders")
154+ if ($isInstanceOf(I, "Int"))
151155 then {
152- let I = H
153- I
156+ let J = I
157+ J
154158 }
155159 else 0
156160 }
157- let J = (G + 1)
158- let K = {
159- let H = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(D)))
160- if ($isInstanceOf(H, "Int"))
161+ let K = (H + 1)
162+ let L = {
163+ let I = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(E)))
164+ if ($isInstanceOf(I, "Int"))
161165 then {
162- let I = H
163- I
166+ let J = I
167+ J
164168 }
165169 else 0
166170 }
167- let L = (K + m)
168- let M = {
169- let H = getInteger(this, ("Total_Option_Orders_" + toString(D)))
170- if ($isInstanceOf(H, "Int"))
171+ let M = (L + n)
172+ let N = {
173+ let I = getInteger(this, ("Total_Option_Orders_" + toString(E)))
174+ if ($isInstanceOf(I, "Int"))
171175 then {
172- let I = H
173- I
176+ let J = I
177+ J
174178 }
175179 else 0
176180 }
177- let N = (M + 1)
178- let X = {
179- let H = getInteger(this, "Total_Puts")
180- if ($isInstanceOf(H, "Int"))
181+ let O = (N + 1)
182+ let Y = {
183+ let I = getInteger(this, "Total_Puts")
184+ if ($isInstanceOf(I, "Int"))
181185 then {
182- let I = H
183- I
186+ let J = I
187+ J
184188 }
185189 else 0
186190 }
187- let Y = (X + 1)
188- let Z = {
189- let H = getInteger(this, ("Total_Puts_" + toString(D)))
190- if ($isInstanceOf(H, "Int"))
191+ let Z = (Y + 1)
192+ let aa = {
193+ let I = getInteger(this, ("Total_Puts_" + toString(E)))
194+ if ($isInstanceOf(I, "Int"))
191195 then {
192- let I = H
193- I
196+ let J = I
197+ J
194198 }
195199 else 0
196200 }
197- let aa = (Z + 1)
198- let ab = {
199- let H = getInteger(this, (p + "_Total_Puts"))
200- if ($isInstanceOf(H, "Int"))
201+ let ab = (aa + 1)
202+ let ac = {
203+ let I = getInteger(this, (q + "_Total_Puts"))
204+ if ($isInstanceOf(I, "Int"))
201205 then {
202- let I = H
203- I
206+ let J = I
207+ J
204208 }
205209 else 0
206210 }
207- let ac = (ab + 1)
208- let ad = {
209- let H = getInteger(this, ((p + "_Total_Puts_") + toString(D)))
210- if ($isInstanceOf(H, "Int"))
211+ let ad = (ac + 1)
212+ let ae = {
213+ let I = getInteger(this, ((q + "_Total_Puts_") + toString(E)))
214+ if ($isInstanceOf(I, "Int"))
211215 then {
212- let I = H
213- I
216+ let J = I
217+ J
214218 }
215219 else 0
216220 }
217- let ae = (ad + 1)
218- let W = fraction(y, 5, 100)
219- if ((l.caller != h))
221+ let af = (ae + 1)
222+ let X = fraction(z, 5, 100)
223+ if ((m.caller != h))
220224 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
221225 else if ((c > lastBlock.timestamp))
222226 then throw((e + toString(c)))
223- else if ((t == "CLOSE"))
227+ else if ((u == "CLOSE"))
224228 then throw(g)
225- else if ((x == "Yes"))
226- then throw((p + " Address is Blacklisted. Please contact Admin to Whitelist it."))
227- else if ((lastBlock.timestamp >= C))
229+ else if ((y == "Yes"))
230+ then throw((q + " Address is Blacklisted. Please contact Admin to Whitelist it."))
231+ else if ((lastBlock.timestamp >= D))
228232 then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.")
229- else if ((L > W))
230- then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(W)) + ", Pending House Risk is ") + toString((W - K))) + ". Join in next Cycle."))
231- else if ((j > m))
232- then throw((("Placed Order Size is less than [" + toString(j)) + "/10^8] WAVES."))
233- else if ((m > k))
234- then throw((("Placed Order Size is more than [" + toString(k)) + "/10^8] WAVES."))
235- else if ((0 > A))
236- then throw(("Placed Order Amount is going negative. Please reduce the Order Size. Negative Fund Amount = " + toString(A)))
237- else if ((size(toString(u)) != 13))
233+ else if ((M > X))
234+ then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(X)) + ", Pending House Risk is ") + toString((X - L))) + ". Join in next Cycle."))
235+ else if ((k > n))
236+ then throw((("Placed Order Size is less than [" + toString(k)) + "/10^8] WAVES."))
237+ else if ((n > l))
238+ then throw((("Placed Order Size is more than [" + toString(l)) + "/10^8] WAVES."))
239+ else if ((0 > B))
240+ then throw(("Placed Order Amount is going negative. Please reduce the Order Size. Negative Fund Amount = " + toString(B)))
241+ else if ((size(toString(v)) != 13))
238242 then throw("Start Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
239- else if ((size(toString(v)) != 13))
243+ else if ((size(toString(w)) != 13))
240244 then throw("End Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
241- else [StringEntry(("User_ID_" + p), o), IntegerEntry(((d + "_") + p), A), IntegerEntry("Network_Fee_To_Place_Order", i), StringEntry(((("Put_" + p) + "_") + toString(ac)), toString(q)), IntegerEntry(((("Put_Amount_" + p) + "_") + toString(ac)), m), StringEntry(((("Put_Start_End_" + p) + "_") + toString(ac)), ((toString(D) + "_") + toString(F))), IntegerEntry("Total_Option_Orders", J), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(D)), L), IntegerEntry("Total_Pool_Liquidity", y), IntegerEntry(("Funds_At_Risk_" + toString(D)), W), IntegerEntry("Call_Limits", r), IntegerEntry("Put_Limits", s), IntegerEntry(("Total_Option_Orders_" + toString(D)), N), IntegerEntry("Total_Puts", Y), IntegerEntry(("Total_Puts_" + toString(D)), aa), IntegerEntry((p + "_Total_Puts"), ac), IntegerEntry(((p + "_Total_Puts_") + toString(D)), ae), ScriptTransfer(h, i, unit), ScriptTransfer(addressFromStringValue(a), m, unit)]
245+ else [StringEntry(("User_ID_" + q), p), IntegerEntry(((d + "_") + q), B), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Put_" + q) + "_") + toString(ad)), toString(r)), IntegerEntry(((("Put_Amount_" + q) + "_") + toString(ad)), n), StringEntry(((("Put_Start_End_" + q) + "_") + toString(ad)), ((toString(E) + "_") + toString(G))), IntegerEntry("Total_Option_Orders", K), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(E)), M), IntegerEntry("Total_Pool_Liquidity", z), IntegerEntry(("Funds_At_Risk_" + toString(E)), X), IntegerEntry("Call_Limits", s), IntegerEntry("Put_Limits", t), IntegerEntry(("Total_Option_Orders_" + toString(E)), O), IntegerEntry("Total_Puts", Z), IntegerEntry(("Total_Puts_" + toString(E)), ab), IntegerEntry((q + "_Total_Puts"), ad), IntegerEntry(((q + "_Total_Puts_") + toString(E)), af), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), n, unit)]
242246 }
243247
244248
245249
246-@Callable(l)
250+@Callable(m)
247251 func DepositUserFunds () = {
248- let w = toBase58String(l.caller.bytes)
249- let af = if ((size(l.payments) == 1))
250- then l.payments[0]
252+ let x = toBase58String(m.caller.bytes)
253+ let ag = if ((size(m.payments) == 1))
254+ then m.payments[0]
251255 else throw("No payment attached, Please Attach only Whitelisted Tokens in payment[1].")
252- let x = getString(this, ("addr_BLACKLISTED_" + w))
253- let ag = {
254- let H = getInteger(this, ((d + "_") + w))
255- if ($isInstanceOf(H, "Int"))
256+ let y = getString(this, ("addr_BLACKLISTED_" + x))
257+ let ah = {
258+ let I = getInteger(this, ((d + "_") + x))
259+ if ($isInstanceOf(I, "Int"))
256260 then {
257- let I = H
258- I
261+ let J = I
262+ J
259263 }
260264 else 0
261265 }
262- let ah = (ag + af.amount)
263- let ai = {
264- let H = getInteger(this, "Deposit_Counter_ID")
265- if ($isInstanceOf(H, "Int"))
266+ let ai = (ah + ag.amount)
267+ let aj = {
268+ let I = getInteger(this, "Deposit_Counter_ID")
269+ if ($isInstanceOf(I, "Int"))
266270 then {
267- let I = H
268- I
271+ let J = I
272+ J
269273 }
270274 else 0
271275 }
272- let aj = (ai + 1)
276+ let ak = (aj + 1)
273277 if ((c > lastBlock.timestamp))
274278 then throw((e + toString(c)))
275- else if ((x == "Yes"))
276- then throw((w + " Address is Blacklisted. Please contact Admin to Whitelist it."))
277- else if (isDefined(af.assetId))
279+ else if ((y == "Yes"))
280+ then throw((x + " Address is Blacklisted. Please contact Admin to Whitelist it."))
281+ else if (isDefined(ag.assetId))
278282 then throw("Only WAVES is allowed to deposit at the moment")
279- else [IntegerEntry(((d + "_") + w), ah), IntegerEntry(((((toString(aj) + "_") + d) + "_") + w), af.amount), IntegerEntry("Deposit_Counter_ID", aj)]
283+ else [IntegerEntry(((d + "_") + x), ai), IntegerEntry(((((toString(ak) + "_") + d) + "_") + x), ag.amount), IntegerEntry("Deposit_Counter_ID", ak)]
280284 }
281285
282286
283287
284-@Callable(l)
285-func WithdrawUserFunds (p,m) = {
286- let w = toBase58String(l.caller.bytes)
287- let ak = getIntegerValue(((d + "_") + p))
288- let A = ((ak - m) - i)
289- let al = 10000000
290- if ((l.caller != h))
288+@Callable(m)
289+func WithdrawUserFunds (q,n) = {
290+ let x = toBase58String(m.caller.bytes)
291+ let al = getIntegerValue(((d + "_") + q))
292+ let B = ((al - n) - j)
293+ let am = 10000000
294+ if ((m.caller != h))
291295 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
292- else if ((al > m))
293- then throw((("Minimum Withdraw Amount is " + toString(al)) + "/10^8] WAVES."))
294- else if ((0 > A))
295- then throw((("Placed Withdraw Amount is going in negative State of " + toString(A)) + "/10^8] WAVES."))
296- else [IntegerEntry("Previous_Balance", ak), IntegerEntry("Network_Fee_To_Withdraw", i), IntegerEntry(((d + "_") + p), A), ScriptTransfer(h, i, unit), ScriptTransfer(addressFromStringValue(p), m, unit)]
296+ else if ((am > n))
297+ then throw((("Minimum Withdraw Amount is " + toString(am)) + "/10^8] WAVES."))
298+ else if ((0 > B))
299+ then throw((("Placed Withdraw Amount is going in negative State of " + toString(B)) + "/10^8] WAVES."))
300+ else [IntegerEntry("Previous_Balance", al), IntegerEntry("Network_Fee_To_Withdraw", j), IntegerEntry(((d + "_") + q), B), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(q), n, unit)]
297301 }
298302
299303
300304
301-@Callable(l)
302-func BlackListAddress (am) = {
303- let x = getString(this, ("addr_BLACKLISTED_" + am))
304- let an = {
305- let H = getInteger(this, "Total_Black_Listed_Address")
306- if ($isInstanceOf(H, "Int"))
305+@Callable(m)
306+func BlackListAddress (an) = {
307+ let y = getString(this, ("addr_BLACKLISTED_" + an))
308+ let ao = {
309+ let I = getInteger(this, "Total_Black_Listed_Address")
310+ if ($isInstanceOf(I, "Int"))
307311 then {
308- let I = H
309- I
312+ let J = I
313+ J
310314 }
311315 else 0
312316 }
313- let ao = (an + 1)
317+ let ap = (ao + 1)
314318 if ((c > lastBlock.timestamp))
315319 then throw((e + toString(c)))
316- else if ((l.caller != h))
320+ else if ((m.caller != h))
317321 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
318- else if ((x == "Yes"))
322+ else if ((y == "Yes"))
319323 then throw("Address is already available in Blacklist.")
320- else [StringEntry(("addr_BLACKLISTED_" + am), "Yes"), IntegerEntry("Total_Black_Listed_Address", ao)]
324+ else [StringEntry(("addr_BLACKLISTED_" + an), "Yes"), IntegerEntry("Total_Black_Listed_Address", ap)]
321325 }
322326
323327
324328
325-@Callable(l)
326-func DeleteBlackListAddress (am) = {
327- let x = getString(this, ("addr_BLACKLISTED_" + am))
328- let an = {
329- let H = getInteger(this, "Total_Black_Listed_Address")
330- if ($isInstanceOf(H, "Int"))
329+@Callable(m)
330+func DeleteBlackListAddress (an) = {
331+ let y = getString(this, ("addr_BLACKLISTED_" + an))
332+ let ao = {
333+ let I = getInteger(this, "Total_Black_Listed_Address")
334+ if ($isInstanceOf(I, "Int"))
331335 then {
332- let I = H
333- I
336+ let J = I
337+ J
334338 }
335339 else 0
336340 }
337- let ao = (an - 1)
341+ let ap = (ao - 1)
338342 if ((c > lastBlock.timestamp))
339343 then throw(("Product Launch Timestamp is set at " + toString(c)))
340- else if ((l.caller != h))
344+ else if ((m.caller != h))
341345 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
342- else if ((x == "Yes"))
343- then [DeleteEntry(("addr_BLACKLISTED_" + am)), IntegerEntry("Total_Black_Listed_Address", ao)]
346+ else if ((y == "Yes"))
347+ then [DeleteEntry(("addr_BLACKLISTED_" + an)), IntegerEntry("Total_Black_Listed_Address", ap)]
344348 else throw("Address is not available in Blacklist.")
345349 }
346350
347351
348-@Verifier(ap)
349-func aq () = {
350- let H = ap
351- if (if ($isInstanceOf(H, "Order"))
352+@Verifier(aq)
353+func ar () = {
354+ let I = aq
355+ if (if ($isInstanceOf(I, "Order"))
352356 then true
353- else if ($isInstanceOf(H, "ExchangeTransaction"))
357+ else if ($isInstanceOf(I, "ExchangeTransaction"))
354358 then true
355- else if ($isInstanceOf(H, "MassTransferTransaction"))
359+ else if ($isInstanceOf(I, "MassTransferTransaction"))
356360 then true
357- else $isInstanceOf(H, "TransferTransaction"))
361+ else $isInstanceOf(I, "TransferTransaction"))
358362 then {
359- let ar = H
363+ let as = I
360364 false
361365 }
362- else sigVerify(ap.bodyBytes, ap.proofs[0], ap.senderPublicKey)
366+ else sigVerify(aq.bodyBytes, aq.proofs[0], aq.senderPublicKey)
363367 }
364368
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "3N4wBgYtWgJW2LTRef2ekWQTrEXCRfXmGLh"
55
66 let b = base58'EXLfxKmqhQPiProBaoPatTentUSZX5Dd8A8bYDcmfNwt'
77
88 let c = 1695427860000
99
1010 let d = "WAVES"
1111
1212 let e = "Product Launch Timestamp is set at "
1313
1414 let f = "No payment attached, Please Attach Token in payment[1]."
1515
1616 let g = "Oracle is closed. Wait Until Oracle is Turned On."
1717
1818 let h = addressFromPublicKey(b)
1919
20-let i = 900000
20+let i = addressFromStringValue("3MwoWxBwFKxjUKK53Rxbnwrs8m2MsVMPPa7")
2121
22-let j = 10000000
22+let j = 900000
2323
24-let k = 10000000000
24+let k = 10000000
2525
26-@Callable(l)
27-func placeoptionCall (m,n,o,p,q,r,s,t,u,v) = {
28- let w = toBase58String(l.caller.bytes)
29- let x = getString(this, ("addr_BLACKLISTED_" + p))
30- let y = valueOrErrorMessage(getInteger(addressFromStringValue(a), "Total_Pool_Liquidity"), "No Initial Pool Liquidity was Found.")
31- let z = getIntegerValue(((d + "_") + p))
32- let A = ((z - m) - i)
33- let B = u
26+let l = 10000000000
27+
28+@Callable(m)
29+func placeoptionCall (n,o,p,q,r,s,t,u,v,w) = {
30+ let x = toBase58String(m.caller.bytes)
31+ let y = getString(this, ("addr_BLACKLISTED_" + q))
32+ let z = valueOrErrorMessage(getInteger(addressFromStringValue(a), "Total_Pool_Liquidity"), "No Initial Pool Liquidity was Found.")
33+ let A = getIntegerValue(((d + "_") + q))
34+ let B = ((A - n) - j)
3435 let C = v
35- let D = n
36- let E = 1
37- let F = (D + E)
38- let G = {
39- let H = getInteger(this, "Total_Option_Orders")
40- if ($isInstanceOf(H, "Int"))
36+ let D = w
37+ let E = o
38+ let F = 1
39+ let G = (E + F)
40+ let H = {
41+ let I = getInteger(this, "Total_Option_Orders")
42+ if ($isInstanceOf(I, "Int"))
4143 then {
42- let I = H
43- I
44+ let J = I
45+ J
4446 }
4547 else 0
4648 }
47- let J = (G + 1)
48- let K = {
49- let H = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(D)))
50- if ($isInstanceOf(H, "Int"))
49+ let K = (H + 1)
50+ let L = {
51+ let I = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(E)))
52+ if ($isInstanceOf(I, "Int"))
5153 then {
52- let I = H
53- I
54+ let J = I
55+ J
5456 }
5557 else 0
5658 }
57- let L = (K + m)
58- let M = {
59- let H = getInteger(this, ("Total_Option_Orders_" + toString(D)))
60- if ($isInstanceOf(H, "Int"))
59+ let M = (L + n)
60+ let N = {
61+ let I = getInteger(this, ("Total_Option_Orders_" + toString(E)))
62+ if ($isInstanceOf(I, "Int"))
6163 then {
62- let I = H
63- I
64+ let J = I
65+ J
6466 }
6567 else 0
6668 }
67- let N = (M + 1)
68- let O = {
69- let H = getInteger(this, "Total_Calls")
70- if ($isInstanceOf(H, "Int"))
69+ let O = (N + 1)
70+ let P = {
71+ let I = getInteger(this, "Total_Calls")
72+ if ($isInstanceOf(I, "Int"))
7173 then {
72- let I = H
73- I
74+ let J = I
75+ J
7476 }
7577 else 0
7678 }
77- let P = (O + 1)
78- let Q = {
79- let H = getInteger(this, ("Total_Calls_" + toString(D)))
80- if ($isInstanceOf(H, "Int"))
79+ let Q = (P + 1)
80+ let R = {
81+ let I = getInteger(this, ("Total_Calls_" + toString(E)))
82+ if ($isInstanceOf(I, "Int"))
8183 then {
82- let I = H
83- I
84+ let J = I
85+ J
8486 }
8587 else 0
8688 }
87- let R = (Q + 1)
88- let S = {
89- let H = getInteger(this, (p + "_Total_Calls"))
90- if ($isInstanceOf(H, "Int"))
89+ let S = (R + 1)
90+ let T = {
91+ let I = getInteger(this, (q + "_Total_Calls"))
92+ if ($isInstanceOf(I, "Int"))
9193 then {
92- let I = H
93- I
94+ let J = I
95+ J
9496 }
9597 else 0
9698 }
97- let T = (S + 1)
98- let U = {
99- let H = getInteger(this, ((p + "_Total_Calls_") + toString(D)))
100- if ($isInstanceOf(H, "Int"))
99+ let U = (T + 1)
100+ let V = {
101+ let I = getInteger(this, ((q + "_Total_Calls_") + toString(E)))
102+ if ($isInstanceOf(I, "Int"))
101103 then {
102- let I = H
103- I
104+ let J = I
105+ J
104106 }
105107 else 0
106108 }
107- let V = (U + 1)
108- let W = fraction(y, 5, 100)
109- if ((l.caller != h))
110- then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
109+ let W = (V + 1)
110+ let X = fraction(z, 5, 100)
111+ if (if ((m.caller != h))
112+ then true
113+ else (m.caller == i))
114+ then throw((((("This Address is not Authorized. Only " + toString(h)) + " or ") + toString(i)) + " is Authorized Address to Sign it."))
111115 else if ((c > lastBlock.timestamp))
112116 then throw((e + toString(c)))
113- else if ((t == "CLOSE"))
117+ else if ((u == "CLOSE"))
114118 then throw(g)
115- else if ((x == "Yes"))
116- then throw((p + " Address is Blacklisted. Please contact Admin to Whitelist it."))
117- else if ((lastBlock.timestamp >= C))
119+ else if ((y == "Yes"))
120+ then throw((q + " Address is Blacklisted. Please contact Admin to Whitelist it."))
121+ else if ((lastBlock.timestamp >= D))
118122 then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.")
119- else if ((L > W))
120- then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(W)) + ", Pending House Risk is ") + toString((W - K))) + ". Join in next Cycle."))
121- else if ((j > m))
122- then throw((("Placed Order Size is less than [" + toString(j)) + "/10^8] WAVES."))
123- else if ((m > k))
124- then throw((("Placed Order Size is more than [" + toString(k)) + "/10^8] WAVES."))
125- else if ((0 > A))
126- then throw(("Placed Order Amount is going negative. Please reduce the Order Size. Negative Fund Amount = " + toString(A)))
127- else if ((size(toString(u)) != 13))
123+ else if ((M > X))
124+ then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(X)) + ", Pending House Risk is ") + toString((X - L))) + ". Join in next Cycle."))
125+ else if ((k > n))
126+ then throw((("Placed Order Size is less than [" + toString(k)) + "/10^8] WAVES."))
127+ else if ((n > l))
128+ then throw((("Placed Order Size is more than [" + toString(l)) + "/10^8] WAVES."))
129+ else if ((0 > B))
130+ then throw(("Placed Order Amount is going negative. Please reduce the Order Size. Negative Fund Amount = " + toString(B)))
131+ else if ((size(toString(v)) != 13))
128132 then throw("Start Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
129- else if ((size(toString(v)) != 13))
133+ else if ((size(toString(w)) != 13))
130134 then throw("End Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
131- else [StringEntry(("User_ID_" + p), o), IntegerEntry(((d + "_") + p), A), IntegerEntry("Network_Fee_To_Place_Order", i), StringEntry(((("Call_" + p) + "_") + toString(T)), toString(q)), IntegerEntry(((("Call_Amount_" + p) + "_") + toString(T)), m), StringEntry(((("Call_Start_End_" + p) + "_") + toString(T)), ((toString(D) + "_") + toString(F))), IntegerEntry("Total_Option_Orders", J), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(D)), L), IntegerEntry("Total_Pool_Liquidity", y), IntegerEntry(("Funds_At_Risk_" + toString(D)), W), IntegerEntry("Call_Limits", r), IntegerEntry("Put_Limits", s), IntegerEntry(("Total_Option_Orders_" + toString(D)), N), IntegerEntry("Total_Calls", P), IntegerEntry(("Total_Calls_" + toString(D)), R), IntegerEntry((p + "_Total_Calls"), T), IntegerEntry(((p + "_Total_Calls_") + toString(D)), V), ScriptTransfer(h, i, unit), ScriptTransfer(addressFromStringValue(a), m, unit)]
135+ else [StringEntry(("User_ID_" + q), p), IntegerEntry(((d + "_") + q), B), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + q) + "_") + toString(U)), toString(r)), IntegerEntry(((("Call_Amount_" + q) + "_") + toString(U)), n), StringEntry(((("Call_Start_End_" + q) + "_") + toString(U)), ((toString(E) + "_") + toString(G))), IntegerEntry("Total_Option_Orders", K), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(E)), M), IntegerEntry("Total_Pool_Liquidity", z), IntegerEntry(("Funds_At_Risk_" + toString(E)), X), IntegerEntry("Call_Limits", s), IntegerEntry("Put_Limits", t), IntegerEntry(("Total_Option_Orders_" + toString(E)), O), IntegerEntry("Total_Calls", Q), IntegerEntry(("Total_Calls_" + toString(E)), S), IntegerEntry((q + "_Total_Calls"), U), IntegerEntry(((q + "_Total_Calls_") + toString(E)), W), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), n, unit)]
132136 }
133137
134138
135139
136-@Callable(l)
137-func placeoptionPut (m,n,o,p,q,r,s,t,u,v) = {
138- let w = toBase58String(l.caller.bytes)
139- let x = getString(this, ("addr_BLACKLISTED_" + p))
140- let y = valueOrErrorMessage(getInteger(addressFromStringValue(a), "Total_Pool_Liquidity"), "No Initial Pool Liquidity was Found.")
141- let z = getIntegerValue(((d + "_") + p))
142- let A = ((z - m) - i)
143- let B = u
140+@Callable(m)
141+func placeoptionPut (n,o,p,q,r,s,t,u,v,w) = {
142+ let x = toBase58String(m.caller.bytes)
143+ let y = getString(this, ("addr_BLACKLISTED_" + q))
144+ let z = valueOrErrorMessage(getInteger(addressFromStringValue(a), "Total_Pool_Liquidity"), "No Initial Pool Liquidity was Found.")
145+ let A = getIntegerValue(((d + "_") + q))
146+ let B = ((A - n) - j)
144147 let C = v
145- let D = n
146- let E = 1
147- let F = (D + E)
148- let G = {
149- let H = getInteger(this, "Total_Option_Orders")
150- if ($isInstanceOf(H, "Int"))
148+ let D = w
149+ let E = o
150+ let F = 1
151+ let G = (E + F)
152+ let H = {
153+ let I = getInteger(this, "Total_Option_Orders")
154+ if ($isInstanceOf(I, "Int"))
151155 then {
152- let I = H
153- I
156+ let J = I
157+ J
154158 }
155159 else 0
156160 }
157- let J = (G + 1)
158- let K = {
159- let H = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(D)))
160- if ($isInstanceOf(H, "Int"))
161+ let K = (H + 1)
162+ let L = {
163+ let I = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(E)))
164+ if ($isInstanceOf(I, "Int"))
161165 then {
162- let I = H
163- I
166+ let J = I
167+ J
164168 }
165169 else 0
166170 }
167- let L = (K + m)
168- let M = {
169- let H = getInteger(this, ("Total_Option_Orders_" + toString(D)))
170- if ($isInstanceOf(H, "Int"))
171+ let M = (L + n)
172+ let N = {
173+ let I = getInteger(this, ("Total_Option_Orders_" + toString(E)))
174+ if ($isInstanceOf(I, "Int"))
171175 then {
172- let I = H
173- I
176+ let J = I
177+ J
174178 }
175179 else 0
176180 }
177- let N = (M + 1)
178- let X = {
179- let H = getInteger(this, "Total_Puts")
180- if ($isInstanceOf(H, "Int"))
181+ let O = (N + 1)
182+ let Y = {
183+ let I = getInteger(this, "Total_Puts")
184+ if ($isInstanceOf(I, "Int"))
181185 then {
182- let I = H
183- I
186+ let J = I
187+ J
184188 }
185189 else 0
186190 }
187- let Y = (X + 1)
188- let Z = {
189- let H = getInteger(this, ("Total_Puts_" + toString(D)))
190- if ($isInstanceOf(H, "Int"))
191+ let Z = (Y + 1)
192+ let aa = {
193+ let I = getInteger(this, ("Total_Puts_" + toString(E)))
194+ if ($isInstanceOf(I, "Int"))
191195 then {
192- let I = H
193- I
196+ let J = I
197+ J
194198 }
195199 else 0
196200 }
197- let aa = (Z + 1)
198- let ab = {
199- let H = getInteger(this, (p + "_Total_Puts"))
200- if ($isInstanceOf(H, "Int"))
201+ let ab = (aa + 1)
202+ let ac = {
203+ let I = getInteger(this, (q + "_Total_Puts"))
204+ if ($isInstanceOf(I, "Int"))
201205 then {
202- let I = H
203- I
206+ let J = I
207+ J
204208 }
205209 else 0
206210 }
207- let ac = (ab + 1)
208- let ad = {
209- let H = getInteger(this, ((p + "_Total_Puts_") + toString(D)))
210- if ($isInstanceOf(H, "Int"))
211+ let ad = (ac + 1)
212+ let ae = {
213+ let I = getInteger(this, ((q + "_Total_Puts_") + toString(E)))
214+ if ($isInstanceOf(I, "Int"))
211215 then {
212- let I = H
213- I
216+ let J = I
217+ J
214218 }
215219 else 0
216220 }
217- let ae = (ad + 1)
218- let W = fraction(y, 5, 100)
219- if ((l.caller != h))
221+ let af = (ae + 1)
222+ let X = fraction(z, 5, 100)
223+ if ((m.caller != h))
220224 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
221225 else if ((c > lastBlock.timestamp))
222226 then throw((e + toString(c)))
223- else if ((t == "CLOSE"))
227+ else if ((u == "CLOSE"))
224228 then throw(g)
225- else if ((x == "Yes"))
226- then throw((p + " Address is Blacklisted. Please contact Admin to Whitelist it."))
227- else if ((lastBlock.timestamp >= C))
229+ else if ((y == "Yes"))
230+ then throw((q + " Address is Blacklisted. Please contact Admin to Whitelist it."))
231+ else if ((lastBlock.timestamp >= D))
228232 then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.")
229- else if ((L > W))
230- then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(W)) + ", Pending House Risk is ") + toString((W - K))) + ". Join in next Cycle."))
231- else if ((j > m))
232- then throw((("Placed Order Size is less than [" + toString(j)) + "/10^8] WAVES."))
233- else if ((m > k))
234- then throw((("Placed Order Size is more than [" + toString(k)) + "/10^8] WAVES."))
235- else if ((0 > A))
236- then throw(("Placed Order Amount is going negative. Please reduce the Order Size. Negative Fund Amount = " + toString(A)))
237- else if ((size(toString(u)) != 13))
233+ else if ((M > X))
234+ then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(X)) + ", Pending House Risk is ") + toString((X - L))) + ". Join in next Cycle."))
235+ else if ((k > n))
236+ then throw((("Placed Order Size is less than [" + toString(k)) + "/10^8] WAVES."))
237+ else if ((n > l))
238+ then throw((("Placed Order Size is more than [" + toString(l)) + "/10^8] WAVES."))
239+ else if ((0 > B))
240+ then throw(("Placed Order Amount is going negative. Please reduce the Order Size. Negative Fund Amount = " + toString(B)))
241+ else if ((size(toString(v)) != 13))
238242 then throw("Start Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
239- else if ((size(toString(v)) != 13))
243+ else if ((size(toString(w)) != 13))
240244 then throw("End Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
241- else [StringEntry(("User_ID_" + p), o), IntegerEntry(((d + "_") + p), A), IntegerEntry("Network_Fee_To_Place_Order", i), StringEntry(((("Put_" + p) + "_") + toString(ac)), toString(q)), IntegerEntry(((("Put_Amount_" + p) + "_") + toString(ac)), m), StringEntry(((("Put_Start_End_" + p) + "_") + toString(ac)), ((toString(D) + "_") + toString(F))), IntegerEntry("Total_Option_Orders", J), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(D)), L), IntegerEntry("Total_Pool_Liquidity", y), IntegerEntry(("Funds_At_Risk_" + toString(D)), W), IntegerEntry("Call_Limits", r), IntegerEntry("Put_Limits", s), IntegerEntry(("Total_Option_Orders_" + toString(D)), N), IntegerEntry("Total_Puts", Y), IntegerEntry(("Total_Puts_" + toString(D)), aa), IntegerEntry((p + "_Total_Puts"), ac), IntegerEntry(((p + "_Total_Puts_") + toString(D)), ae), ScriptTransfer(h, i, unit), ScriptTransfer(addressFromStringValue(a), m, unit)]
245+ else [StringEntry(("User_ID_" + q), p), IntegerEntry(((d + "_") + q), B), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Put_" + q) + "_") + toString(ad)), toString(r)), IntegerEntry(((("Put_Amount_" + q) + "_") + toString(ad)), n), StringEntry(((("Put_Start_End_" + q) + "_") + toString(ad)), ((toString(E) + "_") + toString(G))), IntegerEntry("Total_Option_Orders", K), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(E)), M), IntegerEntry("Total_Pool_Liquidity", z), IntegerEntry(("Funds_At_Risk_" + toString(E)), X), IntegerEntry("Call_Limits", s), IntegerEntry("Put_Limits", t), IntegerEntry(("Total_Option_Orders_" + toString(E)), O), IntegerEntry("Total_Puts", Z), IntegerEntry(("Total_Puts_" + toString(E)), ab), IntegerEntry((q + "_Total_Puts"), ad), IntegerEntry(((q + "_Total_Puts_") + toString(E)), af), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), n, unit)]
242246 }
243247
244248
245249
246-@Callable(l)
250+@Callable(m)
247251 func DepositUserFunds () = {
248- let w = toBase58String(l.caller.bytes)
249- let af = if ((size(l.payments) == 1))
250- then l.payments[0]
252+ let x = toBase58String(m.caller.bytes)
253+ let ag = if ((size(m.payments) == 1))
254+ then m.payments[0]
251255 else throw("No payment attached, Please Attach only Whitelisted Tokens in payment[1].")
252- let x = getString(this, ("addr_BLACKLISTED_" + w))
253- let ag = {
254- let H = getInteger(this, ((d + "_") + w))
255- if ($isInstanceOf(H, "Int"))
256+ let y = getString(this, ("addr_BLACKLISTED_" + x))
257+ let ah = {
258+ let I = getInteger(this, ((d + "_") + x))
259+ if ($isInstanceOf(I, "Int"))
256260 then {
257- let I = H
258- I
261+ let J = I
262+ J
259263 }
260264 else 0
261265 }
262- let ah = (ag + af.amount)
263- let ai = {
264- let H = getInteger(this, "Deposit_Counter_ID")
265- if ($isInstanceOf(H, "Int"))
266+ let ai = (ah + ag.amount)
267+ let aj = {
268+ let I = getInteger(this, "Deposit_Counter_ID")
269+ if ($isInstanceOf(I, "Int"))
266270 then {
267- let I = H
268- I
271+ let J = I
272+ J
269273 }
270274 else 0
271275 }
272- let aj = (ai + 1)
276+ let ak = (aj + 1)
273277 if ((c > lastBlock.timestamp))
274278 then throw((e + toString(c)))
275- else if ((x == "Yes"))
276- then throw((w + " Address is Blacklisted. Please contact Admin to Whitelist it."))
277- else if (isDefined(af.assetId))
279+ else if ((y == "Yes"))
280+ then throw((x + " Address is Blacklisted. Please contact Admin to Whitelist it."))
281+ else if (isDefined(ag.assetId))
278282 then throw("Only WAVES is allowed to deposit at the moment")
279- else [IntegerEntry(((d + "_") + w), ah), IntegerEntry(((((toString(aj) + "_") + d) + "_") + w), af.amount), IntegerEntry("Deposit_Counter_ID", aj)]
283+ else [IntegerEntry(((d + "_") + x), ai), IntegerEntry(((((toString(ak) + "_") + d) + "_") + x), ag.amount), IntegerEntry("Deposit_Counter_ID", ak)]
280284 }
281285
282286
283287
284-@Callable(l)
285-func WithdrawUserFunds (p,m) = {
286- let w = toBase58String(l.caller.bytes)
287- let ak = getIntegerValue(((d + "_") + p))
288- let A = ((ak - m) - i)
289- let al = 10000000
290- if ((l.caller != h))
288+@Callable(m)
289+func WithdrawUserFunds (q,n) = {
290+ let x = toBase58String(m.caller.bytes)
291+ let al = getIntegerValue(((d + "_") + q))
292+ let B = ((al - n) - j)
293+ let am = 10000000
294+ if ((m.caller != h))
291295 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
292- else if ((al > m))
293- then throw((("Minimum Withdraw Amount is " + toString(al)) + "/10^8] WAVES."))
294- else if ((0 > A))
295- then throw((("Placed Withdraw Amount is going in negative State of " + toString(A)) + "/10^8] WAVES."))
296- else [IntegerEntry("Previous_Balance", ak), IntegerEntry("Network_Fee_To_Withdraw", i), IntegerEntry(((d + "_") + p), A), ScriptTransfer(h, i, unit), ScriptTransfer(addressFromStringValue(p), m, unit)]
296+ else if ((am > n))
297+ then throw((("Minimum Withdraw Amount is " + toString(am)) + "/10^8] WAVES."))
298+ else if ((0 > B))
299+ then throw((("Placed Withdraw Amount is going in negative State of " + toString(B)) + "/10^8] WAVES."))
300+ else [IntegerEntry("Previous_Balance", al), IntegerEntry("Network_Fee_To_Withdraw", j), IntegerEntry(((d + "_") + q), B), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(q), n, unit)]
297301 }
298302
299303
300304
301-@Callable(l)
302-func BlackListAddress (am) = {
303- let x = getString(this, ("addr_BLACKLISTED_" + am))
304- let an = {
305- let H = getInteger(this, "Total_Black_Listed_Address")
306- if ($isInstanceOf(H, "Int"))
305+@Callable(m)
306+func BlackListAddress (an) = {
307+ let y = getString(this, ("addr_BLACKLISTED_" + an))
308+ let ao = {
309+ let I = getInteger(this, "Total_Black_Listed_Address")
310+ if ($isInstanceOf(I, "Int"))
307311 then {
308- let I = H
309- I
312+ let J = I
313+ J
310314 }
311315 else 0
312316 }
313- let ao = (an + 1)
317+ let ap = (ao + 1)
314318 if ((c > lastBlock.timestamp))
315319 then throw((e + toString(c)))
316- else if ((l.caller != h))
320+ else if ((m.caller != h))
317321 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
318- else if ((x == "Yes"))
322+ else if ((y == "Yes"))
319323 then throw("Address is already available in Blacklist.")
320- else [StringEntry(("addr_BLACKLISTED_" + am), "Yes"), IntegerEntry("Total_Black_Listed_Address", ao)]
324+ else [StringEntry(("addr_BLACKLISTED_" + an), "Yes"), IntegerEntry("Total_Black_Listed_Address", ap)]
321325 }
322326
323327
324328
325-@Callable(l)
326-func DeleteBlackListAddress (am) = {
327- let x = getString(this, ("addr_BLACKLISTED_" + am))
328- let an = {
329- let H = getInteger(this, "Total_Black_Listed_Address")
330- if ($isInstanceOf(H, "Int"))
329+@Callable(m)
330+func DeleteBlackListAddress (an) = {
331+ let y = getString(this, ("addr_BLACKLISTED_" + an))
332+ let ao = {
333+ let I = getInteger(this, "Total_Black_Listed_Address")
334+ if ($isInstanceOf(I, "Int"))
331335 then {
332- let I = H
333- I
336+ let J = I
337+ J
334338 }
335339 else 0
336340 }
337- let ao = (an - 1)
341+ let ap = (ao - 1)
338342 if ((c > lastBlock.timestamp))
339343 then throw(("Product Launch Timestamp is set at " + toString(c)))
340- else if ((l.caller != h))
344+ else if ((m.caller != h))
341345 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
342- else if ((x == "Yes"))
343- then [DeleteEntry(("addr_BLACKLISTED_" + am)), IntegerEntry("Total_Black_Listed_Address", ao)]
346+ else if ((y == "Yes"))
347+ then [DeleteEntry(("addr_BLACKLISTED_" + an)), IntegerEntry("Total_Black_Listed_Address", ap)]
344348 else throw("Address is not available in Blacklist.")
345349 }
346350
347351
348-@Verifier(ap)
349-func aq () = {
350- let H = ap
351- if (if ($isInstanceOf(H, "Order"))
352+@Verifier(aq)
353+func ar () = {
354+ let I = aq
355+ if (if ($isInstanceOf(I, "Order"))
352356 then true
353- else if ($isInstanceOf(H, "ExchangeTransaction"))
357+ else if ($isInstanceOf(I, "ExchangeTransaction"))
354358 then true
355- else if ($isInstanceOf(H, "MassTransferTransaction"))
359+ else if ($isInstanceOf(I, "MassTransferTransaction"))
356360 then true
357- else $isInstanceOf(H, "TransferTransaction"))
361+ else $isInstanceOf(I, "TransferTransaction"))
358362 then {
359- let ar = H
363+ let as = I
360364 false
361365 }
362- else sigVerify(ap.bodyBytes, ap.proofs[0], ap.senderPublicKey)
366+ else sigVerify(aq.bodyBytes, aq.proofs[0], aq.senderPublicKey)
363367 }
364368

github/deemru/w8io/169f3d6 
181.36 ms