tx · HiYfKVwEefTV843CQ4zEzUedf1bQgNDWTfNg5bZirwyf 3N4K6JFDDdcd1qrk2HszwHQrMqznvhYBgjn: -0.01500000 Waves 2023.05.30 16:34 [2600767] smart account 3N4K6JFDDdcd1qrk2HszwHQrMqznvhYBgjn > SELF 0.00000000 Waves
{ "type": 13, "id": "HiYfKVwEefTV843CQ4zEzUedf1bQgNDWTfNg5bZirwyf", "fee": 1500000, "feeAssetId": null, "timestamp": 1685453677797, "version": 2, "chainId": 84, "sender": "3N4K6JFDDdcd1qrk2HszwHQrMqznvhYBgjn", "senderPublicKey": "9vxW4kEGgMt47hfP42SnhhMRhEVqbedX6N57xB8XKYcV", "proofs": [ "2SoxCs4picg2rCMda2HUzx9u2jJHwFENgdgF2a5Z7pjLC8nKYd5cM6zK77tQx6pD9DWYKu2Kzyf26y6T83YBENqj" ], "script": "base64:AAIFAAAAAAAAAB4IAhILCgkBAQEBAQEIAQESCwoJAQEBAQEBCAEBEgAAAAAIAAAAABREYXBwX0FkZHJlc3NfcHViX2tleQEAAAAghLAImg7CFJD3YKNk00XInUoRgZtwfsWstWnG2DMYn3YAAAAAGHByb2R1Y3RfbGF1bmNoX3RpbWVzdGFtcAAAAAGGCkXsAAAAAAAUcHJvZHVjdF9sYXVuY2hfZXJyb3ICAAAAI1Byb2R1Y3QgTGF1bmNoIFRpbWVzdGFtcCBpcyBzZXQgYXQgAAAAABBub19wYXltZW50X2Vycm9yAgAAADdObyBwYXltZW50IGF0dGFjaGVkLCBQbGVhc2UgQXR0YWNoIFRva2VuIGluIHBheW1lbnRbMV0uAAAAABJjbG9zZWRfb3JhY2xlX2Vyb3ICAAAAMU9yYWNsZSBpcyBjbG9zZWQuIFdhaXQgVW50aWwgT3JhY2xlIGlzIFR1cm5lZCBPbi4AAAAAEXdoaXRlbGlzdF9hZGRyZXNzCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAABREYXBwX0FkZHJlc3NfcHViX2tleQAAAAASbWluaW11bV9vcmRlcl9zaXplAAAAAAAAmJaAAAAAABJtYXhpbXVtX29yZGVyX3NpemUAAAAAAlQL5AAAAAADAAAAAWkBAAAAD3BsYWNlb3B0aW9uQ2FsbAAAAAkAAAAUVG90YWxfUG9vbF9MaXF1aWRpdHkAAAAPT3B0aW9uQ291bnRlcklEAAAACkhvdXNlX3Jpc2sAAAAFUHJpY2UAAAALQ2FsbF9MaW1pdHMAAAAKUHV0X0xpbWl0cwAAAA1PcmFjbGVfU3RhdHVzAAAAFVN0YXJ0X09yZGVyX1RpbWVzdGFtcAAAABNFbmRfT3JkZXJfVGltZXN0YW1wBAAAAA1jYWxsZXJhZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAA3BtdAMJAAAAAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABBQAAABBub19wYXltZW50X2Vycm9yBAAAAA1pZkJsYWNrbGlzdGVkCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARYWRkcl9CTEFDS0xJU1RFRF8FAAAADWNhbGxlcmFkZHJlc3MEAAAAIXJlYWRfc3RhcnRfb3JkZXJfcGVybWl0X3RpbWVzdGFtcAUAAAAVU3RhcnRfT3JkZXJfVGltZXN0YW1wBAAAAB9yZWFkX2VuZF9vcmRlcl9wZXJtaXRfdGltZXN0YW1wBQAAABNFbmRfT3JkZXJfVGltZXN0YW1wBAAAABlyZWFkX3RvdGFsX3Bvb2xfbGlxdWlkaXR5BQAAABRUb3RhbF9Qb29sX0xpcXVpZGl0eQQAAAAYbmV3X3RvdGFsX3Bvb2xfbGlxdWlkaXR5CQAAZAAAAAIFAAAAGXJlYWRfdG90YWxfcG9vbF9saXF1aWRpdHkIBQAAAANwbXQAAAAGYW1vdW50BAAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAPT3B0aW9uQ291bnRlcklEBAAAABJPcGlvbkV4cGlyZUNvdW50ZXIAAAAAAAAAAAEEAAAAFU9wdGlvbkV4cGlyZUNvdW50ZXJJRAkAAGQAAAACBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAST3Bpb25FeHBpcmVDb3VudGVyBAAAABRQcmV2aW91c09wdGlvbk9yZGVycwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAABNUb3RhbF9PcHRpb25fT3JkZXJzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAEVRvdGFsT3B0aW9uT3JkZXJzCQAAZAAAAAIFAAAAFFByZXZpb3VzT3B0aW9uT3JkZXJzAAAAAAAAAAABBAAAACdQcmV2aW91c0Z1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAACJUb3RhbF9GdW5kc19BZGRlZF9Jbl9PcHRpb25fT3JkZXJfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAJFRvdGFsRnVuZHNBZGRlZEluU3BlY2lmaWNPcHRpb25PcmRlcgkAAGQAAAACBQAAACdQcmV2aW91c0Z1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIIBQAAAANwbXQAAAAGYW1vdW50BAAAACVQcmV2aW91c09wdGlvbk9yZGVyc2luU3BlY2lmaWNDb3VudGVyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAUVG90YWxfT3B0aW9uX09yZGVyc18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAiVG90YWxPcHRpb25PcmRlcnNpblNwZWNpZmljQ291bnRlcgkAAGQAAAACBQAAACVQcmV2aW91c09wdGlvbk9yZGVyc2luU3BlY2lmaWNDb3VudGVyAAAAAAAAAAABBAAAAAxQcmV2aW91c0NhbGwEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAALVG90YWxfQ2FsbHMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAJVG90YWxDYWxsCQAAZAAAAAIFAAAADFByZXZpb3VzQ2FsbAAAAAAAAAAAAQQAAAAdUHJldmlvdXNDYWxsaW5TcGVjaWZpY0NvdW50ZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAxUb3RhbF9DYWxsc18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAaVG90YWxDYWxsaW5TcGVjaWZpY0NvdW50ZXIJAABkAAAAAgUAAAAdUHJldmlvdXNDYWxsaW5TcGVjaWZpY0NvdW50ZXIAAAAAAAAAAAEEAAAAEFByZXZpb3VzVXNlckNhbGwEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAA1jYWxsZXJhZGRyZXNzAgAAAAxfVG90YWxfQ2FsbHMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAANVG90YWxVc2VyQ2FsbAkAAGQAAAACBQAAABBQcmV2aW91c1VzZXJDYWxsAAAAAAAAAAABBAAAACFQcmV2aW91c1VzZXJDYWxsaW5TcGVjaWZpY0NvdW50ZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAADWNhbGxlcmFkZHJlc3MCAAAADV9Ub3RhbF9DYWxsc18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAeVG90YWxVc2VyQ2FsbGluU3BlY2lmaWNDb3VudGVyCQAAZAAAAAIFAAAAIVByZXZpb3VzVXNlckNhbGxpblNwZWNpZmljQ291bnRlcgAAAAAAAAAAAQQAAAANRnVuZHNfYXRfcmlzawUAAAAKSG91c2VfcmlzawMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAARd2hpdGVsaXN0X2FkZHJlc3MJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAJVRoaXMgQWRkcmVzcyBpcyBub3QgQXV0aG9yaXplZC4gT25seSAJAAQlAAAAAQUAAAARd2hpdGVsaXN0X2FkZHJlc3MCAAAAIiBpcyBBdXRob3JpemVkIEFkZHJlc3MgdG8gU2lnbiBpdC4DCQAAZgAAAAIFAAAAGHByb2R1Y3RfbGF1bmNoX3RpbWVzdGFtcAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAAACAAAAAQkAASwAAAACBQAAABRwcm9kdWN0X2xhdW5jaF9lcnJvcgkAAaQAAAABBQAAABhwcm9kdWN0X2xhdW5jaF90aW1lc3RhbXADCQAAAAAAAAIFAAAADU9yYWNsZV9TdGF0dXMCAAAABUNMT1NFCQAAAgAAAAEFAAAAEmNsb3NlZF9vcmFjbGVfZXJvcgMJAAAAAAAAAgUAAAANaWZCbGFja2xpc3RlZAIAAAADWWVzCQAAAgAAAAEJAAEsAAAAAgUAAAANY2FsbGVyYWRkcmVzcwIAAAA+IEFkZHJlc3MgaXMgQmxhY2tsaXN0ZWQuIFBsZWFzZSBjb250YWN0IEFkbWluIHRvIFdoaXRlbGlzdCBpdC4DCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkCQAAAgAAAAECAAAAK09ubHkgVE4gaXMgYWxsb3dlZCB0byBkZXBvc2l0IGF0IHRoZSBtb21lbnQDCQAAZwAAAAIIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wBQAAAB9yZWFkX2VuZF9vcmRlcl9wZXJtaXRfdGltZXN0YW1wCQAAAgAAAAECAAAAR09wdGlvbiBPcmRlciBwbGFjaW5nIFRpbWluZyBMaW1pdHMgYXJlIE92ZXIuIFBsZWFzZSBKb2luIGluIE5leHQgQ3ljbGUuAwkAAGYAAAACBQAAABJtaW5pbXVtX29yZGVyX3NpemUIBQAAAANwbXQAAAAGYW1vdW50CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACBQbGFjZWQgT3JkZXIgU2l6ZSBpcyBsZXNzIHRoYW4gWwkAAaQAAAABBQAAABJtaW5pbXVtX29yZGVyX3NpemUCAAAACi8xMF44XSBUTi4DCQAAZgAAAAIIBQAAAANwbXQAAAAGYW1vdW50BQAAABJtYXhpbXVtX29yZGVyX3NpemUJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAIFBsYWNlZCBPcmRlciBTaXplIGlzIG1vcmUgdGhhbiBbCQABpAAAAAEFAAAAEm1heGltdW1fb3JkZXJfc2l6ZQIAAAAKLzEwXjhdIFROLgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAVDYWxsXwUAAAANY2FsbGVyYWRkcmVzcwIAAAABXwkAAaQAAAABBQAAAA1Ub3RhbFVzZXJDYWxsCQABpAAAAAEFAAAABVByaWNlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAxDYWxsX0Ftb3VudF8FAAAADWNhbGxlcmFkZHJlc3MCAAAAAV8JAAGkAAAAAQUAAAANVG90YWxVc2VyQ2FsbAgFAAAAA3BtdAAAAAZhbW91bnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAPQ2FsbF9TdGFydF9FbmRfBQAAAA1jYWxsZXJhZGRyZXNzAgAAAAFfCQABpAAAAAEFAAAADVRvdGFsVXNlckNhbGwJAAEsAAAAAgkAASwAAAACCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEAgAAAAFfCQABpAAAAAEFAAAAFU9wdGlvbkV4cGlyZUNvdW50ZXJJRAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAATVG90YWxfT3B0aW9uX09yZGVycwUAAAARVG90YWxPcHRpb25PcmRlcnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAiVG90YWxfRnVuZHNfQWRkZWRfSW5fT3B0aW9uX09yZGVyXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAkVG90YWxGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABRUb3RhbF9Qb29sX0xpcXVpZGl0eQUAAAAYbmV3X3RvdGFsX3Bvb2xfbGlxdWlkaXR5CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADkZ1bmRzX0F0X1Jpc2tfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAAA1GdW5kc19hdF9yaXNrCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAtDYWxsX0xpbWl0cwUAAAALQ2FsbF9MaW1pdHMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAClB1dF9MaW1pdHMFAAAAClB1dF9MaW1pdHMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAUVG90YWxfT3B0aW9uX09yZGVyc18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAIlRvdGFsT3B0aW9uT3JkZXJzaW5TcGVjaWZpY0NvdW50ZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAC1RvdGFsX0NhbGxzBQAAAAlUb3RhbENhbGwJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAMVG90YWxfQ2FsbHNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAABpUb3RhbENhbGxpblNwZWNpZmljQ291bnRlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAA1jYWxsZXJhZGRyZXNzAgAAAAxfVG90YWxfQ2FsbHMFAAAADVRvdGFsVXNlckNhbGwJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAA1jYWxsZXJhZGRyZXNzAgAAAA1fVG90YWxfQ2FsbHNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAAB5Ub3RhbFVzZXJDYWxsaW5TcGVjaWZpY0NvdW50ZXIFAAAAA25pbAAAAAFpAQAAAA5wbGFjZW9wdGlvblB1dAAAAAkAAAAUVG90YWxfUG9vbF9MaXF1aWRpdHkAAAAPT3B0aW9uQ291bnRlcklEAAAACkhvdXNlX3Jpc2sAAAAFUHJpY2UAAAALQ2FsbF9MaW1pdHMAAAAKUHV0X0xpbWl0cwAAAA1PcmFjbGVfU3RhdHVzAAAAFVN0YXJ0X09yZGVyX1RpbWVzdGFtcAAAABNFbmRfT3JkZXJfVGltZXN0YW1wBAAAAA1jYWxsZXJhZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAA3BtdAMJAAAAAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABBQAAABBub19wYXltZW50X2Vycm9yBAAAAA1pZkJsYWNrbGlzdGVkCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARYWRkcl9CTEFDS0xJU1RFRF8FAAAADWNhbGxlcmFkZHJlc3MEAAAAIXJlYWRfc3RhcnRfb3JkZXJfcGVybWl0X3RpbWVzdGFtcAUAAAAVU3RhcnRfT3JkZXJfVGltZXN0YW1wBAAAAB9yZWFkX2VuZF9vcmRlcl9wZXJtaXRfdGltZXN0YW1wBQAAABNFbmRfT3JkZXJfVGltZXN0YW1wBAAAABlyZWFkX3RvdGFsX3Bvb2xfbGlxdWlkaXR5BQAAABRUb3RhbF9Qb29sX0xpcXVpZGl0eQQAAAAYbmV3X3RvdGFsX3Bvb2xfbGlxdWlkaXR5CQAAZAAAAAIFAAAAGXJlYWRfdG90YWxfcG9vbF9saXF1aWRpdHkIBQAAAANwbXQAAAAGYW1vdW50BAAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAPT3B0aW9uQ291bnRlcklEBAAAABJPcGlvbkV4cGlyZUNvdW50ZXIAAAAAAAAAAAEEAAAAFU9wdGlvbkV4cGlyZUNvdW50ZXJJRAkAAGQAAAACBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAST3Bpb25FeHBpcmVDb3VudGVyBAAAABRQcmV2aW91c09wdGlvbk9yZGVycwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAABNUb3RhbF9PcHRpb25fT3JkZXJzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAEVRvdGFsT3B0aW9uT3JkZXJzCQAAZAAAAAIFAAAAFFByZXZpb3VzT3B0aW9uT3JkZXJzAAAAAAAAAAABBAAAACdQcmV2aW91c0Z1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAACJUb3RhbF9GdW5kc19BZGRlZF9Jbl9PcHRpb25fT3JkZXJfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAJFRvdGFsRnVuZHNBZGRlZEluU3BlY2lmaWNPcHRpb25PcmRlcgkAAGQAAAACBQAAACdQcmV2aW91c0Z1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIIBQAAAANwbXQAAAAGYW1vdW50BAAAACVQcmV2aW91c09wdGlvbk9yZGVyc2luU3BlY2lmaWNDb3VudGVyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAUVG90YWxfT3B0aW9uX09yZGVyc18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAiVG90YWxPcHRpb25PcmRlcnNpblNwZWNpZmljQ291bnRlcgkAAGQAAAACBQAAACVQcmV2aW91c09wdGlvbk9yZGVyc2luU3BlY2lmaWNDb3VudGVyAAAAAAAAAAABBAAAAAtQcmV2aW91c1B1dAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAAApUb3RhbF9QdXRzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAACFRvdGFsUHV0CQAAZAAAAAIFAAAAC1ByZXZpb3VzUHV0AAAAAAAAAAABBAAAABxQcmV2aW91c1B1dGluU3BlY2lmaWNDb3VudGVyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAALVG90YWxfUHV0c18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAZVG90YWxQdXRpblNwZWNpZmljQ291bnRlcgkAAGQAAAACBQAAABxQcmV2aW91c1B1dGluU3BlY2lmaWNDb3VudGVyAAAAAAAAAAABBAAAAA9QcmV2aW91c1VzZXJQdXQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAA1jYWxsZXJhZGRyZXNzAgAAAAtfVG90YWxfUHV0cwMJ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BQAAAANwbXQAAAAGYW1vdW50CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAADlB1dF9TdGFydF9FbmRfBQAAAA1jYWxsZXJhZGRyZXNzAgAAAAFfCQABpAAAAAEFAAAADFRvdGFsVXNlclB1dAkAASwAAAACCQABLAAAAAIJAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQCAAAAAV8JAAGkAAAAAQUAAAAVT3B0aW9uRXhwaXJlQ291bnRlcklECQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABNUb3RhbF9PcHRpb25fT3JkZXJzBQAAABFUb3RhbE9wdGlvbk9yZGVycwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAACJUb3RhbF9GdW5kc19BZGRlZF9Jbl9PcHRpb25fT3JkZXJfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAACRUb3RhbEZ1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAFFRvdGFsX1Bvb2xfTGlxdWlkaXR5BQAAABhuZXdfdG90YWxfcG9vbF9saXF1aWRpdHkJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAORnVuZHNfQXRfUmlza18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAADUZ1bmRzX2F0X3Jpc2sJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAC0NhbGxfTGltaXRzBQAAAAtDYWxsX0xpbWl0cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAKUHV0X0xpbWl0cwUAAAAKUHV0X0xpbWl0cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABRUb3RhbF9PcHRpb25fT3JkZXJzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAiVG90YWxPcHRpb25PcmRlcnNpblNwZWNpZmljQ291bnRlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAKVG90YWxfUHV0cwUAAAAIVG90YWxQdXQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAALVG90YWxfUHV0c18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAGVRvdGFsUHV0aW5TcGVjaWZpY0NvdW50ZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAANY2FsbGVyYWRkcmVzcwIAAAALX1RvdGFsX1B1dHMFAAAADFRvdGFsVXNlclB1dAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAADWNhbGxlcmFkZHJlc3MCAAAADF9Ub3RhbF9QdXRzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAdVG90YWxVc2VyUHV0aW5TcGVjaWZpY0NvdW50ZXIFAAAAA25pbAAAAAFpAQAAABBEZXBvc2l0VXNlckZ1bmRzAAAAAAQAAAANY2FsbGVyYWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAtDdXJyZW5jeV9JRAIAAAACVE4EAAAAA3BtdAMJAAAAAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABAgAAAElObyBwYXltZW50IGF0dGFjaGVkLCBQbGVhc2UgQXR0YWNoIG9ubHkgV2hpdGVsaXN0ZWQgVG9rZW5zIGluIHBheW1lbnRbMV0uBAAAAA1pZkJsYWNrbGlzdGVkCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARYWRkcl9CTEFDS0xJU1RFRF8FAAAADWNhbGxlcmFkZHJlc3MEAAAAE1ByZXZpb3VzVXNlckRlcG9zaXQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAC0N1cnJlbmN5X0lEAgAAAAFfBQAAAA1jYWxsZXJhZGRyZXNzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAEFRvdGFsVXNlckRlcG9zaXQJAABkAAAAAgUAAAATUHJldmlvdXNVc2VyRGVwb3NpdAgFAAAAA3BtdAAAAAZhbW91bnQEAAAAGFByZXZpb3VzRGVwb3NpdENvdW50ZXJJRAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAABJEZXBvc2l0X0NvdW50ZXJfSUQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAVVG90YWxEZXBvc2l0Q291bnRlcklECQAAZAAAAAIFAAAAGFByZXZpb3VzRGVwb3NpdENvdW50ZXJJRAAAAAAAAAAAAQMJAABmAAAAAgUAAAAYcHJvZHVjdF9sYXVuY2hfdGltZXN0YW1wCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABCQABLAAAAAIFAAAAFHByb2R1Y3RfbGF1bmNoX2Vycm9yCQABpAAAAAEFAAAAGHByb2R1Y3RfbGF1bmNoX3RpbWVzdGFtcAMJAAAAAAAAAgUAAAANaWZCbGFja2xpc3RlZAIAAAADWWVzCQAAAgAAAAEJAAEsAAAAAgUAAAANY2FsbGVyYWRkcmVzcwIAAAA+IEFkZHJlc3MgaXMgQmxhY2tsaXN0ZWQuIFBsZWFzZSBjb250YWN0IEFkbWluIHRvIFdoaXRlbGlzdCBpdC4DCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkCQAAAgAAAAECAAAAK09ubHkgVE4gaXMgYWxsb3dlZCB0byBkZXBvc2l0IGF0IHRoZSBtb21lbnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAtDdXJyZW5jeV9JRAIAAAABXwUAAAANY2FsbGVyYWRkcmVzcwUAAAAQVG90YWxVc2VyRGVwb3NpdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABpAAAAAEFAAAAFVRvdGFsRGVwb3NpdENvdW50ZXJJRAIAAAABXwUAAAALQ3VycmVuY3lfSUQCAAAAAV8FAAAADWNhbGxlcmFkZHJlc3MIBQAAAANwbXQAAAAGYW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABJEZXBvc2l0X0NvdW50ZXJfSUQFAAAAFVRvdGFsRGVwb3NpdENvdW50ZXJJRAUAAAADbmlsAAAAALmcvvQ=", "height": 2600767, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 5E6WvRHknceWMeH3AdfSYRikMKSkPFuXBtt6bTd315B2 Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let Dapp_Address_pub_key = base58'9vxW4kEGgMt47hfP42SnhhMRhEVqbedX6N57xB8XKYcV' | |
5 | + | ||
6 | + | let product_launch_timestamp = 1675209600000 | |
7 | + | ||
8 | + | let product_launch_error = "Product Launch Timestamp is set at " | |
9 | + | ||
10 | + | let no_payment_error = "No payment attached, Please Attach Token in payment[1]." | |
11 | + | ||
12 | + | let closed_oracle_eror = "Oracle is closed. Wait Until Oracle is Turned On." | |
13 | + | ||
14 | + | let whitelist_address = addressFromPublicKey(Dapp_Address_pub_key) | |
15 | + | ||
16 | + | let minimum_order_size = 10000000 | |
17 | + | ||
18 | + | let maximum_order_size = 10000000000 | |
19 | + | ||
20 | + | @Callable(i) | |
21 | + | func placeoptionCall (Total_Pool_Liquidity,OptionCounterID,House_risk,Price,Call_Limits,Put_Limits,Oracle_Status,Start_Order_Timestamp,End_Order_Timestamp) = { | |
22 | + | let calleraddress = toBase58String(i.caller.bytes) | |
23 | + | let pmt = if ((size(i.payments) == 1)) | |
24 | + | then i.payments[0] | |
25 | + | else throw(no_payment_error) | |
26 | + | let ifBlacklisted = getString(this, ("addr_BLACKLISTED_" + calleraddress)) | |
27 | + | let read_start_order_permit_timestamp = Start_Order_Timestamp | |
28 | + | let read_end_order_permit_timestamp = End_Order_Timestamp | |
29 | + | let read_total_pool_liquidity = Total_Pool_Liquidity | |
30 | + | let new_total_pool_liquidity = (read_total_pool_liquidity + pmt.amount) | |
31 | + | let read_OptionCounterID = OptionCounterID | |
32 | + | let OpionExpireCounter = 1 | |
33 | + | let OptionExpireCounterID = (read_OptionCounterID + OpionExpireCounter) | |
34 | + | let PreviousOptionOrders = match getInteger(this, "Total_Option_Orders") { | |
35 | + | case a: Int => | |
36 | + | a | |
37 | + | case _ => | |
38 | + | 0 | |
39 | + | } | |
40 | + | let TotalOptionOrders = (PreviousOptionOrders + 1) | |
41 | + | let PreviousFundsAddedInSpecificOptionOrder = match getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(read_OptionCounterID))) { | |
42 | + | case a: Int => | |
43 | + | a | |
44 | + | case _ => | |
45 | + | 0 | |
46 | + | } | |
47 | + | let TotalFundsAddedInSpecificOptionOrder = (PreviousFundsAddedInSpecificOptionOrder + pmt.amount) | |
48 | + | let PreviousOptionOrdersinSpecificCounter = match getInteger(this, ("Total_Option_Orders_" + toString(read_OptionCounterID))) { | |
49 | + | case a: Int => | |
50 | + | a | |
51 | + | case _ => | |
52 | + | 0 | |
53 | + | } | |
54 | + | let TotalOptionOrdersinSpecificCounter = (PreviousOptionOrdersinSpecificCounter + 1) | |
55 | + | let PreviousCall = match getInteger(this, "Total_Calls") { | |
56 | + | case a: Int => | |
57 | + | a | |
58 | + | case _ => | |
59 | + | 0 | |
60 | + | } | |
61 | + | let TotalCall = (PreviousCall + 1) | |
62 | + | let PreviousCallinSpecificCounter = match getInteger(this, ("Total_Calls_" + toString(read_OptionCounterID))) { | |
63 | + | case a: Int => | |
64 | + | a | |
65 | + | case _ => | |
66 | + | 0 | |
67 | + | } | |
68 | + | let TotalCallinSpecificCounter = (PreviousCallinSpecificCounter + 1) | |
69 | + | let PreviousUserCall = match getInteger(this, (calleraddress + "_Total_Calls")) { | |
70 | + | case a: Int => | |
71 | + | a | |
72 | + | case _ => | |
73 | + | 0 | |
74 | + | } | |
75 | + | let TotalUserCall = (PreviousUserCall + 1) | |
76 | + | let PreviousUserCallinSpecificCounter = match getInteger(this, ((calleraddress + "_Total_Calls_") + toString(read_OptionCounterID))) { | |
77 | + | case a: Int => | |
78 | + | a | |
79 | + | case _ => | |
80 | + | 0 | |
81 | + | } | |
82 | + | let TotalUserCallinSpecificCounter = (PreviousUserCallinSpecificCounter + 1) | |
83 | + | let Funds_at_risk = House_risk | |
84 | + | if ((i.caller != whitelist_address)) | |
85 | + | then throw((("This Address is not Authorized. Only " + toString(whitelist_address)) + " is Authorized Address to Sign it.")) | |
86 | + | else if ((product_launch_timestamp > lastBlock.timestamp)) | |
87 | + | then throw((product_launch_error + toString(product_launch_timestamp))) | |
88 | + | else if ((Oracle_Status == "CLOSE")) | |
89 | + | then throw(closed_oracle_eror) | |
90 | + | else if ((ifBlacklisted == "Yes")) | |
91 | + | then throw((calleraddress + " Address is Blacklisted. Please contact Admin to Whitelist it.")) | |
92 | + | else if (isDefined(pmt.assetId)) | |
93 | + | then throw("Only TN is allowed to deposit at the moment") | |
94 | + | else if ((lastBlock.timestamp >= read_end_order_permit_timestamp)) | |
95 | + | then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.") | |
96 | + | else if ((minimum_order_size > pmt.amount)) | |
97 | + | then throw((("Placed Order Size is less than [" + toString(minimum_order_size)) + "/10^8] TN.")) | |
98 | + | else if ((pmt.amount > maximum_order_size)) | |
99 | + | then throw((("Placed Order Size is more than [" + toString(maximum_order_size)) + "/10^8] TN.")) | |
100 | + | 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(("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)] | |
101 | + | } | |
102 | + | ||
103 | + | ||
104 | + | ||
105 | + | @Callable(i) | |
106 | + | func placeoptionPut (Total_Pool_Liquidity,OptionCounterID,House_risk,Price,Call_Limits,Put_Limits,Oracle_Status,Start_Order_Timestamp,End_Order_Timestamp) = { | |
107 | + | let calleraddress = toBase58String(i.caller.bytes) | |
108 | + | let pmt = if ((size(i.payments) == 1)) | |
109 | + | then i.payments[0] | |
110 | + | else throw(no_payment_error) | |
111 | + | let ifBlacklisted = getString(this, ("addr_BLACKLISTED_" + calleraddress)) | |
112 | + | let read_start_order_permit_timestamp = Start_Order_Timestamp | |
113 | + | let read_end_order_permit_timestamp = End_Order_Timestamp | |
114 | + | let read_total_pool_liquidity = Total_Pool_Liquidity | |
115 | + | let new_total_pool_liquidity = (read_total_pool_liquidity + pmt.amount) | |
116 | + | let read_OptionCounterID = OptionCounterID | |
117 | + | let OpionExpireCounter = 1 | |
118 | + | let OptionExpireCounterID = (read_OptionCounterID + OpionExpireCounter) | |
119 | + | let PreviousOptionOrders = match getInteger(this, "Total_Option_Orders") { | |
120 | + | case a: Int => | |
121 | + | a | |
122 | + | case _ => | |
123 | + | 0 | |
124 | + | } | |
125 | + | let TotalOptionOrders = (PreviousOptionOrders + 1) | |
126 | + | let PreviousFundsAddedInSpecificOptionOrder = match getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(read_OptionCounterID))) { | |
127 | + | case a: Int => | |
128 | + | a | |
129 | + | case _ => | |
130 | + | 0 | |
131 | + | } | |
132 | + | let TotalFundsAddedInSpecificOptionOrder = (PreviousFundsAddedInSpecificOptionOrder + pmt.amount) | |
133 | + | let PreviousOptionOrdersinSpecificCounter = match getInteger(this, ("Total_Option_Orders_" + toString(read_OptionCounterID))) { | |
134 | + | case a: Int => | |
135 | + | a | |
136 | + | case _ => | |
137 | + | 0 | |
138 | + | } | |
139 | + | let TotalOptionOrdersinSpecificCounter = (PreviousOptionOrdersinSpecificCounter + 1) | |
140 | + | let PreviousPut = match getInteger(this, "Total_Puts") { | |
141 | + | case a: Int => | |
142 | + | a | |
143 | + | case _ => | |
144 | + | 0 | |
145 | + | } | |
146 | + | let TotalPut = (PreviousPut + 1) | |
147 | + | let PreviousPutinSpecificCounter = match getInteger(this, ("Total_Puts_" + toString(read_OptionCounterID))) { | |
148 | + | case a: Int => | |
149 | + | a | |
150 | + | case _ => | |
151 | + | 0 | |
152 | + | } | |
153 | + | let TotalPutinSpecificCounter = (PreviousPutinSpecificCounter + 1) | |
154 | + | let PreviousUserPut = match getInteger(this, (calleraddress + "_Total_Puts")) { | |
155 | + | case a: Int => | |
156 | + | a | |
157 | + | case _ => | |
158 | + | 0 | |
159 | + | } | |
160 | + | let TotalUserPut = (PreviousUserPut + 1) | |
161 | + | let PreviousUserPutinSpecificCounter = match getInteger(this, ((calleraddress + "_Total_Puts_") + toString(read_OptionCounterID))) { | |
162 | + | case a: Int => | |
163 | + | a | |
164 | + | case _ => | |
165 | + | 0 | |
166 | + | } | |
167 | + | let TotalUserPutinSpecificCounter = (PreviousUserPutinSpecificCounter + 1) | |
168 | + | let Funds_at_risk = House_risk | |
169 | + | if ((i.caller != whitelist_address)) | |
170 | + | then throw((("This Address is not Authorized. Only " + toString(whitelist_address)) + " is Authorized Address to Sign it.")) | |
171 | + | else if ((product_launch_timestamp > lastBlock.timestamp)) | |
172 | + | then throw((product_launch_error + toString(product_launch_timestamp))) | |
173 | + | else if ((Oracle_Status == "CLOSE")) | |
174 | + | then throw(closed_oracle_eror) | |
175 | + | else if ((ifBlacklisted == "Yes")) | |
176 | + | then throw((calleraddress + " Address is Blacklisted. Please contact Admin to Whitelist it.")) | |
177 | + | else if (isDefined(pmt.assetId)) | |
178 | + | then throw("Only TN is allowed to deposit at the moment") | |
179 | + | else if ((lastBlock.timestamp >= read_end_order_permit_timestamp)) | |
180 | + | then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.") | |
181 | + | else if ((minimum_order_size > pmt.amount)) | |
182 | + | then throw((("Placed Order Size is less than [" + toString(minimum_order_size)) + "/10^8] TN.")) | |
183 | + | else if ((pmt.amount > maximum_order_size)) | |
184 | + | then throw((("Placed Order Size is more than [" + toString(maximum_order_size)) + "/10^8] TN.")) | |
185 | + | 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(("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)] | |
186 | + | } | |
187 | + | ||
188 | + | ||
189 | + | ||
190 | + | @Callable(i) | |
191 | + | func DepositUserFunds () = { | |
192 | + | let calleraddress = toBase58String(i.caller.bytes) | |
193 | + | let Currency_ID = "TN" | |
194 | + | let pmt = if ((size(i.payments) == 1)) | |
195 | + | then i.payments[0] | |
196 | + | else throw("No payment attached, Please Attach only Whitelisted Tokens in payment[1].") | |
197 | + | let ifBlacklisted = getString(this, ("addr_BLACKLISTED_" + calleraddress)) | |
198 | + | let PreviousUserDeposit = match getInteger(this, ((Currency_ID + "_") + calleraddress)) { | |
199 | + | case a: Int => | |
200 | + | a | |
201 | + | case _ => | |
202 | + | 0 | |
203 | + | } | |
204 | + | let TotalUserDeposit = (PreviousUserDeposit + pmt.amount) | |
205 | + | let PreviousDepositCounterID = match getInteger(this, "Deposit_Counter_ID") { | |
206 | + | case a: Int => | |
207 | + | a | |
208 | + | case _ => | |
209 | + | 0 | |
210 | + | } | |
211 | + | let TotalDepositCounterID = (PreviousDepositCounterID + 1) | |
212 | + | if ((product_launch_timestamp > lastBlock.timestamp)) | |
213 | + | then throw((product_launch_error + toString(product_launch_timestamp))) | |
214 | + | else if ((ifBlacklisted == "Yes")) | |
215 | + | then throw((calleraddress + " Address is Blacklisted. Please contact Admin to Whitelist it.")) | |
216 | + | else if (isDefined(pmt.assetId)) | |
217 | + | then throw("Only TN is allowed to deposit at the moment") | |
218 | + | else [IntegerEntry(((Currency_ID + "_") + calleraddress), TotalUserDeposit), IntegerEntry(((((toString(TotalDepositCounterID) + "_") + Currency_ID) + "_") + calleraddress), pmt.amount), IntegerEntry("Deposit_Counter_ID", TotalDepositCounterID)] | |
219 | + | } | |
220 | + | ||
221 | + |
github/deemru/w8io/169f3d6 32.54 ms ◑