tx · ATJvYShcsAWXN1V1vBUrd6oAHDN6LLqu7EW6orfA9Bf1

3MpPyu1q1Rq6RU822NsKcFXCDuSezkATdE5:  -0.01000000 Waves

2020.04.25 14:31 [970149] smart account 3MpPyu1q1Rq6RU822NsKcFXCDuSezkATdE5 > SELF 0.00000000 Waves

{ "type": 13, "id": "ATJvYShcsAWXN1V1vBUrd6oAHDN6LLqu7EW6orfA9Bf1", "fee": 1000000, "feeAssetId": null, "timestamp": 1587814368175, "version": 1, "sender": "3MpPyu1q1Rq6RU822NsKcFXCDuSezkATdE5", "senderPublicKey": "5NT3sxMEbiVM8kLokeTiajczJSQUL2PF6NsH7UThEDu5", "proofs": [ "5YGuYu6XWWA7qUYkLXdvyHjwzEfLG56nVibXHjqJJd5Stabg1TdfKnamWzLvjSdmSvZorZQ8isf1prCXoVRVpuvW" ], "script": "base64:AAIDAAAAAAAAABsIARINCgsICAEBAQgICAgBCBIICgYBAQEBAQEAAABAAAAAABdyZXNjdWVUaW1lQ29uZGl0aW9uTGVzcwIAAAAEbGVzcwAAAAAXcmVzY3VlVGltZUNvbmRpdGlvbk1vcmUCAAAABG1vcmUAAAAAIHJlc2N1ZVRpbWVDYXRlZ29yeVZlcnlQcm9kdWN0aXZlAgAAAA52ZXJ5UHJvZHVjdGl2ZQAAAAAccmVzY3VlVGltZUNhdGVnb3J5UHJvZHVjdGl2ZQIAAAAKcHJvZHVjdGl2ZQAAAAAZcmVzY3VlVGltZUNhdGVnb3J5TmV1dHJhbAIAAAAHbmV1dHJhbAAAAAAdcmVzY3VlVGltZUNhdGVnb3J5RGlzdHJhY3RpbmcCAAAAC2Rpc3RyYWN0aW5nAAAAACFyZXNjdWVUaW1lQ2F0ZWdvcnlWZXJ5RGlzdHJhY3RpbmcCAAAAD3ZlcnlEaXN0cmFjdGluZwAAAAANc3RhdHVzUGVuZGluZwIAAAAHcGVuZGluZwAAAAAMc3RhdHVzQWN0aXZlAgAAAAZhY3RpdmUAAAAAC3N0YXR1c1BhdXNlAgAAAAVwYXVzZQAAAAANc3RhdHVzU3VjY2VzcwIAAAAHc3VjY2VzcwAAAAAKc3RhdHVzRmFpbAIAAAAEZmFpbAAAAAAdaW50ZWdyYXRpb25TZXJ2aWNlc1Jlc2N1ZVRpbWUCAAAACnJlc2N1ZVRpbWUAAAAADXdlZWtEYXlNb25kYXkCAAAABm1vbmRheQAAAAAOd2Vla0RheVR1ZXNkYXkCAAAAB3R1ZXNkYXkAAAAAEHdlZWtEYXlXZWRuZXNkYXkCAAAACXdlZG5lc2RheQAAAAAPd2Vla0RheVRodXJzZGF5AgAAAAh0aHVyc2RheQAAAAANd2Vla0RheUZyaWRheQIAAAAGZnJpZGF5AAAAAA93ZWVrRGF5U2F0dXJkYXkCAAAACHNhdHVyZGF5AAAAAA13ZWVrRGF5U3VuZGF5AgAAAAZzdW5kYXkAAAAACXN0YXR1c0tleQIAAAAGc3RhdHVzAAAAAAduYW1lS2V5AgAAAARuYW1lAAAAAA5kZXNjcmlwdGlvbktleQIAAAALZGVzY3JpcHRpb24AAAAADHN0YXJ0RGF0ZUtleQIAAAAJc3RhcnREYXRlAAAAAAplbmREYXRlS2V5AgAAAAdlbmREYXRlAAAAABxyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50S2V5AgAAABlyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50AAAAABZyZXNjdWVUaW1lQ29uZGl0aW9uS2V5AgAAABNyZXNjdWVUaW1lQ29uZGl0aW9uAAAAABVyZXNjdWVUaW1lQ2F0ZWdvcnlLZXkCAAAAEnJlc2N1ZVRpbWVDYXRlZ29yeQAAAAAMdHJhY2tEYXlzS2V5AgAAAAl0cmFja0RheXMAAAAAD2F0dGVtcHNDb3VudEtleQIAAAAMYXR0ZW1wc0NvdW50AAAAABZmYWlsZWRBdHRlbXB0c0NvdW50S2V5AgAAABNmYWlsZWRBdHRlbXB0c0NvdW50AAAAAAZiZXRLZXkCAAAAA2JldAAAAAANYmV0QXNzZXRJZEtleQIAAAAKYmV0QXNzZXRJZAAAAAAVYWRtaW5BY2NvdW50UHVibGljS2V5AQAAACDr/d4dcILgZmwScdo/jZZr2D5LWRSw4TzVbgTaw/gVKAAAAAAUdXNlckFjY291bnRQdWJsaWNLZXkBAAAAIJoPhSbXpy/EmbOab0CFQ8b1qkTYelRP0ElvWYmVkSRGAAAAABRnb2FsQWNjb3VudFB1YmxpY0tleQEAAAAgQO1mK9KiG5QyTeHEYFVyH2PUgr5wLQEdqcoDiP+DYgQBAAAAE3Rocm93VW5kZWZpbmVkRXJyb3IAAAAACQAAAgAAAAECAAAADnVuZGVmaW5lZEVycm9yAQAAABZ0aHJvd091dGRhdGVkR29hbEVycm9yAAAAAAkAAAIAAAABAgAAABFvdXRkYXRlZEdvYWxFcnJvcgEAAAAXdGhyb3dOb3RBY3RpdmVHb2FsRXJyb3IAAAAACQAAAgAAAAECAAAAEm5vdEFjdGl2ZUdvYWxFcnJvcgEAAAAadGhyb3dJc05vdEFkbWluQ2FsbGVyRXJyb3IAAAAACQAAAgAAAAECAAAAFWlzTm90QWRtaW5DYWxsZXJFcnJvcgEAAAAZdGhyb3dJc05vdFVzZXJDYWxsZXJFcnJvcgAAAAAJAAACAAAAAQIAAAAUaXNOb3RVc2VyQ2FsbGVyRXJyb3IBAAAAGXRocm93SXNOb3RHb2FsQ2FsbGVyRXJyb3IAAAAACQAAAgAAAAECAAAAFGlzTm90R29hbENhbGxlckVycm9yAAAAAA5ub1BheW1lbnRFcnJvcgIAAAAObm9QYXltZW50RXJyb3IBAAAAJnRocm93VW5zdXBwb3J0ZWRFdmVudFBheW1lbnRBc3NldEVycm9yAAAAAgAAAA1leHBlY3RlZEFzc2V0AAAADXJlY2VpdmVkQXNzZXQJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAACF1bnN1cHBvcnRlZEV2ZW50UGF5bWVudEFzc2V0RXJyb3ICAAAAASwJAAJYAAAAAQUAAAANZXhwZWN0ZWRBc3NldAIAAAABLAkAAlgAAAABBQAAAA1yZWNlaXZlZEFzc2V0AQAAAB10aHJvd0luc3VmZmljaWVudFBheW1lbnRFcnJvcgAAAAIAAAAVZXhwZWN0ZWRQYXltZW50QW1vdW50AAAAFXJlY2VpdmVkUGF5bWVudEFtb3VudAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAGGluc3VmZmljaWVudFBheW1lbnRFcnJvcgIAAAABLAkAAaQAAAABBQAAABVleHBlY3RlZFBheW1lbnRBbW91bnQCAAAAASwJAAGkAAAAAQUAAAAVcmVjZWl2ZWRQYXltZW50QW1vdW50AQAAABJnZXRJbnRlZ2VyUmVjb3JkT3IAAAADAAAADmFjY291bnRBZGRyZXNzAAAAA2tleQAAAAdkZWZhdWx0AwkBAAAACWlzRGVmaW5lZAAAAAEJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzBQAAAANrZXkFAAAAB2RlZmF1bHQBAAAAEGdldEludGVnZXJSZWNvcmQAAAACAAAADmFjY291bnRBZGRyZXNzAAAAA2tleQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwUAAAADa2V5AQAAABBzZXRJbnRlZ2VyUmVjb3JkAAAAAgAAAANrZXkAAAAFdmFsdWUJAQAAAAlEYXRhRW50cnkAAAACBQAAAANrZXkFAAAABXZhbHVlAQAAAAtnZXRTdHJpbmdPcgAAAAMAAAAOYWNjb3VudEFkZHJlc3MAAAADa2V5AAAAB2RlZmF1bHQDCQEAAAAJaXNEZWZpbmVkAAAAAQkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMFAAAAA2tleQUAAAAHZGVmYXVsdAEAAAAPZ2V0U3RyaW5nUmVjb3JkAAAAAgAAAA5hY2NvdW50QWRkcmVzcwAAAANrZXkJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMFAAAAA2tleQEAAAAPc2V0U3RyaW5nUmVjb3JkAAAAAgAAAANrZXkAAAAFdmFsdWUJAQAAAAlEYXRhRW50cnkAAAACBQAAAANrZXkFAAAABXZhbHVlAQAAABBnZXRCb29sZWFuUmVjb3JkAAAAAgAAAA5hY2NvdW50QWRkcmVzcwAAAANrZXkJAQAAABFAZXh0ck5hdGl2ZSgxMDUxKQAAAAIFAAAABHRoaXMFAAAAA2tleQEAAAAQc2V0Qm9vbGVhblJlY29yZAAAAAIAAAADa2V5AAAABXZhbHVlCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAADa2V5BQAAAAV2YWx1ZQEAAAAPZ2V0QmluYXJ5UmVjb3JkAAAAAgAAAA5hY2NvdW50QWRkcmVzcwAAAANrZXkJAQAAABFAZXh0ck5hdGl2ZSgxMDUyKQAAAAIFAAAABHRoaXMFAAAAA2tleQEAAAAPc2V0QmluYXJ5UmVjb3JkAAAAAgAAAANrZXkAAAAFdmFsdWUJAQAAAAlEYXRhRW50cnkAAAACBQAAAANrZXkFAAAABXZhbHVlAQAAAA9pc1JlY29yZERlZmluZWQAAAABAAAAA2tleQMDAwkBAAAACWlzRGVmaW5lZAAAAAEJAAQcAAAAAgUAAAAEdGhpcwUAAAADa2V5BgkBAAAACWlzRGVmaW5lZAAAAAEJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5BgkBAAAACWlzRGVmaW5lZAAAAAEJAAQbAAAAAgUAAAAEdGhpcwUAAAADa2V5BgkBAAAACWlzRGVmaW5lZAAAAAEJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AQAAAApnZXRQYXltZW50AAAAAQAAAAFpCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIIBQAAAAFpAAAAB3BheW1lbnQFAAAADm5vUGF5bWVudEVycm9yAQAAABFnZXRQYXltZW50QXNzZXRJZAAAAAEAAAAHcGF5bWVudAQAAAAHJG1hdGNoMAgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAAHYXNzZXRJZAUAAAAHJG1hdGNoMAUAAAAHYXNzZXRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAQAAAAHYXNzZXRJZAUAAAAHJG1hdGNoMAkAAlkAAAABAgAAAAVXQVZFUwkBAAAABXRocm93AAAAAAEAAAAdc2V0UmVjdWV0aW1lUmVjb3JkU3RhdHVzVmFsdWUAAAAGAAAABGRhdGUAAAAOdmVyeVByb2R1Y3RpdmUAAAAKcHJvZHVjdGl2ZQAAAAduZXV0cmFsAAAAC2Rpc3RyYWN0aW5nAAAAD3ZlcnlEaXN0cmFjdGluZwQAAAAPcmVjb3JkU3RhdHVzS2V5CQABLAAAAAIJAAEsAAAAAgIAAAAIcmVjb3JkXzwJAAGkAAAAAQUAAAAEZGF0ZQIAAAABPgQAAAAZcmVzY3VlVGltZUNvbmRpdGlvbkFtb3VudAkBAAAAEmdldEludGVnZXJSZWNvcmRPcgAAAAMFAAAABHRoaXMFAAAAHHJlc2N1ZVRpbWVDb25kaXRpb25BbW91bnRLZXkAAAAAAAAAAAAEAAAAE3Jlc2N1ZVRpbWVDb25kaXRpb24JAQAAAA9nZXRTdHJpbmdSZWNvcmQAAAACBQAAAAR0aGlzBQAAABZyZXNjdWVUaW1lQ29uZGl0aW9uS2V5BAAAABJyZXNjdWVUaW1lQ2F0ZWdvcnkJAQAAAA9nZXRTdHJpbmdSZWNvcmQAAAACBQAAAAR0aGlzBQAAABVyZXNjdWVUaW1lQ2F0ZWdvcnlLZXkEAAAAC3N0YXR1c1ZhbHVlAwkAAAAAAAACBQAAABNyZXNjdWVUaW1lQ29uZGl0aW9uBQAAABdyZXNjdWVUaW1lQ29uZGl0aW9uTGVzcwMJAAAAAAAAAgUAAAAScmVzY3VlVGltZUNhdGVnb3J5BQAAACByZXNjdWVUaW1lQ2F0ZWdvcnlWZXJ5UHJvZHVjdGl2ZQkAAGcAAAACBQAAABlyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50BQAAAA52ZXJ5UHJvZHVjdGl2ZQMJAAAAAAAAAgUAAAAScmVzY3VlVGltZUNhdGVnb3J5BQAAABxyZXNjdWVUaW1lQ2F0ZWdvcnlQcm9kdWN0aXZlCQAAZwAAAAIFAAAAGXJlc2N1ZVRpbWVDb25kaXRpb25BbW91bnQFAAAACnByb2R1Y3RpdmUDCQAAAAAAAAIFAAAAEnJlc2N1ZVRpbWVDYXRlZ29yeQUAAAAZcmVzY3VlVGltZUNhdGVnb3J5TmV1dHJhbAkAAGcAAAACBQAAABlyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50BQAAAAduZXV0cmFsAwkAAAAAAAACBQAAABJyZXNjdWVUaW1lQ2F0ZWdvcnkFAAAAHXJlc2N1ZVRpbWVDYXRlZ29yeURpc3RyYWN0aW5nCQAAZwAAAAIFAAAAGXJlc2N1ZVRpbWVDb25kaXRpb25BbW91bnQFAAAAC2Rpc3RyYWN0aW5nCQAAZwAAAAIFAAAAGXJlc2N1ZVRpbWVDb25kaXRpb25BbW91bnQFAAAAD3ZlcnlEaXN0cmFjdGluZwMJAAAAAAAAAgUAAAAScmVzY3VlVGltZUNhdGVnb3J5BQAAACByZXNjdWVUaW1lQ2F0ZWdvcnlWZXJ5UHJvZHVjdGl2ZQkAAGcAAAACBQAAAA52ZXJ5UHJvZHVjdGl2ZQUAAAAZcmVzY3VlVGltZUNvbmRpdGlvbkFtb3VudAMJAAAAAAAAAgUAAAAScmVzY3VlVGltZUNhdGVnb3J5BQAAABxyZXNjdWVUaW1lQ2F0ZWdvcnlQcm9kdWN0aXZlCQAAZwAAAAIFAAAACnByb2R1Y3RpdmUFAAAAGXJlc2N1ZVRpbWVDb25kaXRpb25BbW91bnQDCQAAAAAAAAIFAAAAEnJlc2N1ZVRpbWVDYXRlZ29yeQUAAAAZcmVzY3VlVGltZUNhdGVnb3J5TmV1dHJhbAkAAGcAAAACBQAAAAduZXV0cmFsBQAAABlyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50AwkAAAAAAAACBQAAABJyZXNjdWVUaW1lQ2F0ZWdvcnkFAAAAHXJlc2N1ZVRpbWVDYXRlZ29yeURpc3RyYWN0aW5nCQAAZwAAAAIFAAAAC2Rpc3RyYWN0aW5nBQAAABlyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50CQAAZwAAAAIFAAAAD3ZlcnlEaXN0cmFjdGluZwUAAAAZcmVzY3VlVGltZUNvbmRpdGlvbkFtb3VudAkBAAAAEHNldEJvb2xlYW5SZWNvcmQAAAACBQAAAA9yZWNvcmRTdGF0dXNLZXkFAAAAC3N0YXR1c1ZhbHVlAQAAABRnZXRDYXRlZ29yeVJlY29yZEtleQAAAAIAAAAEZGF0ZQAAACByZXNjdWVUaW1lQ2F0ZWdvcnlWZXJ5UHJvZHVjdGl2ZQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhyZWNvcmRfPAkAAaQAAAABBQAAAARkYXRlAgAAAA0+X19jYXRlZ29yeV88BQAAACByZXNjdWVUaW1lQ2F0ZWdvcnlWZXJ5UHJvZHVjdGl2ZQIAAAABPgEAAAAWc2V0Q2F0ZWdvcnlSZWNvcmRWYWx1ZQAAAAMAAAAEZGF0ZQAAAAhjYXRlZ29yeQAAAAV2YWx1ZQkBAAAAEHNldEludGVnZXJSZWNvcmQAAAACCQEAAAAUZ2V0Q2F0ZWdvcnlSZWNvcmRLZXkAAAACBQAAAARkYXRlBQAAAAhjYXRlZ29yeQUAAAAFdmFsdWUBAAAADWlzQWRtaW5DYWxsZXIAAAABAAAAD2NhbGxlclB1YmxpY0tleQQAAAATY2FsbGVyQWNjb3VudFB1YktleQkAAlgAAAABBQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAEmFkbWluQWNjb3VudFB1YktleQkAAlgAAAABBQAAABVhZG1pbkFjY291bnRQdWJsaWNLZXkDCQAAAAAAAAIFAAAAE2NhbGxlckFjY291bnRQdWJLZXkFAAAAEmFkbWluQWNjb3VudFB1YktleQYHAQAAAAxpc1VzZXJDYWxsZXIAAAABAAAAD2NhbGxlclB1YmxpY0tleQQAAAATY2FsbGVyQWNjb3VudFB1YktleQkAAlgAAAABBQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAEXVzZXJBY2NvdW50UHViS2V5CQACWAAAAAEFAAAAFHVzZXJBY2NvdW50UHVibGljS2V5AwkAAAAAAAACBQAAABNjYWxsZXJBY2NvdW50UHViS2V5BQAAABF1c2VyQWNjb3VudFB1YktleQYHAQAAAAxpc0dvYWxDYWxsZXIAAAABAAAAD2NhbGxlclB1YmxpY0tleQQAAAATY2FsbGVyQWNjb3VudFB1YktleQkAAlgAAAABBQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAEWdvYWxBY2NvdW50UHViS2V5CQACWAAAAAEFAAAAFGdvYWxBY2NvdW50UHVibGljS2V5AwkAAAAAAAACBQAAABNjYWxsZXJBY2NvdW50UHViS2V5BQAAABFnb2FsQWNjb3VudFB1YktleQYHAAAAAgAAAAFpAQAAAAVzZXR1cAAAAAsAAAAEbmFtZQAAAAtkZXNjcmlwdGlvbgAAAAlzdGFydERhdGUAAAAHZW5kRGF0ZQAAABlyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50AAAAE3Jlc2N1ZVRpbWVDb25kaXRpb24AAAAScmVzY3VlVGltZUNhdGVnb3J5AAAACXRyYWNrRGF5cwAAAAxhdHRlbXBzQ291bnQAAAADYmV0AAAACmJldEFzc2V0SWQEAAAAB3BheW1lbnQJAQAAAApnZXRQYXltZW50AAAAAQUAAAABaQQAAAANcGF5bWVudEFtb3VudAgFAAAAB3BheW1lbnQAAAAGYW1vdW50BAAAAA5wYXltZW50QXNzZXRJZAkBAAAAEWdldFBheW1lbnRBc3NldElkAAAAAQUAAAAHcGF5bWVudAQAAAAPaXNOb3RVc2VyQ2FsbGVyCQEAAAABIQAAAAEJAQAAAAxpc1VzZXJDYWxsZXIAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAGmlzTm90U3VwcG9ydGVkUGF5bWVudEFzc2V0CQEAAAACIT0AAAACBQAAAA5wYXltZW50QXNzZXRJZAkAAlkAAAABBQAAAApiZXRBc3NldElkBAAAABVpc0luc3VmZmljaWVudFBheW1lbnQJAQAAAAIhPQAAAAIFAAAADXBheW1lbnRBbW91bnQFAAAAA2JldAMFAAAAGmlzTm90U3VwcG9ydGVkUGF5bWVudEFzc2V0CQEAAAAmdGhyb3dVbnN1cHBvcnRlZEV2ZW50UGF5bWVudEFzc2V0RXJyb3IAAAACCQACWQAAAAEFAAAACmJldEFzc2V0SWQFAAAADnBheW1lbnRBc3NldElkAwUAAAAVaXNJbnN1ZmZpY2llbnRQYXltZW50CQEAAAAddGhyb3dJbnN1ZmZpY2llbnRQYXltZW50RXJyb3IAAAACBQAAAANiZXQFAAAADXBheW1lbnRBbW91bnQDBQAAAA9pc05vdFVzZXJDYWxsZXIJAQAAABl0aHJvd0lzTm90VXNlckNhbGxlckVycm9yAAAAAAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAPc2V0U3RyaW5nUmVjb3JkAAAAAgUAAAAJc3RhdHVzS2V5BQAAAAxzdGF0dXNBY3RpdmUJAARMAAAAAgkBAAAAD3NldFN0cmluZ1JlY29yZAAAAAIFAAAAB25hbWVLZXkFAAAABG5hbWUJAARMAAAAAgkBAAAAD3NldFN0cmluZ1JlY29yZAAAAAIFAAAADmRlc2NyaXB0aW9uS2V5BQAAAAtkZXNjcmlwdGlvbgkABEwAAAACCQEAAAAQc2V0SW50ZWdlclJlY29yZAAAAAIFAAAADHN0YXJ0RGF0ZUtleQUAAAAJc3RhcnREYXRlCQAETAAAAAIJAQAAABBzZXRJbnRlZ2VyUmVjb3JkAAAAAgUAAAAKZW5kRGF0ZUtleQUAAAAHZW5kRGF0ZQkABEwAAAACCQEAAAAQc2V0SW50ZWdlclJlY29yZAAAAAIFAAAAHHJlc2N1ZVRpbWVDb25kaXRpb25BbW91bnRLZXkFAAAAGXJlc2N1ZVRpbWVDb25kaXRpb25BbW91bnQJAARMAAAAAgkBAAAAD3NldFN0cmluZ1JlY29yZAAAAAIFAAAAFnJlc2N1ZVRpbWVDb25kaXRpb25LZXkFAAAAE3Jlc2N1ZVRpbWVDb25kaXRpb24JAARMAAAAAgkBAAAAD3NldFN0cmluZ1JlY29yZAAAAAIFAAAAFXJlc2N1ZVRpbWVDYXRlZ29yeUtleQUAAAAScmVzY3VlVGltZUNhdGVnb3J5CQAETAAAAAIJAQAAAA9zZXRTdHJpbmdSZWNvcmQAAAACBQAAAAx0cmFja0RheXNLZXkFAAAACXRyYWNrRGF5cwkABEwAAAACCQEAAAAPc2V0U3RyaW5nUmVjb3JkAAAAAgUAAAAPYXR0ZW1wc0NvdW50S2V5BQAAAAxhdHRlbXBzQ291bnQJAARMAAAAAgkBAAAAEHNldEludGVnZXJSZWNvcmQAAAACBQAAABZmYWlsZWRBdHRlbXB0c0NvdW50S2V5AAAAAAAAAAAACQAETAAAAAIJAQAAABBzZXRJbnRlZ2VyUmVjb3JkAAAAAgUAAAAGYmV0S2V5BQAAAANiZXQJAARMAAAAAgkBAAAAD3NldFN0cmluZ1JlY29yZAAAAAIFAAAADWJldEFzc2V0SWRLZXkFAAAACmJldEFzc2V0SWQFAAAAA25pbAAAAAFpAQAAAAlhZGRSZWNvcmQAAAAGAAAABGRhdGUAAAAOdmVyeVByb2R1Y3RpdmUAAAAKcHJvZHVjdGl2ZQAAAAduZXV0cmFsAAAAC2Rpc3RyYWN0aW5nAAAAD3ZlcnlEaXN0cmFjdGluZwQAAAASc3RhcnREYXRlVGltZXN0YW1wCQEAAAASZ2V0SW50ZWdlclJlY29yZE9yAAAAAwUAAAAEdGhpcwIAAAAJc3RhcnREYXRlAAAAAAAAAAAABAAAABBlbmREYXRlVGltZXN0YW1wCQEAAAASZ2V0SW50ZWdlclJlY29yZE9yAAAAAwUAAAAEdGhpcwIAAAAHZW5kRGF0ZQAAAAAAAAAAAAQAAAAOaXNPdXRkYXRlZEdvYWwDCQAAZgAAAAIFAAAAEnN0YXJ0RGF0ZVRpbWVzdGFtcAUAAAAEZGF0ZQkAAGYAAAACBQAAAARkYXRlBQAAABBlbmREYXRlVGltZXN0YW1wBwQAAAARaXNOb3RBY3RpdmVTdGF0dXMJAQAAAAIhPQAAAAIJAQAAAA9nZXRTdHJpbmdSZWNvcmQAAAACBQAAAAR0aGlzAgAAAAZzdGF0dXMFAAAADHN0YXR1c0FjdGl2ZQQAAAAQaXNOb3RBZG1pbkNhbGxlcgkBAAAAASEAAAABCQEAAAANaXNBZG1pbkNhbGxlcgAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQMFAAAAEGlzTm90QWRtaW5DYWxsZXIJAQAAABp0aHJvd0lzTm90QWRtaW5DYWxsZXJFcnJvcgAAAAADBQAAAA5pc091dGRhdGVkR29hbAkBAAAAFnRocm93T3V0ZGF0ZWRHb2FsRXJyb3IAAAAAAwUAAAARaXNOb3RBY3RpdmVTdGF0dXMJAQAAABd0aHJvd05vdEFjdGl2ZUdvYWxFcnJvcgAAAAAJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAAFnNldENhdGVnb3J5UmVjb3JkVmFsdWUAAAADBQAAAARkYXRlBQAAACByZXNjdWVUaW1lQ2F0ZWdvcnlWZXJ5UHJvZHVjdGl2ZQUAAAAOdmVyeVByb2R1Y3RpdmUJAARMAAAAAgkBAAAAFnNldENhdGVnb3J5UmVjb3JkVmFsdWUAAAADBQAAAARkYXRlBQAAABxyZXNjdWVUaW1lQ2F0ZWdvcnlQcm9kdWN0aXZlBQAAAApwcm9kdWN0aXZlCQAETAAAAAIJAQAAABZzZXRDYXRlZ29yeVJlY29yZFZhbHVlAAAAAwUAAAAEZGF0ZQUAAAAZcmVzY3VlVGltZUNhdGVnb3J5TmV1dHJhbAUAAAAHbmV1dHJhbAkABEwAAAACCQEAAAAWc2V0Q2F0ZWdvcnlSZWNvcmRWYWx1ZQAAAAMFAAAABGRhdGUFAAAAHXJlc2N1ZVRpbWVDYXRlZ29yeURpc3RyYWN0aW5nBQAAAAtkaXN0cmFjdGluZwkABEwAAAACCQEAAAAWc2V0Q2F0ZWdvcnlSZWNvcmRWYWx1ZQAAAAMFAAAABGRhdGUFAAAAIXJlc2N1ZVRpbWVDYXRlZ29yeVZlcnlEaXN0cmFjdGluZwUAAAAPdmVyeURpc3RyYWN0aW5nCQAETAAAAAIJAQAAABZzZXRDYXRlZ29yeVJlY29yZFZhbHVlAAAAAwUAAAAEZGF0ZQUAAAAhcmVzY3VlVGltZUNhdGVnb3J5VmVyeURpc3RyYWN0aW5nBQAAAA92ZXJ5RGlzdHJhY3RpbmcJAARMAAAAAgkBAAAAHXNldFJlY3VldGltZVJlY29yZFN0YXR1c1ZhbHVlAAAABgUAAAAEZGF0ZQUAAAAOdmVyeVByb2R1Y3RpdmUFAAAACnByb2R1Y3RpdmUFAAAAB25ldXRyYWwFAAAAC2Rpc3RyYWN0aW5nBQAAAA92ZXJ5RGlzdHJhY3RpbmcFAAAAA25pbAAAAADZBIzi", "chainId": 84, "height": 970149, "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let rescueTimeConditionLess = "less"
5+
6+let rescueTimeConditionMore = "more"
7+
8+let rescueTimeCategoryVeryProductive = "veryProductive"
9+
10+let rescueTimeCategoryProductive = "productive"
11+
12+let rescueTimeCategoryNeutral = "neutral"
13+
14+let rescueTimeCategoryDistracting = "distracting"
15+
16+let rescueTimeCategoryVeryDistracting = "veryDistracting"
17+
18+let statusPending = "pending"
19+
20+let statusActive = "active"
21+
22+let statusPause = "pause"
23+
24+let statusSuccess = "success"
25+
26+let statusFail = "fail"
27+
28+let integrationServicesRescueTime = "rescueTime"
29+
30+let weekDayMonday = "monday"
31+
32+let weekDayTuesday = "tuesday"
33+
34+let weekDayWednesday = "wednesday"
35+
36+let weekDayThursday = "thursday"
37+
38+let weekDayFriday = "friday"
39+
40+let weekDaySaturday = "saturday"
41+
42+let weekDaySunday = "sunday"
43+
44+let statusKey = "status"
45+
46+let nameKey = "name"
47+
48+let descriptionKey = "description"
49+
50+let startDateKey = "startDate"
51+
52+let endDateKey = "endDate"
53+
54+let rescueTimeConditionAmountKey = "rescueTimeConditionAmount"
55+
56+let rescueTimeConditionKey = "rescueTimeCondition"
57+
58+let rescueTimeCategoryKey = "rescueTimeCategory"
59+
60+let trackDaysKey = "trackDays"
61+
62+let attempsCountKey = "attempsCount"
63+
64+let failedAttemptsCountKey = "failedAttemptsCount"
65+
66+let betKey = "bet"
67+
68+let betAssetIdKey = "betAssetId"
69+
70+let adminAccountPublicKey = base58'GtDLBooknaE8G983yMjhygiyhmpR5tebBScKPw277tj9'
71+
72+let userAccountPublicKey = base58'BNPWfnwQQaiG9SxwTXqNi5sRA5oAU2M4QvQUAoGrnNbf'
73+
74+let goalAccountPublicKey = base58'5NT3sxMEbiVM8kLokeTiajczJSQUL2PF6NsH7UThEDu5'
75+
76+func throwUndefinedError () = throw("undefinedError")
77+
78+
79+func throwOutdatedGoalError () = throw("outdatedGoalError")
80+
81+
82+func throwNotActiveGoalError () = throw("notActiveGoalError")
83+
84+
85+func throwIsNotAdminCallerError () = throw("isNotAdminCallerError")
86+
87+
88+func throwIsNotUserCallerError () = throw("isNotUserCallerError")
89+
90+
91+func throwIsNotGoalCallerError () = throw("isNotGoalCallerError")
92+
93+
94+let noPaymentError = "noPaymentError"
95+
96+func throwUnsupportedEventPaymentAssetError (expectedAsset,receivedAsset) = throw((((("unsupportedEventPaymentAssetError" + ",") + toBase58String(expectedAsset)) + ",") + toBase58String(receivedAsset)))
97+
98+
99+func throwInsufficientPaymentError (expectedPaymentAmount,receivedPaymentAmount) = throw((((("insufficientPaymentError" + ",") + toString(expectedPaymentAmount)) + ",") + toString(receivedPaymentAmount)))
100+
101+
102+func getIntegerRecordOr (accountAddress,key,default) = if (isDefined(getInteger(this, key)))
103+ then getIntegerValue(this, key)
104+ else default
105+
106+
107+func getIntegerRecord (accountAddress,key) = getIntegerValue(this, key)
108+
109+
110+func setIntegerRecord (key,value) = DataEntry(key, value)
111+
112+
113+func getStringOr (accountAddress,key,default) = if (isDefined(getInteger(this, key)))
114+ then getStringValue(this, key)
115+ else default
116+
117+
118+func getStringRecord (accountAddress,key) = getStringValue(this, key)
119+
120+
121+func setStringRecord (key,value) = DataEntry(key, value)
122+
123+
124+func getBooleanRecord (accountAddress,key) = getBooleanValue(this, key)
125+
126+
127+func setBooleanRecord (key,value) = DataEntry(key, value)
128+
129+
130+func getBinaryRecord (accountAddress,key) = getBinaryValue(this, key)
131+
132+
133+func setBinaryRecord (key,value) = DataEntry(key, value)
134+
135+
136+func isRecordDefined (key) = if (if (if (isDefined(getBinary(this, key)))
137+ then true
138+ else isDefined(getString(this, key)))
139+ then true
140+ else isDefined(getBoolean(this, key)))
141+ then true
142+ else isDefined(getInteger(this, key))
143+
144+
145+func getPayment (i) = valueOrErrorMessage(i.payment, noPaymentError)
146+
147+
148+func getPaymentAssetId (payment) = match payment.assetId {
149+ case assetId: ByteVector =>
150+ assetId
151+ case assetId: Unit =>
152+ fromBase58String("WAVES")
153+ case _ =>
154+ throw()
155+}
156+
157+
158+func setRecuetimeRecordStatusValue (date,veryProductive,productive,neutral,distracting,veryDistracting) = {
159+ let recordStatusKey = (("record_<" + toString(date)) + ">")
160+ let rescueTimeConditionAmount = getIntegerRecordOr(this, rescueTimeConditionAmountKey, 0)
161+ let rescueTimeCondition = getStringRecord(this, rescueTimeConditionKey)
162+ let rescueTimeCategory = getStringRecord(this, rescueTimeCategoryKey)
163+ let statusValue = if ((rescueTimeCondition == rescueTimeConditionLess))
164+ then if ((rescueTimeCategory == rescueTimeCategoryVeryProductive))
165+ then (rescueTimeConditionAmount >= veryProductive)
166+ else if ((rescueTimeCategory == rescueTimeCategoryProductive))
167+ then (rescueTimeConditionAmount >= productive)
168+ else if ((rescueTimeCategory == rescueTimeCategoryNeutral))
169+ then (rescueTimeConditionAmount >= neutral)
170+ else if ((rescueTimeCategory == rescueTimeCategoryDistracting))
171+ then (rescueTimeConditionAmount >= distracting)
172+ else (rescueTimeConditionAmount >= veryDistracting)
173+ else if ((rescueTimeCategory == rescueTimeCategoryVeryProductive))
174+ then (veryProductive >= rescueTimeConditionAmount)
175+ else if ((rescueTimeCategory == rescueTimeCategoryProductive))
176+ then (productive >= rescueTimeConditionAmount)
177+ else if ((rescueTimeCategory == rescueTimeCategoryNeutral))
178+ then (neutral >= rescueTimeConditionAmount)
179+ else if ((rescueTimeCategory == rescueTimeCategoryDistracting))
180+ then (distracting >= rescueTimeConditionAmount)
181+ else (veryDistracting >= rescueTimeConditionAmount)
182+ setBooleanRecord(recordStatusKey, statusValue)
183+ }
184+
185+
186+func getCategoryRecordKey (date,rescueTimeCategoryVeryProductive) = (((("record_<" + toString(date)) + ">__category_<") + rescueTimeCategoryVeryProductive) + ">")
187+
188+
189+func setCategoryRecordValue (date,category,value) = setIntegerRecord(getCategoryRecordKey(date, category), value)
190+
191+
192+func isAdminCaller (callerPublicKey) = {
193+ let callerAccountPubKey = toBase58String(callerPublicKey)
194+ let adminAccountPubKey = toBase58String(adminAccountPublicKey)
195+ if ((callerAccountPubKey == adminAccountPubKey))
196+ then true
197+ else false
198+ }
199+
200+
201+func isUserCaller (callerPublicKey) = {
202+ let callerAccountPubKey = toBase58String(callerPublicKey)
203+ let userAccountPubKey = toBase58String(userAccountPublicKey)
204+ if ((callerAccountPubKey == userAccountPubKey))
205+ then true
206+ else false
207+ }
208+
209+
210+func isGoalCaller (callerPublicKey) = {
211+ let callerAccountPubKey = toBase58String(callerPublicKey)
212+ let goalAccountPubKey = toBase58String(goalAccountPublicKey)
213+ if ((callerAccountPubKey == goalAccountPubKey))
214+ then true
215+ else false
216+ }
217+
218+
219+@Callable(i)
220+func setup (name,description,startDate,endDate,rescueTimeConditionAmount,rescueTimeCondition,rescueTimeCategory,trackDays,attempsCount,bet,betAssetId) = {
221+ let payment = getPayment(i)
222+ let paymentAmount = payment.amount
223+ let paymentAssetId = getPaymentAssetId(payment)
224+ let isNotUserCaller = !(isUserCaller(i.callerPublicKey))
225+ let isNotSupportedPaymentAsset = (paymentAssetId != fromBase58String(betAssetId))
226+ let isInsufficientPayment = (paymentAmount != bet)
227+ if (isNotSupportedPaymentAsset)
228+ then throwUnsupportedEventPaymentAssetError(fromBase58String(betAssetId), paymentAssetId)
229+ else if (isInsufficientPayment)
230+ then throwInsufficientPaymentError(bet, paymentAmount)
231+ else if (isNotUserCaller)
232+ then throwIsNotUserCallerError()
233+ else WriteSet([setStringRecord(statusKey, statusActive), setStringRecord(nameKey, name), setStringRecord(descriptionKey, description), setIntegerRecord(startDateKey, startDate), setIntegerRecord(endDateKey, endDate), setIntegerRecord(rescueTimeConditionAmountKey, rescueTimeConditionAmount), setStringRecord(rescueTimeConditionKey, rescueTimeCondition), setStringRecord(rescueTimeCategoryKey, rescueTimeCategory), setStringRecord(trackDaysKey, trackDays), setStringRecord(attempsCountKey, attempsCount), setIntegerRecord(failedAttemptsCountKey, 0), setIntegerRecord(betKey, bet), setStringRecord(betAssetIdKey, betAssetId)])
234+ }
235+
236+
237+
238+@Callable(i)
239+func addRecord (date,veryProductive,productive,neutral,distracting,veryDistracting) = {
240+ let startDateTimestamp = getIntegerRecordOr(this, "startDate", 0)
241+ let endDateTimestamp = getIntegerRecordOr(this, "endDate", 0)
242+ let isOutdatedGoal = if ((startDateTimestamp > date))
243+ then (date > endDateTimestamp)
244+ else false
245+ let isNotActiveStatus = (getStringRecord(this, "status") != statusActive)
246+ let isNotAdminCaller = !(isAdminCaller(i.callerPublicKey))
247+ if (isNotAdminCaller)
248+ then throwIsNotAdminCallerError()
249+ else if (isOutdatedGoal)
250+ then throwOutdatedGoalError()
251+ else if (isNotActiveStatus)
252+ then throwNotActiveGoalError()
253+ else WriteSet([setCategoryRecordValue(date, rescueTimeCategoryVeryProductive, veryProductive), setCategoryRecordValue(date, rescueTimeCategoryProductive, productive), setCategoryRecordValue(date, rescueTimeCategoryNeutral, neutral), setCategoryRecordValue(date, rescueTimeCategoryDistracting, distracting), setCategoryRecordValue(date, rescueTimeCategoryVeryDistracting, veryDistracting), setCategoryRecordValue(date, rescueTimeCategoryVeryDistracting, veryDistracting), setRecuetimeRecordStatusValue(date, veryProductive, productive, neutral, distracting, veryDistracting)])
254+ }
255+
256+

github/deemru/w8io/026f985 
74.83 ms