tx · 6ARt7ebvjbErdkRLYQhVrH1S9xCpcsXL5UWeWrZ61muE

3N2ZtCEGncHQjQF4g4oQBDeRRZoUQ3kJ7Nm:  -1.04000000 Waves

2023.04.01 12:18 [2515346] smart account 3N2ZtCEGncHQjQF4g4oQBDeRRZoUQ3kJ7Nm > SELF 0.00000000 Waves

{ "type": 13, "id": "6ARt7ebvjbErdkRLYQhVrH1S9xCpcsXL5UWeWrZ61muE", "fee": 104000000, "feeAssetId": null, "timestamp": 1680340733810, "version": 2, "chainId": 84, "sender": "3N2ZtCEGncHQjQF4g4oQBDeRRZoUQ3kJ7Nm", "senderPublicKey": "EKmhAeU9yA52DSvBnr1WtWQWyyiCrauDYkmgnTns7ZkA", "proofs": [ "3cwVWhTy7gPZxx9WiSWuMFg6tUGEb9hwU7WvuPcE617wu736aeQy9XeLN6hHXBfy5kTqvMZSJ86cw6bJaUZbdGLU" ], "script": "base64:AAIFAAAAAAAAABwIAhILCgkBAQEBAQEIAQESCwoJAQEBAQEBCAEBAAAACAAAAAAURGFwcF9BZGRyZXNzX3B1Yl9rZXkBAAAAIDt0RfG+UDnkUrGYjjYAjr/q4kPWHyAQKg1dGLENBEMMAAAAABhwcm9kdWN0X2xhdW5jaF90aW1lc3RhbXAAAAABhgpF7AAAAAAAFHByb2R1Y3RfbGF1bmNoX2Vycm9yAgAAACNQcm9kdWN0IExhdW5jaCBUaW1lc3RhbXAgaXMgc2V0IGF0IAAAAAAQbm9fcGF5bWVudF9lcnJvcgIAAAA3Tm8gcGF5bWVudCBhdHRhY2hlZCwgUGxlYXNlIEF0dGFjaCBUb2tlbiBpbiBwYXltZW50WzFdLgAAAAASY2xvc2VkX29yYWNsZV9lcm9yAgAAADFPcmFjbGUgaXMgY2xvc2VkLiBXYWl0IFVudGlsIE9yYWNsZSBpcyBUdXJuZWQgT24uAAAAABF3aGl0ZWxpc3RfYWRkcmVzcwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAAURGFwcF9BZGRyZXNzX3B1Yl9rZXkAAAAAEm1pbmltdW1fb3JkZXJfc2l6ZQAAAAAAAJiWgAAAAAASbWF4aW11bV9vcmRlcl9zaXplAAAAAAJUC+QAAAAAAgAAAAFpAQAAAA9wbGFjZW9wdGlvbkNhbGwAAAAJAAAAFFRvdGFsX1Bvb2xfTGlxdWlkaXR5AAAAD09wdGlvbkNvdW50ZXJJRAAAAApIb3VzZV9yaXNrAAAABVByaWNlAAAAC0NhbGxfTGltaXRzAAAAClB1dF9MaW1pdHMAAAANT3JhY2xlX1N0YXR1cwAAABVTdGFydF9PcmRlcl9UaW1lc3RhbXAAAAATRW5kX09yZGVyX1RpbWVzdGFtcAQAAAANY2FsbGVyYWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAANwbXQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQUAAAAQbm9fcGF5bWVudF9lcnJvcgQAAAANaWZCbGFja2xpc3RlZAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAICAAAAEWFkZHJfQkxBQ0tMSVNURURfBQAAAA1jYWxsZXJhZGRyZXNzBAAAACFyZWFkX3N0YXJ0X29yZGVyX3Blcm1pdF90aW1lc3RhbXAFAAAAFVN0YXJ0X09yZGVyX1RpbWVzdGFtcAQAAAAfcmVhZF9lbmRfb3JkZXJfcGVybWl0X3RpbWVzdGFtcAUAAAATRW5kX09yZGVyX1RpbWVzdGFtcAQAAAAZcmVhZF90b3RhbF9wb29sX2xpcXVpZGl0eQUAAAAUVG90YWxfUG9vbF9MaXF1aWRpdHkEAAAAGG5ld190b3RhbF9wb29sX2xpcXVpZGl0eQkAAGQAAAACBQAAABlyZWFkX3RvdGFsX3Bvb2xfbGlxdWlkaXR5CAUAAAADcG10AAAABmFtb3VudAQAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAD09wdGlvbkNvdW50ZXJJRAQAAAAST3Bpb25FeHBpcmVDb3VudGVyAAAAAAAAAAABBAAAABVPcHRpb25FeHBpcmVDb3VudGVySUQJAABkAAAAAgUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAEk9waW9uRXhwaXJlQ291bnRlcgQAAAAUUHJldmlvdXNPcHRpb25PcmRlcnMEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAATVG90YWxfT3B0aW9uX09yZGVycwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABFUb3RhbE9wdGlvbk9yZGVycwkAAGQAAAACBQAAABRQcmV2aW91c09wdGlvbk9yZGVycwAAAAAAAAAAAQQAAAAnUHJldmlvdXNGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAiVG90YWxfRnVuZHNfQWRkZWRfSW5fT3B0aW9uX09yZGVyXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAACRUb3RhbEZ1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIJAABkAAAAAgUAAAAnUHJldmlvdXNGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyCAUAAAADcG10AAAABmFtb3VudAQAAAAlUHJldmlvdXNPcHRpb25PcmRlcnNpblNwZWNpZmljQ291bnRlcgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAFFRvdGFsX09wdGlvbl9PcmRlcnNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAIlRvdGFsT3B0aW9uT3JkZXJzaW5TcGVjaWZpY0NvdW50ZXIJAABkAAAAAgUAAAAlUHJldmlvdXNPcHRpb25PcmRlcnNpblNwZWNpZmljQ291bnRlcgAAAAAAAAAAAQQAAAAMUHJldmlvdXNDYWxsBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAAC1RvdGFsX0NhbGxzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAACVRvdGFsQ2FsbAkAAGQAAAACBQAAAAxQcmV2aW91c0NhbGwAAAAAAAAAAAEEAAAAHVByZXZpb3VzQ2FsbGluU3BlY2lmaWNDb3VudGVyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAMVG90YWxfQ2FsbHNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAGlRvdGFsQ2FsbGluU3BlY2lmaWNDb3VudGVyCQAAZAAAAAIFAAAAHVByZXZpb3VzQ2FsbGluU3BlY2lmaWNDb3VudGVyAAAAAAAAAAABBAAAABBQcmV2aW91c1VzZXJDYWxsBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAA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XwUAAAANY2FsbGVyYWRkcmVzcwIAAAABXwkAAaQAAAABBQAAAA1Ub3RhbFVzZXJDYWxsCQABpAAAAAEFAAAABVByaWNlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAxDYWxsX0Ftb3VudF8FAAAADWNhbGxlcmFkZHJlc3MCAAAAAV8JAAGkAAAAAQUAAAANVG90YWxVc2VyQ2FsbAgFAAAAA3BtdAAAAAZhbW91bnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAPQ2FsbF9TdGFydF9FbmRfBQAAAA1jYWxsZXJhZGRyZXNzAgAAAAFfCQABpAAAAAEFAAAADVRvdGFsVXNlckNhbGwJAAEsAAAAAgkAASwAAAACCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEAgAAAAFfCQABpAAAAAEFAAAAFU9wdGlvbkV4cGlyZUNvdW50ZXJJRAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAATVG90YWxfT3B0aW9uX09yZGVycwUAAAARVG90YWxPcHRpb25PcmRlcnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAiVG90YWxfRnVuZHNfQWRkZWRfSW5fT3B0aW9uX09yZGVyXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAkVG90YWxGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABRUb3RhbF9Qb29sX0xpcXVpZGl0eQUAAAAYbmV3X3RvdGFsX3Bvb2xfbGlxdWlkaXR5CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAFVRvdGFsX1Bvb2xfTGlxdWlkaXR5XwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAkAAGUAAAACBQAAABhuZXdfdG90YWxfcG9vbF9saXF1aWRpdHkFAAAAJFRvdGFsRnVuZHNBZGRlZEluU3BlY2lmaWNPcHRpb25PcmRlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAA5GdW5kc19BdF9SaXNrXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAANRnVuZHNfYXRfcmlzawkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAALQ2FsbF9MaW1pdHMFAAAAC0NhbGxfTGltaXRzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApQdXRfTGltaXRzBQAAAApQdXRfTGltaXRzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAFFRvdGFsX09wdGlvbl9PcmRlcnNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAACJUb3RhbE9wdGlvbk9yZGVyc2luU3BlY2lmaWNDb3VudGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAtUb3RhbF9DYWxscwUAAAAJVG90YWxDYWxsCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADFRvdGFsX0NhbGxzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAaVG90YWxDYWxsaW5TcGVjaWZpY0NvdW50ZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAANY2FsbGVyYWRkcmVzcwIAAAAMX1RvdGFsX0NhbGxzBQAAAA1Ub3RhbFVzZXJDYWxsCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAANY2FsbGVyYWRkcmVzcwIAAAANX1RvdGFsX0NhbGxzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAeVG90YWxVc2VyQ2FsbGluU3BlY2lmaWNDb3VudGVyBQAAAANuaWwAAAABaQEAAAAOcGxhY2VvcHRpb25QdXQAAAAJAAAAFFRvdGFsX1Bvb2xfTGlxdWlkaXR5AAAAD09wdGlvbkNvdW50ZXJJRAAAAApIb3VzZV9yaXNrAAAABVByaWNlAAAAC0NhbGxfTGltaXRzAAAAClB1dF9MaW1pdHMAAAANT3JhY2xlX1N0YXR1cwAAABVTdGFydF9PcmRlcl9UaW1lc3RhbXAAAAATRW5kX09yZGVyX1RpbWVzdGFtcAQAAAANY2FsbGVyYWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAANwbXQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQUAAAAQbm9fcGF5bWVudF9lcnJvcgQAAAANaWZCbGFja2xpc3RlZAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAICAAAAEWFkZHJfQkxBQ0tMSVNURURfBQAAAA1jYWxsZXJhZGRyZXNzBAAAACFyZWFkX3N0YXJ0X29yZGVyX3Blcm1pdF90aW1lc3RhbXAFAAAAFVN0YXJ0X09yZGVyX1RpbWVzdGFtcAQAAAAfcmVhZF9lbmRfb3JkZXJfcGVybWl0X3RpbWVzdGFtcAUAAAATRW5kX09yZGVyX1RpbWVzdGFtcAQAAAAZcmVhZF90b3RhbF9wb29sX2xpcXVpZGl0eQUAAAAUVG90YWxfUG9vbF9MaXF1aWRpdHkEAAAAGG5ld190b3RhbF9wb29sX2xpcXVpZGl0eQkAAGQAAAACBQAAABlyZWFkX3RvdGFsX3Bvb2xfbGlxdWlkaXR5CAUAAAADcG10AAAABmFtb3VudAQAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAD09wdGlvbkNvdW50ZXJJRAQAAAAST3Bpb25FeHBpcmVDb3VudGVyAAAAAAAAAAABBAAAABVPcHRpb25FeHBpcmVDb3VudGVySUQJAABkAAAAAgUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAEk9waW9uRXhwaXJlQ291bnRlcgQAAAAUUHJldmlvdXNPcHRpb25PcmRlcnMEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAATVG90YWxfT3B0aW9uX09yZGVycwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABFUb3RhbE9wdGlvbk9yZGVycwkAAGQAAAACBQAAABRQcmV2aW91c09wdGlvbk9yZGVycwAAAAAAAAAAAQQAAAAnUHJldmlvdXNGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAiVG90YWxfRnVuZHNfQWRkZWRfSW5fT3B0aW9uX09yZGVyXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAACRUb3RhbEZ1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIJAABkAAAAAgUAAAAnUHJldmlvdXNGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyCAUAAAADcG10AAAABmFtb3VudAQAAAAlUHJldmlvdXNPcHRpb25PcmRlcnNpblNwZWNpZmljQ291bnRlcgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAFFRvdGFsX09wdGlvbl9PcmRlcnNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAIlRvdGFsT3B0aW9uT3JkZXJzaW5TcGVjaWZpY0NvdW50ZXIJAABkAAAAAgUAAAAlUHJldmlvdXNPcHRpb25PcmRlcnNpblNwZWNpZmljQ291bnRlcgAAAAAAAAAAAQQAAAALUHJldmlvdXNQdXQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAAKVG90YWxfUHV0cwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAhUb3RhbFB1dAkAAGQAAAACBQAAAAtQcmV2aW91c1B1dAAAAAAAAAAAAQQAAAAcUHJldmlvdXNQdXRpblNwZWNpZmljQ291bnRlcgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAC1RvdGFsX1B1dHNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAGVRvdGFsUHV0aW5TcGVjaWZpY0NvdW50ZXIJAABkAAAAAgUAAAAcUHJldmlvdXNQdXRpblNwZWNpZmljQ291bnRlcgAAAAAAAAAAAQQAAAAPUHJldmlvdXNVc2VyUHV0BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAANY2FsbGVyYWRkcmVzcwIAAAALX1RvdGFsX1B1dHMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAMVG90YWxVc2VyUHV0CQAAZAAAAAIFAAAAD1ByZXZpb3VzVXNlclB1dAAAAAAAAAAAAQQAAAAgUHJldmlvdXNVc2VyUHV0aW5TcGVjaWZpY0NvdW50ZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAADWNhbGxlcmFkZHJlc3MCAAAADF9Ub3RhbF9QdXRzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAB1Ub3RhbFVzZXJQdXRpblNwZWNpZmljQ291bnRlcgkAAGQAAAACBQAAACBQcmV2aW91c1VzZXJQdXRpblNwZWNpZmljQ291bnRlcgAAAAAAAAAAAQQAAAAVUGVuZGluZ19PcHRpb25fbGltaXRzBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAAFVBlbmRpbmdfT3B0aW9uX0xpbWl0cwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAA1GdW5kc19hdF9yaXNrBQAAAApIb3VzZV9yaXNrAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAlVGhpcyBBZGRyZXNzIGlzIG5vdCBBdXRob3JpemVkLiBPbmx5IAkABCUAAAABBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwIAAAAiIGlzIEF1dGhvcml6ZWQgQWRkcmVzcyB0byBTaWduIGl0LgMJAABmAAAAAgUAAAAYcHJvZHVjdF9sYXVuY2hfdGltZXN0YW1wCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABCQABLAAAAAIFAAAAFHByb2R1Y3RfbGF1bmNoX2Vycm9yCQABpAAAAAEFAAAAGHByb2R1Y3RfbGF1bmNoX3RpbWVzdGFtcAMJAAAAAAAAAgUAAAANT3JhY2xlX1N0YXR1cwIAAAAFQ2xvc2UJAAACAAAAAQUAAAASY2xvc2VkX29yYWNsZV9lcm9yAwkAAAAAAAACBQAAAA1pZkJsYWNrbGlzdGVkAgAAAANZZXMJAAACAAAAAQkAASwAAAACBQAAAA1jYWxsZXJhZGRyZXNzAgAAAD4gQWRkcmVzcyBpcyBCbGFja2xpc3RlZC4gUGxlYXNlIGNvbnRhY3QgQWRtaW4gdG8gV2hpdGVsaXN0IGl0LgMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQJAAACAAAAAQIAAAArT25seSBUTiBpcyBhbGxvd2VkIHRvIGRlcG9zaXQgYXQgdGhlIG1vbWVudAMJAABnAAAAAggFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAFAAAAH3JlYWRfZW5kX29yZGVyX3Blcm1pdF90aW1lc3RhbXAJAAACAAAAAQIAAABHT3B0aW9uIE9yZGVyIHBsYWNpbmcgVGltaW5nIExpbWl0cyBhcmUgT3Zlci4gUGxlYXNlIEpvaW4gaW4gTmV4dCBDeWNsZS4DCQAAZgAAAAIFAAAAEm1pbmltdW1fb3JkZXJfc2l6ZQgFAAAAA3BtdAAAAAZhbW91bnQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAIFBsYWNlZCBPcmRlciBTaXplIGlzIGxlc3MgdGhhbiBbCQABpAAAAAEFAAAAEm1pbmltdW1fb3JkZXJfc2l6ZQIAAAAKLzEwXjhdIFROLgMJAABmAAAAAggFAAAAA3BtdAAAAAZhbW91bnQFAAAAEm1heGltdW1fb3JkZXJfc2l6ZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAgUGxhY2VkIE9yZGVyIFNpemUgaXMgbW9yZSB0aGFuIFsJAAGkAAAAAQUAAAASbWF4aW11bV9vcmRlcl9zaXplAgAAAAovMTBeOF0gVE4uCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABFB1dF8FAAAADWNhbGxlcmFkZHJlc3MCAAAAAV8JAAGkAAAAAQUAAAAMVG90YWxVc2VyUHV0CQABpAAAAAEFAAAABVByaWNlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAtQdXRfQW1vdW50XwUAAAANY2FsbGVyYWRkcmVzcwIAAAABXwkAAaQAAAABBQAAAAxUb3RhbFVzZXJQdXQIBQAAAANwbXQAAAAGYW1vdW50CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAADlB1dF9TdGFydF9FbmRfBQAAAA1jYWxsZXJhZGRyZXNzAgAAAAFfCQABpAAAAAEFAAAADFRvdGFsVXNlclB1dAkAASwAAAACCQABLAAAAAIJAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQCAAAAAV8JAAGkAAAAAQUAAAAVT3B0aW9uRXhwaXJlQ291bnRlcklECQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABNUb3RhbF9PcHRpb25fT3JkZXJzBQAAABFUb3RhbE9wdGlvbk9yZGVycwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAACJUb3RhbF9GdW5kc19BZGRlZF9Jbl9PcHRpb25fT3JkZXJfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAACRUb3RhbEZ1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAFFRvdGFsX1Bvb2xfTGlxdWlkaXR5BQAAABhuZXdfdG90YWxfcG9vbF9saXF1aWRpdHkJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAVVG90YWxfUG9vbF9MaXF1aWRpdHlfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklECQAAZQAAAAIFAAAAGG5ld190b3RhbF9wb29sX2xpcXVpZGl0eQUAAAAkVG90YWxGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADkZ1bmRzX0F0X1Jpc2tfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAAA1GdW5kc19hdF9yaXNrCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAtDYWxsX0xpbWl0cwUAAAALQ2FsbF9MaW1pdHMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAClB1dF9MaW1pdHMFAAAAClB1dF9MaW1pdHMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAUVG90YWxfT3B0aW9uX09yZGVyc18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAIlRvdGFsT3B0aW9uT3JkZXJzaW5TcGVjaWZpY0NvdW50ZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAClRvdGFsX1B1dHMFAAAACFRvdGFsUHV0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAC1RvdGFsX1B1dHNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAABlUb3RhbFB1dGluU3BlY2lmaWNDb3VudGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAADWNhbGxlcmFkZHJlc3MCAAAAC19Ub3RhbF9QdXRzBQAAAAxUb3RhbFVzZXJQdXQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAA1jYWxsZXJhZGRyZXNzAgAAAAxfVG90YWxfUHV0c18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAHVRvdGFsVXNlclB1dGluU3BlY2lmaWNDb3VudGVyBQAAAANuaWwAAAAAlmviWA==", "height": 2515346, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DDm94CenkCkSGinB7Bd3TPiDWmi7W134WJe8JfxkeC1p Next: HW5i1hecWEjyQCr4AYGMgTXJt4T1Y3pt1rJR3MNVQW4a Diff:
OldNewDifferences
107107 }
108108
109109
110+
111+@Callable(i)
112+func placeoptionPut (Total_Pool_Liquidity,OptionCounterID,House_risk,Price,Call_Limits,Put_Limits,Oracle_Status,Start_Order_Timestamp,End_Order_Timestamp) = {
113+ let calleraddress = toBase58String(i.caller.bytes)
114+ let pmt = if ((size(i.payments) == 1))
115+ then i.payments[0]
116+ else throw(no_payment_error)
117+ let ifBlacklisted = getString(this, ("addr_BLACKLISTED_" + calleraddress))
118+ let read_start_order_permit_timestamp = Start_Order_Timestamp
119+ let read_end_order_permit_timestamp = End_Order_Timestamp
120+ let read_total_pool_liquidity = Total_Pool_Liquidity
121+ let new_total_pool_liquidity = (read_total_pool_liquidity + pmt.amount)
122+ let read_OptionCounterID = OptionCounterID
123+ let OpionExpireCounter = 1
124+ let OptionExpireCounterID = (read_OptionCounterID + OpionExpireCounter)
125+ let PreviousOptionOrders = match getInteger(this, "Total_Option_Orders") {
126+ case a: Int =>
127+ a
128+ case _ =>
129+ 0
130+ }
131+ let TotalOptionOrders = (PreviousOptionOrders + 1)
132+ let PreviousFundsAddedInSpecificOptionOrder = match getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(read_OptionCounterID))) {
133+ case a: Int =>
134+ a
135+ case _ =>
136+ 0
137+ }
138+ let TotalFundsAddedInSpecificOptionOrder = (PreviousFundsAddedInSpecificOptionOrder + pmt.amount)
139+ let PreviousOptionOrdersinSpecificCounter = match getInteger(this, ("Total_Option_Orders_" + toString(read_OptionCounterID))) {
140+ case a: Int =>
141+ a
142+ case _ =>
143+ 0
144+ }
145+ let TotalOptionOrdersinSpecificCounter = (PreviousOptionOrdersinSpecificCounter + 1)
146+ let PreviousPut = match getInteger(this, "Total_Puts") {
147+ case a: Int =>
148+ a
149+ case _ =>
150+ 0
151+ }
152+ let TotalPut = (PreviousPut + 1)
153+ let PreviousPutinSpecificCounter = match getInteger(this, ("Total_Puts_" + toString(read_OptionCounterID))) {
154+ case a: Int =>
155+ a
156+ case _ =>
157+ 0
158+ }
159+ let TotalPutinSpecificCounter = (PreviousPutinSpecificCounter + 1)
160+ let PreviousUserPut = match getInteger(this, (calleraddress + "_Total_Puts")) {
161+ case a: Int =>
162+ a
163+ case _ =>
164+ 0
165+ }
166+ let TotalUserPut = (PreviousUserPut + 1)
167+ let PreviousUserPutinSpecificCounter = match getInteger(this, ((calleraddress + "_Total_Puts_") + toString(read_OptionCounterID))) {
168+ case a: Int =>
169+ a
170+ case _ =>
171+ 0
172+ }
173+ let TotalUserPutinSpecificCounter = (PreviousUserPutinSpecificCounter + 1)
174+ let Pending_Option_limits = match getInteger(this, "Pending_Option_Limits") {
175+ case a: Int =>
176+ a
177+ case _ =>
178+ 0
179+ }
180+ let Funds_at_risk = House_risk
181+ if ((i.caller != whitelist_address))
182+ then throw((("This Address is not Authorized. Only " + toString(whitelist_address)) + " is Authorized Address to Sign it."))
183+ else if ((product_launch_timestamp > lastBlock.timestamp))
184+ then throw((product_launch_error + toString(product_launch_timestamp)))
185+ else if ((Oracle_Status == "Close"))
186+ then throw(closed_oracle_eror)
187+ else if ((ifBlacklisted == "Yes"))
188+ then throw((calleraddress + " Address is Blacklisted. Please contact Admin to Whitelist it."))
189+ else if (isDefined(pmt.assetId))
190+ then throw("Only TN is allowed to deposit at the moment")
191+ else if ((lastBlock.timestamp >= read_end_order_permit_timestamp))
192+ then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.")
193+ else if ((minimum_order_size > pmt.amount))
194+ then throw((("Placed Order Size is less than [" + toString(minimum_order_size)) + "/10^8] TN."))
195+ else if ((pmt.amount > maximum_order_size))
196+ then throw((("Placed Order Size is more than [" + toString(maximum_order_size)) + "/10^8] TN."))
197+ else [StringEntry(((("Put_" + calleraddress) + "_") + toString(TotalUserPut)), toString(Price)), IntegerEntry(((("Put_Amount_" + calleraddress) + "_") + toString(TotalUserPut)), pmt.amount), StringEntry(((("Put_Start_End_" + calleraddress) + "_") + toString(TotalUserPut)), ((toString(read_OptionCounterID) + "_") + toString(OptionExpireCounterID))), IntegerEntry("Total_Option_Orders", TotalOptionOrders), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(read_OptionCounterID)), TotalFundsAddedInSpecificOptionOrder), IntegerEntry("Total_Pool_Liquidity", new_total_pool_liquidity), IntegerEntry(("Total_Pool_Liquidity_" + toString(read_OptionCounterID)), (new_total_pool_liquidity - TotalFundsAddedInSpecificOptionOrder)), IntegerEntry(("Funds_At_Risk_" + toString(read_OptionCounterID)), Funds_at_risk), IntegerEntry("Call_Limits", Call_Limits), IntegerEntry("Put_Limits", Put_Limits), IntegerEntry(("Total_Option_Orders_" + toString(read_OptionCounterID)), TotalOptionOrdersinSpecificCounter), IntegerEntry("Total_Puts", TotalPut), IntegerEntry(("Total_Puts_" + toString(read_OptionCounterID)), TotalPutinSpecificCounter), IntegerEntry((calleraddress + "_Total_Puts"), TotalUserPut), IntegerEntry(((calleraddress + "_Total_Puts_") + toString(read_OptionCounterID)), TotalUserPutinSpecificCounter)]
198+ }
199+
200+
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let Dapp_Address_pub_key = base58'515tSAyMUbAb8kKjcpGDpqALGfCgcwfWmWKKkcBKTcGB'
55
66 let product_launch_timestamp = 1675209600000
77
88 let product_launch_error = "Product Launch Timestamp is set at "
99
1010 let no_payment_error = "No payment attached, Please Attach Token in payment[1]."
1111
1212 let closed_oracle_eror = "Oracle is closed. Wait Until Oracle is Turned On."
1313
1414 let whitelist_address = addressFromPublicKey(Dapp_Address_pub_key)
1515
1616 let minimum_order_size = 10000000
1717
1818 let maximum_order_size = 10000000000
1919
2020 @Callable(i)
2121 func placeoptionCall (Total_Pool_Liquidity,OptionCounterID,House_risk,Price,Call_Limits,Put_Limits,Oracle_Status,Start_Order_Timestamp,End_Order_Timestamp) = {
2222 let calleraddress = toBase58String(i.caller.bytes)
2323 let pmt = if ((size(i.payments) == 1))
2424 then i.payments[0]
2525 else throw(no_payment_error)
2626 let ifBlacklisted = getString(this, ("addr_BLACKLISTED_" + calleraddress))
2727 let read_start_order_permit_timestamp = Start_Order_Timestamp
2828 let read_end_order_permit_timestamp = End_Order_Timestamp
2929 let read_total_pool_liquidity = Total_Pool_Liquidity
3030 let new_total_pool_liquidity = (read_total_pool_liquidity + pmt.amount)
3131 let read_OptionCounterID = OptionCounterID
3232 let OpionExpireCounter = 1
3333 let OptionExpireCounterID = (read_OptionCounterID + OpionExpireCounter)
3434 let PreviousOptionOrders = match getInteger(this, "Total_Option_Orders") {
3535 case a: Int =>
3636 a
3737 case _ =>
3838 0
3939 }
4040 let TotalOptionOrders = (PreviousOptionOrders + 1)
4141 let PreviousFundsAddedInSpecificOptionOrder = match getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(read_OptionCounterID))) {
4242 case a: Int =>
4343 a
4444 case _ =>
4545 0
4646 }
4747 let TotalFundsAddedInSpecificOptionOrder = (PreviousFundsAddedInSpecificOptionOrder + pmt.amount)
4848 let PreviousOptionOrdersinSpecificCounter = match getInteger(this, ("Total_Option_Orders_" + toString(read_OptionCounterID))) {
4949 case a: Int =>
5050 a
5151 case _ =>
5252 0
5353 }
5454 let TotalOptionOrdersinSpecificCounter = (PreviousOptionOrdersinSpecificCounter + 1)
5555 let PreviousCall = match getInteger(this, "Total_Calls") {
5656 case a: Int =>
5757 a
5858 case _ =>
5959 0
6060 }
6161 let TotalCall = (PreviousCall + 1)
6262 let PreviousCallinSpecificCounter = match getInteger(this, ("Total_Calls_" + toString(read_OptionCounterID))) {
6363 case a: Int =>
6464 a
6565 case _ =>
6666 0
6767 }
6868 let TotalCallinSpecificCounter = (PreviousCallinSpecificCounter + 1)
6969 let PreviousUserCall = match getInteger(this, (calleraddress + "_Total_Calls")) {
7070 case a: Int =>
7171 a
7272 case _ =>
7373 0
7474 }
7575 let TotalUserCall = (PreviousUserCall + 1)
7676 let PreviousUserCallinSpecificCounter = match getInteger(this, ((calleraddress + "_Total_Calls_") + toString(read_OptionCounterID))) {
7777 case a: Int =>
7878 a
7979 case _ =>
8080 0
8181 }
8282 let TotalUserCallinSpecificCounter = (PreviousUserCallinSpecificCounter + 1)
8383 let Pending_Option_limits = match getInteger(this, "Pending_Option_Limits") {
8484 case a: Int =>
8585 a
8686 case _ =>
8787 0
8888 }
8989 let Funds_at_risk = House_risk
9090 if ((i.caller != whitelist_address))
9191 then throw((("This Address is not Authorized. Only " + toString(whitelist_address)) + " is Authorized Address to Sign it."))
9292 else if ((product_launch_timestamp > lastBlock.timestamp))
9393 then throw((product_launch_error + toString(product_launch_timestamp)))
9494 else if ((Oracle_Status == "Close"))
9595 then throw(closed_oracle_eror)
9696 else if ((ifBlacklisted == "Yes"))
9797 then throw((calleraddress + " Address is Blacklisted. Please contact Admin to Whitelist it."))
9898 else if (isDefined(pmt.assetId))
9999 then throw("Only TN is allowed to deposit at the moment")
100100 else if ((lastBlock.timestamp >= read_end_order_permit_timestamp))
101101 then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.")
102102 else if ((minimum_order_size > pmt.amount))
103103 then throw((("Placed Order Size is less than [" + toString(minimum_order_size)) + "/10^8] TN."))
104104 else if ((pmt.amount > maximum_order_size))
105105 then throw((("Placed Order Size is more than [" + toString(maximum_order_size)) + "/10^8] TN."))
106106 else [StringEntry(((("Call_" + calleraddress) + "_") + toString(TotalUserCall)), toString(Price)), IntegerEntry(((("Call_Amount_" + calleraddress) + "_") + toString(TotalUserCall)), pmt.amount), StringEntry(((("Call_Start_End_" + calleraddress) + "_") + toString(TotalUserCall)), ((toString(read_OptionCounterID) + "_") + toString(OptionExpireCounterID))), IntegerEntry("Total_Option_Orders", TotalOptionOrders), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(read_OptionCounterID)), TotalFundsAddedInSpecificOptionOrder), IntegerEntry("Total_Pool_Liquidity", new_total_pool_liquidity), IntegerEntry(("Total_Pool_Liquidity_" + toString(read_OptionCounterID)), (new_total_pool_liquidity - TotalFundsAddedInSpecificOptionOrder)), IntegerEntry(("Funds_At_Risk_" + toString(read_OptionCounterID)), Funds_at_risk), IntegerEntry("Call_Limits", Call_Limits), IntegerEntry("Put_Limits", Put_Limits), IntegerEntry(("Total_Option_Orders_" + toString(read_OptionCounterID)), TotalOptionOrdersinSpecificCounter), IntegerEntry("Total_Calls", TotalCall), IntegerEntry(("Total_Calls_" + toString(read_OptionCounterID)), TotalCallinSpecificCounter), IntegerEntry((calleraddress + "_Total_Calls"), TotalUserCall), IntegerEntry(((calleraddress + "_Total_Calls_") + toString(read_OptionCounterID)), TotalUserCallinSpecificCounter)]
107107 }
108108
109109
110+
111+@Callable(i)
112+func placeoptionPut (Total_Pool_Liquidity,OptionCounterID,House_risk,Price,Call_Limits,Put_Limits,Oracle_Status,Start_Order_Timestamp,End_Order_Timestamp) = {
113+ let calleraddress = toBase58String(i.caller.bytes)
114+ let pmt = if ((size(i.payments) == 1))
115+ then i.payments[0]
116+ else throw(no_payment_error)
117+ let ifBlacklisted = getString(this, ("addr_BLACKLISTED_" + calleraddress))
118+ let read_start_order_permit_timestamp = Start_Order_Timestamp
119+ let read_end_order_permit_timestamp = End_Order_Timestamp
120+ let read_total_pool_liquidity = Total_Pool_Liquidity
121+ let new_total_pool_liquidity = (read_total_pool_liquidity + pmt.amount)
122+ let read_OptionCounterID = OptionCounterID
123+ let OpionExpireCounter = 1
124+ let OptionExpireCounterID = (read_OptionCounterID + OpionExpireCounter)
125+ let PreviousOptionOrders = match getInteger(this, "Total_Option_Orders") {
126+ case a: Int =>
127+ a
128+ case _ =>
129+ 0
130+ }
131+ let TotalOptionOrders = (PreviousOptionOrders + 1)
132+ let PreviousFundsAddedInSpecificOptionOrder = match getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(read_OptionCounterID))) {
133+ case a: Int =>
134+ a
135+ case _ =>
136+ 0
137+ }
138+ let TotalFundsAddedInSpecificOptionOrder = (PreviousFundsAddedInSpecificOptionOrder + pmt.amount)
139+ let PreviousOptionOrdersinSpecificCounter = match getInteger(this, ("Total_Option_Orders_" + toString(read_OptionCounterID))) {
140+ case a: Int =>
141+ a
142+ case _ =>
143+ 0
144+ }
145+ let TotalOptionOrdersinSpecificCounter = (PreviousOptionOrdersinSpecificCounter + 1)
146+ let PreviousPut = match getInteger(this, "Total_Puts") {
147+ case a: Int =>
148+ a
149+ case _ =>
150+ 0
151+ }
152+ let TotalPut = (PreviousPut + 1)
153+ let PreviousPutinSpecificCounter = match getInteger(this, ("Total_Puts_" + toString(read_OptionCounterID))) {
154+ case a: Int =>
155+ a
156+ case _ =>
157+ 0
158+ }
159+ let TotalPutinSpecificCounter = (PreviousPutinSpecificCounter + 1)
160+ let PreviousUserPut = match getInteger(this, (calleraddress + "_Total_Puts")) {
161+ case a: Int =>
162+ a
163+ case _ =>
164+ 0
165+ }
166+ let TotalUserPut = (PreviousUserPut + 1)
167+ let PreviousUserPutinSpecificCounter = match getInteger(this, ((calleraddress + "_Total_Puts_") + toString(read_OptionCounterID))) {
168+ case a: Int =>
169+ a
170+ case _ =>
171+ 0
172+ }
173+ let TotalUserPutinSpecificCounter = (PreviousUserPutinSpecificCounter + 1)
174+ let Pending_Option_limits = match getInteger(this, "Pending_Option_Limits") {
175+ case a: Int =>
176+ a
177+ case _ =>
178+ 0
179+ }
180+ let Funds_at_risk = House_risk
181+ if ((i.caller != whitelist_address))
182+ then throw((("This Address is not Authorized. Only " + toString(whitelist_address)) + " is Authorized Address to Sign it."))
183+ else if ((product_launch_timestamp > lastBlock.timestamp))
184+ then throw((product_launch_error + toString(product_launch_timestamp)))
185+ else if ((Oracle_Status == "Close"))
186+ then throw(closed_oracle_eror)
187+ else if ((ifBlacklisted == "Yes"))
188+ then throw((calleraddress + " Address is Blacklisted. Please contact Admin to Whitelist it."))
189+ else if (isDefined(pmt.assetId))
190+ then throw("Only TN is allowed to deposit at the moment")
191+ else if ((lastBlock.timestamp >= read_end_order_permit_timestamp))
192+ then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.")
193+ else if ((minimum_order_size > pmt.amount))
194+ then throw((("Placed Order Size is less than [" + toString(minimum_order_size)) + "/10^8] TN."))
195+ else if ((pmt.amount > maximum_order_size))
196+ then throw((("Placed Order Size is more than [" + toString(maximum_order_size)) + "/10^8] TN."))
197+ else [StringEntry(((("Put_" + calleraddress) + "_") + toString(TotalUserPut)), toString(Price)), IntegerEntry(((("Put_Amount_" + calleraddress) + "_") + toString(TotalUserPut)), pmt.amount), StringEntry(((("Put_Start_End_" + calleraddress) + "_") + toString(TotalUserPut)), ((toString(read_OptionCounterID) + "_") + toString(OptionExpireCounterID))), IntegerEntry("Total_Option_Orders", TotalOptionOrders), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(read_OptionCounterID)), TotalFundsAddedInSpecificOptionOrder), IntegerEntry("Total_Pool_Liquidity", new_total_pool_liquidity), IntegerEntry(("Total_Pool_Liquidity_" + toString(read_OptionCounterID)), (new_total_pool_liquidity - TotalFundsAddedInSpecificOptionOrder)), IntegerEntry(("Funds_At_Risk_" + toString(read_OptionCounterID)), Funds_at_risk), IntegerEntry("Call_Limits", Call_Limits), IntegerEntry("Put_Limits", Put_Limits), IntegerEntry(("Total_Option_Orders_" + toString(read_OptionCounterID)), TotalOptionOrdersinSpecificCounter), IntegerEntry("Total_Puts", TotalPut), IntegerEntry(("Total_Puts_" + toString(read_OptionCounterID)), TotalPutinSpecificCounter), IntegerEntry((calleraddress + "_Total_Puts"), TotalUserPut), IntegerEntry(((calleraddress + "_Total_Puts_") + toString(read_OptionCounterID)), TotalUserPutinSpecificCounter)]
198+ }
199+
200+

github/deemru/w8io/3ef1775 
45.04 ms