tx · GtW3gBibgPQcnsSgmknLb4U5k9D5tBemAfGF3V925YfL 3MxbR7b3gHF4XdQKNTT5aQMRiazHvrVWC8N: -0.02000000 Waves 2020.05.26 20:53 [1015632] smart account 3MxbR7b3gHF4XdQKNTT5aQMRiazHvrVWC8N > SELF 0.00000000 Waves
{ "type": 13, "id": "GtW3gBibgPQcnsSgmknLb4U5k9D5tBemAfGF3V925YfL", "fee": 2000000, "feeAssetId": null, "timestamp": 1590515679734, "version": 1, "sender": "3MxbR7b3gHF4XdQKNTT5aQMRiazHvrVWC8N", "senderPublicKey": "4bj7YXaphTC4Ldx7DqqMmrTjNshRtw1yNsej2XXZcAzS", "proofs": [ "FhEuomYrRg27Fqi8f5RGLjwXM3peyURMDWskkNDX7W3ci3F5astCyuurykHXezGPd7H7LoxYNdbJx2qBJixh9dm", "3X22FA2mZUjFeENrjfJeqsKqm1hjKYEBAqtSQgYpcogCzi7jTWTcYL9RiZGK7v5vAkDmLLtBiCQ2USsJgfVrZ3rH", "2EVmkd3SVgVmqnQMrQqhzuQCQdKUUs2gyNZC9QP7xsbSCbmLi67Q8QPvgnbpeGaFRASjTF6B7QkZaV6TwhGdjucX" ], "script": "base64:AAIDAAAAAAAAABYIARIDCgEBEgQKAgEIEgMKAQgSABIAAAAAOAEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQIAAAAAAQAAABZnZXRCb29sQnlBZGRyZXNzQW5kS2V5AAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABBsAAAACBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0Jvb2xlYW4EAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEHAQAAABhnZXRTdHJpbmdCeUFkZHJlc3NBbmRLZXkAAAACAAAAB2FkZHJlc3MAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAABAAAAGGdldE51bWJlckJ5QWRkcmVzc0FuZEtleQAAAAIAAAAHYWRkcmVzcwAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAAAAAAB1dBVkVMRVQAAAAAAAX14QAAAAAABVBBVUxJAAAAAAAAD0JAAAAAAA1NSU5PUkRFUlRPVEFMCQAAaAAAAAIAAAAAAAAAAAoFAAAAB1dBVkVMRVQAAAAABk1BWFJPSQAAAAAAAAAAXwAAAAAIQ0FOQ0VMRUQCAAAACGNhbmNlbGVkAAAAAANORVcCAAAAA25ldwAAAAAGRklMTEVEAgAAAAZmaWxsZWQAAAAAE05ldXRyaW5vQ29udHJhY3RLZXkCAAAAEW5ldXRyaW5vX2NvbnRyYWN0AAAAAAhQcmljZUtleQIAAAAFcHJpY2UAAAAADkJvbmRBc3NldElkS2V5AgAAAA1ib25kX2Fzc2V0X2lkAAAAABJOZXV0cmlub0Fzc2V0SWRLZXkCAAAAEW5ldXRyaW5vX2Fzc2V0X2lkAAAAABJDb250cm9sQ29udHJhY3RLZXkCAAAAEGNvbnRyb2xfY29udHJhY3QAAAAAEUJhbGFuY2VMb2NrZWRrS2V5AgAAAA1iYWxhbmNlX2xvY2tfAAAAABVXYXZlc0xvY2tlZEJhbGFuY2VLZXkJAAEsAAAAAgUAAAARQmFsYW5jZUxvY2tlZGtLZXkCAAAABXdhdmVzAAAAABhOZXV0cmlub0xvY2tlZEJhbGFuY2VLZXkJAAEsAAAAAgUAAAARQmFsYW5jZUxvY2tlZGtLZXkCAAAACG5ldXRyaW5vAAAAABZMaXF1aWRhdGlvbkNvbnRyYWN0S2V5AgAAABRsaXF1aWRhdGlvbl9jb250cmFjdAAAAAANRmlyc3RPcmRlcktleQIAAAALb3JkZXJfZmlyc3QBAAAAEmdldFJvaUJ5T3JkZXJJZEtleQAAAAEAAAAHb3JkZXJJZAkAASwAAAACAgAAABBkZWJ1Z19vcmRlcl9yb2lfBQAAAAdvcmRlcklkAQAAABBnZXRPcmRlclByaWNlS2V5AAAAAQAAAAdvcmRlcklkCQABLAAAAAICAAAADG9yZGVyX3ByaWNlXwUAAAAHb3JkZXJJZAEAAAAQZ2V0T3JkZXJUb3RhbEtleQAAAAEAAAAHb3JkZXJJZAkAASwAAAACAgAAAAxvcmRlcl90b3RhbF8FAAAAB29yZGVySWQBAAAAEGdldE9yZGVyT3duZXJLZXkAAAABAAAAB29yZGVySWQJAAEsAAAAAgIAAAAMb3JkZXJfb3duZXJfBQAAAAdvcmRlcklkAQAAABFnZXRPcmRlckhlaWdodEtleQAAAAEAAAAHb3JkZXJJZAkAASwAAAACAgAAAA1vcmRlcl9oZWlnaHRfBQAAAAdvcmRlcklkAQAAABFnZXRPcmRlclN0YXR1c0tleQAAAAEAAAAHb3JkZXJJZAkAASwAAAACAgAAAA1vcmRlcl9zdGF0dXNfBQAAAAdvcmRlcklkAQAAABZnZXRPcmRlckZpbGxlZFRvdGFsS2V5AAAAAQAAAAdvcmRlcklkCQABLAAAAAICAAAAE29yZGVyX2ZpbGxlZF90b3RhbF8FAAAAB29yZGVySWQBAAAAD2dldFByZXZPcmRlcktleQAAAAEAAAAHb3JkZXJJZAkAASwAAAACAgAAAAtvcmRlcl9wcmV2XwUAAAAHb3JkZXJJZAEAAAAPZ2V0TmV4dE9yZGVyS2V5AAAAAQAAAAdvcmRlcklkCQABLAAAAAICAAAAC29yZGVyX25leHRfBQAAAAdvcmRlcklkAQAAABZjb252ZXJ0TmV1dHJpbm9Ub1dhdmVzAAAAAgAAAAZhbW91bnQAAAAFcHJpY2UJAABrAAAAAwkAAGsAAAADBQAAAAZhbW91bnQAAAAAAAAAAGQFAAAABXByaWNlBQAAAAdXQVZFTEVUBQAAAAVQQVVMSQEAAAAWY29udmVydFdhdmVzVG9OZXV0cmlubwAAAAIAAAAGYW1vdW50AAAABXByaWNlCQAAawAAAAMJAABrAAAAAwUAAAAGYW1vdW50BQAAAAVwcmljZQAAAAAAAAAAZAUAAAAFUEFVTEkFAAAAB1dBVkVMRVQBAAAAEmNvbnZlcnRXYXZlc1RvQm9uZAAAAAIAAAAGYW1vdW50AAAABXByaWNlCQEAAAAWY29udmVydFdhdmVzVG9OZXV0cmlubwAAAAIFAAAABmFtb3VudAUAAAAFcHJpY2UBAAAAEmNvbnZlcnRCb25kVG9XYXZlcwAAAAIAAAAGYW1vdW50AAAABXByaWNlCQEAAAAWY29udmVydE5ldXRyaW5vVG9XYXZlcwAAAAIFAAAABmFtb3VudAUAAAAFcHJpY2UAAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVR1O2+jpXEwiHaIRki/PzSi+Z8Fly/mGckAAAAAD2NvbnRyb2xDb250cmFjdAkBAAAAB0FkZHJlc3MAAAABAQAAABoBVJ6NjgCXlJ9D0o0alC32bFH00Ii3kVXBQwAAAAATbGlxdWlkYXRpb25Db250cmFjdAkBAAAAB0FkZHJlc3MAAAABAQAAABoBVK4futDS37thQTEnmdJrnSbldny0ccOqcwAAAAAPbmV1dHJpbm9Bc3NldElkAQAAACAP8hwSrOTEPJrsRhqrJaiw7LoHK0bMbYhy8LXikkkBtAAAAAALYm9uZEFzc2V0SWQBAAAAIJiaP8dHgV6qmAVLA1XnN25HWE4J95YrI293QXC0yYlIAAAAAAlpc0Jsb2NrZWQJAQAAABZnZXRCb29sQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAPY29udHJvbENvbnRyYWN0AgAAAAppc19ibG9ja2VkAAAAAAxjdXJyZW50UHJpY2UJAQAAABhnZXROdW1iZXJCeUFkZHJlc3NBbmRLZXkAAAACBQAAAA9jb250cm9sQ29udHJhY3QFAAAACFByaWNlS2V5AAAAABVuZXV0cmlub0xvY2tlZEJhbGFuY2UJAQAAABhnZXROdW1iZXJCeUFkZHJlc3NBbmRLZXkAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0BQAAABhOZXV0cmlub0xvY2tlZEJhbGFuY2VLZXkAAAAAB3Jlc2VydmUJAABlAAAAAgkBAAAADHdhdmVzQmFsYW5jZQAAAAEFAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAABhnZXROdW1iZXJCeUFkZHJlc3NBbmRLZXkAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0BQAAABVXYXZlc0xvY2tlZEJhbGFuY2VLZXkAAAAADm5ldXRyaW5vU3VwcGx5CQAAZQAAAAIJAABlAAAAAgkAAGQAAAACBQAAABVuZXV0cmlub0xvY2tlZEJhbGFuY2UICQEAAAAHZXh0cmFjdAAAAAEJAAPsAAAAAQUAAAAPbmV1dHJpbm9Bc3NldElkAAAACHF1YW50aXR5CQAD6wAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QFAAAAD25ldXRyaW5vQXNzZXRJZAkAA+sAAAACBQAAABNsaXF1aWRhdGlvbkNvbnRyYWN0BQAAAA9uZXV0cmlub0Fzc2V0SWQAAAAAB2RlZmljaXQJAABlAAAAAgUAAAAObmV1dHJpbm9TdXBwbHkJAQAAABZjb252ZXJ0V2F2ZXNUb05ldXRyaW5vAAAAAgUAAAAHcmVzZXJ2ZQUAAAAMY3VycmVudFByaWNlAAAAAApmaXJzdE9yZGVyCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABBQAAAA1GaXJzdE9yZGVyS2V5AQAAAA1nZXRPcmRlclByaWNlAAAAAQAAAAJpZAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAEGdldE9yZGVyUHJpY2VLZXkAAAABBQAAAAJpZAEAAAANZ2V0T3JkZXJUb3RhbAAAAAEAAAACaWQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABBnZXRPcmRlclRvdGFsS2V5AAAAAQUAAAACaWQBAAAADWdldE9yZGVyT3duZXIAAAABAAAAAmlkCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAQZ2V0T3JkZXJPd25lcktleQAAAAEFAAAAAmlkAQAAAA5nZXRPcmRlclN0YXR1cwAAAAEAAAACaWQJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABFnZXRPcmRlclN0YXR1c0tleQAAAAEFAAAAAmlkAQAAABNnZXRPcmRlckZpbGxlZFRvdGFsAAAAAQAAAAJpZAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFmdldE9yZGVyRmlsbGVkVG90YWxLZXkAAAABBQAAAAJpZAEAAAAMZ2V0UHJldk9yZGVyAAAAAQAAAAJpZAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAD2dldFByZXZPcmRlcktleQAAAAEFAAAAAmlkAQAAAAxnZXROZXh0T3JkZXIAAAABAAAAAmlkCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAPZ2V0TmV4dE9yZGVyS2V5AAAAAQUAAAACaWQBAAAAEGludGVybmFsU2VsbEJvbmQAAAAGAAAAC3BGaXJzdE9yZGVyAAAACnBOZXh0T3JkZXIAAAAMcEZpbGxlZFRvdGFsAAAABHBSb2kAAAAQcFBheW1lbnRXYXZlbGV0cwAAABFvcmRlck93bmVyQWRkcmVzcwMJAAAAAAAAAgUAAAALcEZpcnN0T3JkZXICAAAAAAkAAAIAAAABAgAAAA9lbXB0eSBvcmRlcmJvb2sEAAAAFXByaWNlV2F2ZXNCeUJvbmRDZW50cwkAAGsAAAADCQAAZAAAAAIAAAAAAAAAAGQFAAAABHBSb2kFAAAADGN1cnJlbnRQcmljZQAAAAAAAAAAZAQAAAANcmVtYWluZWRUb3RhbAkAAGUAAAACBQAAABBwUGF5bWVudFdhdmVsZXRzBQAAAAxwRmlsbGVkVG90YWwEAAAAE2ZpbGxhYmxlT3JkZXJBbW91bnQJAQAAABJjb252ZXJ0V2F2ZXNUb0JvbmQAAAACBQAAAA1yZW1haW5lZFRvdGFsBQAAABVwcmljZVdhdmVzQnlCb25kQ2VudHMEAAAAG3RvdGFsT3JkZXJXYXZlbGV0ZXNSZXF1aXJlZAkBAAAAEmNvbnZlcnRCb25kVG9XYXZlcwAAAAIFAAAAE2ZpbGxhYmxlT3JkZXJBbW91bnQFAAAAFXByaWNlV2F2ZXNCeUJvbmRDZW50cwQAAAAVbmJUb2tlbnNTZWxsQ29uZGl0aW9uCQAAZwAAAAIJAABrAAAAAwUAAAAHZGVmaWNpdAAAAAAAAAAAZAUAAAAObmV1dHJpbm9TdXBwbHkFAAAABHBSb2kDCQEAAAABIQAAAAEFAAAAFW5iVG9rZW5zU2VsbENvbmRpdGlvbgkAAAIAAAABCQABLAAAAAICAAAAE2lubmFwcm9wcmlhdGUgcm9pOiAJAAGkAAAAAQUAAAAEcFJvaQMJAAAAAAAAAgUAAAAbdG90YWxPcmRlcldhdmVsZXRlc1JlcXVpcmVkAAAAAAAAAAAACQAAAgAAAAECAAAAH2Nhbm5vdCBmaWxsIG9yZGVyIGF0IHRoZSBtb21lbnQEAAAADmNoYW5nZVdhdmVsZXRzCQAAZQAAAAIFAAAADXJlbWFpbmVkVG90YWwFAAAAG3RvdGFsT3JkZXJXYXZlbGV0ZXNSZXF1aXJlZAQAAAASY29tbW9uV3JpdGVTZXREYXRhCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAWZ2V0T3JkZXJGaWxsZWRUb3RhbEtleQAAAAEFAAAACmZpcnN0T3JkZXIJAABkAAAAAgUAAAAMcEZpbGxlZFRvdGFsBQAAABt0b3RhbE9yZGVyV2F2ZWxldGVzUmVxdWlyZWQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABFnZXRPcmRlclN0YXR1c0tleQAAAAEFAAAACmZpcnN0T3JkZXIFAAAABkZJTExFRAUAAAADbmlsBAAAAA9jb21tb25UcmFuc2ZlcnMJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAARb3JkZXJPd25lckFkZHJlc3MFAAAAE2ZpbGxhYmxlT3JkZXJBbW91bnQFAAAAC2JvbmRBc3NldElkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAEG5ldXRyaW5vQ29udHJhY3QFAAAAG3RvdGFsT3JkZXJXYXZlbGV0ZXNSZXF1aXJlZAUAAAAEdW5pdAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAABFvcmRlck93bmVyQWRkcmVzcwUAAAAOY2hhbmdlV2F2ZWxldHMFAAAABHVuaXQFAAAAA25pbAQAAAAMd3JpdGVTZXREYXRhAwkAAAAAAAACBQAAAAtwRmlyc3RPcmRlcgUAAAAKZmlyc3RPcmRlcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2dldFByZXZPcmRlcktleQAAAAEFAAAACnBOZXh0T3JkZXICAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAANRmlyc3RPcmRlcktleQUAAAAKcE5leHRPcmRlcgUAAAASY29tbW9uV3JpdGVTZXREYXRhBQAAABJjb21tb25Xcml0ZVNldERhdGEJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABBQAAAAx3cml0ZVNldERhdGEJAQAAAAtUcmFuc2ZlclNldAAAAAEFAAAAD2NvbW1vblRyYW5zZmVycwEAAAAXaW50ZXJuYWxBZGRCdXlCb25kT3JkZXIAAAAEAAAAA3JvaQAAAAlwcmV2T3JkZXIAAAADaW52AAAAB2luc3RhbnQEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAADaW52AAAAB3BheW1lbnQEAAAACm5ld09yZGVySWQJAAJYAAAAAQgFAAAAA2ludgAAAA10cmFuc2FjdGlvbklkAwUAAAAJaXNCbG9ja2VkCQAAAgAAAAECAAAAWWNvbnRyYWN0IGlzIGJsb2NrZWQgYnkgRU1FUkdFTkNZIFNIVVRET1dOIGFjdGlvbnMgdW50aWwgcmVhY3RpdmF0aW9uIGJ5IGVtZXJnZW5jeSBvcmFjbGVzAwkAAGYAAAACBQAAAA1NSU5PUkRFUlRPVEFMCAUAAAADcG10AAAABmFtb3VudAkAAAIAAAABCQABLAAAAAICAAAAF21pbiBvcmRlciB0b3RhbCBlcXVhbHMgCQABpAAAAAEFAAAADU1JTk9SREVSVE9UQUwDCQAAZgAAAAIFAAAAA3JvaQUAAAAGTUFYUk9JCQAAAgAAAAECAAAAF21heCBzZXRPcmRlciBST0kgaXMgOTUlAwMJAABmAAAAAgUAAAAHZGVmaWNpdAAAAAAAAAAAAAkAAGYAAAACAAAAAAAAAAAABQAAAANyb2kHCQAAAgAAAAECAAAAMmNhbid0IHBsYWNlIG9yZGVyIHdpdGggbmVnYXRpdmUgcm9pIGR1cmluZyBkZWZpY2l0AwkAAGYAAAACCQEAAAABLQAAAAEFAAAABk1BWFJPSQUAAAADcm9pCQAAAgAAAAECAAAAGG1pbiBzZXRPcmRlciBST0kgaXMgLTk1JQMJAAAAAAAAAgUAAAADcm9pAAAAAAAAAAAACQAAAgAAAAECAAAAHHJvaSBzaG91bGQgbm90IGJlIGVxdWFsIHRvIDADCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkCQAAAgAAAAECAAAAEmNhbiB1c2Ugd2F2ZXMgb25seQMJAQAAAAIhPQAAAAIJAQAAAA1nZXRPcmRlck93bmVyAAAAAQUAAAAKbmV3T3JkZXJJZAIAAAAACQAAAgAAAAECAAAADG9yZGVyIGV4aXN0cwMDCQEAAAACIT0AAAACBQAAAAlwcmV2T3JkZXICAAAAAAkBAAAAAiE9AAAAAgkBAAAADmdldE9yZGVyU3RhdHVzAAAAAQUAAAAJcHJldk9yZGVyBQAAAANORVcHCQAAAgAAAAECAAAAHHByZXYgb3JkZXIgc3RhdHVzIGlzIG5vdCBuZXcEAAAAGWlzTmV3T3JkZXJBdEZpcnN0UG9zaXRpb24JAAAAAAAAAgUAAAAJcHJldk9yZGVyAgAAAAAEAAAABW93bmVyCQAEJQAAAAEIBQAAAANpbnYAAAAGY2FsbGVyBAAAAAluZXh0T3JkZXIDBQAAABlpc05ld09yZGVyQXRGaXJzdFBvc2l0aW9uBQAAAApmaXJzdE9yZGVyCQEAAAAMZ2V0TmV4dE9yZGVyAAAAAQUAAAAJcHJldk9yZGVyBAAAAAxuZXh0T3JkZXJSb2kJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABJnZXRSb2lCeU9yZGVySWRLZXkAAAABBQAAAAluZXh0T3JkZXIEAAAAEGlzTmV4dE9yZGVyRXJyb3IDAwkBAAAAAiE9AAAAAgUAAAAJbmV4dE9yZGVyAgAAAAAJAABnAAAAAgUAAAADcm9pBQAAAAxuZXh0T3JkZXJSb2kHBgcEAAAADHByZXZPcmRlclJvaQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAEmdldFJvaUJ5T3JkZXJJZEtleQAAAAEFAAAACXByZXZPcmRlcgQAAAAQaXNQcmV2T3JkZXJFcnJvcgMDCQEAAAACIT0AAAACBQAAAAlwcmV2T3JkZXICAAAAAAkAAGYAAAACBQAAAAxwcmV2T3JkZXJSb2kFAAAAA3JvaQcGBwMDBQAAABBpc05leHRPcmRlckVycm9yBgUAAAAQaXNQcmV2T3JkZXJFcnJvcgkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAB9pbnZhbGlkIG9yZGVyIGlzUHJldk9yZGVyRXJyb3I6CQABpQAAAAEFAAAAEGlzUHJldk9yZGVyRXJyb3ICAAAAEiBpc05leHRPcmRlckVycm9yOgkAAaUAAAABBQAAABBpc05leHRPcmRlckVycm9yAwMFAAAAGWlzTmV3T3JkZXJBdEZpcnN0UG9zaXRpb24FAAAAB2luc3RhbnQHCQEAAAAQaW50ZXJuYWxTZWxsQm9uZAAAAAYFAAAACm5ld09yZGVySWQFAAAACW5leHRPcmRlcgAAAAAAAAAAAAUAAAADcm9pCAUAAAADcG10AAAABmFtb3VudAgFAAAAA2ludgAAAAZjYWxsZXIDBQAAAAdpbnN0YW50CQAAAgAAAAECAAAAMkluc3RhbnQgb3JkZXIgY291bGRuJ3QgYmUgYWRkZWQgaW50byB3YWl0aW5nIHF1ZXVlCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAPZ2V0UHJldk9yZGVyS2V5AAAAAQUAAAAKbmV3T3JkZXJJZAUAAAAJcHJldk9yZGVyCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAPZ2V0TmV4dE9yZGVyS2V5AAAAAQUA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aWwgcmVhY3RpdmF0aW9uIGJ5IGVtZXJnZW5jeSBvcmFjbGVzAwkBAAAAAiE9AAAAAgUAAAAFb3duZXIFAAAABmNhbGxlcgkAAAIAAAABAgAAABFwZXJtaXNzaW9uIGRlbmllZAMJAQAAAAIhPQAAAAIJAQAAAA5nZXRPcmRlclN0YXR1cwAAAAEFAAAAB29yZGVySWQFAAAAA05FVwkAAAIAAAABAgAAABRpbnZhbGlkIG9yZGVyIHN0YXR1cwkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADUZpcnN0T3JkZXJLZXkDCQAAAAAAAAIFAAAACmZpcnN0T3JkZXIFAAAAB29yZGVySWQFAAAACW5leHRPcmRlcgUAAAAKZmlyc3RPcmRlcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2dldE5leHRPcmRlcktleQAAAAEFAAAACXByZXZPcmRlcgUAAAAJbmV4dE9yZGVyCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAPZ2V0UHJldk9yZGVyS2V5AAAAAQUAAAAJbmV4dE9yZGVyBQAAAAlwcmV2T3JkZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABFnZXRPcmRlclN0YXR1c0tleQAAAAEFAAAAB29yZGVySWQFAAAACENBTkNFTEVEBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAZhbW91bnQFAAAABHVuaXQFAAAAA25pbAAAAAFpAQAAAAhzZWxsQm9uZAAAAAADBQAAAAlpc0Jsb2NrZWQJAAACAAAAAQIAAABZY29udHJhY3QgaXMgYmxvY2tlZCBieSBFTUVSR0VOQ1kgU0hVVERPV04gYWN0aW9ucyB1bnRpbCByZWFjdGl2YXRpb24gYnkgZW1lcmdlbmN5IG9yYWNsZXMDCQAAAAAAAAIFAAAACmZpcnN0T3JkZXICAAAAAAkAAAIAAAABAgAAAA9lbXB0eSBvcmRlcmJvb2sEAAAACW5leHRPcmRlcgkBAAAADGdldE5leHRPcmRlcgAAAAEFAAAACmZpcnN0T3JkZXIEAAAAC2ZpbGxlZFRvdGFsCQEAAAATZ2V0T3JkZXJGaWxsZWRUb3RhbAAAAAEFAAAACmZpcnN0T3JkZXIEAAAACm9yZGVyUHJpY2UJAQAAAA1nZXRPcmRlclByaWNlAAAAAQUAAAAKZmlyc3RPcmRlcgQAAAADcm9pCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAASZ2V0Um9pQnlPcmRlcklkS2V5AAAAAQUAAAAKZmlyc3RPcmRlcgQAAAAPcGF5bWVudFdhdmVsZXRzCQEAAAANZ2V0T3JkZXJUb3RhbAAAAAEFAAAACmZpcnN0T3JkZXIEAAAAEW9yZGVyT3duZXJBZGRyZXNzCQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAADWdldE9yZGVyT3duZXIAAAABBQAAAApmaXJzdE9yZGVyCQEAAAAQaW50ZXJuYWxTZWxsQm9uZAAAAAYFAAAACmZpcnN0T3JkZXIFAAAACW5leHRPcmRlcgUAAAALZmlsbGVkVG90YWwFAAAAA3JvaQUAAAAPcGF5bWVudFdhdmVsZXRzBQAAABFvcmRlck93bmVyQWRkcmVzcwAAAAFpAQAAAB91cGRhdGVSZXNlcnZlc0FuZE5ldXRyaW5vU3VwcGx5AAAAAAoBAAAAFmdldE51bWJlckJ5S2V5SW50ZXJuYWwAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAADaWR4CQEAAAAWZ2V0TnVtYmVyQnlLZXlJbnRlcm5hbAAAAAECAAAAInVwZGF0ZVJlc2VydmVzQW5kTmV1dHJpbm9TdXBwbHlJZHgEAAAABm5ld0lkeAkAAGQAAAACBQAAAANpZHgAAAAAAAAAAAEJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAInVwZGF0ZVJlc2VydmVzQW5kTmV1dHJpbm9TdXBwbHlJZHgFAAAABm5ld0lkeAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAHcmVzZXJ2ZQUAAAAHcmVzZXJ2ZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAObmV1dHJpbm9TdXBwbHkFAAAADm5ldXRyaW5vU3VwcGx5CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAAdkZWZpY2l0BQAAAAdkZWZpY2l0BQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAABBwdWJLZXlBZG1pbnNMaXN0CQAETAAAAAICAAAALEdYeG1aYUNpZ1BnSnNUNmQxY0xyOG5VWEE2NW5HWDhWN0Z1QXp6clk4d1FFCQAETAAAAAICAAAALDN4dW14NGhyUHBlZW9vNzlITEdiWkNnZno5NUwzOVpGZHh4d1dlU1VDMlB1CQAETAAAAAICAAAALEQ0Q3F0SzVmQnNuelJvMzNaTWhyTTduaUxzZURIMnVSb0s2d2VCcTJKUTNBCQAETAAAAAICAAAALDVXUlhGU2p3Y1RiTmZLY0pzOFpxWG1TU1dZc1NWSlV0TXZNcVpqNWhINE5jBQAAAANuaWwEAAAABWNvdW50CQAAZAAAAAIJAABkAAAAAgkAAGQAAAACAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAJAAJZAAAAAQkAAZEAAAACBQAAABBwdWJLZXlBZG1pbnNMaXN0AAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAEJAAJZAAAAAQkAAZEAAAACBQAAABBwdWJLZXlBZG1pbnNMaXN0AAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAAAAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAIJAAJZAAAAAQkAAZEAAAACBQAAABBwdWJLZXlBZG1pbnNMaXN0AAAAAAAAAAACAAAAAAAAAAABAAAAAAAAAAAAAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAMJAAJZAAAAAQkAAZEAAAACBQAAABBwdWJLZXlBZG1pbnNMaXN0AAAAAAAAAAADAAAAAAAAAAACAAAAAAAAAAAACQAAZwAAAAIFAAAABWNvdW50AAAAAAAAAAADbT7EMg==", "chainId": 84, "height": 1015632, "spentComplexity": 0 } View: original | compacted Prev: 3xvBfT2e68aAGGFdZFWpMKzVBbPW1Rm8rs8RkWjWMhTQ Next: H8wCYZ6UZPhzUhg9Jo3zNPj77upM4U8N4cJ8qEBWhJAk Diff:
Old | New | Differences | |
---|---|---|---|
265 | 265 | ||
266 | 266 | ||
267 | 267 | @Callable(aO) | |
268 | - | func instantBuyNsbtOrFail (aB | |
268 | + | func instantBuyNsbtOrFail (aB) = { | |
269 | 269 | let aF = extract(aO.payment) | |
270 | - | aA(aB, | |
270 | + | aA(aB, "", aO, true) | |
271 | 271 | } | |
272 | 272 | ||
273 | 273 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 3 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | func a (b) = { | |
5 | 5 | let c = getInteger(this, b) | |
6 | 6 | if ($isInstanceOf(c, "Int")) | |
7 | 7 | then { | |
8 | 8 | let d = c | |
9 | 9 | d | |
10 | 10 | } | |
11 | 11 | else 0 | |
12 | 12 | } | |
13 | 13 | ||
14 | 14 | ||
15 | 15 | func e (b) = { | |
16 | 16 | let c = getString(this, b) | |
17 | 17 | if ($isInstanceOf(c, "String")) | |
18 | 18 | then { | |
19 | 19 | let d = c | |
20 | 20 | d | |
21 | 21 | } | |
22 | 22 | else "" | |
23 | 23 | } | |
24 | 24 | ||
25 | 25 | ||
26 | 26 | func f (g,b) = { | |
27 | 27 | let c = getBoolean(g, b) | |
28 | 28 | if ($isInstanceOf(c, "Boolean")) | |
29 | 29 | then { | |
30 | 30 | let d = c | |
31 | 31 | d | |
32 | 32 | } | |
33 | 33 | else false | |
34 | 34 | } | |
35 | 35 | ||
36 | 36 | ||
37 | 37 | func h (g,b) = { | |
38 | 38 | let c = getString(g, b) | |
39 | 39 | if ($isInstanceOf(c, "String")) | |
40 | 40 | then { | |
41 | 41 | let d = c | |
42 | 42 | d | |
43 | 43 | } | |
44 | 44 | else "" | |
45 | 45 | } | |
46 | 46 | ||
47 | 47 | ||
48 | 48 | func i (g,b) = { | |
49 | 49 | let c = getInteger(g, b) | |
50 | 50 | if ($isInstanceOf(c, "Int")) | |
51 | 51 | then { | |
52 | 52 | let d = c | |
53 | 53 | d | |
54 | 54 | } | |
55 | 55 | else 0 | |
56 | 56 | } | |
57 | 57 | ||
58 | 58 | ||
59 | 59 | let j = 100000000 | |
60 | 60 | ||
61 | 61 | let k = 1000000 | |
62 | 62 | ||
63 | 63 | let l = (10 * j) | |
64 | 64 | ||
65 | 65 | let m = 95 | |
66 | 66 | ||
67 | 67 | let n = "canceled" | |
68 | 68 | ||
69 | 69 | let o = "new" | |
70 | 70 | ||
71 | 71 | let p = "filled" | |
72 | 72 | ||
73 | 73 | let q = "neutrino_contract" | |
74 | 74 | ||
75 | 75 | let r = "price" | |
76 | 76 | ||
77 | 77 | let s = "bond_asset_id" | |
78 | 78 | ||
79 | 79 | let t = "neutrino_asset_id" | |
80 | 80 | ||
81 | 81 | let u = "control_contract" | |
82 | 82 | ||
83 | 83 | let v = "balance_lock_" | |
84 | 84 | ||
85 | 85 | let w = (v + "waves") | |
86 | 86 | ||
87 | 87 | let x = (v + "neutrino") | |
88 | 88 | ||
89 | 89 | let y = "liquidation_contract" | |
90 | 90 | ||
91 | 91 | let z = "order_first" | |
92 | 92 | ||
93 | 93 | func A (B) = ("debug_order_roi_" + B) | |
94 | 94 | ||
95 | 95 | ||
96 | 96 | func C (B) = ("order_price_" + B) | |
97 | 97 | ||
98 | 98 | ||
99 | 99 | func D (B) = ("order_total_" + B) | |
100 | 100 | ||
101 | 101 | ||
102 | 102 | func E (B) = ("order_owner_" + B) | |
103 | 103 | ||
104 | 104 | ||
105 | 105 | func F (B) = ("order_height_" + B) | |
106 | 106 | ||
107 | 107 | ||
108 | 108 | func G (B) = ("order_status_" + B) | |
109 | 109 | ||
110 | 110 | ||
111 | 111 | func H (B) = ("order_filled_total_" + B) | |
112 | 112 | ||
113 | 113 | ||
114 | 114 | func I (B) = ("order_prev_" + B) | |
115 | 115 | ||
116 | 116 | ||
117 | 117 | func J (B) = ("order_next_" + B) | |
118 | 118 | ||
119 | 119 | ||
120 | 120 | func K (L,M) = fraction(fraction(L, 100, M), j, k) | |
121 | 121 | ||
122 | 122 | ||
123 | 123 | func N (L,M) = fraction(fraction(L, M, 100), k, j) | |
124 | 124 | ||
125 | 125 | ||
126 | 126 | func O (L,M) = N(L, M) | |
127 | 127 | ||
128 | 128 | ||
129 | 129 | func P (L,M) = K(L, M) | |
130 | 130 | ||
131 | 131 | ||
132 | 132 | let Q = Address(base58'3Mzbx34Ex5rRbn39vUHx9kiwh3nneF8S5we') | |
133 | 133 | ||
134 | 134 | let R = Address(base58'3N4NS7d4Jo9a6F14LiFUKKYVdUkkf2eP4Zx') | |
135 | 135 | ||
136 | 136 | let S = Address(base58'3N5nmMvMH8o3RPEyCKCaoWahBTYTexnZy62') | |
137 | 137 | ||
138 | 138 | let T = base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT' | |
139 | 139 | ||
140 | 140 | let U = base58'BGhPYquXSK6UYjnPLEn94gFhetp4Jvf7toekEY4x1VDH' | |
141 | 141 | ||
142 | 142 | let V = f(R, "is_blocked") | |
143 | 143 | ||
144 | 144 | let W = i(R, r) | |
145 | 145 | ||
146 | 146 | let X = i(Q, x) | |
147 | 147 | ||
148 | 148 | let Y = (wavesBalance(Q) - i(Q, w)) | |
149 | 149 | ||
150 | 150 | let Z = (((X + extract(assetInfo(T)).quantity) - assetBalance(Q, T)) - assetBalance(S, T)) | |
151 | 151 | ||
152 | 152 | let aa = (Z - N(Y, W)) | |
153 | 153 | ||
154 | 154 | let ab = e(z) | |
155 | 155 | ||
156 | 156 | func ac (ad) = a(C(ad)) | |
157 | 157 | ||
158 | 158 | ||
159 | 159 | func ae (ad) = a(D(ad)) | |
160 | 160 | ||
161 | 161 | ||
162 | 162 | func af (ad) = e(E(ad)) | |
163 | 163 | ||
164 | 164 | ||
165 | 165 | func ag (ad) = e(G(ad)) | |
166 | 166 | ||
167 | 167 | ||
168 | 168 | func ah (ad) = a(H(ad)) | |
169 | 169 | ||
170 | 170 | ||
171 | 171 | func ai (ad) = e(I(ad)) | |
172 | 172 | ||
173 | 173 | ||
174 | 174 | func aj (ad) = e(J(ad)) | |
175 | 175 | ||
176 | 176 | ||
177 | 177 | func ak (al,am,an,ao,ap,aq) = if ((al == "")) | |
178 | 178 | then throw("empty orderbook") | |
179 | 179 | else { | |
180 | 180 | let ar = fraction((100 + ao), W, 100) | |
181 | 181 | let as = (ap - an) | |
182 | 182 | let at = O(as, ar) | |
183 | 183 | let au = P(at, ar) | |
184 | 184 | let av = (fraction(aa, 100, Z) >= ao) | |
185 | 185 | if (!(av)) | |
186 | 186 | then throw(("innapropriate roi: " + toString(ao))) | |
187 | 187 | else if ((au == 0)) | |
188 | 188 | then throw("cannot fill order at the moment") | |
189 | 189 | else { | |
190 | 190 | let aw = (as - au) | |
191 | 191 | let ax = [DataEntry(H(ab), (an + au)), DataEntry(G(ab), p)] | |
192 | 192 | let ay = [ScriptTransfer(aq, at, U), ScriptTransfer(Q, au, unit), ScriptTransfer(aq, aw, unit)] | |
193 | 193 | let az = if ((al == ab)) | |
194 | 194 | then [DataEntry(I(am), ""), DataEntry(z, am)] :: ax | |
195 | 195 | else ax | |
196 | 196 | ScriptResult(WriteSet(az), TransferSet(ay)) | |
197 | 197 | } | |
198 | 198 | } | |
199 | 199 | ||
200 | 200 | ||
201 | 201 | func aA (aB,aC,aD,aE) = { | |
202 | 202 | let aF = extract(aD.payment) | |
203 | 203 | let aG = toBase58String(aD.transactionId) | |
204 | 204 | if (V) | |
205 | 205 | then throw("contract is blocked by EMERGENCY SHUTDOWN actions until reactivation by emergency oracles") | |
206 | 206 | else if ((l > aF.amount)) | |
207 | 207 | then throw(("min order total equals " + toString(l))) | |
208 | 208 | else if ((aB > m)) | |
209 | 209 | then throw("max setOrder ROI is 95%") | |
210 | 210 | else if (if ((aa > 0)) | |
211 | 211 | then (0 > aB) | |
212 | 212 | else false) | |
213 | 213 | then throw("can't place order with negative roi during deficit") | |
214 | 214 | else if ((-(m) > aB)) | |
215 | 215 | then throw("min setOrder ROI is -95%") | |
216 | 216 | else if ((aB == 0)) | |
217 | 217 | then throw("roi should not be equal to 0") | |
218 | 218 | else if (isDefined(aF.assetId)) | |
219 | 219 | then throw("can use waves only") | |
220 | 220 | else if ((af(aG) != "")) | |
221 | 221 | then throw("order exists") | |
222 | 222 | else if (if ((aC != "")) | |
223 | 223 | then (ag(aC) != o) | |
224 | 224 | else false) | |
225 | 225 | then throw("prev order status is not new") | |
226 | 226 | else { | |
227 | 227 | let aH = (aC == "") | |
228 | 228 | let aI = toString(aD.caller) | |
229 | 229 | let aJ = if (aH) | |
230 | 230 | then ab | |
231 | 231 | else aj(aC) | |
232 | 232 | let aK = a(A(aJ)) | |
233 | 233 | let aL = if (if ((aJ != "")) | |
234 | 234 | then (aB >= aK) | |
235 | 235 | else false) | |
236 | 236 | then true | |
237 | 237 | else false | |
238 | 238 | let aM = a(A(aC)) | |
239 | 239 | let aN = if (if ((aC != "")) | |
240 | 240 | then (aM > aB) | |
241 | 241 | else false) | |
242 | 242 | then true | |
243 | 243 | else false | |
244 | 244 | if (if (aL) | |
245 | 245 | then true | |
246 | 246 | else aN) | |
247 | 247 | then throw(((("invalid order isPrevOrderError:" + toString(aN)) + " isNextOrderError:") + toString(aL))) | |
248 | 248 | else if (if (aH) | |
249 | 249 | then aE | |
250 | 250 | else false) | |
251 | 251 | then ak(aG, aJ, 0, aB, aF.amount, aD.caller) | |
252 | 252 | else if (aE) | |
253 | 253 | then throw("Instant order couldn't be added into waiting queue") | |
254 | 254 | else WriteSet([DataEntry(I(aG), aC), DataEntry(J(aG), aJ), DataEntry(J(aC), if ((aC == "")) | |
255 | 255 | then "" | |
256 | 256 | else aG), DataEntry(I(aJ), if ((aJ == "")) | |
257 | 257 | then "" | |
258 | 258 | else aG), DataEntry(z, if (if ((ab == "")) | |
259 | 259 | then true | |
260 | 260 | else (ab == aJ)) | |
261 | 261 | then aG | |
262 | 262 | else ab), DataEntry(D(aG), aF.amount), DataEntry(E(aG), aI), DataEntry(F(aG), height), DataEntry(G(aG), o), DataEntry(("debug_order_currentPrice_" + aG), W), DataEntry(A(aG), aB)]) | |
263 | 263 | } | |
264 | 264 | } | |
265 | 265 | ||
266 | 266 | ||
267 | 267 | @Callable(aO) | |
268 | - | func instantBuyNsbtOrFail (aB | |
268 | + | func instantBuyNsbtOrFail (aB) = { | |
269 | 269 | let aF = extract(aO.payment) | |
270 | - | aA(aB, | |
270 | + | aA(aB, "", aO, true) | |
271 | 271 | } | |
272 | 272 | ||
273 | 273 | ||
274 | 274 | ||
275 | 275 | @Callable(aO) | |
276 | 276 | func addBuyBondOrder (M,aC) = { | |
277 | 277 | let aF = extract(aO.payment) | |
278 | 278 | let ar = fraction(100, 100, M) | |
279 | 279 | let aB = fraction((ar - W), 100, W) | |
280 | 280 | if ((0 >= M)) | |
281 | 281 | then throw("price less zero") | |
282 | 282 | else aA(aB, aC, aO, false) | |
283 | 283 | } | |
284 | 284 | ||
285 | 285 | ||
286 | 286 | ||
287 | 287 | @Callable(aO) | |
288 | 288 | func cancelOrder (B) = { | |
289 | 289 | let aI = af(B) | |
290 | 290 | let L = (ae(B) - ah(B)) | |
291 | 291 | let aP = toString(aO.caller) | |
292 | 292 | let aJ = aj(B) | |
293 | 293 | let aC = ai(B) | |
294 | 294 | if (V) | |
295 | 295 | then throw("contract is blocked by EMERGENCY SHUTDOWN actions until reactivation by emergency oracles") | |
296 | 296 | else if ((aI != aP)) | |
297 | 297 | then throw("permission denied") | |
298 | 298 | else if ((ag(B) != o)) | |
299 | 299 | then throw("invalid order status") | |
300 | 300 | else ScriptResult(WriteSet([DataEntry(z, if ((ab == B)) | |
301 | 301 | then aJ | |
302 | 302 | else ab), DataEntry(J(aC), aJ), DataEntry(I(aJ), aC), DataEntry(G(B), n)]), TransferSet([ScriptTransfer(aO.caller, L, unit)])) | |
303 | 303 | } | |
304 | 304 | ||
305 | 305 | ||
306 | 306 | ||
307 | 307 | @Callable(aO) | |
308 | 308 | func sellBond () = if (V) | |
309 | 309 | then throw("contract is blocked by EMERGENCY SHUTDOWN actions until reactivation by emergency oracles") | |
310 | 310 | else if ((ab == "")) | |
311 | 311 | then throw("empty orderbook") | |
312 | 312 | else { | |
313 | 313 | let aJ = aj(ab) | |
314 | 314 | let aQ = ah(ab) | |
315 | 315 | let aR = ac(ab) | |
316 | 316 | let aB = a(A(ab)) | |
317 | 317 | let aS = ae(ab) | |
318 | 318 | let aq = Address(fromBase58String(af(ab))) | |
319 | 319 | ak(ab, aJ, aQ, aB, aS, aq) | |
320 | 320 | } | |
321 | 321 | ||
322 | 322 | ||
323 | 323 | ||
324 | 324 | @Callable(aO) | |
325 | 325 | func updateReservesAndNeutrinoSupply () = { | |
326 | 326 | func aT (b) = { | |
327 | 327 | let c = getInteger(this, b) | |
328 | 328 | if ($isInstanceOf(c, "Int")) | |
329 | 329 | then { | |
330 | 330 | let d = c | |
331 | 331 | d | |
332 | 332 | } | |
333 | 333 | else 0 | |
334 | 334 | } | |
335 | 335 | ||
336 | 336 | let aU = aT("updateReservesAndNeutrinoSupplyIdx") | |
337 | 337 | let aV = (aU + 1) | |
338 | 338 | WriteSet([DataEntry("updateReservesAndNeutrinoSupplyIdx", aV), DataEntry("reserve", Y), DataEntry("neutrinoSupply", Z), DataEntry("deficit", aa)]) | |
339 | 339 | } | |
340 | 340 | ||
341 | 341 | ||
342 | 342 | @Verifier(aW) | |
343 | 343 | func aX () = { | |
344 | 344 | let aY = ["GXxmZaCigPgJsT6d1cLr8nUXA65nGX8V7FuAzzrY8wQE", "3xumx4hrPpeeoo79HLGbZCgfz95L39ZFdxxwWeSUC2Pu", "D4CqtK5fBsnzRo33ZMhrM7niLseDH2uRoK6weBq2JQ3A", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"] | |
345 | 345 | let aZ = ((((if (sigVerify(aW.bodyBytes, aW.proofs[0], fromBase58String(aY[0]))) | |
346 | 346 | then 1 | |
347 | 347 | else 0) + (if (sigVerify(aW.bodyBytes, aW.proofs[1], fromBase58String(aY[1]))) | |
348 | 348 | then 1 | |
349 | 349 | else 0)) + (if (sigVerify(aW.bodyBytes, aW.proofs[2], fromBase58String(aY[2]))) | |
350 | 350 | then 1 | |
351 | 351 | else 0)) + (if (sigVerify(aW.bodyBytes, aW.proofs[3], fromBase58String(aY[3]))) | |
352 | 352 | then 2 | |
353 | 353 | else 0)) | |
354 | 354 | (aZ >= 3) | |
355 | 355 | } | |
356 | 356 |
github/deemru/w8io/169f3d6 78.44 ms ◑