tx · AjMCHutoxVcXxfY6ymXcQctR6tXk6xyDFkvy41Hn3JMg

3MpRMrWeL6G4QyCqmbe7WcEDrsKNgUCY2ac:  -0.01000000 Waves

2020.05.01 15:45 [978984] smart account 3MpRMrWeL6G4QyCqmbe7WcEDrsKNgUCY2ac > SELF 0.00000000 Waves

{ "type": 13, "id": "AjMCHutoxVcXxfY6ymXcQctR6tXk6xyDFkvy41Hn3JMg", "fee": 1000000, "feeAssetId": null, "timestamp": 1588337121816, "version": 1, "sender": "3MpRMrWeL6G4QyCqmbe7WcEDrsKNgUCY2ac", "senderPublicKey": "J1KQ8qSkmsezD7QeqtHsdJaY6ZCLQwbj55MWugVnTSsv", "proofs": [ "5WxVtwcYX7VhmfpfbwvP6FysUcEsPTdVPrgJW7dypYPc353KGoVomqpb53zL1tvqErXLXtumfDL9GK3b7TVJ3kEj" ], "script": "base64:AAIDAAAAAAAAABsIARINCgsICAEBAQgICAgBCBIICgYBAQEBAQEAAABCAAAAABdyZXNjdWVUaW1lQ29uZGl0aW9uTGVzcwIAAAAEbGVzcwAAAAAXcmVzY3VlVGltZUNvbmRpdGlvbk1vcmUCAAAABG1vcmUAAAAAIHJlc2N1ZVRpbWVDYXRlZ29yeVZlcnlQcm9kdWN0aXZlAgAAAA52ZXJ5UHJvZHVjdGl2ZQAAAAAccmVzY3VlVGltZUNhdGVnb3J5UHJvZHVjdGl2ZQIAAAAKcHJvZHVjdGl2ZQAAAAAZcmVzY3VlVGltZUNhdGVnb3J5TmV1dHJhbAIAAAAHbmV1dHJhbAAAAAAdcmVzY3VlVGltZUNhdGVnb3J5RGlzdHJhY3RpbmcCAAAAC2Rpc3RyYWN0aW5nAAAAACFyZXNjdWVUaW1lQ2F0ZWdvcnlWZXJ5RGlzdHJhY3RpbmcCAAAAD3ZlcnlEaXN0cmFjdGluZwAAAAANc3RhdHVzUGVuZGluZwIAAAAHcGVuZGluZwAAAAAMc3RhdHVzQWN0aXZlAgAAAAZhY3RpdmUAAAAAC3N0YXR1c1BhdXNlAgAAAAVwYXVzZQAAAAANc3RhdHVzU3VjY2VzcwIAAAAHc3VjY2VzcwAAAAAKc3RhdHVzRmFpbAIAAAAEZmFpbAAAAAAdaW50ZWdyYXRpb25TZXJ2aWNlc1Jlc2N1ZVRpbWUCAAAACnJlc2N1ZVRpbWUAAAAADXdlZWtEYXlNb25kYXkCAAAABm1vbmRheQAAAAAOd2Vla0RheVR1ZXNkYXkCAAAAB3R1ZXNkYXkAAAAAEHdlZWtEYXlXZWRuZXNkYXkCAAAACXdlZG5lc2RheQAAAAAPd2Vla0RheVRodXJzZGF5AgAAAAh0aHVyc2RheQAAAAANd2Vla0RheUZyaWRheQIAAAAGZnJpZGF5AAAAAA93ZWVrRGF5U2F0dXJkYXkCAAAACHNhdHVyZGF5AAAAAA13ZWVrRGF5U3VuZGF5AgAAAAZzdW5kYXkAAAAACXN0YXR1c0tleQIAAAAGc3RhdHVzAAAAAAduYW1lS2V5AgAAAARuYW1lAAAAAA5kZXNjcmlwdGlvbktleQIAAAALZGVzY3JpcHRpb24AAAAADHN0YXJ0RGF0ZUtleQIAAAAJc3RhcnREYXRlAAAAAAplbmREYXRlS2V5AgAAAAdlbmREYXRlAAAAABxyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50S2V5AgAAABlyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50AAAAABZyZXNjdWVUaW1lQ29uZGl0aW9uS2V5AgAAABNyZXNjdWVUaW1lQ29uZGl0aW9uAAAAABVyZXNjdWVUaW1lQ2F0ZWdvcnlLZXkCAAAAEnJlc2N1ZVRpbWVDYXRlZ29yeQAAAAAMdHJhY2tEYXlzS2V5AgAAAAl0cmFja0RheXMAAAAAD2F0dGVtcHNDb3VudEtleQIAAAAMYXR0ZW1wc0NvdW50AAAAABZmYWlsZWRBdHRlbXB0c0NvdW50S2V5AgAAABNmYWlsZWRBdHRlbXB0c0NvdW50AAAAAAZiZXRLZXkCAAAAA2JldAAAAAANYmV0QXNzZXRJZEtleQIAAAAKYmV0QXNzZXRJZAAAAAAVYWRtaW5BY2NvdW50UHVibGljS2V5AQAAACDr/d4dcILgZmwScdo/jZZr2D5LWRSw4TzVbgTaw/gVKAAAAAAUdXNlckFjY291bnRQdWJsaWNLZXkBAAAAIJoPhSbXpy/EmbOab0CFQ8b1qkTYelRP0ElvWYmVkSRGAAAAABRnb2FsQWNjb3VudFB1YmxpY0tleQEAAAAg/Kt7PuzXkr0RQV6nIWq+ywLDlHcpFNDRIgaWcOUiUC0BAAAAE3Rocm93VW5kZWZpbmVkRXJyb3IAAAAACQAAAgAAAAECAAAADnVuZGVmaW5lZEVycm9yAQAAABZ0aHJvd091dGRhdGVkR29hbEVycm9yAAAAAAkAAAIAAAABAgAAABFvdXRkYXRlZEdvYWxFcnJvcgEAAAAXdGhyb3dOb3RBY3RpdmVHb2FsRXJyb3IAAAAACQAAAgAAAAECAAAAEm5vdEFjdGl2ZUdvYWxFcnJvcgEAAAAgdGhyb3dHb2FsUmVjb3JkQWxyZWFkeUFkZGVkRXJyb3IAAAAACQAAAgAAAAECAAAAFmdvYWxSZWNvcmRBbHJlYWR5QWRkZWQBAAAAGnRocm93SXNOb3RBZG1pbkNhbGxlckVycm9yAAAAAAkAAAIAAAABAgAAABVpc05vdEFkbWluQ2FsbGVyRXJyb3IBAAAAGXRocm93SXNOb3RVc2VyQ2FsbGVyRXJyb3IAAAAACQAAAgAAAAECAAAAFGlzTm90VXNlckNhbGxlckVycm9yAQAAABl0aHJvd0lzTm90R29hbENhbGxlckVycm9yAAAAAAkAAAIAAAABAgAAABRpc05vdEdvYWxDYWxsZXJFcnJvcgAAAAAObm9QYXltZW50RXJyb3ICAAAADm5vUGF5bWVudEVycm9yAQAAACZ0aHJvd1Vuc3VwcG9ydGVkRXZlbnRQYXltZW50QXNzZXRFcnJvcgAAAAIAAAANZXhwZWN0ZWRBc3NldAAAAA1yZWNlaXZlZEFzc2V0CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAhdW5zdXBwb3J0ZWRFdmVudFBheW1lbnRBc3NldEVycm9yAgAAAAEsCQACWAAAAAEFAAAADWV4cGVjdGVkQXNzZXQCAAAAASwJAAJYAAAAAQUAAAANcmVjZWl2ZWRBc3NldAEAAAAddGhyb3dJbnN1ZmZpY2llbnRQYXltZW50RXJyb3IAAAACAAAAFWV4cGVjdGVkUGF5bWVudEFtb3VudAAAABVyZWNlaXZlZFBheW1lbnRBbW91bnQJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABhpbnN1ZmZpY2llbnRQYXltZW50RXJyb3ICAAAAASwJAAGkAAAAAQUAAAAVZXhwZWN0ZWRQYXltZW50QW1vdW50AgAAAAEsCQABpAAAAAEFAAAAFXJlY2VpdmVkUGF5bWVudEFtb3VudAEAAAASZ2V0SW50ZWdlclJlY29yZE9yAAAAAwAAAA5hY2NvdW50QWRkcmVzcwAAAANrZXkAAAAHZGVmYXVsdAMJAQAAAAlpc0RlZmluZWQAAAABCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwUAAAADa2V5BQAAAAdkZWZhdWx0AQAAABBnZXRJbnRlZ2VyUmVjb3JkAAAAAgAAAA5hY2NvdW50QWRkcmVzcwAAAANrZXkJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMFAAAAA2tleQEAAAAQc2V0SW50ZWdlclJlY29yZAAAAAIAAAADa2V5AAAABXZhbHVlCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAADa2V5BQAAAAV2YWx1ZQEAAAALZ2V0U3RyaW5nT3IAAAADAAAADmFjY291bnRBZGRyZXNzAAAAA2tleQAAAAdkZWZhdWx0AwkBAAAACWlzRGVmaW5lZAAAAAEJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5CQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzBQAAAANrZXkFAAAAB2RlZmF1bHQBAAAAD2dldFN0cmluZ1JlY29yZAAAAAIAAAAOYWNjb3VudEFkZHJlc3MAAAADa2V5CQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzBQAAAANrZXkBAAAAD3NldFN0cmluZ1JlY29yZAAAAAIAAAADa2V5AAAABXZhbHVlCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAADa2V5BQAAAAV2YWx1ZQEAAAAQZ2V0Qm9vbGVhblJlY29yZAAAAAIAAAAOYWNjb3VudEFkZHJlc3MAAAADa2V5CQEAAAARQGV4dHJOYXRpdmUoMTA1MSkAAAACBQAAAAR0aGlzBQAAAANrZXkBAAAAEHNldEJvb2xlYW5SZWNvcmQAAAACAAAAA2tleQAAAAV2YWx1ZQkBAAAACURhdGFFbnRyeQAAAAIFAAAAA2tleQUAAAAFdmFsdWUBAAAAD2dldEJpbmFyeVJlY29yZAAAAAIAAAAOYWNjb3VudEFkZHJlc3MAAAADa2V5CQEAAAARQGV4dHJOYXRpdmUoMTA1MikAAAACBQAAAAR0aGlzBQAAAANrZXkBAAAAD3NldEJpbmFyeVJlY29yZAAAAAIAAAADa2V5AAAABXZhbHVlCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAADa2V5BQAAAAV2YWx1ZQEAAAAPaXNSZWNvcmREZWZpbmVkAAAAAQAAAANrZXkDAwMJAQAAAAlpc0RlZmluZWQAAAABCQAEHAAAAAIFAAAABHRoaXMFAAAAA2tleQYJAQAAAAlpc0RlZmluZWQAAAABCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQYJAQAAAAlpc0RlZmluZWQAAAABCQAEGwAAAAIFAAAABHRoaXMFAAAAA2tleQYJAQAAAAlpc0RlZmluZWQAAAABCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQEAAAAKZ2V0UGF5bWVudAAAAAEAAAABaQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCAUAAAABaQAAAAdwYXltZW50BQAAAA5ub1BheW1lbnRFcnJvcgEAAAARZ2V0UGF5bWVudEFzc2V0SWQAAAABAAAAB3BheW1lbnQEAAAAByRtYXRjaDAIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAB2Fzc2V0SWQFAAAAByRtYXRjaDAFAAAAB2Fzc2V0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQEAAAAB2Fzc2V0SWQFAAAAByRtYXRjaDAJAAJZAAAAAQIAAAAFV0FWRVMJAQAAAAV0aHJvdwAAAAABAAAAFGdldENhdGVnb3J5UmVjb3JkS2V5AAAAAgAAAARkYXRlAAAAIHJlc2N1ZVRpbWVDYXRlZ29yeVZlcnlQcm9kdWN0aXZlCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACHJlY29yZF88CQABpAAAAAEFAAAABGRhdGUCAAAADT5fX2NhdGVnb3J5XzwFAAAAIHJlc2N1ZVRpbWVDYXRlZ29yeVZlcnlQcm9kdWN0aXZlAgAAAAE+AQAAABJnZXRSZWNvcmRTdGF0dXNLZXkAAAABAAAABGRhdGUJAAEsAAAAAgkAASwAAAACAgAAAAhyZWNvcmRfPAkAAaQAAAABBQAAAARkYXRlAgAAAAE+AQAAABZzZXRDYXRlZ29yeVJlY29yZFZhbHVlAAAAAwAAAARkYXRlAAAACGNhdGVnb3J5AAAABXZhbHVlCQEAAAAQc2V0SW50ZWdlclJlY29yZAAAAAIJAQAAABRnZXRDYXRlZ29yeVJlY29yZEtleQAAAAIFAAAABGRhdGUFAAAACGNhdGVnb3J5BQAAAAV2YWx1ZQEAAAANaXNBZG1pbkNhbGxlcgAAAAEAAAAPY2FsbGVyUHVibGljS2V5BAAAABNjYWxsZXJBY2NvdW50UHViS2V5CQACWAAAAAEFAAAAD2NhbGxlclB1YmxpY0tleQQAAAASYWRtaW5BY2NvdW50UHViS2V5CQACWAAAAAEFAAAAFWFkbWluQWNjb3VudFB1YmxpY0tleQMJAAAAAAAAAgUAAAATY2FsbGVyQWNjb3VudFB1YktleQUAAAASYWRtaW5BY2NvdW50UHViS2V5BgcBAAAADGlzVXNlckNhbGxlcgAAAAEAAAAPY2FsbGVyUHVibGljS2V5BAAAABNjYWxsZXJBY2NvdW50UHViS2V5CQACWAAAAAEFAAAAD2NhbGxlclB1YmxpY0tleQQAAAARdXNlckFjY291bnRQdWJLZXkJAAJYAAAAAQUAAAAUdXNlckFjY291bnRQdWJsaWNLZXkDCQAAAAAAAAIFAAAAE2NhbGxlckFjY291bnRQdWJLZXkFAAAAEXVzZXJBY2NvdW50UHViS2V5BgcBAAAADGlzR29hbENhbGxlcgAAAAEAAAAPY2FsbGVyUHVibGljS2V5BAAAABNjYWxsZXJBY2NvdW50UHViS2V5CQACWAAAAAEFAAAAD2NhbGxlclB1YmxpY0tleQQAAAARZ29hbEFjY291bnRQdWJLZXkJAAJYAAAAAQUAAAAUZ29hbEFjY291bnRQdWJsaWNLZXkDCQAAAAAAAAIFAAAAE2NhbGxlckFjY291bnRQdWJLZXkFAAAAEWdvYWxBY2NvdW50UHViS2V5BgcBAAAAHXNldFJlY3VldGltZVJlY29yZFN0YXR1c1ZhbHVlAAAABgAAAARkYXRlAAAADnZlcnlQcm9kdWN0aXZlAAAACnByb2R1Y3RpdmUAAAAHbmV1dHJhbAAAAAtkaXN0cmFjdGluZwAAAA92ZXJ5RGlzdHJhY3RpbmcEAAAAD3JlY29yZFN0YXR1c0tleQkBAAAAEmdldFJlY29yZFN0YXR1c0tleQAAAAEFAAAABGRhdGUEAAAAGXJlc2N1ZVRpbWVDb25kaXRpb25BbW91bnQJAQAAABJnZXRJbnRlZ2VyUmVjb3JkT3IAAAADBQAAAAR0aGlzBQAAABxyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50S2V5AAAAAAAAAAAABAAAABNyZXNjdWVUaW1lQ29uZGl0aW9uCQEAAAAPZ2V0U3RyaW5nUmVjb3JkAAAAAgUAAAAEdGhpcwUAAAAWcmVzY3VlVGltZUNvbmRpdGlvbktleQQAAAAScmVzY3VlVGltZUNhdGVnb3J5CQEAAAAPZ2V0U3RyaW5nUmVjb3JkAAAAAgUAAAAEdGhpcwUAAAAVcmVzY3VlVGltZUNhdGVnb3J5S2V5BAAAAAtzdGF0dXNWYWx1ZQMJAAAAAAAAAgUAAAATcmVzY3VlVGltZUNvbmRpdGlvbgUAAAAXcmVzY3VlVGltZUNvbmRpdGlvbkxlc3MDCQAAAAAAAAIFAAAAEnJlc2N1ZVRpbWVDYXRlZ29yeQUAAAAgcmVzY3VlVGltZUNhdGVnb3J5VmVyeVByb2R1Y3RpdmUJAABnAAAAAgUAAAAZcmVzY3VlVGltZUNvbmRpdGlvbkFtb3VudAUAAAAOdmVyeVByb2R1Y3RpdmUDCQAAAAAAAAIFAAAAEnJlc2N1ZVRpbWVDYXRlZ29yeQUAAAAccmVzY3VlVGltZUNhdGVnb3J5UHJvZHVjdGl2ZQkAAGcAAAACBQAAABlyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50BQAAAApwcm9kdWN0aXZlAwkAAAAAAAACBQAAABJyZXNjdWVUaW1lQ2F0ZWdvcnkFAAAAGXJlc2N1ZVRpbWVDYXRlZ29yeU5ldXRyYWwJAABnAAAAAgUAAAAZcmVzY3VlVGltZUNvbmRpdGlvbkFtb3VudAUAAAAHbmV1dHJhbAMJAAAAAAAAAgUAAAAScmVzY3VlVGltZUNhdGVnb3J5BQAAAB1yZXNjdWVUaW1lQ2F0ZWdvcnlEaXN0cmFjdGluZwkAAGcAAAACBQAAABlyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50BQAAAAtkaXN0cmFjdGluZwkAAGcAAAACBQAAABlyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50BQAAAA92ZXJ5RGlzdHJhY3RpbmcDCQAAAAAAAAIFAAAAEnJlc2N1ZVRpbWVDYXRlZ29yeQUAAAAgcmVzY3VlVGltZUNhdGVnb3J5VmVyeVByb2R1Y3RpdmUJAABnAAAAAgUAAAAOdmVyeVByb2R1Y3RpdmUFAAAAGXJlc2N1ZVRpbWVDb25kaXRpb25BbW91bnQDCQAAAAAAAAIFAAAAEnJlc2N1ZVRpbWVDYXRlZ29yeQUAAAAccmVzY3VlVGltZUNhdGVnb3J5UHJvZHVjdGl2ZQkAAGcAAAACBQAAAApwcm9kdWN0aXZlBQAAABlyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50AwkAAAAAAAACBQAAABJyZXNjdWVUaW1lQ2F0ZWdvcnkFAAAAGXJlc2N1ZVRpbWVDYXRlZ29yeU5ldXRyYWwJAABnAAAAAgUAAAAHbmV1dHJhbAUAAAAZcmVzY3VlVGltZUNvbmRpdGlvbkFtb3VudAMJAAAAAAAAAgUAAAAScmVzY3VlVGltZUNhdGVnb3J5BQAAAB1yZXNjdWVUaW1lQ2F0ZWdvcnlEaXN0cmFjdGluZwkAAGcAAAACBQAAAAtkaXN0cmFjdGluZwUAAAAZcmVzY3VlVGltZUNvbmRpdGlvbkFtb3VudAkAAGcAAAACBQAAAA92ZXJ5RGlzdHJhY3RpbmcFAAAAGXJlc2N1ZVRpbWVDb25kaXRpb25BbW91bnQJAQAAABBzZXRCb29sZWFuUmVjb3JkAAAAAgUAAAAPcmVjb3JkU3RhdHVzS2V5BQAAAAtzdGF0dXNWYWx1ZQAAAAIAAAABaQEAAAAFc2V0dXAAAAALAAAABG5hbWUAAAALZGVzY3JpcHRpb24AAAAJc3RhcnREYXRlAAAAB2VuZERhdGUAAAAZcmVzY3VlVGltZUNvbmRpdGlvbkFtb3VudAAAABNyZXNjdWVUaW1lQ29uZGl0aW9uAAAAEnJlc2N1ZVRpbWVDYXRlZ29yeQAAAAl0cmFja0RheXMAAAAMYXR0ZW1wc0NvdW50AAAAA2JldAAAAApiZXRBc3NldElkBAAAAAdwYXltZW50CQEAAAAKZ2V0UGF5bWVudAAAAAEFAAAAAWkEAAAADXBheW1lbnRBbW91bnQIBQAAAAdwYXltZW50AAAABmFtb3VudAQAAAAOcGF5bWVudEFzc2V0SWQJAQAAABFnZXRQYXltZW50QXNzZXRJZAAAAAEFAAAAB3BheW1lbnQEAAAAD2lzTm90VXNlckNhbGxlcgkBAAAAASEAAAABCQEAAAAMaXNVc2VyQ2FsbGVyAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAABppc05vdFN1cHBvcnRlZFBheW1lbnRBc3NldAkBAAAAAiE9AAAAAgUAAAAOcGF5bWVudEFzc2V0SWQJAAJZAAAAAQUAAAAKYmV0QXNzZXRJZAQAAAAVaXNJbnN1ZmZpY2llbnRQYXltZW50CQEAAAACIT0AAAACBQAAAA1wYXltZW50QW1vdW50BQAAAANiZXQDBQAAABppc05vdFN1cHBvcnRlZFBheW1lbnRBc3NldAkBAAAAJnRocm93VW5zdXBwb3J0ZWRFdmVudFBheW1lbnRBc3NldEVycm9yAAAAAgkAAlkAAAABBQAAAApiZXRBc3NldElkBQAAAA5wYXltZW50QXNzZXRJZAMFAAAAFWlzSW5zdWZmaWNpZW50UGF5bWVudAkBAAAAHXRocm93SW5zdWZmaWNpZW50UGF5bWVudEVycm9yAAAAAgUAAAADYmV0BQAAAA1wYXltZW50QW1vdW50AwUAAAAPaXNOb3RVc2VyQ2FsbGVyCQEAAAAZdGhyb3dJc05vdFVzZXJDYWxsZXJFcnJvcgAAAAAJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAAD3NldFN0cmluZ1JlY29yZAAAAAIFAAAACXN0YXR1c0tleQUAAAAMc3RhdHVzQWN0aXZlCQAETAAAAAIJAQAAAA9zZXRTdHJpbmdSZWNvcmQAAAACBQAAAAduYW1lS2V5BQAAAARuYW1lCQAETAAAAAIJAQAAAA9zZXRTdHJpbmdSZWNvcmQAAAACBQAAAA5kZXNjcmlwdGlvbktleQUAAAALZGVzY3JpcHRpb24JAARMAAAAAgkBAAAAEHNldEludGVnZXJSZWNvcmQAAAACBQAAAAxzdGFydERhdGVLZXkFAAAACXN0YXJ0RGF0ZQkABEwAAAACCQEAAAAQc2V0SW50ZWdlclJlY29yZAAAAAIFAAAACmVuZERhdGVLZXkFAAAAB2VuZERhdGUJAARMAAAAAgkBAAAAEHNldEludGVnZXJSZWNvcmQAAAACBQAAABxyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50S2V5BQAAABlyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50CQAETAAAAAIJAQAAAA9zZXRTdHJpbmdSZWNvcmQAAAACBQAAABZyZXNjdWVUaW1lQ29uZGl0aW9uS2V5BQAAABNyZXNjdWVUaW1lQ29uZGl0aW9uCQAETAAAAAIJAQAAAA9zZXRTdHJpbmdSZWNvcmQAAAACBQAAABVyZXNjdWVUaW1lQ2F0ZWdvcnlLZXkFAAAAEnJlc2N1ZVRpbWVDYXRlZ29yeQkABEwAAAACCQEAAAAPc2V0U3RyaW5nUmVjb3JkAAAAAgUAAAAMdHJhY2tEYXlzS2V5BQAAAAl0cmFja0RheXMJAARMAAAAAgkBAAAAD3NldFN0cmluZ1JlY29yZAAAAAIFAAAAD2F0dGVtcHNDb3VudEtleQUAAAAMYXR0ZW1wc0NvdW50CQAETAAAAAIJAQAAABBzZXRJbnRlZ2VyUmVjb3JkAAAAAgUAAAAWZmFpbGVkQXR0ZW1wdHNDb3VudEtleQAAAAAAAAAAAAkABEwAAAACCQEAAAAQc2V0SW50ZWdlclJlY29yZAAAAAIFAAAABmJldEtleQUAAAADYmV0CQAETAAAAAIJAQAAAA9zZXRTdHJpbmdSZWNvcmQAAAACBQAAAA1iZXRBc3NldElkS2V5BQAAAApiZXRBc3NldElkBQAAAANuaWwAAAABaQEAAAAJYWRkUmVjb3JkAAAABgAAAARkYXRlAAAADnZlcnlQcm9kdWN0aXZlAAAACnByb2R1Y3RpdmUAAAAHbmV1dHJhbAAAAAtkaXN0cmFjdGluZwAAAA92ZXJ5RGlzdHJhY3RpbmcEAAAAD3JlY29yZFN0YXR1c0tleQkBAAAAEmdldFJlY29yZFN0YXR1c0tleQAAAAEFAAAABGRhdGUEAAAAEnN0YXJ0RGF0ZVRpbWVzdGFtcAkBAAAAEmdldEludGVnZXJSZWNvcmRPcgAAAAMFAAAABHRoaXMCAAAACXN0YXJ0RGF0ZQAAAAAAAAAAAAQAAAAQZW5kRGF0ZVRpbWVzdGFtcAkBAAAAEmdldEludGVnZXJSZWNvcmRPcgAAAAMFAAAABHRoaXMCAAAAB2VuZERhdGUAAAAAAAAAAAAEAAAADmlzT3V0ZGF0ZWRHb2FsAwkAAGYAAAACBQAAABJzdGFydERhdGVUaW1lc3RhbXAFAAAABGRhdGUJAABmAAAAAgUAAAAEZGF0ZQUAAAAQZW5kRGF0ZVRpbWVzdGFtcAcEAAAAEWlzTm90QWN0aXZlU3RhdHVzCQEAAAACIT0AAAACCQEAAAAPZ2V0U3RyaW5nUmVjb3JkAAAAAgUAAAAEdGhpcwIAAAAGc3RhdHVzBQAAAAxzdGF0dXNBY3RpdmUEAAAAEGlzTm90QWRtaW5DYWxsZXIJAQAAAAEhAAAAAQkBAAAADWlzQWRtaW5DYWxsZXIAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAGGlzR29hbFJlY29yZEFscmVhZHlBZGRlZAkBAAAAD2lzUmVjb3JkRGVmaW5lZAAAAAEFAAAAD3JlY29yZFN0YXR1c0tleQMFAAAAEGlzTm90QWRtaW5DYWxsZXIJAQAAABp0aHJvd0lzTm90QWRtaW5DYWxsZXJFcnJvcgAAAAADBQAAAA5pc091dGRhdGVkR29hbAkBAAAAFnRocm93T3V0ZGF0ZWRHb2FsRXJyb3IAAAAAAwUAAAARaXNOb3RBY3RpdmVTdGF0dXMJAQAAABd0aHJvd05vdEFjdGl2ZUdvYWxFcnJvcgAAAAADBQAAABhpc0dvYWxSZWNvcmRBbHJlYWR5QWRkZWQJAQAAACB0aHJvd0dvYWxSZWNvcmRBbHJlYWR5QWRkZWRFcnJvcgAAAAAJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAAFnNldENhdGVnb3J5UmVjb3JkVmFsdWUAAAADBQAAAARkYXRlBQAAACByZXNjdWVUaW1lQ2F0ZWdvcnlWZXJ5UHJvZHVjdGl2ZQUAAAAOdmVyeVByb2R1Y3RpdmUJAARMAAAAAgkBAAAAFnNldENhdGVnb3J5UmVjb3JkVmFsdWUAAAADBQAAAARkYXRlBQAAABxyZXNjdWVUaW1lQ2F0ZWdvcnlQcm9kdWN0aXZlBQAAAApwcm9kdWN0aXZlCQAETAAAAAIJAQAAABZzZXRDYXRlZ29yeVJlY29yZFZhbHVlAAAAAwUAAAAEZGF0ZQUAAAAZcmVzY3VlVGltZUNhdGVnb3J5TmV1dHJhbAUAAAAHbmV1dHJhbAkABEwAAAACCQEAAAAWc2V0Q2F0ZWdvcnlSZWNvcmRWYWx1ZQAAAAMFAAAABGRhdGUFAAAAHXJlc2N1ZVRpbWVDYXRlZ29yeURpc3RyYWN0aW5nBQAAAAtkaXN0cmFjdGluZwkABEwAAAACCQEAAAAWc2V0Q2F0ZWdvcnlSZWNvcmRWYWx1ZQAAAAMFAAAABGRhdGUFAAAAIXJlc2N1ZVRpbWVDYXRlZ29yeVZlcnlEaXN0cmFjdGluZwUAAAAPdmVyeURpc3RyYWN0aW5nCQAETAAAAAIJAQAAABZzZXRDYXRlZ29yeVJlY29yZFZhbHVlAAAAAwUAAAAEZGF0ZQUAAAAhcmVzY3VlVGltZUNhdGVnb3J5VmVyeURpc3RyYWN0aW5nBQAAAA92ZXJ5RGlzdHJhY3RpbmcJAARMAAAAAgkBAAAAHXNldFJlY3VldGltZVJlY29yZFN0YXR1c1ZhbHVlAAAABgUAAAAEZGF0ZQUAAAAOdmVyeVByb2R1Y3RpdmUFAAAACnByb2R1Y3RpdmUFAAAAB25ldXRyYWwFAAAAC2Rpc3RyYWN0aW5nBQAAAA92ZXJ5RGlzdHJhY3RpbmcFAAAAA25pbAAAAACAGeNp", "chainId": 84, "height": 978984, "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'J1KQ8qSkmsezD7QeqtHsdJaY6ZCLQwbj55MWugVnTSsv'
75+
76+func throwUndefinedError () = throw("undefinedError")
77+
78+
79+func throwOutdatedGoalError () = throw("outdatedGoalError")
80+
81+
82+func throwNotActiveGoalError () = throw("notActiveGoalError")
83+
84+
85+func throwGoalRecordAlreadyAddedError () = throw("goalRecordAlreadyAdded")
86+
87+
88+func throwIsNotAdminCallerError () = throw("isNotAdminCallerError")
89+
90+
91+func throwIsNotUserCallerError () = throw("isNotUserCallerError")
92+
93+
94+func throwIsNotGoalCallerError () = throw("isNotGoalCallerError")
95+
96+
97+let noPaymentError = "noPaymentError"
98+
99+func throwUnsupportedEventPaymentAssetError (expectedAsset,receivedAsset) = throw((((("unsupportedEventPaymentAssetError" + ",") + toBase58String(expectedAsset)) + ",") + toBase58String(receivedAsset)))
100+
101+
102+func throwInsufficientPaymentError (expectedPaymentAmount,receivedPaymentAmount) = throw((((("insufficientPaymentError" + ",") + toString(expectedPaymentAmount)) + ",") + toString(receivedPaymentAmount)))
103+
104+
105+func getIntegerRecordOr (accountAddress,key,default) = if (isDefined(getInteger(this, key)))
106+ then getIntegerValue(this, key)
107+ else default
108+
109+
110+func getIntegerRecord (accountAddress,key) = getIntegerValue(this, key)
111+
112+
113+func setIntegerRecord (key,value) = DataEntry(key, value)
114+
115+
116+func getStringOr (accountAddress,key,default) = if (isDefined(getInteger(this, key)))
117+ then getStringValue(this, key)
118+ else default
119+
120+
121+func getStringRecord (accountAddress,key) = getStringValue(this, key)
122+
123+
124+func setStringRecord (key,value) = DataEntry(key, value)
125+
126+
127+func getBooleanRecord (accountAddress,key) = getBooleanValue(this, key)
128+
129+
130+func setBooleanRecord (key,value) = DataEntry(key, value)
131+
132+
133+func getBinaryRecord (accountAddress,key) = getBinaryValue(this, key)
134+
135+
136+func setBinaryRecord (key,value) = DataEntry(key, value)
137+
138+
139+func isRecordDefined (key) = if (if (if (isDefined(getBinary(this, key)))
140+ then true
141+ else isDefined(getString(this, key)))
142+ then true
143+ else isDefined(getBoolean(this, key)))
144+ then true
145+ else isDefined(getInteger(this, key))
146+
147+
148+func getPayment (i) = valueOrErrorMessage(i.payment, noPaymentError)
149+
150+
151+func getPaymentAssetId (payment) = match payment.assetId {
152+ case assetId: ByteVector =>
153+ assetId
154+ case assetId: Unit =>
155+ fromBase58String("WAVES")
156+ case _ =>
157+ throw()
158+}
159+
160+
161+func getCategoryRecordKey (date,rescueTimeCategoryVeryProductive) = (((("record_<" + toString(date)) + ">__category_<") + rescueTimeCategoryVeryProductive) + ">")
162+
163+
164+func getRecordStatusKey (date) = (("record_<" + toString(date)) + ">")
165+
166+
167+func setCategoryRecordValue (date,category,value) = setIntegerRecord(getCategoryRecordKey(date, category), value)
168+
169+
170+func isAdminCaller (callerPublicKey) = {
171+ let callerAccountPubKey = toBase58String(callerPublicKey)
172+ let adminAccountPubKey = toBase58String(adminAccountPublicKey)
173+ if ((callerAccountPubKey == adminAccountPubKey))
174+ then true
175+ else false
176+ }
177+
178+
179+func isUserCaller (callerPublicKey) = {
180+ let callerAccountPubKey = toBase58String(callerPublicKey)
181+ let userAccountPubKey = toBase58String(userAccountPublicKey)
182+ if ((callerAccountPubKey == userAccountPubKey))
183+ then true
184+ else false
185+ }
186+
187+
188+func isGoalCaller (callerPublicKey) = {
189+ let callerAccountPubKey = toBase58String(callerPublicKey)
190+ let goalAccountPubKey = toBase58String(goalAccountPublicKey)
191+ if ((callerAccountPubKey == goalAccountPubKey))
192+ then true
193+ else false
194+ }
195+
196+
197+func setRecuetimeRecordStatusValue (date,veryProductive,productive,neutral,distracting,veryDistracting) = {
198+ let recordStatusKey = getRecordStatusKey(date)
199+ let rescueTimeConditionAmount = getIntegerRecordOr(this, rescueTimeConditionAmountKey, 0)
200+ let rescueTimeCondition = getStringRecord(this, rescueTimeConditionKey)
201+ let rescueTimeCategory = getStringRecord(this, rescueTimeCategoryKey)
202+ let statusValue = if ((rescueTimeCondition == rescueTimeConditionLess))
203+ then if ((rescueTimeCategory == rescueTimeCategoryVeryProductive))
204+ then (rescueTimeConditionAmount >= veryProductive)
205+ else if ((rescueTimeCategory == rescueTimeCategoryProductive))
206+ then (rescueTimeConditionAmount >= productive)
207+ else if ((rescueTimeCategory == rescueTimeCategoryNeutral))
208+ then (rescueTimeConditionAmount >= neutral)
209+ else if ((rescueTimeCategory == rescueTimeCategoryDistracting))
210+ then (rescueTimeConditionAmount >= distracting)
211+ else (rescueTimeConditionAmount >= veryDistracting)
212+ else if ((rescueTimeCategory == rescueTimeCategoryVeryProductive))
213+ then (veryProductive >= rescueTimeConditionAmount)
214+ else if ((rescueTimeCategory == rescueTimeCategoryProductive))
215+ then (productive >= rescueTimeConditionAmount)
216+ else if ((rescueTimeCategory == rescueTimeCategoryNeutral))
217+ then (neutral >= rescueTimeConditionAmount)
218+ else if ((rescueTimeCategory == rescueTimeCategoryDistracting))
219+ then (distracting >= rescueTimeConditionAmount)
220+ else (veryDistracting >= rescueTimeConditionAmount)
221+ setBooleanRecord(recordStatusKey, statusValue)
222+ }
223+
224+
225+@Callable(i)
226+func setup (name,description,startDate,endDate,rescueTimeConditionAmount,rescueTimeCondition,rescueTimeCategory,trackDays,attempsCount,bet,betAssetId) = {
227+ let payment = getPayment(i)
228+ let paymentAmount = payment.amount
229+ let paymentAssetId = getPaymentAssetId(payment)
230+ let isNotUserCaller = !(isUserCaller(i.callerPublicKey))
231+ let isNotSupportedPaymentAsset = (paymentAssetId != fromBase58String(betAssetId))
232+ let isInsufficientPayment = (paymentAmount != bet)
233+ if (isNotSupportedPaymentAsset)
234+ then throwUnsupportedEventPaymentAssetError(fromBase58String(betAssetId), paymentAssetId)
235+ else if (isInsufficientPayment)
236+ then throwInsufficientPaymentError(bet, paymentAmount)
237+ else if (isNotUserCaller)
238+ then throwIsNotUserCallerError()
239+ 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)])
240+ }
241+
242+
243+
244+@Callable(i)
245+func addRecord (date,veryProductive,productive,neutral,distracting,veryDistracting) = {
246+ let recordStatusKey = getRecordStatusKey(date)
247+ let startDateTimestamp = getIntegerRecordOr(this, "startDate", 0)
248+ let endDateTimestamp = getIntegerRecordOr(this, "endDate", 0)
249+ let isOutdatedGoal = if ((startDateTimestamp > date))
250+ then (date > endDateTimestamp)
251+ else false
252+ let isNotActiveStatus = (getStringRecord(this, "status") != statusActive)
253+ let isNotAdminCaller = !(isAdminCaller(i.callerPublicKey))
254+ let isGoalRecordAlreadyAdded = isRecordDefined(recordStatusKey)
255+ if (isNotAdminCaller)
256+ then throwIsNotAdminCallerError()
257+ else if (isOutdatedGoal)
258+ then throwOutdatedGoalError()
259+ else if (isNotActiveStatus)
260+ then throwNotActiveGoalError()
261+ else if (isGoalRecordAlreadyAdded)
262+ then throwGoalRecordAlreadyAddedError()
263+ 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)])
264+ }
265+
266+

github/deemru/w8io/3ef1775 
40.84 ms