tx · Ei2LzZ2Ef7x7rAmmrNbW8cnxEnqS2DEVw1m2PLKkcGJX 3N7DPtYPCwXnG6pDTNGwXwrxJAQhgVmWqyb: -0.01000000 Waves 2020.04.24 10:11 [968416] smart account 3N7DPtYPCwXnG6pDTNGwXwrxJAQhgVmWqyb > SELF 0.00000000 Waves
{ "type": 13, "id": "Ei2LzZ2Ef7x7rAmmrNbW8cnxEnqS2DEVw1m2PLKkcGJX", "fee": 1000000, "feeAssetId": null, "timestamp": 1587712378360, "version": 1, "sender": "3N7DPtYPCwXnG6pDTNGwXwrxJAQhgVmWqyb", "senderPublicKey": "B4q1hG8ff4DEwGWRdDUVV5CyY9NbSHhukeHQnq1GmezC", "proofs": [ "5sQdtc1e5WLJRUgYoBnX5aQDR9G944y42Ydb2mbChYUHjzzx8eNShU14Gnpom1tC4pEVYJQNQqCg1qLs6jUwpBgw" ], "script": "base64:AAIDAAAAAAAAABsIARINCgsICAEBAQgICAgBCBIICgYBAQEBAQEAAAAvAAAAABdyZXNjdWVUaW1lQ29uZGl0aW9uTGVzcwIAAAAEbGVzcwAAAAAXcmVzY3VlVGltZUNvbmRpdGlvbk1vcmUCAAAABG1vcmUAAAAAIHJlc2N1ZVRpbWVDYXRlZ29yeVZlcnlQcm9kdWN0aXZlAgAAAA52ZXJ5UHJvZHVjdGl2ZQAAAAAccmVzY3VlVGltZUNhdGVnb3J5UHJvZHVjdGl2ZQIAAAAKcHJvZHVjdGl2ZQAAAAAZcmVzY3VlVGltZUNhdGVnb3J5TmV1dHJhbAIAAAAHbmV1dHJhbAAAAAAdcmVzY3VlVGltZUNhdGVnb3J5RGlzdHJhY3RpbmcCAAAAC2Rpc3RyYWN0aW5nAAAAACFyZXNjdWVUaW1lQ2F0ZWdvcnlWZXJ5RGlzdHJhY3RpbmcCAAAAD3ZlcnlEaXN0cmFjdGluZwAAAAANc3RhdHVzUGVuZGluZwIAAAAHcGVuZGluZwAAAAAMc3RhdHVzQWN0aXZlAgAAAAZhY3RpdmUAAAAAC3N0YXR1c1BhdXNlAgAAAAVwYXVzZQAAAAANc3RhdHVzU3VjY2VzcwIAAAAHc3VjY2VzcwAAAAAKc3RhdHVzRmFpbAIAAAAEZmFpbAAAAAAdaW50ZWdyYXRpb25TZXJ2aWNlc1Jlc2N1ZVRpbWUCAAAACnJlc2N1ZVRpbWUAAAAADXdlZWtEYXlNb25kYXkCAAAABm1vbmRheQAAAAAOd2Vla0RheVR1ZXNkYXkCAAAAB3R1ZXNkYXkAAAAAEHdlZWtEYXlXZWRuZXNkYXkCAAAACXdlZG5lc2RheQAAAAAPd2Vla0RheVRodXJzZGF5AgAAAAh0aHVyc2RheQAAAAANd2Vla0RheUZyaWRheQIAAAAGZnJpZGF5AAAAAA93ZWVrRGF5U2F0dXJkYXkCAAAACHNhdHVyZGF5AAAAAA13ZWVrRGF5U3VuZGF5AgAAAAZzdW5kYXkAAAAACXN0YXR1c0tleQIAAAAGc3RhdHVzAAAAABVhZG1pbkFjY291bnRQdWJsaWNLZXkBAAAAIOv93h1wguBmbBJx2j+NlmvYPktZFLDhPNVuBNrD+BUoAAAAABR1c2VyQWNjb3VudFB1YmxpY0tleQEAAAAgmg+FJtenL8SZs5pvQIVDxvWqRNh6VE/QSW9ZiZWRJEYAAAAAFGdvYWxBY2NvdW50UHVibGljS2V5AQAAACCVj+YkncnSL6KPc5nMm6JgqDva3w3FUcXyL1f34Wl9eQEAAAATdGhyb3dVbmRlZmluZWRFcnJvcgAAAAAJAAACAAAAAQIAAAAOdW5kZWZpbmVkRXJyb3IBAAAAFnRocm93T3V0ZGF0ZWRHb2FsRXJyb3IAAAAACQAAAgAAAAECAAAAEW91dGRhdGVkR29hbEVycm9yAQAAABd0aHJvd05vdEFjdGl2ZUdvYWxFcnJvcgAAAAAJAAACAAAAAQIAAAASbm90QWN0aXZlR29hbEVycm9yAQAAABp0aHJvd0lzTm90QWRtaW5DYWxsZXJFcnJvcgAAAAAJAAACAAAAAQIAAAAVaXNOb3RBZG1pbkNhbGxlckVycm9yAQAAABl0aHJvd0lzTm90VXNlckNhbGxlckVycm9yAAAAAAkAAAIAAAABAgAAABRpc05vdFVzZXJDYWxsZXJFcnJvcgEAAAAZdGhyb3dJc05vdEdvYWxDYWxsZXJFcnJvcgAAAAAJAAACAAAAAQIAAAAUaXNOb3RHb2FsQ2FsbGVyRXJyb3IBAAAAEmdldEludGVnZXJSZWNvcmRPcgAAAAMAAAAOYWNjb3VudEFkZHJlc3MAAAADa2V5AAAAB2RlZmF1bHQDCQEAAAAJaXNEZWZpbmVkAAAAAQkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMFAAAAA2tleQUAAAAHZGVmYXVsdAEAAAAQZ2V0SW50ZWdlclJlY29yZAAAAAIAAAAOYWNjb3VudEFkZHJlc3MAAAADa2V5CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzBQAAAANrZXkBAAAAEHNldEludGVnZXJSZWNvcmQAAAACAAAAA2tleQAAAAV2YWx1ZQkBAAAACURhdGFFbnRyeQAAAAIFAAAAA2tleQUAAAAFdmFsdWUBAAAAC2dldFN0cmluZ09yAAAAAwAAAA5hY2NvdW50QWRkcmVzcwAAAANrZXkAAAAHZGVmYXVsdAMJAQAAAAlpc0RlZmluZWQAAAABCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwUAAAADa2V5BQAAAAdkZWZhdWx0AQAAAA9nZXRTdHJpbmdSZWNvcmQAAAACAAAADmFjY291bnRBZGRyZXNzAAAAA2tleQkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwUAAAADa2V5AQAAAA9zZXRTdHJpbmdSZWNvcmQAAAACAAAAA2tleQAAAAV2YWx1ZQkBAAAACURhdGFFbnRyeQAAAAIFAAAAA2tleQUAAAAFdmFsdWUBAAAAEGdldEJvb2xlYW5SZWNvcmQAAAACAAAADmFjY291bnRBZGRyZXNzAAAAA2tleQkBAAAAEUBleHRyTmF0aXZlKDEwNTEpAAAAAgUAAAAEdGhpcwUAAAADa2V5AQAAABBzZXRCb29sZWFuUmVjb3JkAAAAAgAAAANrZXkAAAAFdmFsdWUJAQAAAAlEYXRhRW50cnkAAAACBQAAAANrZXkFAAAABXZhbHVlAQAAAA9nZXRCaW5hcnlSZWNvcmQAAAACAAAADmFjY291bnRBZGRyZXNzAAAAA2tleQkBAAAAEUBleHRyTmF0aXZlKDEwNTIpAAAAAgUAAAAEdGhpcwUAAAADa2V5AQAAAA9zZXRCaW5hcnlSZWNvcmQAAAACAAAAA2tleQAAAAV2YWx1ZQkBAAAACURhdGFFbnRyeQAAAAIFAAAAA2tleQUAAAAFdmFsdWUBAAAAD2lzUmVjb3JkRGVmaW5lZAAAAAEAAAADa2V5AwMDCQEAAAAJaXNEZWZpbmVkAAAAAQkABBwAAAACBQAAAAR0aGlzBQAAAANrZXkGCQEAAAAJaXNEZWZpbmVkAAAAAQkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkGCQEAAAAJaXNEZWZpbmVkAAAAAQkABBsAAAACBQAAAAR0aGlzBQAAAANrZXkGCQEAAAAJaXNEZWZpbmVkAAAAAQkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkBAAAAHXNldFJlY3VldGltZVJlY29yZFN0YXR1c1ZhbHVlAAAABgAAAARkYXRlAAAADnZlcnlQcm9kdWN0aXZlAAAACnByb2R1Y3RpdmUAAAAHbmV1dHJhbAAAAAtkaXN0cmFjdGluZwAAAA92ZXJ5RGlzdHJhY3RpbmcEAAAAD3JlY29yZFN0YXR1c0tleQkAASwAAAACCQABLAAAAAICAAAACHJlY29yZF88CQABpAAAAAEFAAAABGRhdGUCAAAAAT4EAAAAGXJlc2N1ZVRpbWVDb25kaXRpb25BbW91bnQJAQAAABJnZXRJbnRlZ2VyUmVjb3JkT3IAAAADBQAAAAR0aGlzAgAAABlyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50AAAAAAAAAAAABAAAABNyZXNjdWVUaW1lQ29uZGl0aW9uCQEAAAAPZ2V0U3RyaW5nUmVjb3JkAAAAAgUAAAAEdGhpcwIAAAATcmVzY3VlVGltZUNvbmRpdGlvbgQAAAAScmVzY3VlVGltZUNhdGVnb3J5CQEAAAAPZ2V0U3RyaW5nUmVjb3JkAAAAAgUAAAAEdGhpcwIAAAAScmVzY3VlVGltZUNhdGVnb3J5BAAAAAtzdGF0dXNWYWx1ZQMJAAAAAAAAAgUAAAATcmVzY3VlVGltZUNvbmRpdGlvbgUAAAAXcmVzY3VlVGltZUNvbmRpdGlvbkxlc3MDCQAAAAAAAAIFAAAAEnJlc2N1ZVRpbWVDYXRlZ29yeQUAAAAgcmVzY3VlVGltZUNhdGVnb3J5VmVyeVByb2R1Y3RpdmUJAABnAAAAAgUAAAAZcmVzY3VlVGltZUNvbmRpdGlvbkFtb3VudAUAAAAOdmVyeVByb2R1Y3RpdmUDCQAAAAAAAAIFAAAAEnJlc2N1ZVRpbWVDYXRlZ29yeQUAAAAccmVzY3VlVGltZUNhdGVnb3J5UHJvZHVjdGl2ZQkAAGcAAAACBQAAABlyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50BQAAAApwcm9kdWN0aXZlAwkAAAAAAAACBQAAABJyZXNjdWVUaW1lQ2F0ZWdvcnkFAAAAGXJlc2N1ZVRpbWVDYXRlZ29yeU5ldXRyYWwJAABnAAAAAgUAAAAZcmVzY3VlVGltZUNvbmRpdGlvbkFtb3VudAUAAAAHbmV1dHJhbAMJAAAAAAAAAgUAAAAScmVzY3VlVGltZUNhdGVnb3J5BQAAAB1yZXNjdWVUaW1lQ2F0ZWdvcnlEaXN0cmFjdGluZwkAAGcAAAACBQAAABlyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50BQAAAAtkaXN0cmFjdGluZwkAAGcAAAACBQAAABlyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50BQAAAA92ZXJ5RGlzdHJhY3RpbmcDCQAAAAAAAAIFAAAAEnJlc2N1ZVRpbWVDYXRlZ29yeQUAAAAgcmVzY3VlVGltZUNhdGVnb3J5VmVyeVByb2R1Y3RpdmUJAABnAAAAAgUAAAAOdmVyeVByb2R1Y3RpdmUFAAAAGXJlc2N1ZVRpbWVDb25kaXRpb25BbW91bnQDCQAAAAAAAAIFAAAAEnJlc2N1ZVRpbWVDYXRlZ29yeQUAAAAccmVzY3VlVGltZUNhdGVnb3J5UHJvZHVjdGl2ZQkAAGcAAAACBQAAAApwcm9kdWN0aXZlBQAAABlyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50AwkAAAAAAAACBQAAABJyZXNjdWVUaW1lQ2F0ZWdvcnkFAAAAGXJlc2N1ZVRpbWVDYXRlZ29yeU5ldXRyYWwJAABnAAAAAgUAAAAHbmV1dHJhbAUAAAAZcmVzY3VlVGltZUNvbmRpdGlvbkFtb3VudAMJAAAAAAAAAgUAAAAScmVzY3VlVGltZUNhdGVnb3J5BQAAAB1yZXNjdWVUaW1lQ2F0ZWdvcnlEaXN0cmFjdGluZwkAAGcAAAACBQAAAAtkaXN0cmFjdGluZwUAAAAZcmVzY3VlVGltZUNvbmRpdGlvbkFtb3VudAkAAGcAAAACBQAAAA92ZXJ5RGlzdHJhY3RpbmcFAAAAGXJlc2N1ZVRpbWVDb25kaXRpb25BbW91bnQJAQAAABBzZXRCb29sZWFuUmVjb3JkAAAAAgUAAAAPcmVjb3JkU3RhdHVzS2V5BQAAAAtzdGF0dXNWYWx1ZQEAAAAUZ2V0Q2F0ZWdvcnlSZWNvcmRLZXkAAAACAAAABGRhdGUAAAAgcmVzY3VlVGltZUNhdGVnb3J5VmVyeVByb2R1Y3RpdmUJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIcmVjb3JkXzwJAAGkAAAAAQUAAAAEZGF0ZQIAAAANPl9fY2F0ZWdvcnlfPAUAAAAgcmVzY3VlVGltZUNhdGVnb3J5VmVyeVByb2R1Y3RpdmUCAAAAAT4BAAAAFnNldENhdGVnb3J5UmVjb3JkVmFsdWUAAAADAAAABGRhdGUAAAAIY2F0ZWdvcnkAAAAFdmFsdWUJAQAAABBzZXRJbnRlZ2VyUmVjb3JkAAAAAgkBAAAAFGdldENhdGVnb3J5UmVjb3JkS2V5AAAAAgUAAAAEZGF0ZQUAAAAIY2F0ZWdvcnkFAAAABXZhbHVlAQAAAA1pc0FkbWluQ2FsbGVyAAAAAQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAE2NhbGxlckFjY291bnRQdWJLZXkJAAJYAAAAAQUAAAAPY2FsbGVyUHVibGljS2V5BAAAABJhZG1pbkFjY291bnRQdWJLZXkJAAJYAAAAAQUAAAAVYWRtaW5BY2NvdW50UHVibGljS2V5AwkAAAAAAAACBQAAABNjYWxsZXJBY2NvdW50UHViS2V5BQAAABJhZG1pbkFjY291bnRQdWJLZXkGBwEAAAAMaXNVc2VyQ2FsbGVyAAAAAQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAE2NhbGxlckFjY291bnRQdWJLZXkJAAJYAAAAAQUAAAAPY2FsbGVyUHVibGljS2V5BAAAABF1c2VyQWNjb3VudFB1YktleQkAAlgAAAABBQAAABR1c2VyQWNjb3VudFB1YmxpY0tleQMJAAAAAAAAAgUAAAATY2FsbGVyQWNjb3VudFB1YktleQUAAAARdXNlckFjY291bnRQdWJLZXkGBwEAAAAMaXNHb2FsQ2FsbGVyAAAAAQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAE2NhbGxlckFjY291bnRQdWJLZXkJAAJYAAAAAQUAAAAPY2FsbGVyUHVibGljS2V5BAAAABFnb2FsQWNjb3VudFB1YktleQkAAlgAAAABBQAAABRnb2FsQWNjb3VudFB1YmxpY0tleQMJAAAAAAAAAgUAAAATY2FsbGVyQWNjb3VudFB1YktleQUAAAARZ29hbEFjY291bnRQdWJLZXkGBwAAAAIAAAABaQEAAAAFc2V0dXAAAAALAAAABG5hbWUAAAALZGVzY3JpcHRpb24AAAAJc3RhcnREYXRlAAAAB2VuZERhdGUAAAAZcmVzY3VlVGltZUNvbmRpdGlvbkFtb3VudAAAABNyZXNjdWVUaW1lQ29uZGl0aW9uAAAAEnJlc2N1ZVRpbWVDYXRlZ29yeQAAAAl0cmFja0RheXMAAAAMYXR0ZW1wc0NvdW50AAAAA2JldAAAAAhiZXRBc3NldAQAAAAQaXNOb3RBZG1pbkNhbGxlcgkBAAAAASEAAAABCQEAAAANaXNBZG1pbkNhbGxlcgAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQMFAAAAEGlzTm90QWRtaW5DYWxsZXIJAQAAABp0aHJvd0lzTm90QWRtaW5DYWxsZXJFcnJvcgAAAAAJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAAD3NldFN0cmluZ1JlY29yZAAAAAICAAAABnN0YXR1cwUAAAAMc3RhdHVzQWN0aXZlCQAETAAAAAIJAQAAAA9zZXRTdHJpbmdSZWNvcmQAAAACAgAAAARuYW1lBQAAAARuYW1lCQAETAAAAAIJAQAAAA9zZXRTdHJpbmdSZWNvcmQAAAACAgAAAAtkZXNjcmlwdGlvbgUAAAALZGVzY3JpcHRpb24JAARMAAAAAgkBAAAAEHNldEludGVnZXJSZWNvcmQAAAACAgAAAAlzdGFydERhdGUFAAAACXN0YXJ0RGF0ZQkABEwAAAACCQEAAAAQc2V0SW50ZWdlclJlY29yZAAAAAICAAAAB2VuZERhdGUFAAAAB2VuZERhdGUJAARMAAAAAgkBAAAAEHNldEludGVnZXJSZWNvcmQAAAACAgAAABlyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50BQAAABlyZXNjdWVUaW1lQ29uZGl0aW9uQW1vdW50CQAETAAAAAIJAQAAAA9zZXRTdHJpbmdSZWNvcmQAAAACAgAAABNyZXNjdWVUaW1lQ29uZGl0aW9uBQAAABNyZXNjdWVUaW1lQ29uZGl0aW9uCQAETAAAAAIJAQAAAA9zZXRTdHJpbmdSZWNvcmQAAAACAgAAABJyZXNjdWVUaW1lQ2F0ZWdvcnkFAAAAEnJlc2N1ZVRpbWVDYXRlZ29yeQkABEwAAAACCQEAAAAPc2V0U3RyaW5nUmVjb3JkAAAAAgIAAAAJdHJhY2tEYXlzBQAAAAl0cmFja0RheXMJAARMAAAAAgkBAAAAD3NldFN0cmluZ1JlY29yZAAAAAICAAAADGF0dGVtcHNDb3VudAUAAAAMYXR0ZW1wc0NvdW50CQAETAAAAAIJAQAAABBzZXRJbnRlZ2VyUmVjb3JkAAAAAgIAAAATZmFpbGVkQXR0ZW1wdHNDb3VudAAAAAAAAAAAAAkABEwAAAACCQEAAAAQc2V0SW50ZWdlclJlY29yZAAAAAICAAAAA2JldAUAAAADYmV0CQAETAAAAAIJAQAAAA9zZXRTdHJpbmdSZWNvcmQAAAACAgAAAAhiZXRBc3NldAUAAAAIYmV0QXNzZXQFAAAAA25pbAAAAAFpAQAAAAlhZGRSZWNvcmQAAAAGAAAABGRhdGUAAAAOdmVyeVByb2R1Y3RpdmUAAAAKcHJvZHVjdGl2ZQAAAAduZXV0cmFsAAAAC2Rpc3RyYWN0aW5nAAAAD3ZlcnlEaXN0cmFjdGluZwQAAAASc3RhcnREYXRlVGltZXN0YW1wCQEAAAASZ2V0SW50ZWdlclJlY29yZE9yAAAAAwUAAAAEdGhpcwIAAAAJc3RhcnREYXRlAAAAAAAAAAAABAAAABBlbmREYXRlVGltZXN0YW1wCQEAAAASZ2V0SW50ZWdlclJlY29yZE9yAAAAAwUAAAAEdGhpcwIAAAAHZW5kRGF0ZQAAAAAAAAAAAAQAAAAOaXNPdXRkYXRlZEdvYWwDCQAAZgAAAAIFAAAAEnN0YXJ0RGF0ZVRpbWVzdGFtcAUAAAAEZGF0ZQkAAGYAAAACBQAAAARkYXRlBQAAABBlbmREYXRlVGltZXN0YW1wBwQAAAARaXNOb3RBY3RpdmVTdGF0dXMJAQAAAAIhPQAAAAIJAQAAAA9nZXRTdHJpbmdSZWNvcmQAAAACBQAAAAR0aGlzAgAAAAZzdGF0dXMFAAAADXN0YXR1c1BlbmRpbmcEAAAAEGlzTm90QWRtaW5DYWxsZXIJAQAAAAEhAAAAAQkBAAAADWlzQWRtaW5DYWxsZXIAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkDBQAAABBpc05vdEFkbWluQ2FsbGVyCQEAAAAadGhyb3dJc05vdEFkbWluQ2FsbGVyRXJyb3IAAAAAAwUAAAAOaXNPdXRkYXRlZEdvYWwJAQAAABZ0aHJvd091dGRhdGVkR29hbEVycm9yAAAAAAMFAAAAEWlzTm90QWN0aXZlU3RhdHVzCQEAAAAXdGhyb3dOb3RBY3RpdmVHb2FsRXJyb3IAAAAACQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAABZzZXRDYXRlZ29yeVJlY29yZFZhbHVlAAAAAwUAAAAEZGF0ZQUAAAAgcmVzY3VlVGltZUNhdGVnb3J5VmVyeVByb2R1Y3RpdmUFAAAADnZlcnlQcm9kdWN0aXZlCQAETAAAAAIJAQAAABZzZXRDYXRlZ29yeVJlY29yZFZhbHVlAAAAAwUAAAAEZGF0ZQUAAAAccmVzY3VlVGltZUNhdGVnb3J5UHJvZHVjdGl2ZQUAAAAKcHJvZHVjdGl2ZQkABEwAAAACCQEAAAAWc2V0Q2F0ZWdvcnlSZWNvcmRWYWx1ZQAAAAMFAAAABGRhdGUFAAAAGXJlc2N1ZVRpbWVDYXRlZ29yeU5ldXRyYWwFAAAAB25ldXRyYWwJAARMAAAAAgkBAAAAFnNldENhdGVnb3J5UmVjb3JkVmFsdWUAAAADBQAAAARkYXRlBQAAAB1yZXNjdWVUaW1lQ2F0ZWdvcnlEaXN0cmFjdGluZwUAAAALZGlzdHJhY3RpbmcJAARMAAAAAgkBAAAAFnNldENhdGVnb3J5UmVjb3JkVmFsdWUAAAADBQAAAARkYXRlBQAAACFyZXNjdWVUaW1lQ2F0ZWdvcnlWZXJ5RGlzdHJhY3RpbmcFAAAAD3ZlcnlEaXN0cmFjdGluZwkABEwAAAACCQEAAAAWc2V0Q2F0ZWdvcnlSZWNvcmRWYWx1ZQAAAAMFAAAABGRhdGUFAAAAIXJlc2N1ZVRpbWVDYXRlZ29yeVZlcnlEaXN0cmFjdGluZwUAAAAPdmVyeURpc3RyYWN0aW5nCQAETAAAAAIJAQAAAB1zZXRSZWN1ZXRpbWVSZWNvcmRTdGF0dXNWYWx1ZQAAAAYFAAAABGRhdGUFAAAADnZlcnlQcm9kdWN0aXZlBQAAAApwcm9kdWN0aXZlBQAAAAduZXV0cmFsBQAAAAtkaXN0cmFjdGluZwUAAAAPdmVyeURpc3RyYWN0aW5nBQAAAANuaWwAAAAAFuXuPA==", "chainId": 84, "height": 968416, "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
Old | New | Differences | |
---|---|---|---|
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 adminAccountPublicKey = base58'GtDLBooknaE8G983yMjhygiyhmpR5tebBScKPw277tj9' | |
47 | + | ||
48 | + | let userAccountPublicKey = base58'BNPWfnwQQaiG9SxwTXqNi5sRA5oAU2M4QvQUAoGrnNbf' | |
49 | + | ||
50 | + | let goalAccountPublicKey = base58'B4q1hG8ff4DEwGWRdDUVV5CyY9NbSHhukeHQnq1GmezC' | |
51 | + | ||
52 | + | func throwUndefinedError () = throw("undefinedError") | |
53 | + | ||
54 | + | ||
55 | + | func throwOutdatedGoalError () = throw("outdatedGoalError") | |
56 | + | ||
57 | + | ||
58 | + | func throwNotActiveGoalError () = throw("notActiveGoalError") | |
59 | + | ||
60 | + | ||
61 | + | func throwIsNotAdminCallerError () = throw("isNotAdminCallerError") | |
62 | + | ||
63 | + | ||
64 | + | func throwIsNotUserCallerError () = throw("isNotUserCallerError") | |
65 | + | ||
66 | + | ||
67 | + | func throwIsNotGoalCallerError () = throw("isNotGoalCallerError") | |
68 | + | ||
69 | + | ||
70 | + | func getIntegerRecordOr (accountAddress,key,default) = if (isDefined(getInteger(this, key))) | |
71 | + | then getIntegerValue(this, key) | |
72 | + | else default | |
73 | + | ||
74 | + | ||
75 | + | func getIntegerRecord (accountAddress,key) = getIntegerValue(this, key) | |
76 | + | ||
77 | + | ||
78 | + | func setIntegerRecord (key,value) = DataEntry(key, value) | |
79 | + | ||
80 | + | ||
81 | + | func getStringOr (accountAddress,key,default) = if (isDefined(getInteger(this, key))) | |
82 | + | then getStringValue(this, key) | |
83 | + | else default | |
84 | + | ||
85 | + | ||
86 | + | func getStringRecord (accountAddress,key) = getStringValue(this, key) | |
87 | + | ||
88 | + | ||
89 | + | func setStringRecord (key,value) = DataEntry(key, value) | |
90 | + | ||
91 | + | ||
92 | + | func getBooleanRecord (accountAddress,key) = getBooleanValue(this, key) | |
93 | + | ||
94 | + | ||
95 | + | func setBooleanRecord (key,value) = DataEntry(key, value) | |
96 | + | ||
97 | + | ||
98 | + | func getBinaryRecord (accountAddress,key) = getBinaryValue(this, key) | |
99 | + | ||
100 | + | ||
101 | + | func setBinaryRecord (key,value) = DataEntry(key, value) | |
102 | + | ||
103 | + | ||
104 | + | func isRecordDefined (key) = if (if (if (isDefined(getBinary(this, key))) | |
105 | + | then true | |
106 | + | else isDefined(getString(this, key))) | |
107 | + | then true | |
108 | + | else isDefined(getBoolean(this, key))) | |
109 | + | then true | |
110 | + | else isDefined(getInteger(this, key)) | |
111 | + | ||
112 | + | ||
113 | + | func setRecuetimeRecordStatusValue (date,veryProductive,productive,neutral,distracting,veryDistracting) = { | |
114 | + | let recordStatusKey = (("record_<" + toString(date)) + ">") | |
115 | + | let rescueTimeConditionAmount = getIntegerRecordOr(this, "rescueTimeConditionAmount", 0) | |
116 | + | let rescueTimeCondition = getStringRecord(this, "rescueTimeCondition") | |
117 | + | let rescueTimeCategory = getStringRecord(this, "rescueTimeCategory") | |
118 | + | let statusValue = if ((rescueTimeCondition == rescueTimeConditionLess)) | |
119 | + | then if ((rescueTimeCategory == rescueTimeCategoryVeryProductive)) | |
120 | + | then (rescueTimeConditionAmount >= veryProductive) | |
121 | + | else if ((rescueTimeCategory == rescueTimeCategoryProductive)) | |
122 | + | then (rescueTimeConditionAmount >= productive) | |
123 | + | else if ((rescueTimeCategory == rescueTimeCategoryNeutral)) | |
124 | + | then (rescueTimeConditionAmount >= neutral) | |
125 | + | else if ((rescueTimeCategory == rescueTimeCategoryDistracting)) | |
126 | + | then (rescueTimeConditionAmount >= distracting) | |
127 | + | else (rescueTimeConditionAmount >= veryDistracting) | |
128 | + | else if ((rescueTimeCategory == rescueTimeCategoryVeryProductive)) | |
129 | + | then (veryProductive >= rescueTimeConditionAmount) | |
130 | + | else if ((rescueTimeCategory == rescueTimeCategoryProductive)) | |
131 | + | then (productive >= rescueTimeConditionAmount) | |
132 | + | else if ((rescueTimeCategory == rescueTimeCategoryNeutral)) | |
133 | + | then (neutral >= rescueTimeConditionAmount) | |
134 | + | else if ((rescueTimeCategory == rescueTimeCategoryDistracting)) | |
135 | + | then (distracting >= rescueTimeConditionAmount) | |
136 | + | else (veryDistracting >= rescueTimeConditionAmount) | |
137 | + | setBooleanRecord(recordStatusKey, statusValue) | |
138 | + | } | |
139 | + | ||
140 | + | ||
141 | + | func getCategoryRecordKey (date,rescueTimeCategoryVeryProductive) = (((("record_<" + toString(date)) + ">__category_<") + rescueTimeCategoryVeryProductive) + ">") | |
142 | + | ||
143 | + | ||
144 | + | func setCategoryRecordValue (date,category,value) = setIntegerRecord(getCategoryRecordKey(date, category), value) | |
145 | + | ||
146 | + | ||
147 | + | func isAdminCaller (callerPublicKey) = { | |
148 | + | let callerAccountPubKey = toBase58String(callerPublicKey) | |
149 | + | let adminAccountPubKey = toBase58String(adminAccountPublicKey) | |
150 | + | if ((callerAccountPubKey == adminAccountPubKey)) | |
151 | + | then true | |
152 | + | else false | |
153 | + | } | |
154 | + | ||
155 | + | ||
156 | + | func isUserCaller (callerPublicKey) = { | |
157 | + | let callerAccountPubKey = toBase58String(callerPublicKey) | |
158 | + | let userAccountPubKey = toBase58String(userAccountPublicKey) | |
159 | + | if ((callerAccountPubKey == userAccountPubKey)) | |
160 | + | then true | |
161 | + | else false | |
162 | + | } | |
163 | + | ||
164 | + | ||
165 | + | func isGoalCaller (callerPublicKey) = { | |
166 | + | let callerAccountPubKey = toBase58String(callerPublicKey) | |
167 | + | let goalAccountPubKey = toBase58String(goalAccountPublicKey) | |
168 | + | if ((callerAccountPubKey == goalAccountPubKey)) | |
169 | + | then true | |
170 | + | else false | |
171 | + | } | |
172 | + | ||
173 | + | ||
174 | + | @Callable(i) | |
175 | + | func setup (name,description,startDate,endDate,rescueTimeConditionAmount,rescueTimeCondition,rescueTimeCategory,trackDays,attempsCount,bet,betAsset) = { | |
176 | + | let isNotAdminCaller = !(isAdminCaller(i.callerPublicKey)) | |
177 | + | if (isNotAdminCaller) | |
178 | + | then throwIsNotAdminCallerError() | |
179 | + | else WriteSet([setStringRecord("status", statusActive), setStringRecord("name", name), setStringRecord("description", description), setIntegerRecord("startDate", startDate), setIntegerRecord("endDate", endDate), setIntegerRecord("rescueTimeConditionAmount", rescueTimeConditionAmount), setStringRecord("rescueTimeCondition", rescueTimeCondition), setStringRecord("rescueTimeCategory", rescueTimeCategory), setStringRecord("trackDays", trackDays), setStringRecord("attempsCount", attempsCount), setIntegerRecord("failedAttemptsCount", 0), setIntegerRecord("bet", bet), setStringRecord("betAsset", betAsset)]) | |
180 | + | } | |
181 | + | ||
182 | + | ||
183 | + | ||
184 | + | @Callable(i) | |
185 | + | func addRecord (date,veryProductive,productive,neutral,distracting,veryDistracting) = { | |
186 | + | let startDateTimestamp = getIntegerRecordOr(this, "startDate", 0) | |
187 | + | let endDateTimestamp = getIntegerRecordOr(this, "endDate", 0) | |
188 | + | let isOutdatedGoal = if ((startDateTimestamp > date)) | |
189 | + | then (date > endDateTimestamp) | |
190 | + | else false | |
191 | + | let isNotActiveStatus = (getStringRecord(this, "status") != statusPending) | |
192 | + | let isNotAdminCaller = !(isAdminCaller(i.callerPublicKey)) | |
193 | + | if (isNotAdminCaller) | |
194 | + | then throwIsNotAdminCallerError() | |
195 | + | else if (isOutdatedGoal) | |
196 | + | then throwOutdatedGoalError() | |
197 | + | else if (isNotActiveStatus) | |
198 | + | then throwNotActiveGoalError() | |
199 | + | 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)]) | |
200 | + | } | |
201 | + | ||
202 | + |
github/deemru/w8io/026f985 22.38 ms ◑