tx · 2gFT2F1bizqbB52qBQohof257JkWhKPuJ8mba6u2yBqc

3N61Xs9cTetvoP1uZSrtuRxxJ4A4RCR7a4G:  -0.05000000 Waves

2020.11.30 20:12 [1288440] smart account 3N61Xs9cTetvoP1uZSrtuRxxJ4A4RCR7a4G > SELF 0.00000000 Waves

{ "type": 13, "id": "2gFT2F1bizqbB52qBQohof257JkWhKPuJ8mba6u2yBqc", "fee": 5000000, "feeAssetId": null, "timestamp": 1606756369378, "version": 2, "chainId": 84, "sender": "3N61Xs9cTetvoP1uZSrtuRxxJ4A4RCR7a4G", "senderPublicKey": "DjYkFAzpGaY6gNruMz81SkVbRsemgpfr6KJbXXgyH3UM", "proofs": [ "4VQdZ58x5AvgZH5XGTg1wC6tJdAinVsVTfyNq3C4HEP47FaFdRr8qz6aCLqYuLdG5SX4p6NMNocothcap5iyBS93" ], "script": "base64:AAIEAAAAAAAAAC8IAhIECgIICBIECgIICBIHCgUIAQgICBIFCgMICAgSBAoCCAgSBAoCCAgSAwoBCAAAABgAAAAABE5PTkUCAAAABE5PTkUBAAAADmdldFN0cmluZ0J5S2V5AAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEFAAAABE5PTkUBAAAAD2dldEJvb2xlYW5CeUtleQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGwAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAHQm9vbGVhbgQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQUAAAAETk9ORQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEA//////////8BAAAAC2dldEtleU9yZGVyAAAAAgAAABZyZXRhaWxlcklkZW50aWZpY2F0aW9uAAAAB29yZGVySWQEAAAAIHJldGFpbGVySWRlbnRpZmljYXRpb25BbmRPcmRlcklkCQABLAAAAAIFAAAAFnJldGFpbGVySWRlbnRpZmljYXRpb24FAAAAB29yZGVySWQJAAEsAAAAAgIAAAAGb3JkZXJfCQACWAAAAAEJAAH3AAAAAQkAAZsAAAABBQAAACByZXRhaWxlcklkZW50aWZpY2F0aW9uQW5kT3JkZXJJZAEAAAAOZ2V0S2V5UmV0YWlsZXIAAAABAAAAFnJldGFpbGVySWRlbnRpZmljYXRpb24JAAEsAAAAAgIAAAAJcmV0YWlsZXJfCQACWAAAAAEJAAH3AAAAAQkAAZsAAAABBQAAABZyZXRhaWxlcklkZW50aWZpY2F0aW9uAQAAAA1nZXRLZXlDb3VyaWVyAAAAAQAAABVjb3VyaWVySWRlbnRpZmljYXRpb24JAAEsAAAAAgIAAAAIY291cmllcl8JAAJYAAAAAQkAAfcAAAABCQABmwAAAAEFAAAAFWNvdXJpZXJJZGVudGlmaWNhdGlvbgEAAAAhZ2V0S2V5T3JkZXJSZXRhaWxlcklkZW50aWZpY2F0aW9uAAAAAQAAAAVvcmRlcgkAASwAAAACBQAAAAVvcmRlcgIAAAAJX3JldGFpbGVyAQAAABhnZXRLZXlPcmRlclNoaXBwaW5nQ29zdHMAAAACAAAABW9yZGVyAAAAFnJldGFpbGVySWRlbnRpZmljYXRpb24JAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAAFnJldGFpbGVySWRlbnRpZmljYXRpb24CAAAAAV8FAAAABW9yZGVyAgAAAAlfc2hpcHBpbmcBAAAAEmdldEtleU9yZGVyQ291cmllcgAAAAIAAAAFb3JkZXIAAAAWcmV0YWlsZXJJZGVudGlmaWNhdGlvbgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAWcmV0YWlsZXJJZGVudGlmaWNhdGlvbgIAAAABXwUAAAAFb3JkZXICAAAACl9jb3VyaWVySWQBAAAAFWdldEtleU9yZGVySXNBY2NlcHRlZAAAAAMAAAAFb3JkZXIAAAAWcmV0YWlsZXJJZGVudGlmaWNhdGlvbgAAAA5jb3VyaWVyQWRkcmVzcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAABZyZXRhaWxlcklkZW50aWZpY2F0aW9uAgAAAAFfBQAAAAVvcmRlcgIAAAAOX2RhdGFfY291cmllcl8FAAAADmNvdXJpZXJBZGRyZXNzAQAAABdnZXRLZXlPcmRlcklzSW5EZWxpdmVyeQAAAAMAAAAFb3JkZXIAAAAWcmV0YWlsZXJJZGVudGlmaWNhdGlvbgAAAA5jb3VyaWVyQWRkcmVzcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAAFnJldGFpbGVySWRlbnRpZmljYXRpb24CAAAAAV8FAAAABW9yZGVyAgAAAA5fZGF0YV9jb3VyaWVyXwUAAAAOY291cmllckFkZHJlc3MCAAAADV9pc0luRGVsaXZlcnkBAAAAE2dldEtleU9yZGVyRGF0YU9wZW4AAAACAAAABW9yZGVyAAAAFnJldGFpbGVySWRlbnRpZmljYXRpb24JAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAAFnJldGFpbGVySWRlbnRpZmljYXRpb24CAAAAAV8FAAAABW9yZGVyAgAAAApfZGF0YV9vcGVuAQAAABZnZXRLZXlPcmRlcklzRGVsaXZlcmVkAAAAAwAAAAVvcmRlcgAAABZyZXRhaWxlcklkZW50aWZpY2F0aW9uAAAADmNvdXJpZXJBZGRyZXNzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAAFnJldGFpbGVySWRlbnRpZmljYXRpb24CAAAAAV8FAAAABW9yZGVyAgAAAA1faXNEZWxpdmVyZWRfBQAAAA5jb3VyaWVyQWRkcmVzcwEAAAASZ2V0S2V5UmV0YWlsZXJEYXRhAAAAAQAAAAhyZXRhaWxlcgkAASwAAAACBQAAAAhyZXRhaWxlcgIAAAAFX2RhdGEBAAAAEWdldEtleUNvdXJpZXJEYXRhAAAAAQAAAAdjb3VyaWVyCQABLAAAAAIFAAAAB2NvdXJpZXICAAAABV9kYXRhAQAAACVnZXRWYWx1ZVJldGFpbGVySWRlbnRpZmljYXRpb25PZk9yZGVyAAAAAQAAAAVvcmRlcgkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAIWdldEtleU9yZGVyUmV0YWlsZXJJZGVudGlmaWNhdGlvbgAAAAEFAAAABW9yZGVyAQAAABlnZXRWYWx1ZUlzQWNjZXB0ZWRPZk9yZGVyAAAAAwAAAAVvcmRlcgAAABZyZXRhaWxlcklkZW50aWZpY2F0aW9uAAAADmNvdXJpZXJBZGRyZXNzCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAVZ2V0S2V5T3JkZXJJc0FjY2VwdGVkAAAAAwUAAAAFb3JkZXIFAAAAFnJldGFpbGVySWRlbnRpZmljYXRpb24FAAAADmNvdXJpZXJBZGRyZXNzAQAAABhnZXRWYWx1ZUNvdXJpZXJJZE9mT3JkZXIAAAACAAAABW9yZGVyAAAAFnJldGFpbGVySWRlbnRpZmljYXRpb24JAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABJnZXRLZXlPcmRlckNvdXJpZXIAAAACBQAAAAVvcmRlcgUAAAAWcmV0YWlsZXJJZGVudGlmaWNhdGlvbgEAAAAbZ2V0VmFsdWVJc0luRGVsaXZlcnlPZk9yZGVyAAAAAwAAAAVvcmRlcgAAABZyZXRhaWxlcklkZW50aWZpY2F0aW9uAAAADmNvdXJpZXJBZGRyZXNzCQEAAAAPZ2V0Qm9vbGVhbkJ5S2V5AAAAAQkBAAAAF2dldEtleU9yZGVySXNJbkRlbGl2ZXJ5AAAAAwUAAAAFb3JkZXIFAAAAFnJldGFpbGVySWRlbnRpZmljYXRpb24FAAAADmNvdXJpZXJBZGRyZXNzAQAAABpnZXRWYWx1ZUlzRGVsaXZlcmVkT2ZPcmRlcgAAAAMAAAAFb3JkZXIAAAAWcmV0YWlsZXJJZGVudGlmaWNhdGlvbgAAAA5jb3VyaWVyQWRkcmVzcwkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAFmdldEtleU9yZGVySXNEZWxpdmVyZWQAAAADBQAAAAVvcmRlcgUAAAAWcmV0YWlsZXJJZGVudGlmaWNhdGlvbgUAAAAOY291cmllckFkZHJlc3MBAAAAHGdldFZhbHVlU2hpcHBpbmdDb3N0c09mT3JkZXIAAAACAAAABW9yZGVyAAAAFnJldGFpbGVySWRlbnRpZmljYXRpb24JAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABCQEAAAAYZ2V0S2V5T3JkZXJTaGlwcGluZ0Nvc3RzAAAAAgUAAAAFb3JkZXIFAAAAFnJldGFpbGVySWRlbnRpZmljYXRpb24BAAAAF2dldFZhbHVlRGF0YU9mT3JkZXJPcGVuAAAAAgAAAAVvcmRlcgAAABZyZXRhaWxlcklkZW50aWZpY2F0aW9uCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAATZ2V0S2V5T3JkZXJEYXRhT3BlbgAAAAIFAAAABW9yZGVyBQAAABZyZXRhaWxlcklkZW50aWZpY2F0aW9uAQAAABZnZXRWYWx1ZURhdGFPZlJldGFpbGVyAAAAAQAAAAhyZXRhaWxlcgkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAEmdldEtleVJldGFpbGVyRGF0YQAAAAEFAAAACHJldGFpbGVyAAAABwAAAAFpAQAAABByZWdpc3RlclJldGFpbGVyAAAAAgAAABZyZXRhaWxlcklkZW50aWZpY2F0aW9uAAAADHJldGFpbGVyRGF0YQQAAAAIcmV0YWlsZXIJAQAAAA5nZXRLZXlSZXRhaWxlcgAAAAEFAAAAFnJldGFpbGVySWRlbnRpZmljYXRpb24JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEmdldEtleVJldGFpbGVyRGF0YQAAAAEFAAAACHJldGFpbGVyBQAAAAxyZXRhaWxlckRhdGEFAAAAA25pbAAAAAFpAQAAAA9yZWdpc3RlckNvdXJpZXIAAAACAAAAFWNvdXJpZXJJZGVudGlmaWNhdGlvbgAAAAtjb3VyaWVyRGF0YQQAAAAHY291cmllcgkBAAAADWdldEtleUNvdXJpZXIAAAABBQAAABVjb3VyaWVySWRlbnRpZmljYXRpb24JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEWdldEtleUNvdXJpZXJEYXRhAAAAAQUAAAAHY291cmllcgUAAAALY291cmllckRhdGEFAAAAA25pbAAAAAFpAQAAAAhhZGRPcmRlcgAAAAUAAAAHb3JkZXJJZAAAAA1zaGlwcGluZ0Nvc3RzAAAACW9yZGVyRGF0YQAAABZyZXRhaWxlcklkZW50aWZpY2F0aW9uAAAADHJldGFpbGVyRGF0YQQAAAAFb3JkZXIJAQAAAAtnZXRLZXlPcmRlcgAAAAIFAAAAFnJldGFpbGVySWRlbnRpZmljYXRpb24FAAAAB29yZGVySWQEAAAACHJldGFpbGVyCQEAAAAOZ2V0S2V5UmV0YWlsZXIAAAABBQAAABZyZXRhaWxlcklkZW50aWZpY2F0aW9uBAAAAAhzaGlwcGluZwkAAGgAAAACBQAAAA1zaGlwcGluZ0Nvc3RzAAAAAAAF9eEAAwkAAGcAAAACAAAAAAAAAAAABQAAAA1zaGlwcGluZ0Nvc3RzCQAAAgAAAAECAAAAO1lvdSBjYW5ub3QgY3JlYXRlIGFuIG9yZGVyIHdpdGggc2hpcHBpbmcgY29zdHMgbG93ZXIgdGhhbiAwAwkBAAAAAiE9AAAAAgkBAAAAJWdldFZhbHVlUmV0YWlsZXJJZGVudGlmaWNhdGlvbk9mT3JkZXIAAAABBQAAAAVvcmRlcgUAAAAETk9ORQkAAAIAAAABAgAAAChBbiBvcmRlciB3aXRoIHRoZSBzYW1lIGlkIGFscmVhZHkgZXhpc3RzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABJnZXRLZXlSZXRhaWxlckRhdGEAAAABBQAAAAhyZXRhaWxlcgUAAAAMcmV0YWlsZXJEYXRhCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAACFnZXRLZXlPcmRlclJldGFpbGVySWRlbnRpZmljYXRpb24AAAABBQAAAAVvcmRlcgUAAAAWcmV0YWlsZXJJZGVudGlmaWNhdGlvbgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAGGdldEtleU9yZGVyU2hpcHBpbmdDb3N0cwAAAAIFAAAABW9yZGVyBQAAABZyZXRhaWxlcklkZW50aWZpY2F0aW9uBQAAAAhzaGlwcGluZwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAATZ2V0S2V5T3JkZXJEYXRhT3BlbgAAAAIFAAAABW9yZGVyBQAAABZyZXRhaWxlcklkZW50aWZpY2F0aW9uBQAAAAlvcmRlckRhdGEJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEmdldEtleU9yZGVyQ291cmllcgAAAAIFAAAABW9yZGVyBQAAABZyZXRhaWxlcklkZW50aWZpY2F0aW9uBQAAAAROT05FCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABVnZXRLZXlPcmRlcklzQWNjZXB0ZWQAAAADBQAAAAVvcmRlcgUAAAAWcmV0YWlsZXJJZGVudGlmaWNhdGlvbgIAAAAABQAAAAROT05FCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABdnZXRLZXlPcmRlcklzSW5EZWxpdmVyeQAAAAMFAAAABW9yZGVyBQAAABZyZXRhaWxlcklkZW50aWZpY2F0aW9uAgAAAAAFAAAABE5PTkUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAFmdldEtleU9yZGVySXNEZWxpdmVyZWQAAAADBQAAAAVvcmRlcgUAAAAWcmV0YWlsZXJJZGVudGlmaWNhdGlvbgIAAAAABQAAAAROT05FBQAAAANuaWwAAAABaQEAAAASc2V0T3JkZXJJc0FjY2VwdGVkAAAAAwAAABZyZXRhaWxlcklkZW50aWZpY2F0aW9uAAAAB29yZGVySWQAAAAOY291cmllckFkZHJlc3MEAAAABW9yZGVyCQEAAAALZ2V0S2V5T3JkZXIAAAACBQAAABZyZXRhaWxlcklkZW50aWZpY2F0aW9uBQAAAAdvcmRlcklkBAAAAAlvcmRlckRhdGEJAQAAABdnZXRWYWx1ZURhdGFPZk9yZGVyT3BlbgAAAAIFAAAABW9yZGVyBQAAABZyZXRhaWxlcklkZW50aWZpY2F0aW9uAwkBAAAAAiE9AAAAAgkBAAAAJWdldFZhbHVlUmV0YWlsZXJJZGVudGlmaWNhdGlvbk9mT3JkZXIAAAABBQAAAAVvcmRlcgUAAAAWcmV0YWlsZXJJZGVudGlmaWNhdGlvbgkAAAIAAAABAgAAACJUaGUgcmVxdWVzdGVkIG9yZGVyIGRvZXMgbm90IGV4aXN0AwkBAAAAAiE9AAAAAgkBAAAAGWdldFZhbHVlSXNBY2NlcHRlZE9mT3JkZXIAAAADBQAAAAVvcmRlcgUAAAAWcmV0YWlsZXJJZGVudGlmaWNhdGlvbgUAAAAOY291cmllckFkZHJlc3MFAAAABE5PTkUJAAACAAAAAQIAAAAqVGhlIHJlcXVlc3RlZCBvcmRlciBpcyBubyBsb25nZXIgYXZhaWxhYmxlCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAABNnZXRLZXlPcmRlckRhdGFPcGVuAAAAAgUAAAAFb3JkZXIFAAAAFnJldGFpbGVySWRlbnRpZmljYXRpb24JAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAFWdldEtleU9yZGVySXNBY2NlcHRlZAAAAAMFAAAABW9yZGVyBQAAABZyZXRhaWxlcklkZW50aWZpY2F0aW9uAgAAAAAJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAFWdldEtleU9yZGVySXNBY2NlcHRlZAAAAAMFAAAABW9yZGVyBQAAABZyZXRhaWxlcklkZW50aWZpY2F0aW9uBQAAAA5jb3VyaWVyQWRkcmVzcwUAAAAJb3JkZXJEYXRhCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQEAAAAXZ2V0S2V5T3JkZXJJc0luRGVsaXZlcnkAAAADBQAAAAVvcmRlcgUAAAAWcmV0YWlsZXJJZGVudGlmaWNhdGlvbgUAAAAOY291cmllckFkZHJlc3MHCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABJnZXRLZXlPcmRlckNvdXJpZXIAAAACBQAAAAVvcmRlcgUAAAAWcmV0YWlsZXJJZGVudGlmaWNhdGlvbgUAAAAOY291cmllckFkZHJlc3MFAAAAA25pbAAAAAFpAQAAABRzZXRPcmRlcklzSW5EZWxpdmVyeQAAAAIAAAAWcmV0YWlsZXJJZGVudGlmaWNhdGlvbgAAAAdvcmRlcklkBAAAAAVvcmRlcgkBAAAAC2dldEtleU9yZGVyAAAAAgUAAAAWcmV0YWlsZXJJZGVudGlmaWNhdGlvbgUAAAAHb3JkZXJJZAQAAAAOY291cmllckFkZHJlc3MJAQAAABhnZXRWYWx1ZUNvdXJpZXJJZE9mT3JkZXIAAAACBQAAAAVvcmRlcgUAAAAWcmV0YWlsZXJJZGVudGlmaWNhdGlvbgMJAQAAAAIhPQAAAAIJAQAAACVnZXRWYWx1ZVJldGFpbGVySWRlbnRpZmljYXRpb25PZk9yZGVyAAAAAQUAAAAFb3JkZXIFAAAAFnJldGFpbGVySWRlbnRpZmljYXRpb24JAAACAAAAAQIAAAAiVGhlIHJlcXVlc3RlZCBvcmRlciBkb2VzIG5vdCBleGlzdAMJAQAAAAIhPQAAAAIJAQAAABtnZXRWYWx1ZUlzSW5EZWxpdmVyeU9mT3JkZXIAAAADBQAAAAVvcmRlcgUAAAAWcmV0YWlsZXJJZGVudGlmaWNhdGlvbgUAAAAOY291cmllckFkZHJlc3MHCQAAAgAAAAECAAAAKlRoZSByZXF1ZXN0ZWQgb3JkZXIgaXMgbm8gbG9uZ2VyIGF2YWlsYWJsZQkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgkBAAAAF2dldEtleU9yZGVySXNJbkRlbGl2ZXJ5AAAAAwUAAAAFb3JkZXIFAAAAFnJldGFpbGVySWRlbnRpZmljYXRpb24FAAAADmNvdXJpZXJBZGRyZXNzBgUAAAADbmlsAAAAAWkBAAAAE3NldE9yZGVySXNEZWxpdmVyZWQAAAACAAAAFnJldGFpbGVySWRlbnRpZmljYXRpb24AAAAHb3JkZXJJZAQAAAAFb3JkZXIJAQAAAAtnZXRLZXlPcmRlcgAAAAIFAAAAFnJldGFpbGVySWRlbnRpZmljYXRpb24FAAAAB29yZGVySWQEAAAADmNvdXJpZXJBZGRyZXNzCQEAAAAYZ2V0VmFsdWVDb3VyaWVySWRPZk9yZGVyAAAAAgUAAAAFb3JkZXIFAAAAFnJldGFpbGVySWRlbnRpZmljYXRpb24EAAAACW9yZGVyRGF0YQkBAAAAGWdldFZhbHVlSXNBY2NlcHRlZE9mT3JkZXIAAAADBQAAAAVvcmRlcgUAAAAWcmV0YWlsZXJJZGVudGlmaWNhdGlvbgUAAAAOY291cmllckFkZHJlc3MEAAAACHNoaXBwaW5nCQEAAAAcZ2V0VmFsdWVTaGlwcGluZ0Nvc3RzT2ZPcmRlcgAAAAIFAAAABW9yZGVyBQAAABZyZXRhaWxlcklkZW50aWZpY2F0aW9uAwkBAAAAAiE9AAAAAgkBAAAAJWdldFZhbHVlUmV0YWlsZXJJZGVudGlmaWNhdGlvbk9mT3JkZXIAAAABBQAAAAVvcmRlcgUAAAAWcmV0YWlsZXJJZGVudGlmaWNhdGlvbgkAAAIAAAABAgAAACJUaGUgcmVxdWVzdGVkIG9yZGVyIGRvZXMgbm90IGV4aXN0AwkAAAAAAAACBQAAAA5jb3VyaWVyQWRkcmVzcwUAAAAETk9ORQkAAAIAAAABAgAAAD5UaGVyZSB3YXMgbm8gY291cmllciBzZXQhIFNvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggdGhlIG9yZGVyLgMJAQAAAAIhPQAAAAIJAQAAABpnZXRWYWx1ZUlzRGVsaXZlcmVkT2ZPcmRlcgAAAAMFAAAABW9yZGVyBQAAABZyZXRhaWxlcklkZW50aWZpY2F0aW9uBQAAAA5jb3VyaWVyQWRkcmVzcwUAAAAETk9ORQkAAAIAAAABAgAAACpUaGUgcmVxdWVzdGVkIG9yZGVyIGlzIG5vIGxvbmdlciBhdmFpbGFibGUJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAFWdldEtleU9yZGVySXNBY2NlcHRlZAAAAAMFAAAABW9yZGVyBQAAABZyZXRhaWxlcklkZW50aWZpY2F0aW9uBQAAAA5jb3VyaWVyQWRkcmVzcwkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAWZ2V0S2V5T3JkZXJJc0RlbGl2ZXJlZAAAAAMFAAAABW9yZGVyBQAAABZyZXRhaWxlcklkZW50aWZpY2F0aW9uAgAAAAAJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAFmdldEtleU9yZGVySXNEZWxpdmVyZWQAAAADBQAAAAVvcmRlcgUAAAAWcmV0YWlsZXJJZGVudGlmaWNhdGlvbgUAAAAOY291cmllckFkZHJlc3MFAAAACW9yZGVyRGF0YQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAA5jb3VyaWVyQWRkcmVzcwUAAAAIc2hpcHBpbmcFAAAABHVuaXQFAAAAA25pbAAAAAFpAQAAAAtkZWxldGVFbnRyeQAAAAEAAAADa2V5CQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEFAAAAA2tleQUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXkZUrOr", "height": 1288440, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Gyc3o4JPaBo57QNQWiNCY8LzjcbHH5pvWSHgUD4yWqha Next: 2Yq2YgnJ4QsSUfTJttitfgS2RibVnCXrm3ktU4fzdFnz Diff:
OldNewDifferences
5151 func getKeyOrderIsAccepted (order,retailerIdentification,courierAddress) = ((((retailerIdentification + "_") + order) + "_data_courier_") + courierAddress)
5252
5353
54-func getKeyOrderIsInDelivery (order,retailerIdentification) = (((retailerIdentification + "_") + order) + "_isInDelivery")
54+func getKeyOrderIsInDelivery (order,retailerIdentification,courierAddress) = (((((retailerIdentification + "_") + order) + "_data_courier_") + courierAddress) + "_isInDelivery")
5555
5656
5757 func getKeyOrderDataOpen (order,retailerIdentification) = (((retailerIdentification + "_") + order) + "_data_open")
7575 func getValueCourierIdOfOrder (order,retailerIdentification) = getStringByKey(getKeyOrderCourier(order, retailerIdentification))
7676
7777
78-func getValueIsInDeliveryOfOrder (order,retailerIdentification) = getBooleanByKey(getKeyOrderIsInDelivery(order, retailerIdentification))
78+func getValueIsInDeliveryOfOrder (order,retailerIdentification,courierAddress) = getBooleanByKey(getKeyOrderIsInDelivery(order, retailerIdentification, courierAddress))
7979
8080
8181 func getValueIsDeliveredOfOrder (order,retailerIdentification,courierAddress) = getStringByKey(getKeyOrderIsDelivered(order, retailerIdentification, courierAddress))
115115 then throw("You cannot create an order with shipping costs lower than 0")
116116 else if ((getValueRetailerIdentificationOfOrder(order) != NONE))
117117 then throw("An order with the same id already exists")
118- else [StringEntry(getKeyRetailerData(retailer), retailerData), StringEntry(getKeyOrderRetailerIdentification(order), retailerIdentification), IntegerEntry(getKeyOrderShippingCosts(order, retailerIdentification), shipping), StringEntry(getKeyOrderDataOpen(order, retailerIdentification), orderData), StringEntry(getKeyOrderCourier(order, retailerIdentification), NONE), StringEntry(getKeyOrderIsAccepted(order, retailerIdentification, ""), NONE), StringEntry(getKeyOrderIsInDelivery(order, retailerIdentification), NONE), StringEntry(getKeyOrderIsDelivered(order, retailerIdentification, ""), NONE)]
118+ else [StringEntry(getKeyRetailerData(retailer), retailerData), StringEntry(getKeyOrderRetailerIdentification(order), retailerIdentification), IntegerEntry(getKeyOrderShippingCosts(order, retailerIdentification), shipping), StringEntry(getKeyOrderDataOpen(order, retailerIdentification), orderData), StringEntry(getKeyOrderCourier(order, retailerIdentification), NONE), StringEntry(getKeyOrderIsAccepted(order, retailerIdentification, ""), NONE), StringEntry(getKeyOrderIsInDelivery(order, retailerIdentification, ""), NONE), StringEntry(getKeyOrderIsDelivered(order, retailerIdentification, ""), NONE)]
119119 }
120120
121121
128128 then throw("The requested order does not exist")
129129 else if ((getValueIsAcceptedOfOrder(order, retailerIdentification, courierAddress) != NONE))
130130 then throw("The requested order is no longer available")
131- else [DeleteEntry(getKeyOrderDataOpen(order, retailerIdentification)), DeleteEntry(getKeyOrderIsAccepted(order, retailerIdentification, "")), StringEntry(getKeyOrderIsAccepted(order, retailerIdentification, courierAddress), orderData), StringEntry(getKeyOrderCourier(order, retailerIdentification), courierAddress)]
131+ else [DeleteEntry(getKeyOrderDataOpen(order, retailerIdentification)), DeleteEntry(getKeyOrderIsAccepted(order, retailerIdentification, "")), StringEntry(getKeyOrderIsAccepted(order, retailerIdentification, courierAddress), orderData), BooleanEntry(getKeyOrderIsInDelivery(order, retailerIdentification, courierAddress), false), StringEntry(getKeyOrderCourier(order, retailerIdentification), courierAddress)]
132132 }
133133
134134
136136 @Callable(i)
137137 func setOrderIsInDelivery (retailerIdentification,orderId) = {
138138 let order = getKeyOrder(retailerIdentification, orderId)
139+ let courierAddress = getValueCourierIdOfOrder(order, retailerIdentification)
139140 if ((getValueRetailerIdentificationOfOrder(order) != retailerIdentification))
140141 then throw("The requested order does not exist")
141- else if ((getValueIsInDeliveryOfOrder(order, retailerIdentification) != NONE))
142+ else if ((getValueIsInDeliveryOfOrder(order, retailerIdentification, courierAddress) != false))
142143 then throw("The requested order is no longer available")
143- else [BooleanEntry(getKeyOrderIsInDelivery(order, retailerIdentification), true)]
144+ else [BooleanEntry(getKeyOrderIsInDelivery(order, retailerIdentification, courierAddress), true)]
144145 }
145146
146147
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let NONE = "NONE"
55
66 func getStringByKey (key) = match getString(this, key) {
77 case a: String =>
88 a
99 case _ =>
1010 NONE
1111 }
1212
1313
1414 func getBooleanByKey (key) = match getBoolean(this, key) {
1515 case a: Boolean =>
1616 a
1717 case _ =>
1818 NONE
1919 }
2020
2121
2222 func getIntegerByKey (key) = match getInteger(this, key) {
2323 case a: Int =>
2424 a
2525 case _ =>
2626 -1
2727 }
2828
2929
3030 func getKeyOrder (retailerIdentification,orderId) = {
3131 let retailerIdentificationAndOrderId = (retailerIdentification + orderId)
3232 ("order_" + toBase58String(sha256(toBytes(retailerIdentificationAndOrderId))))
3333 }
3434
3535
3636 func getKeyRetailer (retailerIdentification) = ("retailer_" + toBase58String(sha256(toBytes(retailerIdentification))))
3737
3838
3939 func getKeyCourier (courierIdentification) = ("courier_" + toBase58String(sha256(toBytes(courierIdentification))))
4040
4141
4242 func getKeyOrderRetailerIdentification (order) = (order + "_retailer")
4343
4444
4545 func getKeyOrderShippingCosts (order,retailerIdentification) = (((retailerIdentification + "_") + order) + "_shipping")
4646
4747
4848 func getKeyOrderCourier (order,retailerIdentification) = (((retailerIdentification + "_") + order) + "_courierId")
4949
5050
5151 func getKeyOrderIsAccepted (order,retailerIdentification,courierAddress) = ((((retailerIdentification + "_") + order) + "_data_courier_") + courierAddress)
5252
5353
54-func getKeyOrderIsInDelivery (order,retailerIdentification) = (((retailerIdentification + "_") + order) + "_isInDelivery")
54+func getKeyOrderIsInDelivery (order,retailerIdentification,courierAddress) = (((((retailerIdentification + "_") + order) + "_data_courier_") + courierAddress) + "_isInDelivery")
5555
5656
5757 func getKeyOrderDataOpen (order,retailerIdentification) = (((retailerIdentification + "_") + order) + "_data_open")
5858
5959
6060 func getKeyOrderIsDelivered (order,retailerIdentification,courierAddress) = ((((retailerIdentification + "_") + order) + "_isDelivered_") + courierAddress)
6161
6262
6363 func getKeyRetailerData (retailer) = (retailer + "_data")
6464
6565
6666 func getKeyCourierData (courier) = (courier + "_data")
6767
6868
6969 func getValueRetailerIdentificationOfOrder (order) = getStringByKey(getKeyOrderRetailerIdentification(order))
7070
7171
7272 func getValueIsAcceptedOfOrder (order,retailerIdentification,courierAddress) = getStringByKey(getKeyOrderIsAccepted(order, retailerIdentification, courierAddress))
7373
7474
7575 func getValueCourierIdOfOrder (order,retailerIdentification) = getStringByKey(getKeyOrderCourier(order, retailerIdentification))
7676
7777
78-func getValueIsInDeliveryOfOrder (order,retailerIdentification) = getBooleanByKey(getKeyOrderIsInDelivery(order, retailerIdentification))
78+func getValueIsInDeliveryOfOrder (order,retailerIdentification,courierAddress) = getBooleanByKey(getKeyOrderIsInDelivery(order, retailerIdentification, courierAddress))
7979
8080
8181 func getValueIsDeliveredOfOrder (order,retailerIdentification,courierAddress) = getStringByKey(getKeyOrderIsDelivered(order, retailerIdentification, courierAddress))
8282
8383
8484 func getValueShippingCostsOfOrder (order,retailerIdentification) = getIntegerByKey(getKeyOrderShippingCosts(order, retailerIdentification))
8585
8686
8787 func getValueDataOfOrderOpen (order,retailerIdentification) = getStringByKey(getKeyOrderDataOpen(order, retailerIdentification))
8888
8989
9090 func getValueDataOfRetailer (retailer) = getStringByKey(getKeyRetailerData(retailer))
9191
9292
9393 @Callable(i)
9494 func registerRetailer (retailerIdentification,retailerData) = {
9595 let retailer = getKeyRetailer(retailerIdentification)
9696 [StringEntry(getKeyRetailerData(retailer), retailerData)]
9797 }
9898
9999
100100
101101 @Callable(i)
102102 func registerCourier (courierIdentification,courierData) = {
103103 let courier = getKeyCourier(courierIdentification)
104104 [StringEntry(getKeyCourierData(courier), courierData)]
105105 }
106106
107107
108108
109109 @Callable(i)
110110 func addOrder (orderId,shippingCosts,orderData,retailerIdentification,retailerData) = {
111111 let order = getKeyOrder(retailerIdentification, orderId)
112112 let retailer = getKeyRetailer(retailerIdentification)
113113 let shipping = (shippingCosts * 100000000)
114114 if ((0 >= shippingCosts))
115115 then throw("You cannot create an order with shipping costs lower than 0")
116116 else if ((getValueRetailerIdentificationOfOrder(order) != NONE))
117117 then throw("An order with the same id already exists")
118- else [StringEntry(getKeyRetailerData(retailer), retailerData), StringEntry(getKeyOrderRetailerIdentification(order), retailerIdentification), IntegerEntry(getKeyOrderShippingCosts(order, retailerIdentification), shipping), StringEntry(getKeyOrderDataOpen(order, retailerIdentification), orderData), StringEntry(getKeyOrderCourier(order, retailerIdentification), NONE), StringEntry(getKeyOrderIsAccepted(order, retailerIdentification, ""), NONE), StringEntry(getKeyOrderIsInDelivery(order, retailerIdentification), NONE), StringEntry(getKeyOrderIsDelivered(order, retailerIdentification, ""), NONE)]
118+ else [StringEntry(getKeyRetailerData(retailer), retailerData), StringEntry(getKeyOrderRetailerIdentification(order), retailerIdentification), IntegerEntry(getKeyOrderShippingCosts(order, retailerIdentification), shipping), StringEntry(getKeyOrderDataOpen(order, retailerIdentification), orderData), StringEntry(getKeyOrderCourier(order, retailerIdentification), NONE), StringEntry(getKeyOrderIsAccepted(order, retailerIdentification, ""), NONE), StringEntry(getKeyOrderIsInDelivery(order, retailerIdentification, ""), NONE), StringEntry(getKeyOrderIsDelivered(order, retailerIdentification, ""), NONE)]
119119 }
120120
121121
122122
123123 @Callable(i)
124124 func setOrderIsAccepted (retailerIdentification,orderId,courierAddress) = {
125125 let order = getKeyOrder(retailerIdentification, orderId)
126126 let orderData = getValueDataOfOrderOpen(order, retailerIdentification)
127127 if ((getValueRetailerIdentificationOfOrder(order) != retailerIdentification))
128128 then throw("The requested order does not exist")
129129 else if ((getValueIsAcceptedOfOrder(order, retailerIdentification, courierAddress) != NONE))
130130 then throw("The requested order is no longer available")
131- else [DeleteEntry(getKeyOrderDataOpen(order, retailerIdentification)), DeleteEntry(getKeyOrderIsAccepted(order, retailerIdentification, "")), StringEntry(getKeyOrderIsAccepted(order, retailerIdentification, courierAddress), orderData), StringEntry(getKeyOrderCourier(order, retailerIdentification), courierAddress)]
131+ else [DeleteEntry(getKeyOrderDataOpen(order, retailerIdentification)), DeleteEntry(getKeyOrderIsAccepted(order, retailerIdentification, "")), StringEntry(getKeyOrderIsAccepted(order, retailerIdentification, courierAddress), orderData), BooleanEntry(getKeyOrderIsInDelivery(order, retailerIdentification, courierAddress), false), StringEntry(getKeyOrderCourier(order, retailerIdentification), courierAddress)]
132132 }
133133
134134
135135
136136 @Callable(i)
137137 func setOrderIsInDelivery (retailerIdentification,orderId) = {
138138 let order = getKeyOrder(retailerIdentification, orderId)
139+ let courierAddress = getValueCourierIdOfOrder(order, retailerIdentification)
139140 if ((getValueRetailerIdentificationOfOrder(order) != retailerIdentification))
140141 then throw("The requested order does not exist")
141- else if ((getValueIsInDeliveryOfOrder(order, retailerIdentification) != NONE))
142+ else if ((getValueIsInDeliveryOfOrder(order, retailerIdentification, courierAddress) != false))
142143 then throw("The requested order is no longer available")
143- else [BooleanEntry(getKeyOrderIsInDelivery(order, retailerIdentification), true)]
144+ else [BooleanEntry(getKeyOrderIsInDelivery(order, retailerIdentification, courierAddress), true)]
144145 }
145146
146147
147148
148149 @Callable(i)
149150 func setOrderIsDelivered (retailerIdentification,orderId) = {
150151 let order = getKeyOrder(retailerIdentification, orderId)
151152 let courierAddress = getValueCourierIdOfOrder(order, retailerIdentification)
152153 let orderData = getValueIsAcceptedOfOrder(order, retailerIdentification, courierAddress)
153154 let shipping = getValueShippingCostsOfOrder(order, retailerIdentification)
154155 if ((getValueRetailerIdentificationOfOrder(order) != retailerIdentification))
155156 then throw("The requested order does not exist")
156157 else if ((courierAddress == NONE))
157158 then throw("There was no courier set! Something went wrong with the order.")
158159 else if ((getValueIsDeliveredOfOrder(order, retailerIdentification, courierAddress) != NONE))
159160 then throw("The requested order is no longer available")
160161 else [DeleteEntry(getKeyOrderIsAccepted(order, retailerIdentification, courierAddress)), DeleteEntry(getKeyOrderIsDelivered(order, retailerIdentification, "")), StringEntry(getKeyOrderIsDelivered(order, retailerIdentification, courierAddress), orderData), ScriptTransfer(addressFromStringValue(courierAddress), shipping, unit)]
161162 }
162163
163164
164165
165166 @Callable(i)
166167 func deleteEntry (key) = [DeleteEntry(key)]
167168
168169
169170 @Verifier(tx)
170171 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
171172

github/deemru/w8io/026f985 
58.09 ms