tx · 8rSU6uf66PyWpThNgrGzVVcPirsDZA5x3WKS3FnGLGhi

3MxoQR8V8Fk6wpLSbWWeF4DvN1KoPefTsa6:  -0.01000000 Waves

2020.05.03 21:25 [982236] smart account 3MxoQR8V8Fk6wpLSbWWeF4DvN1KoPefTsa6 > SELF 0.00000000 Waves

{ "type": 13, "id": "8rSU6uf66PyWpThNgrGzVVcPirsDZA5x3WKS3FnGLGhi", "fee": 1000000, "feeAssetId": null, "timestamp": 1588530339959, "version": 1, "sender": "3MxoQR8V8Fk6wpLSbWWeF4DvN1KoPefTsa6", "senderPublicKey": "3pCscdToA3ZQ4oRS25vju3BmhPY9MqYuYNoTQgHW2q5r", "proofs": [ "5WqFYz5BedqjEpGm5LTEBwjfHoFWfcY9u1ssv8HWCsEqv39wNyVeyJyQqrzHejdqPCVu6XSfQso5AGGdn5Ub4yKY" ], "script": "base64:AAIDAAAAAAAAABsIARINCgsICAEBAQgICAEBCBIICgYBAQEBAQEAAABCAAAAABdyZXNjdWVUaW1lQ29uZGl0aW9uTGVzcwIAAAAEbGVzcwAAAAAXcmVzY3VlVGltZUNvbmRpdGlvbk1vcmUCAAAABG1vcmUAAAAAIHJlc2N1ZVRpbWVDYXRlZ29yeVZlcnlQcm9kdWN0aXZlAgAAAA52ZXJ5UHJvZHVjdGl2ZQAAAAAccmVzY3VlVGltZUNhdGVnb3J5UHJvZHVjdGl2ZQIAAAAKcHJvZHVjdGl2ZQAAAAAZcmVzY3VlVGltZUNhdGVnb3J5TmV1dHJhbAIAAAAHbmV1dHJhbAAAAAAdcmVzY3VlVGltZUNhdGVnb3J5RGlzdHJhY3RpbmcCAAAAC2Rpc3RyYWN0aW5nAAAAACFyZXNjdWVUaW1lQ2F0ZWdvcnlWZXJ5RGlzdHJhY3RpbmcCAAAAD3ZlcnlEaXN0cmFjdGluZwAAAAANc3RhdHVzUGVuZGluZwIAAAAHcGVuZGluZwAAAAAMc3RhdHVzQWN0aXZlAgAAAAZhY3RpdmUAAAAAC3N0YXR1c1BhdXNlAgAAAAVwYXVzZQAAAAANc3RhdHVzU3VjY2VzcwIAAAAHc3VjY2VzcwAAAAAKc3RhdHVzRmFpbAIAAAAEZmFpbAAAAAAdaW50ZWdyYXRpb25TZXJ2aWNlc1Jlc2N1ZVRpbWUCAAAACnJlc2N1ZVRpbWUAAAAADXdlZWtEYXlNb25kYXkCAAAABm1vbmRheQAAAAAOd2Vla0RheVR1ZXNkYXkCAAAAB3R1ZXNkYXkAAAAAEHdlZWtEYXlXZWRuZXNkYXkCAAAACXdlZG5lc2RheQAAAAAPd2Vla0RheVRodXJzZGF5AgAAAAh0aHVyc2RheQAAAAANd2Vla0RheUZyaWRheQIAAAAGZnJpZGF5AAAAAA93ZWVrRGF5U2F0dXJkYXkCAAAACHNhdHVyZGF5AAAAAA13ZWVrRGF5U3VuZGF5AgAAAAZzdW5kYXkAAAAAB25hbWVLZXkCAAAABG5hbWUAAAAADmRlc2NyaXB0aW9uS2V5AgAAAAtkZXNjcmlwdGlvbgAAAAAMc3RhcnREYXRlS2V5AgAAAAlzdGFydERhdGUAAAAACmVuZERhdGVLZXkCAAAAB2VuZERhdGUAAAAAHHJlc2N1ZVRpbWVDb25kaXRpb25BbW91bnRLZXkCAAAAGXJlc2N1ZVRpbWVDb25kaXRpb25BbW91bnQAAAAAFnJlc2N1ZVRpbWVDb25kaXRpb25LZXkCAAAAE3Jlc2N1ZVRpbWVDb25kaXRpb24AAAAAFXJlc2N1ZVRpbWVDYXRlZ29yeUtleQIAAAAScmVzY3VlVGltZUNhdGVnb3J5AAAAAAx0cmFja0RheXNLZXkCAAAACXRyYWNrRGF5cwAAAAAPYXR0ZW1wc0NvdW50S2V5AgAAAAxhdHRlbXBzQ291bnQAAAAABmJldEtleQIAAAADYmV0AAAAAA1iZXRBc3NldElkS2V5AgAAAApiZXRBc3NldElkAAAAAAlzdGF0dXNLZXkCAAAABnN0YXR1cwAAAAANZmFpbHNDb3VudEtleQIAAAAKZmFpbHNDb3VudAAAAAAVYWRtaW5BY2NvdW50UHVibGljS2V5AQAAACDr/d4dcILgZmwScdo/jZZr2D5LWRSw4TzVbgTaw/gVKAAAAAAUdXNlckFjY291bnRQdWJsaWNLZXkBAAAAIJoPhSbXpy/EmbOab0CFQ8b1qkTYelRP0ElvWYmVkSRGAAAAABRnb2FsQWNjb3VudFB1YmxpY0tleQEAAAAgKc8Yqalg07jMAQhXkh/Wt8K/xMU00nbKMEu+1D8FvhEBAAAAE3Rocm93VW5kZWZpbmVkRXJyb3IAAAAACQAAAgAAAAECAAAADnVuZGVmaW5lZEVycm9yAQAAABZ0aHJvd091dGRhdGVkR29hbEVycm9yAAAAAAkAAAIAAAABAgAAABFvdXRkYXRlZEdvYWxFcnJvcgEAAAAXdGhyb3dOb3RBY3RpdmVHb2FsRXJyb3IAAAAACQAAAgAAAAECAAAAEm5vdEFjdGl2ZUdvYWxFcnJvcgEAAAAgdGhyb3dHb2FsUmVjb3JkQWxyZWFkeUFkZGVkRXJyb3IAAAAACQAAAgAAAAECAAAAFmdvYWxSZWNvcmRBbHJlYWR5QWRkZWQBAAAAGnRocm93SXNOb3RBZG1pbkNhbGxlckVycm9yAAAAAAkAAAIAAAABAgAAABVpc05vdEFkbWluQ2FsbGVyRXJyb3IBAAAAGXRocm93SXNOb3RVc2VyQ2FsbGVyRXJyb3IAAAAACQAAAgAAAAECAAAAFGlzTm90VXNlckNhbGxlckVycm9yAQAAABl0aHJvd0lzTm90R29hbENhbGxlckVycm9yAAAAAAkAAAIAAAABAgAAABRpc05vdEdvYWxDYWxsZXJFcnJvcgAAAAAObm9QYXltZW50RXJyb3ICAAAADm5vUGF5bWVudEVycm9yAQAAACZ0aHJvd1Vuc3VwcG9ydGVkRXZlbnRQYXltZW50QXNzZXRFcnJvcgAAAAIAAAANZXhwZWN0ZWRBc3NldAAAAA1yZWNlaXZlZEFzc2V0CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAhdW5zdXBwb3J0ZWRFdmVudFBheW1lbnRBc3NldEVycm9yAgAAAAEsCQACWAAAAAEFAAAADWV4cGVjdGVkQXNzZXQCAAAAASwJAAJYAAAAAQUAAAANcmVjZWl2ZWRBc3NldAEAAAAddGhyb3dJbnN1ZmZpY2llbnRQYXltZW50RXJyb3IAAAACAAAAFWV4cGVjdGVkUGF5bWVudEFtb3VudAAAABVyZWNlaXZlZFBheW1lbnRBbW91bnQJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABhpbnN1ZmZpY2llbnRQYXltZW50RXJyb3ICAAAAASwJAAGkAAAAAQUAAAAVZXhwZWN0ZWRQYXltZW50QW1vdW50AgAAAAEsCQABpAAAAAEFAAAAFXJlY2VpdmVkUGF5bWVudEFtb3VudAEAAAASZ2V0SW50ZWdlclJlY29yZE9yAAAAAwAAAA5hY2NvdW50QWRkcmVzcwAAAANrZXkAAAAHZGVmYXVsdAMJAQAAAAlpc0RlZmluZWQAAAABCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwUAAAADa2V5BQAAAAdkZWZhdWx0AQAAABBnZXRJbnRlZ2VyUmVjb3JkAAAAAgAAAA5hY2NvdW50QWRkcmVzcwAAAANrZXkJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMFAAAAA2tleQEAAAAQc2V0SW50ZWdlclJlY29yZAAAAAIAAAADa2V5AAAABXZhbHVlCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAADa2V5BQAAAAV2YWx1ZQEAAAALZ2V0U3RyaW5nT3IAAAADAAAADmFjY291bnRBZGRyZXNzAAAAA2tleQAAAAdkZWZhdWx0AwkBAAAACWlzRGVmaW5lZAAAAAEJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5CQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzBQAAAANrZXkFAAAAB2RlZmF1bHQBAAAAD2dldFN0cmluZ1JlY29yZAAAAAIAAAAOYWNjb3VudEFkZHJlc3MAAAADa2V5CQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzBQAAAANrZXkBAAAAD3NldFN0cmluZ1JlY29yZAAAAAIAAAADa2V5AAAABXZhbHVlCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAADa2V5BQAAAAV2YWx1ZQEAAAAQZ2V0Qm9vbGVhblJlY29yZAAAAAIAAAAOYWNjb3VudEFkZHJlc3MAAAADa2V5CQEAAAARQGV4dHJOYXRpdmUoMTA1MSkAAAACBQAAAAR0aGlzBQAAAANrZXkBAAAAEHNldEJvb2xlYW5SZWNvcmQAAAACAAAAA2tleQAAAAV2YWx1ZQkBAAAACURhdGFFbnRyeQAAAAIFAAAAA2tleQUAAAAFdmFsdWUBAAAAD2dldEJpbmFyeVJlY29yZAAAAAIAAAAOYWNjb3VudEFkZHJlc3MAAAADa2V5CQEAAAARQGV4dHJOYXRpdmUoMTA1MikAAAACBQAAAAR0aGlzBQAAAANrZXkBAAAAD3NldEJpbmFyeVJlY29yZAAAAAIAAAADa2V5AAAABXZhbHVlCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAADa2V5BQAAAAV2YWx1ZQEAAAAPaXNSZWNvcmREZWZpbmVkAAAAAQAAAANrZXkDAwMJAQAAAAlpc0RlZmluZWQAAAABCQAEHAAAAAIFAAAABHRoaXMFAAAAA2tleQYJAQAAAAlpc0RlZmluZWQAAAABCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQYJAQAAAAlpc0RlZmluZWQAAAABCQAEGwAAAAIFAAAABHRoaXMFAAAAA2tleQYJAQAAAAlpc0RlZmluZWQAAAABCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQEAAAAKZ2V0UGF5bWVudAAAAAEAAAABaQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCAUAAAABaQAAAAdwYXltZW50BQAAAA5ub1BheW1lbnRFcnJvcgEAAAARZ2V0UGF5bWVudEFzc2V0SWQAAAABAAAAB3BheW1lbnQEAAAAByRtYXRjaDAIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAB2Fzc2V0SWQFAAAAByRtYXRjaDAFAAAAB2Fzc2V0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQEAAAAB2Fzc2V0SWQFAAAAByRtYXRjaDAJAAJZAAAAAQIAAAAFV0FWRVMJAQAAAAV0aHJvdwAAAAABAAAAFGdldENhdGVnb3J5UmVjb3JkS2V5AAAAAgAAAARkYXRlAAAAIHJlc2N1ZVRpbWVDYXRlZ29yeVZlcnlQcm9kdWN0aXZlCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACHJlY29yZF88CQABpAAAAAEFAAAABGRhdGUCAAAADT5fX2NhdGVnb3J5XzwFAAAAIHJlc2N1ZVRpbWVDYXRlZ29yeVZlcnlQcm9kdWN0aXZlAgAAAAE+AQAAABJnZXRSZWNvcmRTdGF0dXNLZXkAAAABAAAABGRhdGUJAAEsAAAAAgkAASwAAAACAgAAAAhyZWNvcmRfPAkAAaQAAAABBQAAAARkYXRlAgAAAAE+AQAAAA1pc0FkbWluQ2FsbGVyAAAAAQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAE2NhbGxlckFjY291bnRQdWJLZXkJAAJYAAAAAQUAAAAPY2FsbGVyUHVibGljS2V5BAAAABJhZG1pbkFjY291bnRQdWJLZXkJAAJYAAAAAQUAAAAVYWRtaW5BY2NvdW50UHVibGljS2V5AwkAAAAAAAACBQAAABNjYWxsZXJBY2NvdW50UHViS2V5BQAAABJhZG1pbkFjY291bnRQdWJLZXkGBwEAAAAMaXNVc2VyQ2FsbGVyAAAAAQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAE2NhbGxlckFjY291bnRQdWJLZXkJAAJYAAAAAQUAAAAPY2FsbGVyUHVibGljS2V5BAAAABF1c2VyQWNjb3VudFB1YktleQkAAlgAAAABBQAAABR1c2VyQWNjb3VudFB1YmxpY0tleQMJAAAAAAAAAgUAAAATY2FsbGVyQWNjb3VudFB1YktleQUAAAARdXNlckFjY291bnRQdWJLZXkGBwEAAAAMaXNHb2FsQ2FsbGVyAAAAAQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAE2NhbGxlckFjY291bnRQdWJLZXkJAAJYAAAAAQUAAAAPY2FsbGVyUHVibGljS2V5BAAAABFnb2FsQWNjb3VudFB1YktleQkAAlgAAAABBQAAABRnb2FsQWNjb3VudFB1YmxpY0tleQMJAAAAAAAAAgUAAAATY2FsbGVyQWNjb3VudFB1YktleQUAAAARZ29hbEFjY291bnRQdWJLZXkGBwEAAAAYZ2V0UmVjdWV0aW1lUmVjb3JkU3RhdHVzAAAABgAAAARkYXRlAAAADnZlcnlQcm9kdWN0aXZlAAAACnByb2R1Y3RpdmUAAAAHbmV1dHJhbAAAAAtkaXN0cmFjdGluZwAAAA92ZXJ5RGlzdHJhY3RpbmcEAAAAD3JlY29yZFN0YXR1c0tleQkBAAAAEmdldFJlY29yZFN0YXR1c0tleQAAAAEFAAAABGRhdGUEAAAAGXJlc2N1ZVRpbWVDb25kaXRpb25BbW91bnQJAQAAABJnZXRJbnRlZ2VyUmVjb3JkT3IAAAADBQAAAAR0aGlzBQAAABxyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50S2V5AAAAAAAAAAAABAAAABNyZXNjdWVUaW1lQ29uZGl0aW9uCQEAAAAPZ2V0U3RyaW5nUmVjb3JkAAAAAgUAAAAEdGhpcwUAAAAWcmVzY3VlVGltZUNvbmRpdGlvbktleQQAAAAScmVzY3VlVGltZUNhdGVnb3J5CQEAAAAPZ2V0U3RyaW5nUmVjb3JkAAAAAgUAAAAEdGhpcwUAAAAVcmVzY3VlVGltZUNhdGVnb3J5S2V5AwkAAAAAAAACBQAAABNyZXNjdWVUaW1lQ29uZGl0aW9uBQAAABdyZXNjdWVUaW1lQ29uZGl0aW9uTGVzcwMJAAAAAAAAAgUAAAAScmVzY3VlVGltZUNhdGVnb3J5BQAAACByZXNjdWVUaW1lQ2F0ZWdvcnlWZXJ5UHJvZHVjdGl2ZQkAAGcAAAACBQAAABlyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50BQAAAA52ZXJ5UHJvZHVjdGl2ZQMJAAAAAAAAAgUAAAAScmVzY3VlVGltZUNhdGVnb3J5BQAAABxyZXNjdWVUaW1lQ2F0ZWdvcnlQcm9kdWN0aXZlCQAAZwAAAAIFAAAAGXJlc2N1ZVRpbWVDb25kaXRpb25BbW91bnQFAAAACnByb2R1Y3RpdmUDCQAAAAAAAAIFAAAAEnJlc2N1ZVRpbWVDYXRlZ29yeQUAAAAZcmVzY3VlVGltZUNhdGVnb3J5TmV1dHJhbAkAAGcAAAACBQAAABlyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50BQAAAAduZXV0cmFsAwkAAAAAAAACBQAAABJyZXNjdWVUaW1lQ2F0ZWdvcnkFAAAAHXJlc2N1ZVRpbWVDYXRlZ29yeURpc3RyYWN0aW5nCQAAZwAAAAIFAAAAGXJlc2N1ZVRpbWVDb25kaXRpb25BbW91bnQFAAAAC2Rpc3RyYWN0aW5nCQAAZwAAAAIFAAAAGXJlc2N1ZVRpbWVDb25kaXRpb25BbW91bnQFAAAAD3ZlcnlEaXN0cmFjdGluZwMJAAAAAAAAAgUAAAAScmVzY3VlVGltZUNhdGVnb3J5BQAAACByZXNjdWVUaW1lQ2F0ZWdvcnlWZXJ5UHJvZHVjdGl2ZQkAAGcAAAACBQAAAA52ZXJ5UHJvZHVjdGl2ZQUAAAAZcmVzY3VlVGltZUNvbmRpdGlvbkFtb3VudAMJAAAAAAAAAgUAAAAScmVzY3VlVGltZUNhdGVnb3J5BQAAABxyZXNjdWVUaW1lQ2F0ZWdvcnlQcm9kdWN0aXZlCQAAZwAAAAIFAAAACnByb2R1Y3RpdmUFAAAAGXJlc2N1ZVRpbWVDb25kaXRpb25BbW91bnQDCQAAAAAAAAIFAAAAEnJlc2N1ZVRpbWVDYXRlZ29yeQUAAAAZcmVzY3VlVGltZUNhdGVnb3J5TmV1dHJhbAkAAGcAAAACBQAAAAduZXV0cmFsBQAAABlyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50AwkAAAAAAAACBQAAABJyZXNjdWVUaW1lQ2F0ZWdvcnkFAAAAHXJlc2N1ZVRpbWVDYXRlZ29yeURpc3RyYWN0aW5nCQAAZwAAAAIFAAAAC2Rpc3RyYWN0aW5nBQAAABlyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50CQAAZwAAAAIFAAAAD3ZlcnlEaXN0cmFjdGluZwUAAAAZcmVzY3VlVGltZUNvbmRpdGlvbkFtb3VudAEAAAANZ2V0RmFpbHNDb3VudAAAAAEAAAAMcmVjb3JkU3RhdHVzBAAAAApmYWlsc0NvdW50CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzBQAAAA1mYWlsc0NvdW50S2V5AwUAAAAMcmVjb3JkU3RhdHVzBQAAAApmYWlsc0NvdW50CQAAZAAAAAIFAAAACmZhaWxzQ291bnQAAAAAAAAAAAEAAAACAAAAAWkBAAAABXNldHVwAAAACwAAAARuYW1lAAAAC2Rlc2NyaXB0aW9uAAAACXN0YXJ0RGF0ZQAAAAdlbmREYXRlAAAAGXJlc2N1ZVRpbWVDb25kaXRpb25BbW91bnQAAAATcmVzY3VlVGltZUNvbmRpdGlvbgAAABJyZXNjdWVUaW1lQ2F0ZWdvcnkAAAAJdHJhY2tEYXlzAAAADGF0dGVtcHNDb3VudAAAAANiZXQAAAAKYmV0QXNzZXRJZAQAAAAHcGF5bWVudAkBAAAACmdldFBheW1lbnQAAAABBQAAAAFpBAAAAA1wYXltZW50QW1vdW50CAUAAAAHcGF5bWVudAAAAAZhbW91bnQEAAAADnBheW1lbnRBc3NldElkCQEAAAARZ2V0UGF5bWVudEFzc2V0SWQAAAABBQAAAAdwYXltZW50BAAAAA9pc05vdFVzZXJDYWxsZXIJAQAAAAEhAAAAAQkBAAAADGlzVXNlckNhbGxlcgAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAaaXNOb3RTdXBwb3J0ZWRQYXltZW50QXNzZXQJAQAAAAIhPQAAAAIFAAAADnBheW1lbnRBc3NldElkCQACWQAAAAEFAAAACmJldEFzc2V0SWQEAAAAFWlzSW5zdWZmaWNpZW50UGF5bWVudAkBAAAAAiE9AAAAAgUAAAANcGF5bWVudEFtb3VudAUAAAADYmV0AwUAAAAaaXNOb3RTdXBwb3J0ZWRQYXltZW50QXNzZXQJAQAAACZ0aHJvd1Vuc3VwcG9ydGVkRXZlbnRQYXltZW50QXNzZXRFcnJvcgAAAAIJAAJZAAAAAQUAAAAKYmV0QXNzZXRJZAUAAAAOcGF5bWVudEFzc2V0SWQDBQAAABVpc0luc3VmZmljaWVudFBheW1lbnQJAQAAAB10aHJvd0luc3VmZmljaWVudFBheW1lbnRFcnJvcgAAAAIFAAAAA2JldAUAAAANcGF5bWVudEFtb3VudAMFAAAAD2lzTm90VXNlckNhbGxlcgkBAAAAGXRocm93SXNOb3RVc2VyQ2FsbGVyRXJyb3IAAAAACQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAA9zZXRTdHJpbmdSZWNvcmQAAAACBQAAAAlzdGF0dXNLZXkFAAAADHN0YXR1c0FjdGl2ZQkABEwAAAACCQEAAAAPc2V0U3RyaW5nUmVjb3JkAAAAAgUAAAAHbmFtZUtleQUAAAAEbmFtZQkABEwAAAACCQEAAAAPc2V0U3RyaW5nUmVjb3JkAAAAAgUAAAAOZGVzY3JpcHRpb25LZXkFAAAAC2Rlc2NyaXB0aW9uCQAETAAAAAIJAQAAABBzZXRJbnRlZ2VyUmVjb3JkAAAAAgUAAAAMc3RhcnREYXRlS2V5BQAAAAlzdGFydERhdGUJAARMAAAAAgkBAAAAEHNldEludGVnZXJSZWNvcmQAAAACBQAAAAplbmREYXRlS2V5BQAAAAdlbmREYXRlCQAETAAAAAIJAQAAABBzZXRJbnRlZ2VyUmVjb3JkAAAAAgUAAAAccmVzY3VlVGltZUNvbmRpdGlvbkFtb3VudEtleQUAAAAZcmVzY3VlVGltZUNvbmRpdGlvbkFtb3VudAkABEwAAAACCQEAAAAPc2V0U3RyaW5nUmVjb3JkAAAAAgUAAAAWcmVzY3VlVGltZUNvbmRpdGlvbktleQUAAAATcmVzY3VlVGltZUNvbmRpdGlvbgkABEwAAAACCQEAAAAPc2V0U3RyaW5nUmVjb3JkAAAAAgUAAAAVcmVzY3VlVGltZUNhdGVnb3J5S2V5BQAAABJyZXNjdWVUaW1lQ2F0ZWdvcnkJAARMAAAAAgkBAAAAD3NldFN0cmluZ1JlY29yZAAAAAIFAAAADHRyYWNrRGF5c0tleQUAAAAJdHJhY2tEYXlzCQAETAAAAAIJAQAAABBzZXRJbnRlZ2VyUmVjb3JkAAAAAgUAAAAPYXR0ZW1wc0NvdW50S2V5BQAAAAxhdHRlbXBzQ291bnQJAARMAAAAAgkBAAAAEHNldEludGVnZXJSZWNvcmQAAAACBQAAAAZiZXRLZXkFAAAAA2JldAkABEwAAAACCQEAAAAPc2V0U3RyaW5nUmVjb3JkAAAAAgUAAAANYmV0QXNzZXRJZEtleQUAAAAKYmV0QXNzZXRJZAkABEwAAAACCQEAAAAQc2V0SW50ZWdlclJlY29yZAAAAAIFAAAADWZhaWxzQ291bnRLZXkAAAAAAAAAAAAFAAAAA25pbAAAAAFpAQAAAAlhZGRSZWNvcmQAAAAGAAAADWRhdGVUaW1lc3RhbXAAAAAOdmVyeVByb2R1Y3RpdmUAAAAKcHJvZHVjdGl2ZQAAAAduZXV0cmFsAAAAC2Rpc3RyYWN0aW5nAAAAD3ZlcnlEaXN0cmFjdGluZwQAAAAPcmVjb3JkU3RhdHVzS2V5CQEAAAASZ2V0UmVjb3JkU3RhdHVzS2V5AAAAAQUAAAANZGF0ZVRpbWVzdGFtcAQAAAADYmV0CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzBQAAAAZiZXRLZXkEAAAACmJldEFzc2V0SWQJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMFAAAADWJldEFzc2V0SWRLZXkEAAAAEnN0YXJ0RGF0ZVRpbWVzdGFtcAkBAAAAEmdldEludGVnZXJSZWNvcmRPcgAAAAMFAAAABHRoaXMCAAAACXN0YXJ0RGF0ZQAAAAAAAAAAAAQAAAAQZW5kRGF0ZVRpbWVzdGFtcAkBAAAAEmdldEludGVnZXJSZWNvcmRPcgAAAAMFAAAABHRoaXMCAAAAB2VuZERhdGUAAAAAAAAAAAAEAAAADmlzT3V0ZGF0ZWRHb2FsAwkAAGYAAAACBQAAABJzdGFydERhdGVUaW1lc3RhbXAFAAAADWRhdGVUaW1lc3RhbXAJAABmAAAAAgUAAAANZGF0ZVRpbWVzdGFtcAUAAAAQZW5kRGF0ZVRpbWVzdGFtcAcEAAAACWlzRW5kRGF0ZQkAAAAAAAACBQAAAA1kYXRlVGltZXN0YW1wBQAAABBlbmREYXRlVGltZXN0YW1wBAAAABFpc05vdEFjdGl2ZVN0YXR1cwkBAAAAAiE9AAAAAgkBAAAAD2dldFN0cmluZ1JlY29yZAAAAAIFAAAABHRoaXMCAAAABnN0YXR1cwUAAAAMc3RhdHVzQWN0aXZlBAAAABBpc05vdEFkbWluQ2FsbGVyCQEAAAABIQAAAAEJAQAAAA1pc0FkbWluQ2FsbGVyAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAABhpc0dvYWxSZWNvcmRBbHJlYWR5QWRkZWQJAQAAAA9pc1JlY29yZERlZmluZWQAAAABBQAAAA9yZWNvcmRTdGF0dXNLZXkDBQAAABBpc05vdEFkbWluQ2FsbGVyCQEAAAAadGhyb3dJc05vdEFkbWluQ2FsbGVyRXJyb3IAAAAAAwUAAAAOaXNPdXRkYXRlZEdvYWwJAQAAABZ0aHJvd091dGRhdGVkR29hbEVycm9yAAAAAAMFAAAAEWlzTm90QWN0aXZlU3RhdHVzCQEAAAAXdGhyb3dOb3RBY3RpdmVHb2FsRXJyb3IAAAAAAwUAAAAYaXNHb2FsUmVjb3JkQWxyZWFkeUFkZGVkCQEAAAAgdGhyb3dHb2FsUmVjb3JkQWxyZWFkeUFkZGVkRXJyb3IAAAAABAAAAAZzdGF0dXMJAQAAABhnZXRSZWN1ZXRpbWVSZWNvcmRTdGF0dXMAAAAGBQAAAA1kYXRlVGltZXN0YW1wBQAAAA52ZXJ5UHJvZHVjdGl2ZQUAAAAKcHJvZHVjdGl2ZQUAAAAHbmV1dHJhbAUAAAALZGlzdHJhY3RpbmcFAAAAD3ZlcnlEaXN0cmFjdGluZwQAAAAMYXR0ZW1wc0NvdW50CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzBQAAAA9hdHRlbXBzQ291bnRLZXkEAAAACmZhaWxzQ291bnQJAQAAAA1nZXRGYWlsc0NvdW50AAAAAQUAAAAGc3RhdHVzBAAAAAxpc0ZhaWxlZEdvYWwJAABmAAAAAgUAAAAKZmFpbHNDb3VudAUAAAAMYXR0ZW1wc0NvdW50BAAAABFjYXRlZ29yaWVzRW50cmllcwkABEwAAAACCQEAAAAQc2V0SW50ZWdlclJlY29yZAAAAAIJAQAAABRnZXRDYXRlZ29yeVJlY29yZEtleQAAAAIFAAAADWRhdGVUaW1lc3RhbXAFAAAAIHJlc2N1ZVRpbWVDYXRlZ29yeVZlcnlQcm9kdWN0aXZlBQAAAA52ZXJ5UHJvZHVjdGl2ZQkABEwAAAACCQEAAAAQc2V0SW50ZWdlclJlY29yZAAAAAIJAQAAABRnZXRDYXRlZ29yeVJlY29yZEtleQAAAAIFAAAADWRhdGVUaW1lc3RhbXAFAAAAHHJlc2N1ZVRpbWVDYXRlZ29yeVByb2R1Y3RpdmUFAAAACnByb2R1Y3RpdmUJAARMAAAAAgkBAAAAEHNldEludGVnZXJSZWNvcmQAAAACCQEAAAAUZ2V0Q2F0ZWdvcnlSZWNvcmRLZXkAAAACBQAAAA1kYXRlVGltZXN0YW1wBQAAABlyZXNjdWVUaW1lQ2F0ZWdvcnlOZXV0cmFsBQAAAAduZXV0cmFsCQAETAAAAAIJAQAAABBzZXRJbnRlZ2VyUmVjb3JkAAAAAgkBAAAAFGdldENhdGVnb3J5UmVjb3JkS2V5AAAAAgUAAAANZGF0ZVRpbWVzdGFtcAUAAAAdcmVzY3VlVGltZUNhdGVnb3J5RGlzdHJhY3RpbmcFAAAAC2Rpc3RyYWN0aW5nCQAETAAAAAIJAQAAABBzZXRJbnRlZ2VyUmVjb3JkAAAAAgkBAAAAFGdldENhdGVnb3J5UmVjb3JkS2V5AAAAAgUAAAANZGF0ZVRpbWVzdGFtcAUAAAAhcmVzY3VlVGltZUNhdGVnb3J5VmVyeURpc3RyYWN0aW5nBQAAAA92ZXJ5RGlzdHJhY3RpbmcFAAAAA25pbAMFAAAADGlzRmFpbGVkR29hbAQAAAATYWRtaW5BY2NvdW50QWRkcmVzcwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAAVYWRtaW5BY2NvdW50UHVibGljS2V5CQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAPc2V0U3RyaW5nUmVjb3JkAAAAAgUAAAAJc3RhdHVzS2V5BQAAAApzdGF0dXNGYWlsCQAETAAAAAIJAQAAABBzZXRJbnRlZ2VyUmVjb3JkAAAAAgUAAAANZmFpbHNDb3VudEtleQUAAAAKZmFpbHNDb3VudAkABEwAAAACCQEAAAAQc2V0Qm9vbGVhblJlY29yZAAAAAIFAAAAD3JlY29yZFN0YXR1c0tleQUAAAAGc3RhdHVzCQAETAAAAAIJAAGRAAAAAgUAAAARY2F0ZWdvcmllc0VudHJpZXMAAAAAAAAAAAAJAARMAAAAAgkAAZEAAAACBQAAABFjYXRlZ29yaWVzRW50cmllcwAAAAAAAAAAAQkABEwAAAACCQABkQAAAAIFAAAAEWNhdGVnb3JpZXNFbnRyaWVzAAAAAAAAAAACCQAETAAAAAIJAAGRAAAAAgUAAAARY2F0ZWdvcmllc0VudHJpZXMAAAAAAAAAAAMJAARMAAAAAgkAAZEAAAACBQAAABFjYXRlZ29yaWVzRW50cmllcwAAAAAAAAAABAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAE2FkbWluQWNjb3VudEFkZHJlc3MFAAAAA2JldAkAAlkAAAABBQAAAApiZXRBc3NldElkBQAAAANuaWwDAwUAAAAJaXNFbmREYXRlCQEAAAABIQAAAAEFAAAADGlzRmFpbGVkR29hbAcEAAAAEnVzZXJBY2NvdW50QWRkcmVzcwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAAUdXNlckFjY291bnRQdWJsaWNLZXkJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAA9zZXRTdHJpbmdSZWNvcmQAAAACBQAAAAlzdGF0dXNLZXkFAAAADXN0YXR1c1N1Y2Nlc3MJAARMAAAAAgkBAAAAEHNldEludGVnZXJSZWNvcmQAAAACBQAAAA1mYWlsc0NvdW50S2V5BQAAAApmYWlsc0NvdW50CQAETAAAAAIJAQAAABBzZXRCb29sZWFuUmVjb3JkAAAAAgUAAAAPcmVjb3JkU3RhdHVzS2V5BQAAAAZzdGF0dXMJAARMAAAAAgkAAZEAAAACBQAAABFjYXRlZ29yaWVzRW50cmllcwAAAAAAAAAAAAkABEwAAAACCQABkQAAAAIFAAAAEWNhdGVnb3JpZXNFbnRyaWVzAAAAAAAAAAABCQAETAAAAAIJAAGRAAAAAgUAAAARY2F0ZWdvcmllc0VudHJpZXMAAAAAAAAAAAIJAARMAAAAAgkAAZEAAAACBQAAABFjYXRlZ29yaWVzRW50cmllcwAAAAAAAAAAAwkABEwAAAACCQABkQAAAAIFAAAAEWNhdGVnb3JpZXNFbnRyaWVzAAAAAAAAAAAEBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAASdXNlckFjY291bnRBZGRyZXNzBQAAAANiZXQJAAJZAAAAAQUAAAAKYmV0QXNzZXRJZAUAAAADbmlsCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAABBzZXRJbnRlZ2VyUmVjb3JkAAAAAgUAAAANZmFpbHNDb3VudEtleQUAAAAKZmFpbHNDb3VudAkABEwAAAACCQEAAAAQc2V0Qm9vbGVhblJlY29yZAAAAAIFAAAAD3JlY29yZFN0YXR1c0tleQUAAAAGc3RhdHVzCQAETAAAAAIJAAGRAAAAAgUAAAARY2F0ZWdvcmllc0VudHJpZXMAAAAAAAAAAAAJAARMAAAAAgkAAZEAAAACBQAAABFjYXRlZ29yaWVzRW50cmllcwAAAAAAAAAAAQkABEwAAAACCQABkQAAAAIFAAAAEWNhdGVnb3JpZXNFbnRyaWVzAAAAAAAAAAACCQAETAAAAAIJAAGRAAAAAgUAAAARY2F0ZWdvcmllc0VudHJpZXMAAAAAAAAAAAMJAARMAAAAAgkAAZEAAAACBQAAABFjYXRlZ29yaWVzRW50cmllcwAAAAAAAAAABAUAAAADbmlsAAAAAL70ZZ8=", "chainId": 84, "height": 982236, "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 nameKey = "name"
45+
46+let descriptionKey = "description"
47+
48+let startDateKey = "startDate"
49+
50+let endDateKey = "endDate"
51+
52+let rescueTimeConditionAmountKey = "rescueTimeConditionAmount"
53+
54+let rescueTimeConditionKey = "rescueTimeCondition"
55+
56+let rescueTimeCategoryKey = "rescueTimeCategory"
57+
58+let trackDaysKey = "trackDays"
59+
60+let attempsCountKey = "attempsCount"
61+
62+let betKey = "bet"
63+
64+let betAssetIdKey = "betAssetId"
65+
66+let statusKey = "status"
67+
68+let failsCountKey = "failsCount"
69+
70+let adminAccountPublicKey = base58'GtDLBooknaE8G983yMjhygiyhmpR5tebBScKPw277tj9'
71+
72+let userAccountPublicKey = base58'BNPWfnwQQaiG9SxwTXqNi5sRA5oAU2M4QvQUAoGrnNbf'
73+
74+let goalAccountPublicKey = base58'3pCscdToA3ZQ4oRS25vju3BmhPY9MqYuYNoTQgHW2q5r'
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 isAdminCaller (callerPublicKey) = {
168+ let callerAccountPubKey = toBase58String(callerPublicKey)
169+ let adminAccountPubKey = toBase58String(adminAccountPublicKey)
170+ if ((callerAccountPubKey == adminAccountPubKey))
171+ then true
172+ else false
173+ }
174+
175+
176+func isUserCaller (callerPublicKey) = {
177+ let callerAccountPubKey = toBase58String(callerPublicKey)
178+ let userAccountPubKey = toBase58String(userAccountPublicKey)
179+ if ((callerAccountPubKey == userAccountPubKey))
180+ then true
181+ else false
182+ }
183+
184+
185+func isGoalCaller (callerPublicKey) = {
186+ let callerAccountPubKey = toBase58String(callerPublicKey)
187+ let goalAccountPubKey = toBase58String(goalAccountPublicKey)
188+ if ((callerAccountPubKey == goalAccountPubKey))
189+ then true
190+ else false
191+ }
192+
193+
194+func getRecuetimeRecordStatus (date,veryProductive,productive,neutral,distracting,veryDistracting) = {
195+ let recordStatusKey = getRecordStatusKey(date)
196+ let rescueTimeConditionAmount = getIntegerRecordOr(this, rescueTimeConditionAmountKey, 0)
197+ let rescueTimeCondition = getStringRecord(this, rescueTimeConditionKey)
198+ let rescueTimeCategory = getStringRecord(this, rescueTimeCategoryKey)
199+ if ((rescueTimeCondition == rescueTimeConditionLess))
200+ then if ((rescueTimeCategory == rescueTimeCategoryVeryProductive))
201+ then (rescueTimeConditionAmount >= veryProductive)
202+ else if ((rescueTimeCategory == rescueTimeCategoryProductive))
203+ then (rescueTimeConditionAmount >= productive)
204+ else if ((rescueTimeCategory == rescueTimeCategoryNeutral))
205+ then (rescueTimeConditionAmount >= neutral)
206+ else if ((rescueTimeCategory == rescueTimeCategoryDistracting))
207+ then (rescueTimeConditionAmount >= distracting)
208+ else (rescueTimeConditionAmount >= veryDistracting)
209+ else if ((rescueTimeCategory == rescueTimeCategoryVeryProductive))
210+ then (veryProductive >= rescueTimeConditionAmount)
211+ else if ((rescueTimeCategory == rescueTimeCategoryProductive))
212+ then (productive >= rescueTimeConditionAmount)
213+ else if ((rescueTimeCategory == rescueTimeCategoryNeutral))
214+ then (neutral >= rescueTimeConditionAmount)
215+ else if ((rescueTimeCategory == rescueTimeCategoryDistracting))
216+ then (distracting >= rescueTimeConditionAmount)
217+ else (veryDistracting >= rescueTimeConditionAmount)
218+ }
219+
220+
221+func getFailsCount (recordStatus) = {
222+ let failsCount = getIntegerValue(this, failsCountKey)
223+ if (recordStatus)
224+ then failsCount
225+ else (failsCount + 1)
226+ }
227+
228+
229+@Callable(i)
230+func setup (name,description,startDate,endDate,rescueTimeConditionAmount,rescueTimeCondition,rescueTimeCategory,trackDays,attempsCount,bet,betAssetId) = {
231+ let payment = getPayment(i)
232+ let paymentAmount = payment.amount
233+ let paymentAssetId = getPaymentAssetId(payment)
234+ let isNotUserCaller = !(isUserCaller(i.callerPublicKey))
235+ let isNotSupportedPaymentAsset = (paymentAssetId != fromBase58String(betAssetId))
236+ let isInsufficientPayment = (paymentAmount != bet)
237+ if (isNotSupportedPaymentAsset)
238+ then throwUnsupportedEventPaymentAssetError(fromBase58String(betAssetId), paymentAssetId)
239+ else if (isInsufficientPayment)
240+ then throwInsufficientPaymentError(bet, paymentAmount)
241+ else if (isNotUserCaller)
242+ then throwIsNotUserCallerError()
243+ 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), setIntegerRecord(attempsCountKey, attempsCount), setIntegerRecord(betKey, bet), setStringRecord(betAssetIdKey, betAssetId), setIntegerRecord(failsCountKey, 0)])
244+ }
245+
246+
247+
248+@Callable(i)
249+func addRecord (dateTimestamp,veryProductive,productive,neutral,distracting,veryDistracting) = {
250+ let recordStatusKey = getRecordStatusKey(dateTimestamp)
251+ let bet = getIntegerValue(this, betKey)
252+ let betAssetId = getStringValue(this, betAssetIdKey)
253+ let startDateTimestamp = getIntegerRecordOr(this, "startDate", 0)
254+ let endDateTimestamp = getIntegerRecordOr(this, "endDate", 0)
255+ let isOutdatedGoal = if ((startDateTimestamp > dateTimestamp))
256+ then (dateTimestamp > endDateTimestamp)
257+ else false
258+ let isEndDate = (dateTimestamp == endDateTimestamp)
259+ let isNotActiveStatus = (getStringRecord(this, "status") != statusActive)
260+ let isNotAdminCaller = !(isAdminCaller(i.callerPublicKey))
261+ let isGoalRecordAlreadyAdded = isRecordDefined(recordStatusKey)
262+ if (isNotAdminCaller)
263+ then throwIsNotAdminCallerError()
264+ else if (isOutdatedGoal)
265+ then throwOutdatedGoalError()
266+ else if (isNotActiveStatus)
267+ then throwNotActiveGoalError()
268+ else if (isGoalRecordAlreadyAdded)
269+ then throwGoalRecordAlreadyAddedError()
270+ else {
271+ let status = getRecuetimeRecordStatus(dateTimestamp, veryProductive, productive, neutral, distracting, veryDistracting)
272+ let attempsCount = getIntegerValue(this, attempsCountKey)
273+ let failsCount = getFailsCount(status)
274+ let isFailedGoal = (failsCount > attempsCount)
275+ let categoriesEntries = [setIntegerRecord(getCategoryRecordKey(dateTimestamp, rescueTimeCategoryVeryProductive), veryProductive), setIntegerRecord(getCategoryRecordKey(dateTimestamp, rescueTimeCategoryProductive), productive), setIntegerRecord(getCategoryRecordKey(dateTimestamp, rescueTimeCategoryNeutral), neutral), setIntegerRecord(getCategoryRecordKey(dateTimestamp, rescueTimeCategoryDistracting), distracting), setIntegerRecord(getCategoryRecordKey(dateTimestamp, rescueTimeCategoryVeryDistracting), veryDistracting)]
276+ if (isFailedGoal)
277+ then {
278+ let adminAccountAddress = addressFromPublicKey(adminAccountPublicKey)
279+ ScriptResult(WriteSet([setStringRecord(statusKey, statusFail), setIntegerRecord(failsCountKey, failsCount), setBooleanRecord(recordStatusKey, status), categoriesEntries[0], categoriesEntries[1], categoriesEntries[2], categoriesEntries[3], categoriesEntries[4]]), TransferSet([ScriptTransfer(adminAccountAddress, bet, fromBase58String(betAssetId))]))
280+ }
281+ else if (if (isEndDate)
282+ then !(isFailedGoal)
283+ else false)
284+ then {
285+ let userAccountAddress = addressFromPublicKey(userAccountPublicKey)
286+ ScriptResult(WriteSet([setStringRecord(statusKey, statusSuccess), setIntegerRecord(failsCountKey, failsCount), setBooleanRecord(recordStatusKey, status), categoriesEntries[0], categoriesEntries[1], categoriesEntries[2], categoriesEntries[3], categoriesEntries[4]]), TransferSet([ScriptTransfer(userAccountAddress, bet, fromBase58String(betAssetId))]))
287+ }
288+ else WriteSet([setIntegerRecord(failsCountKey, failsCount), setBooleanRecord(recordStatusKey, status), categoriesEntries[0], categoriesEntries[1], categoriesEntries[2], categoriesEntries[3], categoriesEntries[4]])
289+ }
290+ }
291+
292+

github/deemru/w8io/873ac7e 
30.80 ms