tx · 5qqdtqrjLea7TyQMdcRq9nLE7bfwN3JFxjcTpk9et5Ry

3N2EM5HFgf6UMBnvcJX3Cegmozwdv1iDeq2:  -0.02000000 Waves

2019.09.21 16:57 [686169] smart account 3N2EM5HFgf6UMBnvcJX3Cegmozwdv1iDeq2 > SELF 0.00000000 Waves

{ "type": 13, "id": "5qqdtqrjLea7TyQMdcRq9nLE7bfwN3JFxjcTpk9et5Ry", "fee": 2000000, "feeAssetId": null, "timestamp": 1569074079424, "version": 1, "sender": "3N2EM5HFgf6UMBnvcJX3Cegmozwdv1iDeq2", "senderPublicKey": "8y2Uc9uYf5gRD6Dzm1aC73zYe3LZvtVDUVAnAhNdN2mg", "proofs": [ "4AkTNvdwjVagVMeuvD1p78t9p63qi1U6b8SSQTtyyGpeq7kY7LD3MmWjZweAUk1iCScH7TiSKHB53iw9HuqcyCmK" ], "script": "base64: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aGVjawAAAAMAAAALY3VycmVudFRpbWUAAAAJc3RhcnRUaW1lAAAADmV4cGlyYXRpb25UaW1lCQAAZgAAAAIJAABlAAAAAgUAAAALY3VycmVudFRpbWUFAAAACXN0YXJ0VGltZQUAAAAOZXhwaXJhdGlvblRpbWUBAAAAFmluY3JlYXNlRnJlZXplZEJhbGFuY2UAAAACAAAADHBtdEFzc2V0TmFtZQAAAAxhdWN0aW9uUHJpY2UEAAAAD2tleUZyZWV6ZWRGdW5kcwkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAADHBtdEFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQEAAAAFWN1cnJlbnRGcmVlemVkQmFsYW5jZQQAAAAHJG1hdGNoMAUAAAAPa2V5RnJlZXplZEZ1bmRzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAJAABkAAAAAgUAAAAVY3VycmVudEZyZWV6ZWRCYWxhbmNlBQAAAAxhdWN0aW9uUHJpY2UBAAAAFmRlY3JlYXNlRnJlZXplZEJhbGFuY2UAAAACAAAADHBtdEFzc2V0TmFtZQAAAAxhdWN0aW9uUHJpY2UEAAAAD2tleUZyZWV6ZWRGdW5kcwkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAADHBtdEFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQEAAAAFWN1cnJlbnRGcmVlemVkQmFsYW5jZQQAAAAHJG1hdGNoMAUAAAAPa2V5RnJlZXplZEZ1bmRzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAAWEJAABlAAAAAgUAAAAVY3VycmVudEZyZWV6ZWRCYWxhbmNlBQAAAAxhdWN0aW9uUHJpY2UDCQAAZgAAAAIFAAAAAWEAAAAAAAAAAAAFAAAAAWEJAAACAAAAAQIAAAAmRnJlZXplZCBhbW91bnQgY291bGRuJ3QgYmUgbGVzcyB0aGFuIDABAAAAFmZyZWVsYW5jZXJJc1JlZ2lzdGVyZWQAAAABAAAABmNhbGxlcgQAAAAWZnJlZWxhbmNlcklzUmVnaXN0ZXJlZAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAABmNhbGxlcgIAAAAHX1N0YXR1cwQAAAAHJG1hdGNoMAUAAAAWZnJlZWxhbmNlcklzUmVnaXN0ZXJlZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAI09ubHkgcmVnaXN0ZXJlZCB1c2VycyBjYW4gbWFrZSBiZXRzAAAACwAAAAFpAQAAABBmcmVlbGFuY2VyU2lnblVwAAAAAQAAAARpbmZvBAAAAA11c2VyUHVibGljS2V5CQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAARYWxyZWFkeVJlZ2lzdGVyZWQJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAAtfRnJlZWxhbmNlcgMJAQAAAAlpc0RlZmluZWQAAAABBQAAABFhbHJlYWR5UmVnaXN0ZXJlZAkAAAIAAAABAgAAABdVc2VyIGFscmVhZHkgcmVnaXN0ZXJlZAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAAtfUmVnaXN0ZXJlZAUAAAAEaW5mbwUAAAADbmlsAAAAAWkBAAAADGNsaWVudFNpZ25VcAAAAAEAAAAEaW5mbwQAAAANdXNlclB1YmxpY0tleQkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAEWFscmVhZHlSZWdpc3RlcmVkCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAANdXNlclB1YmxpY0tleQIAAAAHX0NsaWVudAMJAQAAAAlpc0RlZmluZWQAAAABBQAAABFhbHJlYWR5UmVnaXN0ZXJlZAkAAAIAAAABAgAAABdVc2VyIGFscmVhZHkgcmVnaXN0ZXJlZAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAAdfQ2xpZW50BQAAAARpbmZvBQAAAANuaWwAAAABaQEAAAANY3JlYXRlQXVj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AAEJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAACBAAAAAxhdWN0aW9uU3RhcnQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAMEAAAAD2F1Y3Rpb25EdXJhdGlvbgkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABAQAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABQQAAAAQYXVjdGlvbkFzc2V0TmFtZQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAYEAAAADGF1Y3Rpb25QcmljZQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABwQAAAAQYXVjdGlvbkFzc2V0SWQ1OAkBAAAAEUFzc2V0TmFtZVRvQmFzZTU4AAAAAQUAAAAQYXVjdGlvbkFzc2V0TmFtZQQAAAAGbmV3QmlkCQEAAAANYmV0UHJpY2VDaGVjawAAAAIFAAAACGJldFByaWNlBQAAAAxhdWN0aW9uUHJpY2UEAAAADW5ld0ZyZWVsYW5jZXIJAQAAABZmcmVlbGFuY2VySXNSZWdpc3RlcmVkAAAAAQUAAAAJY2FsbGVyUHViBAAAAA5kQXBwQ29tbWlzc2lvbgkAAGkAAAACCQAAaAAAAAIFAAAADGF1Y3Rpb25QcmljZQAAAAAAAAAAAwAAAAAAAAAAZAQAAAARbmV3RnJlZXplZEJhbGFuY2UJAQAAABZkZWNyZWFzZUZyZWV6ZWRCYWxhbmNlAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQUAAAAMYXVjdGlvblByaWNlBAAAABFhdWN0aW9uVGltZWlzT3ZlcgkBAAAACXRpbWVDaGVjawAAAAMFAAAAB2JldFRpbWUFAAAADGF1Y3Rpb25TdGFydAUAAAAPYXVjdGlvbkR1cmF0aW9uAwUAAAARYXVjdGlvblRpbWVpc092ZXIDCQAAAAAA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AAEFAAAADEF1Y3Rpb25JZEtleQQAAAAMYXVjdGlvblN0YXRlCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAAAAQAAAALYXVjdGlvbkluZm8JAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAABBAAAAA9hdWN0aW9uQ3VzdG9tZXIJAAJZAAAAAQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAIEAAAADGF1Y3Rpb25TdGFydAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAAAwQAAAAPYXVjdGlvbkR1cmF0aW9uCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAAEBAAAABlhdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAAFBAAAABBhdWN0aW9uQXNzZXROYW1lCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABgQAAAAMYXVjdGlvblByaWNlCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAAHBAAAABBhdWN0aW9uQXNzZXRJZDU4CQEAAAARQXNzZXROYW1lVG9CYXNlNTgAAAABBQAAABBhdWN0aW9uQXNzZXROYW1lBAAAABNGcmVlbGFuY2VyQmlkQW1vdW50BAAAABBrZXlGcmVlbGFuY2VyQmlkCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAFfBQAAAA1mcmVlbGFuY2VyUHViBAAAABF2YWx1ZUZyZWVsYWNlckJpZAkABBoAAAACBQAAAAR0aGlzBQAAABBrZXlGcmVlbGFuY2VyQmlkBAAAAAckbWF0Y2gwBQAAABF2YWx1ZUZyZWVsYWNlckJpZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAA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AAIFAAAAD3N0YXRlSW5Qcm9ncmVzcwIAAAABXwUAAAALYXVjdGlvbkluZm8CAAAAAV8JAAJYAAAAAQUAAAAPYXVjdGlvbkN1c3RvbWVyAgAAAAFfCQABpAAAAAEFAAAADGF1Y3Rpb25TdGFydAIAAAABXwkAAaQAAAABBQAAAA9hdWN0aW9uRHVyYXRpb24CAAAAAV8JAAGkAAAAAQUAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgIAAAABXwUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAABXwkAAaQAAAABBQAAABNGcmVlbGFuY2VyQmlkQW1vdW50AgAAAAFfBQAAAA1mcmVlbGFuY2VyUHViBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAAPYXVjdGlvbkN1c3RvbWVyBQAAABBhbW91bnREaWZmZXJlbmNlBQAAABBhdWN0aW9uQXNzZXRJZDU4BQAAAANuaWwJAAACAAAAAQIAAAAtT25seSBhdWN0aW9uIGN1c3RvbWVyIGNhbiBjaG9vc2UgYSBmcmVlbGFuY2VyAAAAAWkBAAAAFWluY3JlYXNlRXhlY3V0aW9uVGltZQAAAAIAAAAJYXVjdGlvbklkAAAADWV4ZWN1dGlvbkRheXMEAAAABmNhbGxlcgkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAADEF1Y3Rpb25JZEtleQkBAAAAEEF1Y3Rpb25JZERhdGFLZXkAAAABBQAAAAlhdWN0aW9uSWQEAAAAD2F1Y3Rpb25EYXRhTGlzdAkBAAAAC2dldERhdGFMaXN0AAAAAQUAAAAMQXVjdGlvbklkS2V5BAAAAAxhdWN0aW9uU3RhdGUJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAAABAAAAAthdWN0aW9uSW5mbwkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAEEAAAAD2F1Y3Rpb25DdXN0b21lcgkAAlkAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAAAgQAAAAMYXVjdGlvblN0YXJ0CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAADBAAAAA9hdWN0aW9uRHVyYXRpb24JAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAQEAAAAGWF1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24JAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAUEAAAAEGF1Y3Rpb25Bc3NldE5hbWUJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAAGBAAAAAxhdWN0aW9uUHJpY2UJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAcEAAAAF25ld0F1Y3Rpb25FeGVjdXRpb25UaW1lBAAAABxuZXdBdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uCQAAaAAAAAIFAAAADWV4ZWN1dGlvbkRheXMFAAAAA2RheQMJAABmAAAAAgUAAAAcbmV3QXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgUAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgUAAAAcbmV3QXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgkAAAIAAAABAgAAADhOZXcgZXhlY3V0aW9uIHRpbWUgbXVzdCBtb3JlIHRoYW4gY3VycmVudCBleGVjdXRpb24gdGltZQMJAAAAAAAAAgUAAAAGY2FsbGVyBQAAAA9hdWN0aW9uQ3VzdG9tZXIDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAJc3RhdGVPcGVuCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAxBdWN0aW9uSWRLZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAxhdWN0aW9uU3RhdGUCAAAAAV8FAAAAC2F1Y3Rpb25JbmZvAgAAAAFfCQACWAAAAAEFAAAAD2F1Y3Rpb25DdXN0b21lcgIAAAABXwkAAaQAAAABBQAAAAxhdWN0aW9uU3RhcnQCAAAAAV8JAAGkAAAAAQUAAAAPYXVjdGlvbkR1cmF0aW9uAgAAAAFfCQABpAAAAAEFAAAAGWF1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24CAAAAAV8FAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAAAV8JAAGkAAAAAQUAAAAMYXVjdGlvblByaWNlBQAAAANuaWwDAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAADnN0YXRlU3VnZ2VzdGVkBgkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAAD3N0YXRlSW5Qcm9ncmVzcwQAAAANZnJlZWxhbmNlclB1YgkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAcJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADEF1Y3Rpb25JZEtleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAxhdWN0aW9uU3RhdGUCAAAAAV8FAAAAC2F1Y3Rpb25JbmZvAgAAAAFfCQACWAAAAAEFAAAAD2F1Y3Rpb25DdXN0b21lcgIAAAABXwkAAaQAAAABBQAAAAxhdWN0aW9uU3RhcnQCAAAAAV8JAAGkAAAAAQUAAAAPYXVjdGlvbkR1cmF0aW9uAgAAAAFfCQABpAAAAAEFAAAAGWF1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24CAAAAAV8FAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAAAV8JAAGkAAAAAQUAAAAMYXVjdGlvblByaWNlAgAAAAFfBQAAAA1mcmVlbGFuY2VyUHViBQAAAANuaWwJAAACAAAAAQIAAAAPSW5jb3JyZWN0IHN0YXRlCQAAAgAAAAECAAAAKU9ubHkgY3VzdG9tZXIgY2FuIGluY3JlYXNlIGV4ZWN1dGlvbiB0aW1lAAAAAWkBAAAADWNhbmNlbEF1Y3Rpb24AAAABAAAACWF1Y3Rpb25JZAQAAAAMQXVjdGlvbklkS2V5CQEAAAAQQXVjdGlvbklkRGF0YUtleQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAPYXVjdGlvbkRhdGFMaXN0CQEAAAALZ2V0RGF0YUxpc3QAAAABBQAAAAxBdWN0aW9uSWRLZXkEAAAADGF1Y3Rpb25TdGF0ZQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAAEAAAAC2F1Y3Rpb25JbmZvCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAAAQQAAAAPYXVjdGlvbkN1c3RvbWVyCQACWQAAAAEJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAACBAAAAAxhdWN0aW9uU3RhcnQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAMEAAAAD2F1Y3Rpb25EdXJhdGlvbgkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABAQAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABQQAAAAQYXVjdGlvbkFzc2V0TmFtZQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAYEAAAADGF1Y3Rpb25QcmljZQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABwQAAAATYXVjdGlvbklkT3duZXJDaGVjawMJAAAAAAAAAggFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BQAAAA9hdWN0aW9uQ3VzdG9tZXIGCQAAAgAAAAECAAAAJkF1Y3Rpb24gY2FuIGJlIGNhbmNlbGVkIG9ubHkgYnkgb3duZXIuAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAACXN0YXRlT3BlbgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAMQXVjdGlvbklkS2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAALc3RhdGVDYW5jZWwCAAAAAV8FAAAAC2F1Y3Rpb25JbmZvAgAAAAFfCQACWAAAAAEFAAAAD2F1Y3Rpb25DdXN0b21lcgIAAAABXwkAAaQAAAABBQAAAAxhdWN0aW9uU3RhcnQCAAAAAV8JAAGkAAAAAQUAAAAPYXVjdGlvbkR1cmF0aW9uAgAAAAFfCQABpAAAAAEFAAAAGWF1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24CAAAAAV8FAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAAAV8JAAGkAAAAAQUAAAAMYXVjdGlvblByaWNlBQAAAANuaWwJAAACAAAAAQIAAAAYSW5jb3JyZWN0IGF1Y3Rpb24gc3RhdGUuAAAAAWkBAAAAC29wZW5EaXNwdXRlAAAAAQAAAAlhdWN0aW9uSWQEAAAABmNhbGxlcgkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAADEF1Y3Rpb25JZEtleQkBAAAAEEF1Y3Rpb25JZERhdGFLZXkAAAABBQAAAAlhdWN0aW9uSWQEAAAAD2F1Y3Rpb25EYXRhTGlzdAkBAAAAC2dldERhdGFMaXN0AAAAAQUAAAAMQXVjdGlvbklkS2V5BAAAAAxhdWN0aW9uU3RhdGUJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAAABAAAAAthdWN0aW9uSW5mbwkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAEEAAAAD2F1Y3Rpb25DdXN0b21lcgkAAlkAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAAAgQAAAAMYXVjdGlvblN0YXJ0CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAADBAAAAA9hdWN0aW9uRHVyYXRpb24JAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAQEAAAAGWF1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24JAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAUEAAAAEGF1Y3Rpb25Bc3NldE5hbWUJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAAGBAAAAAxhdWN0aW9uUHJpY2UJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAcEAAAAEWF1Y3Rpb25GcmVlbGFuY2VyCQACWQAAAAEJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAAIAwMJAAAAAAAAAgUAAAAGY2FsbGVyBQAAAA9hdWN0aW9uQ3VzdG9tZXIGCQAAAAAAAAIFAAAABmNhbGxlcgUAAAARYXVjdGlvbkZyZWVsYW5jZXIEAAAACmRhdGFTdHJpbmcCAAAAATEJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADEF1Y3Rpb25JZEtleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAxzdGF0ZURpc3B1dGUCAAAAAV8FAAAAC2F1Y3Rpb25JbmZvAgAAAAFfBQAAAApkYXRhU3RyaW5nCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAIX0Rpc3B1dGUCAAAAATAFAAAAA25pbAkAAAIAAAABAgAAAC1Pbmx5IGN1c3RvbWVyIGFuZCBmcmVlbGFuY2VyIGNhbiBvcGVuIGRpc3B1dGUAAAABaQEAAAALdm90ZURpc3B1dGUAAAACAAAACWF1Y3Rpb25JZAAAAAR2b3RlBAAAAAxBdWN0aW9uSWRLZXkJAQAAABBBdWN0aW9uSWREYXRhS2V5AAAAAQUAAAAJYXVjdGlvbklkBAAAAA9hdWN0aW9uRGF0YUxpc3QJAQAAAAtnZXREYXRhTGlzdAAAAAEFAAAADEF1Y3Rpb25JZEtleQQAAAALYXVjdGlvbkluZm8JAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAABBAAAABFhdWN0aW9uU3RhdGVDaGVjawQAAAAMYXVjdGlvblN0YXRlCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAAAAMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAAxzdGF0ZURpc3B1dGUGCQAAAgAAAAEJAAEsAAAAAgIAAAAaSW5jb3JyZWN0IHN0YXRlLiBNdXN0IGJlOiAFAAAADHN0YXRlRGlzcHV0ZQQAAAAOYXVjdGlvbkFzc2V0SWQJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAAEBAAAAAxhdWN0aW9uUHJpY2UJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAUEAAAAB25ld1ZvdGUDAwkAAAAAAAACBQAAAAR2b3RlBQAAAAhjdXN0b21lcgYJAAAAAAAAAgUAAAAEdm90ZQUAAAAKZnJlZWxhbmNlcgUAAAAEdm90ZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABxWb3RlIGlzIGluY29ycmVjdC4gTXVzdCBiZTogBQAAAAhjdXN0b21lcgIAAAAEIG9yIAUAAAAKZnJlZWxhbmNlcgQAAAAIbmV3Vm90ZXIDAwMDAwkAAAAAAAACCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkFAAAAC2FtYmFzc2Fkb3IxBgkAAAAAAAACCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkFAAAAC2FtYmFzc2Fkb3IyBgkAAAAAAAACCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkFAAAAC2FtYmFzc2Fkb3IzBgkAAAAAAAACCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkFAAAAC2FtYmFzc2Fkb3I0BgkAAAAAAAACCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkFAAAAC2FtYmFzc2Fkb3I1CQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkAAAIAAAABAgAAAClZb3UgaGF2ZSBubyByaWdodHMgZm9yIGRpc3B1dGVzIHJlc29sdmluZwQAAAALZGlzcHV0ZURhdGEEAAAACmtleURpc3B1dGUJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAAV8FAAAADHN0YXRlRGlzcHV0ZQQAAAAMdmFsdWVEaXNwdXRlCQAEHQAAAAIFAAAABHRoaXMFAAAACmtleURpc3B1dGUEAAAAByRtYXRjaDAFAAAADHZhbHVlRGlzcHV0ZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAJkNhbm5vdCBmaW5kIGRhdGEgb2YgZGlzcHV0ZSBpbiBzdG9yYWdlBAAAAA9kaXNwdXRlRGF0YUxpc3QJAAS1AAAAAgUAAAALZGlzcHV0ZURhdGECAAAAAS8EAAAADHZvdGVzQ291bnRlcgkAAZEAAAACBQAAAA9kaXNwdXRlRGF0YUxpc3QAAAAAAAAAAAADCQAAAAAAAAIFAAAADHZvdGVzQ291bnRlcgIAAAABNAQAAAAKdm90ZXJzTGlzdAkABLUAAAACCQABkQAAAAIFAAAAD2Rpc3B1dGVEYXRhTGlzdAAAAAAAAAAAAQIAAAABXwQAAAAJdm90ZXNMaXN0CQAEtQAAAAIJAAGRAAAAAgUAAAAPZGlzcHV0ZURhdGFMaXN0AAAAAAAAAAACAgAAAAFfBAAAAAxhbHJlYWR5Vm90ZWQDCQAAAAAAAAIFAAAACG5ld1ZvdGVyCQABkQAAAAIFAAAACnZvdGVyc0xpc3QAAAAAAAAAAAAGCQAAAAAAAAIFAAAACG5ld1ZvdGVyCQABkQAAAAIFAAAACnZvdGVyc0xpc3QAAAAAAAAAAAEDBQAAAAxhbHJlYWR5Vm90ZWQJAAACAAAAAQIAAAARWW91IGFscmVhZHkgdm90ZWQEAAAAD25ld1ZvdGVzQ291bnRlcgIAAAABNQQAAAAJbmV3Vm90ZXJzCQABLAAAAAIJAAEsAAAAAgkAAZEAAAACBQAAAA9kaXNwdXRlRGF0YUxpc3QAAAAAAAAAAAECAAAAAV8FAAAACG5ld1ZvdGVyBAAAAAhuZXdWb3RlcwkAASwAAAACCQABLAAAAAIJAAGRAAAAAgUAAAAPZGlzcHV0ZURhdGFMaXN0AAAAAAAAAAACAgAAAAFfBQAAAAduZXdWb3RlBAAAABRuZXdEaXNwdXRlRGF0YVN0cmluZwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAA9uZXdWb3Rlc0NvdW50ZXICAAAAAS8FAAAACW5ld1ZvdGVycwIAAAABLwUAAAAIbmV3Vm90ZXMEAAAADWRpc3B1dGVXaW5uZXIEAAAABXZvdGUxAwkAAAAAAAACCQABkQAAAAIFAAAACXZvdGVzTGlzdAAAAAAAAAAAAAUAAAAIY3VzdG9tZXIAAAAAAAAAAAEAAAAAAAAAAAAEAAAABXZvdGUyAwkAAAAAAAACCQABkQAAAAIFAAAACXZvdGVzTGlzdAAAAAAAAAAAAQUAAAAIY3VzdG9tZXIAAAAAAAAAAAEAAAAAAAAAAAAEAAAABXZvdGUzAwkAAAAAAAACCQABkQAAAAIFAAAACXZvdGVzTGlzdAAAAAAAAAAAAgUAAAAIY3VzdG9tZXIAAAAAAAAAAAEAAAAAAAAAAAAEAAAABXZvdGU0AwkAAAAAAAACCQABkQAAAAIFAAAACXZvdGVzTGlzdAAAAAAAAAAAAwUAAAAIY3VzdG9tZXIAAAAAAAAAAAEAAAAAAAAAAAAEAAAABXZvdGU1AwkAAAAAAAACBQAAAAduZXdWb3RlBQAAAAhjdXN0b21lcgAAAAAAAAAAAQAAAAAAAAAAAAQAAAANY3VzdG9tZXJWb3RlcwkAAGQAAAACCQAAZAAAAAIJAABkAAAAAgkAAGQAAAACBQAAAAV2b3RlMQUAAAAFdm90ZTIFAAAABXZvdGUzBQAAAAV2b3RlNAUAAAAFdm90ZTUDCQAAZgAAAAIFAAAADWN1c3RvbWVyVm90ZXMAAAAAAAAAAAIFAAAACGN1c3RvbWVyBQAAAApmcmVlbGFuY2VyBAAAAA1uZXdEYXRhU3RyaW5nCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAABAgAAAAFfCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAAAgIAAAABXwkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAMCAAAAAV8JAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAAEAgAAAAFfCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABQIAAAABXwkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAYEAAAAFERpc3B1dGVXaW5uZXJBZGRyZXNzAwkAAAAAAAACBQAAAA1kaXNwdXRlV2lubmVyBQAAAAhjdXN0b21lcgkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAEJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAAGBAAAABFhbW91bnRXaXRob3V0Q29tbQkAAGUAAAACBQAAAAxhdWN0aW9uUHJpY2UJAABpAAAAAgkAAGgAAAACBQAAAAxhdWN0aW9uUHJpY2UAAAAAAAAAAAMAAAAAAAAAAGQJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAQQXVjdGlvbklkRGF0YUtleQAAAAEFAAAACWF1Y3Rpb25JZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAABRzdGF0ZURpc3B1dGVSZXNvbHZlZAIAAAABXwUAAAALYXVjdGlvbkluZm8CAAAAAV8FAAAADW5ld0RhdGFTdHJpbmcJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAAV8FAAAADHN0YXRlRGlzcHV0ZQUAAAAUbmV3RGlzcHV0ZURhdGFTdHJpbmcFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAAFERpc3B1dGVXaW5uZXJBZGRyZXNzBQAAABFhbW91bnRXaXRob3V0Q29tbQkAAlkAAAABBQAAAA5hdWN0aW9uQXNzZXRJZAUAAAADbmlsBAAAABRuZXdEaXNwdXRlRGF0YVN0cmluZwMJAAAAAAAAAgUAAAAMdm90ZXNDb3VudGVyAgAAAAEwBAAAAA9uZXdWb3Rlc0NvdW50ZXICAAAAATEEAAAACW5ld1ZvdGVycwUAAAAIbmV3Vm90ZXIEAAAACG5ld1ZvdGVzBQAAAAduZXdWb3RlBAAAAA1uZXdEYXRhU3RyaW5nCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAAD25ld1ZvdGVzQ291bnRlcgIAAAABLwUAAAAJbmV3Vm90ZXJzAgAAAAEvBQAAAAhuZXdWb3RlcwUAAAANbmV3RGF0YVN0cmluZwMJAAAAAAAAAgUAAAAMdm90ZXNDb3VudGVyAgAAAAExBAAAAAZ2b3RlcjEJAAGRAAAAAgUAAAAPZGlzcHV0ZURhdGFMaXN0AAAAAAAAAAABBAAAAAV2b3RlMQkAAZEAAAACBQAAAA9kaXNwdXRlRGF0YUxpc3QAAAAAAAAAAAIEAAAADGFscmVhZHlWb3RlZAkAAAAAAAACBQAAAAhuZXdWb3RlcgUAAAAGdm90ZXIxAwUAAAAMYWxyZWFkeVZvdGVkCQAAAgAAAAECAAAAEVlvdSBhbHJlYWR5IHZvdGVkBAAAAA9uZXdWb3Rlc0NvdW50ZXICAAAAATEEAAAACW5ld1ZvdGVycwkAASwAAAACBQAAAAZ2b3RlcjEFAAAACG5ld1ZvdGVyBAAAAAhuZXdWb3RlcwkAASwAAAACBQAAAAV2b3RlMQUAAAAHbmV3Vm90ZQQAAAANbmV3RGF0YVN0cmluZwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAA9uZXdWb3Rlc0NvdW50ZXICAAAAAS8FAAAACW5ld1ZvdGVycwIAAAABLwUAAAAIbmV3Vm90ZXMFAAAADW5ld0RhdGFTdHJpbmcDCQAAAAAAAAIFAAAADHZvdGVzQ291bnRlcgIAAAABMgQAAAAKdm90ZXJzTGlzdAkABLUAAAACCQABkQAAAAIFAAAAD2Rpc3B1dGVEYXRhTGlzdAAAAAAAAAAAAQIAAAABXwQAAAAJdm90ZXNMaXN0CQAEtQAAAAIJAAGRAAAAAgUAAAAPZGlzcHV0ZURhdGFMaXN0AAAAAAAAAAACAgAAAAFfBAAAAAxhbHJlYWR5Vm90ZWQDCQAAAAAAAAIFAAAACG5ld1ZvdGVyCQABkQAAAAIFAAAACnZvdGVyc0xpc3QAAAAAAAAAAAAGCQAAAAAAAAIFAAAACG5ld1ZvdGVyCQABkQAAAAIFAAAACnZvdGVyc0xpc3QAAAAAAAAAAAEDBQAAAAxhbHJlYWR5Vm90ZWQJAAACAAAAAQIAAAARWW91IGFscmVhZHkgdm90ZWQEAAAAD25ld1ZvdGVzQ291bnRlcgIAAAABMwQAAAAJbmV3Vm90ZXJzCQABLAAAAAIJAAEsAAAAAgkAAZEAAAACBQAAAA9kaXNwdXRlRGF0YUxpc3QAAAAAAAAAAAECAAAAAV8FAAAACG5ld1ZvdGVyBAAAAAhuZXdWb3RlcwkAASwAAAACCQABLAAAAAIJAAGRAAAAAgUAAAAPZGlzcHV0ZURhdGFMaXN0AAAAAAAAAAACAgAAAAFfBQAAAAduZXdWb3RlBAAAAA1uZXdEYXRhU3RyaW5nCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAAD25ld1ZvdGVzQ291bnRlcgIAAAABLwUAAAAJbmV3Vm90ZXJzAgAAAAEvBQAAAAhuZXdWb3RlcwUAAAANbmV3RGF0YVN0cmluZwMJAAAAAAAAAgUAAAAMdm90ZXNDb3VudGVyAgAAAAEzBAAAAAp2b3RlcnNMaXN0CQAEtQAAAAIJAAGRAAAAAgUAAAAPZGlzcHV0ZURhdGFMaXN0AAAAAAAAAAABAgAAAAFfBAAAAAl2b3Rlc0xpc3QJAAS1AAAAAgkAAZEAAAACBQAAAA9kaXNwdXRlRGF0YUxpc3QAAAAAAAAAAAICAAAAAV8EAAAADGFscmVhZHlWb3RlZAMDCQAAAAAAAAIFAAAACG5ld1ZvdGVyCQABkQAAAAIFAAAACnZvdGVyc0xpc3QAAAAAAAAAAAAGCQAAAAAAAAIFAAAACG5ld1ZvdGVyCQABkQAAAAIFAAAACnZvdGVyc0xpc3QAAAAAAAAAAAEGCQAAAAAAAAIFAAAACG5ld1ZvdGVyCQABkQAAAAIFAAAACnZvdGVyc0xpc3QAAAAAAAAAAAIDBQAAAAxhbHJlYWR5Vm90ZWQJAAACAAAAAQIAAAARWW91IGFscmVhZHkgdm90ZWQEAAAAD25ld1ZvdGVzQ291bnRlcgIAAAABNAQAAAAJbmV3Vm90ZXJzCQABLAAAAAIJAAEsAAAAAgkAAZEAAAACBQAAAA9kaXNwdXRlRGF0YUxpc3QAAAAAAAAAAAECAAAAAV8FAAAACG5ld1ZvdGVyBAAAAAhuZXdWb3RlcwkAASwAAAACCQABLAAAAAIJAAGRAAAAAgUAAAAPZGlzcHV0ZURhdGFMaXN0AAAAAAAAAAACAgAAAAFfBQAAAAduZXdWb3RlBAAAAA1uZXdEYXRhU3RyaW5nCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAAD25ld1ZvdGVzQ291bnRlcgIAAAABLwUAAAAJbmV3Vm90ZXJzAgAAAAEvBQAAAAhuZXdWb3RlcwUAAAANbmV3RGF0YVN0cmluZwkAAAIAAAABAgAAACFEaXNwdXRlIGhhcyBiZWVuIGFscmVhZHkgcmVzb2x2ZWQJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAAV8FAAAADHN0YXRlRGlzcHV0ZQUAAAAUbmV3RGlzcHV0ZURhdGFTdHJpbmcFAAAAA25pbAAAAAFpAQAAAAx3b3JrSGFuZE92ZXIAAAABAAAACWF1Y3Rpb25JZAQAAAAMQXVjdGlvbklkS2V5CQEAAAAQQXVjdGlvbklkRGF0YUtleQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAPYXVjdGlvbkRhdGFMaXN0CQEAAAALZ2V0RGF0YUxpc3QAAAABBQAAAAxBdWN0aW9uSWRLZXkEAAAADGF1Y3Rpb25TdGF0ZQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAAEAAAAC2F1Y3Rpb25JbmZvCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAAAQQAAAAPYXVjdGlvbkN1c3RvbWVyCQACWQAAAAEJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAACBAAAAAxhdWN0aW9uU3RhcnQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAMEAAAAD2F1Y3Rpb25EdXJhdGlvbgkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABAQAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABQQAAAAQYXVjdGlvbkFzc2V0TmFtZQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAYEAAAADGF1Y3Rpb25QcmljZQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABwQAAAALY3VycmVudFRpbWUFAAAABmhlaWdodAQAAAASZnJlZWxhbmNlclB1YkNoZWNrBAAAAAZjYWxsZXIJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAABFhdWN0aW9uRnJlZWxhbmNlcgkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAYDCQAAAAAAAAIFAAAABmNhbGxlcgUAAAARYXVjdGlvbkZyZWVsYW5jZXIFAAAABmNhbGxlcgkAAAIAAAABAgAAADRPbmx5IGEgZnJlZWxhbmNlciBjYW4gaW5kaWNhdGUgdGhhdCB0aGUgd29yayBpcyBkb25lBAAAAAp0aW1lSXNPdmVyCQAAZgAAAAIJAABlAAAAAgUAAAALY3VycmVudFRpbWUFAAAADGF1Y3Rpb25TdGFydAUAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAA9zdGF0ZUluUHJvZ3Jlc3MDBQAAAAp0aW1lSXNPdmVyBAAAAA1uZXdEYXRhU3RyaW5nCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAABAgAAAAFfCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAAAgIAAAABXwkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAMCAAAAAV8JAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAAEAgAAAAFfCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABQIAAAABXwkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAYJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADEF1Y3Rpb25JZEtleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAxzdGF0ZURpc3B1dGUCAAAAAV8FAAAAC2F1Y3Rpb25JbmZvAgAAAAFfBQAAAA1uZXdEYXRhU3RyaW5nBQAAAANuaWwEAAAADW5ld0RhdGFTdHJpbmcJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAECAAAAAV8JAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAACAgAAAAFfCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAAAwIAAAABXwkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAQCAAAAAV8JAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAAFAgAAAAFfCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAMQXVjdGlvbklkS2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAAEXN0YXRlV2FpdDRDb25maXJtAgAAAAFfBQAAAAthdWN0aW9uSW5mbwIAAAABXwUAAAANbmV3RGF0YVN0cmluZwUAAAADbmlsCQAAAgAAAAECAAAAGkF1Y3Rpb24gc3RhdGUgaXMgaW5jb3JyZWN0AAAAAWkBAAAACmFjY2VwdFdvcmsAAAABAAAACWF1Y3Rpb25JZAQAAAAMQXVjdGlvbklkS2V5CQEAAAAQQXVjdGlvbklkRGF0YUtleQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAPYXVjdGlvbkRhdGFMaXN0CQEAAAALZ2V0RGF0YUxpc3QAAAABBQAAAAxBdWN0aW9uSWRLZXkEAAAADGF1Y3Rpb25TdGF0ZQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAAEAAAAC2F1Y3Rpb25JbmZvCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAAAQQAAAAPYXVjdGlvbkN1c3RvbWVyCQACWQAAAAEJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAACBAAAAAxhdWN0aW9uU3RhcnQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAMEAAAAD2F1Y3Rpb25EdXJhdGlvbgkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABAQAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABQQAAAAQYXVjdGlvbkFzc2V0TmFtZQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAYEAAAADGF1Y3Rpb25QcmljZQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABwQAAAARYXVjdGlvbkZyZWVsYW5jZXIJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAACBAAAAAZjYWxsZXIJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAA5kQXBwQ29tbWlzc2lvbgkAAGkAAAACCQAAaAAAAAIFAAAA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", "chainId": 84, "height": 686169, "spentComplexity": 0 } View: original | compacted Prev: EntXs9xrRnEXHcdroPfb913ypGj4173xsXC5oHw6VoRc Next: uHMRMMVqgLft9Gz3TPboWSv1VMCnscBqvkYah7j6Ywk Diff:
OldNewDifferences
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 1440
55
6-let b = 3
6+let b = unit
77
8-let c = unit
8+let c = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
99
10-let d = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
10+let d = base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU'
1111
12-let e = base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU'
12+let e = base58'Ft8X1v1LTa1ABafufpaCWyVj8KkaxUWE6xBhW6sNFJck'
1313
14-let f = base58'Ft8X1v1LTa1ABafufpaCWyVj8KkaxUWE6xBhW6sNFJck'
14+let f = "Opened"
1515
16-let g = "Opened"
16+let g = "Suggested"
1717
18-let h = "Suggested"
18+let h = "Canceled"
1919
20-let i = "Canceled"
20+let i = "InProgress"
2121
22-let j = "InProgress"
22+let j = "WaitForConfirmation"
2323
24-let k = "WaitForConfirmation"
24+let k = "Completed"
2525
26-let l = "Completed"
26+let l = "Dispute"
2727
28-let m = "Dispute"
28+let m = "DisputeResolved"
2929
30-let n = "DisputeResolved"
30+let n = "CMR"
3131
32-let o = "CMR"
32+let o = "FL"
3333
34-let p = "FL"
34+let p = base58'1'
3535
3636 let q = base58'1'
3737
4141
4242 let t = base58'1'
4343
44-let u = base58'1'
45-
46-func v (w) = (w + "_Auction")
44+func u (v) = (v + "_AuctionData")
4745
4846
49-func x (w) = {
50- let y = getString(this, w)
51- let z = {
52- let A = y
53- if ($isInstanceOf(A, "String"))
47+func w (v) = {
48+ let x = getString(this, v)
49+ let y = {
50+ let z = x
51+ if ($isInstanceOf(z, "String"))
5452 then {
55- let z = A
56- z
53+ let y = z
54+ y
5755 }
5856 else throw("AuctionId was not found")
5957 }
60- split(z, "_")
58+ split(y, "_")
6159 }
6260
6361
64-func B (w) = {
65- let C = ((w + "_") + m)
66- let D = getString(this, C)
67- let z = {
68- let A = D
69- if ($isInstanceOf(A, "String"))
62+func A (v) = {
63+ let B = ((v + "_") + l)
64+ let C = getString(this, B)
65+ let y = {
66+ let z = C
67+ if ($isInstanceOf(z, "String"))
7068 then {
71- let z = A
72- z
69+ let y = z
70+ y
7371 }
7472 else throw("Dispute data was not found")
7573 }
76- split(z, "/")
74+ split(y, "/")
7775 }
7876
7977
80-func E (F) = if ((F == "WAVES"))
81- then c
82- else if ((F == "BTC"))
83- then d
84- else if ((F == "EUR"))
85- then e
86- else if ((F == "USD"))
87- then f
78+func D (E) = if ((E == "WAVES"))
79+ then b
80+ else if ((E == "BTC"))
81+ then c
82+ else if ((E == "EUR"))
83+ then d
84+ else if ((E == "USD"))
85+ then e
8886 else throw("Incorrect Asset Id")
8987
9088
91-func G (H,I) = if ((I > H))
92- then H
93- else throw(("Bet price must be lower than actual price. Actual price: " + toString(I)))
89+func F (G,H) = if ((H > G))
90+ then G
91+ else throw(("Bet price must be lower than actual price. Actual price: " + toString(H)))
9492
9593
96-func J (K,L,M) = ((K - L) > M)
94+func I (J,K,L) = ((J - K) > L)
9795
9896
99-func N (O,I) = {
100- let P = getInteger(this, (O + "_Freezed"))
101- let Q = {
102- let A = P
103- if ($isInstanceOf(A, "Int"))
97+func M (N,H) = {
98+ let O = getInteger(this, (N + "_Freezed"))
99+ let P = {
100+ let z = O
101+ if ($isInstanceOf(z, "Int"))
104102 then {
105- let z = A
106- z
103+ let y = z
104+ y
107105 }
108106 else 0
109107 }
110- (Q + I)
108+ (P + H)
111109 }
112110
113111
114-func R (O,I) = {
115- let P = getInteger(this, (O + "_Freezed"))
116- let Q = {
117- let A = P
118- if ($isInstanceOf(A, "Int"))
112+func Q (N,H) = {
113+ let O = getInteger(this, (N + "_Freezed"))
114+ let P = {
115+ let z = O
116+ if ($isInstanceOf(z, "Int"))
119117 then {
120- let z = A
121- z
118+ let y = z
119+ y
122120 }
123121 else 0
124122 }
125- let z = (Q - I)
126- if ((z > 0))
127- then z
123+ let y = (P - H)
124+ if ((y > 0))
125+ then y
128126 else throw("Freezed amount couldn't be less than 0")
129127 }
130128
131129
132-func S (T) = {
133- let S = getString(this, (T + "_Status"))
134- let A = S
135- if ($isInstanceOf(A, "String"))
130+func R (S) = {
131+ let R = getString(this, (S + "_Status"))
132+ let z = R
133+ if ($isInstanceOf(z, "String"))
136134 then {
137- let z = A
138- z
135+ let y = z
136+ y
139137 }
140138 else throw("Only registered users can make bets")
141139 }
142140
143141
144-@Callable(U)
145-func freelancerSignUp (V) = {
146- let W = toBase58String(U.callerPublicKey)
147- let X = getString(this, (W + "_Freelancer"))
148- if (isDefined(X))
142+@Callable(T)
143+func freelancerSignUp (U) = {
144+ let V = toBase58String(T.callerPublicKey)
145+ let W = getString(this, (V + "_Freelancer"))
146+ if (isDefined(W))
149147 then throw("User already registered")
150- else WriteSet([DataEntry((W + "_Registered"), V)])
148+ else WriteSet([DataEntry((V + "_Registered"), U)])
151149 }
152150
153151
154152
155-@Callable(U)
156-func clientSignUp (V) = {
157- let W = toBase58String(U.callerPublicKey)
158- let X = getString(this, (W + "_Client"))
159- if (isDefined(X))
153+@Callable(T)
154+func clientSignUp (U) = {
155+ let V = toBase58String(T.callerPublicKey)
156+ let W = getString(this, (V + "_Client"))
157+ if (isDefined(W))
160158 then throw("User already registered")
161- else WriteSet([DataEntry((W + "_Client"), V)])
159+ else WriteSet([DataEntry((V + "_Client"), U)])
162160 }
163161
164162
165163
166-@Callable(U)
167-func createAuction (Y,Z) = {
168- let w = toBase58String(U.transactionId)
169- let aa = toBase58String(U.callerPublicKey)
170- let ab = extract(U.payment)
164+@Callable(T)
165+func createAuction (X,Y,Z) = {
166+ let v = toBase58String(T.transactionId)
167+ let aa = toBase58String(T.callerPublicKey)
168+ let ab = extract(T.payment)
171169 let ac = ab.amount
172- let I = if ((ac > 0))
170+ let H = if ((ac > 0))
173171 then ac
174172 else throw("Amount must be higher then 0")
175173 let ad = height
176- let ae = (Z * a)
177- let af = (Y * a)
178- let O = if (!(isDefined(ab.assetId)))
174+ let ae = (Y * a)
175+ let af = (X * a)
176+ let N = if (!(isDefined(ab.assetId)))
179177 then "WAVES"
180- else if ((ab.assetId == d))
178+ else if ((ab.assetId == c))
181179 then "BTC"
182- else if ((ab.assetId == e))
180+ else if ((ab.assetId == d))
183181 then "EUR"
184- else if ((ab.assetId == f))
182+ else if ((ab.assetId == e))
185183 then "USD"
186184 else throw("AssetId is incorrect")
187- let ag = N(O, I)
188- WriteSet([DataEntry(v(w), ((((((((((((g + "_") + aa) + "_") + toString(ad)) + "_") + toString(ae)) + "_") + toString(af)) + "_") + O) + "_") + toString(I))), DataEntry((O + "_Freezed"), ag)])
185+ let ag = M(N, H)
186+ WriteSet([DataEntry(u(v), ((((((((((((((f + "_") + Z) + "_") + aa) + "_") + toString(ad)) + "_") + toString(ae)) + "_") + toString(af)) + "_") + N) + "_") + toString(H))), DataEntry((v + "_AuctionInfo"), Z), DataEntry((N + "_Freezed"), ag)])
189187 }
190188
191189
192190
193-@Callable(U)
194-func makeBid (w,H) = {
195- let ah = toBase58String(U.callerPublicKey)
191+@Callable(T)
192+func makeBid (v,G) = {
193+ let ah = toBase58String(T.callerPublicKey)
196194 let ai = height
197- let aj = v(w)
198- let ak = x(aj)
195+ let aj = u(v)
196+ let ak = w(aj)
199197 let al = ak[0]
200- let aa = fromBase58String(ak[1])
201- let ad = parseIntValue(ak[2])
202- let am = parseIntValue(ak[3])
203- let an = parseIntValue(ak[4])
204- let F = ak[5]
205- let I = parseIntValue(ak[6])
206- let ao = E(F)
207- let ap = G(H, I)
208- let aq = S(ah)
209- let ar = ((I * 3) / 100)
210- let ag = R(F, I)
211- let as = J(ai, ad, am)
198+ let Z = ak[1]
199+ let aa = fromBase58String(ak[2])
200+ let ad = parseIntValue(ak[3])
201+ let am = parseIntValue(ak[4])
202+ let an = parseIntValue(ak[5])
203+ let E = ak[6]
204+ let H = parseIntValue(ak[7])
205+ let ao = D(E)
206+ let ap = F(G, H)
207+ let aq = R(ah)
208+ let ar = ((H * 3) / 100)
209+ let ag = Q(E, H)
210+ let as = I(ai, ad, am)
212211 if (as)
213- then if ((al == g))
214- then ScriptResult(WriteSet([DataEntry(aj, ((((((((((((((((i + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + F) + "_") + toString(I)) + "_") + "NoFreelancer") + "_") + "NoBid")), DataEntry((F + "_Freezed"), ag)]), TransferSet([ScriptTransfer(addressFromPublicKey(aa), (I - ar), ao)]))
215- else if ((al == h))
212+ then if ((al == f))
213+ then ScriptResult(WriteSet([DataEntry(aj, ((((((((((((((((((h + "_") + Z) + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + E) + "_") + toString(H)) + "_") + "NoFreelancer") + "_") + "NoBid")), DataEntry((E + "_Freezed"), ag)]), TransferSet([ScriptTransfer(addressFromPublicKey(aa), (H - ar), ao)]))
214+ else if ((al == g))
216215 then {
217216 let at = ak[7]
218217 let au = ak[8]
219- WriteSet([DataEntry(aj, ((((((((((((((((j + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + F) + "_") + toString(I)) + "_") + at) + "_") + au))])
218+ WriteSet([DataEntry(aj, ((((((((((((((((((i + "_") + Z) + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + E) + "_") + toString(H)) + "_") + at) + "_") + au))])
220219 }
221220 else throw("Incorrect auction state")
222- else if ((al == g))
223- then WriteSet([DataEntry(((w + "_") + aq), H), DataEntry(aj, ((((((((((((((h + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + F) + "_") + toString(I)) + "_") + aq))])
224- else if ((al == h))
221+ else if ((al == f))
222+ then WriteSet([DataEntry(((v + "_") + aq), G), DataEntry(aj, ((((((((((((((((g + "_") + Z) + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + E) + "_") + toString(H)) + "_") + aq))])
223+ else if ((al == g))
225224 then {
226225 let av = ak[7]
227226 let aw = {
228- let ax = ((w + "_") + av)
227+ let ax = ((v + "_") + av)
229228 let ay = getInteger(this, ax)
230229 let az = {
231- let A = ay
232- if ($isInstanceOf(A, "Int"))
230+ let z = ay
231+ if ($isInstanceOf(z, "Int"))
233232 then {
234- let z = A
235- z
233+ let y = z
234+ y
236235 }
237236 else throw("Can't find lowest bid by public key")
238237 }
240239 then aq
241240 else av
242241 }
243- WriteSet([DataEntry(((w + "_") + ah), H), DataEntry(aj, ((((((((((((((h + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + F) + "_") + toString(I)) + "_") + aw))])
242+ WriteSet([DataEntry(((v + "_") + ah), G), DataEntry(aj, ((((((((((((((((g + "_") + Z) + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + E) + "_") + toString(H)) + "_") + aw))])
244243 }
245- else throw(((((("Incorrect jobId state. Now: " + al) + ", must be: ") + g) + " or ") + h))
244+ else throw(((((("Incorrect jobId state. Now: " + al) + ", must be: ") + f) + " or ") + g))
246245 }
247246
248247
249248
250-@Callable(U)
251-func chooseFreelancer (w,aA) = {
252- let ah = toBase58String(U.callerPublicKey)
249+@Callable(T)
250+func chooseFreelancer (v,aA) = {
251+ let ah = extract(T.callerPublicKey)
253252 let ai = height
254- let aj = v(w)
255- let ak = x(aj)
253+ let aj = u(v)
254+ let ak = w(aj)
256255 let al = ak[0]
257- let aa = ak[1]
258- let ad = parseIntValue(ak[2])
259- let am = parseIntValue(ak[3])
260- let an = parseIntValue(ak[4])
261- let F = ak[5]
262- let I = parseIntValue(ak[6])
263- let ao = E(F)
256+ let Z = ak[1]
257+ let aa = fromBase58String(ak[2])
258+ let ad = parseIntValue(ak[3])
259+ let am = parseIntValue(ak[4])
260+ let an = parseIntValue(ak[5])
261+ let E = ak[6]
262+ let H = parseIntValue(ak[7])
263+ let ao = D(E)
264264 let aB = {
265- let aC = ((w + "_") + aA)
265+ let aC = ((v + "_") + aA)
266266 let aD = getInteger(this, aC)
267- let A = aD
268- if ($isInstanceOf(A, "Int"))
267+ let z = aD
268+ if ($isInstanceOf(z, "Int"))
269269 then {
270- let z = A
271- z
270+ let y = z
271+ y
272272 }
273273 else throw("Freelancer's bet was not found")
274274 }
275- let ar = ((I * 3) / 100)
276- let aE = ((I - aB) - ar)
277- let as = J(ai, ad, am)
275+ let ar = ((H * 3) / 100)
276+ let aE = ((H - aB) - ar)
277+ let as = I(ai, ad, am)
278278 if ((ah == aa))
279279 then if (as)
280- then if ((al == g))
281- then ScriptResult(WriteSet([DataEntry(aj, ((((((((((((((((i + "_") + aa) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + F) + "_") + toString(I)) + "_") + "NoFreelancer") + "_") + "NoBid"))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aa)), (I - ar), ao)]))
282- else if ((al == h))
283- then WriteSet([DataEntry(aj, ((((((((((((j + "_") + aa) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + F) + "_") + toString(I)))])
280+ then if ((al == f))
281+ then ScriptResult(WriteSet([DataEntry(aj, ((((((((((((((((((h + "_") + Z) + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + E) + "_") + toString(H)) + "_") + "NoFreelancer") + "_") + "NoBid"))]), TransferSet([ScriptTransfer(addressFromPublicKey(aa), (H - ar), ao)]))
282+ else if ((al == g))
283+ then WriteSet([DataEntry(aj, ((((((((((((((i + "_") + Z) + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + E) + "_") + toString(H)))])
284284 else throw("Incorrect auction state")
285- else ScriptResult(WriteSet([DataEntry(aj, ((((((((((((((j + "_") + aa) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + F) + "_") + toString(aB)) + "_") + aA))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aa)), aE, ao)]))
285+ else ScriptResult(WriteSet([DataEntry(aj, ((((((((((((((((i + "_") + Z) + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + E) + "_") + toString(aB)) + "_") + aA))]), TransferSet([ScriptTransfer(addressFromPublicKey(aa), aE, ao)]))
286286 else throw("Only auction customer can choose a freelancer")
287287 }
288288
289289
290290
291-@Callable(U)
292-func increaseExecutionTime (w,aF) = {
293- let T = toBase58String(U.callerPublicKey)
294- let aj = v(w)
295- let ak = x(aj)
291+@Callable(T)
292+func increaseExecutionTime (v,aF) = {
293+ let S = extract(T.callerPublicKey)
294+ let aj = u(v)
295+ let ak = w(aj)
296296 let al = ak[0]
297- let aa = ak[1]
298- let aG = parseIntValue(ak[3])
299- let aH = {
300- let aI = (aF * a)
301- if ((aI > aG))
302- then aI
297+ let Z = ak[1]
298+ let aa = fromBase58String(ak[2])
299+ let ad = parseIntValue(ak[3])
300+ let am = parseIntValue(ak[4])
301+ let an = parseIntValue(ak[5])
302+ let E = ak[6]
303+ let H = parseIntValue(ak[7])
304+ let aG = {
305+ let aH = (aF * a)
306+ if ((aH > an))
307+ then aH
303308 else throw("New execution time must more than current execution time")
304309 }
305- if ((T == aa))
306- then if (if (if ((al == g))
307- then true
308- else (al == h))
309- then true
310- else (al == j))
311- then {
312- let aJ = ((((((((((((al + "_") + aa) + "_") + ak[2]) + "_") + toString(aH)) + "_") + ak[4]) + "_") + ak[5]) + "_") + ak[6])
313- WriteSet([DataEntry(aj, aJ)])
314- }
315- else throw("Incorrect state")
310+ if ((S == aa))
311+ then if ((al == f))
312+ then WriteSet([DataEntry(aj, ((((((((((((((al + "_") + Z) + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + E) + "_") + toString(H)))])
313+ else if (if ((al == g))
314+ then true
315+ else (al == i))
316+ then {
317+ let aA = ak[7]
318+ WriteSet([DataEntry(aj, ((((((((((((((((al + "_") + Z) + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + E) + "_") + toString(H)) + "_") + aA))])
319+ }
320+ else throw("Incorrect state")
316321 else throw("Only customer can increase execution time")
317322 }
318323
319324
320325
321-@Callable(U)
322-func cancelAuction (w) = {
323- let aj = v(w)
324- let ak = x(aj)
326+@Callable(T)
327+func cancelAuction (v) = {
328+ let aj = u(v)
329+ let ak = w(aj)
325330 let al = ak[0]
326- let aa = fromBase58String(ak[1])
327- let aK = if ((U.callerPublicKey == aa))
331+ let Z = ak[1]
332+ let aa = fromBase58String(ak[2])
333+ let ad = parseIntValue(ak[3])
334+ let am = parseIntValue(ak[4])
335+ let an = parseIntValue(ak[5])
336+ let E = ak[6]
337+ let H = parseIntValue(ak[7])
338+ let aI = if ((T.callerPublicKey == aa))
328339 then true
329340 else throw("Auction can be canceled only by owner.")
330- if ((al == g))
331- then {
332- let aL = ((((((((ak[1] + "_") + ak[2]) + "_") + ak[3]) + "_") + ak[4]) + "_") + ak[5])
333- WriteSet([DataEntry(aj, ((i + "_") + aL))])
334- }
341+ if ((al == f))
342+ then WriteSet([DataEntry(aj, ((((((((((((((h + "_") + Z) + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + E) + "_") + toString(H)))])
335343 else throw("Incorrect auction state.")
336344 }
337345
338346
339347
340-@Callable(U)
341-func openDispute (w) = {
342- let T = toBase58String(U.callerPublicKey)
343- let aj = v(w)
344- let ak = x(aj)
348+@Callable(T)
349+func openDispute (v) = {
350+ let S = extract(T.callerPublicKey)
351+ let aj = u(v)
352+ let ak = w(aj)
345353 let al = ak[0]
346- let aa = ak[1]
347- let at = ak[6]
348- if (if ((T == aa))
354+ let Z = ak[1]
355+ let aa = fromBase58String(ak[2])
356+ let ad = parseIntValue(ak[3])
357+ let am = parseIntValue(ak[4])
358+ let an = parseIntValue(ak[5])
359+ let E = ak[6]
360+ let H = parseIntValue(ak[7])
361+ let at = fromBase58String(ak[8])
362+ if (if ((S == aa))
349363 then true
350- else (T == at))
364+ else (S == at))
351365 then {
352- let aL = "1"
353- WriteSet([DataEntry(aj, (m + aL)), DataEntry((w + "_Dispute"), "0")])
366+ let aJ = "1"
367+ WriteSet([DataEntry(aj, ((((l + "_") + Z) + "_") + aJ)), DataEntry((v + "_Dispute"), "0")])
354368 }
355369 else throw("Only customer and freelancer can open dispute")
356370 }
357371
358372
359373
360-@Callable(U)
361-func voteDispute (w,aM) = {
362- let aj = v(w)
363- let ak = x(aj)
364- let aN = {
374+@Callable(T)
375+func voteDispute (v,aK) = {
376+ let aj = u(v)
377+ let ak = w(aj)
378+ let Z = ak[1]
379+ let aL = {
365380 let al = ak[0]
366- if ((al == m))
381+ if ((al == l))
367382 then true
368- else throw(("Incorrect state. Must be: " + m))
383+ else throw(("Incorrect state. Must be: " + l))
369384 }
370- let aO = ak[4]
371- let I = parseIntValue(ak[5])
372- let aP = if (if ((aM == o))
385+ let aM = ak[4]
386+ let H = parseIntValue(ak[5])
387+ let aN = if (if ((aK == n))
373388 then true
374- else (aM == p))
375- then aM
376- else throw(((("Vote is incorrect. Must be: " + o) + " or ") + p))
377- let aQ = if (if (if (if (if ((U.callerPublicKey == q))
389+ else (aK == o))
390+ then aK
391+ else throw(((("Vote is incorrect. Must be: " + n) + " or ") + o))
392+ let aO = if (if (if (if (if ((T.callerPublicKey == p))
378393 then true
379- else (U.callerPublicKey == r))
394+ else (T.callerPublicKey == q))
380395 then true
381- else (U.callerPublicKey == s))
396+ else (T.callerPublicKey == r))
382397 then true
383- else (U.callerPublicKey == t))
398+ else (T.callerPublicKey == s))
384399 then true
385- else (U.callerPublicKey == u))
386- then toBase58String(U.callerPublicKey)
400+ else (T.callerPublicKey == t))
401+ then toBase58String(T.callerPublicKey)
387402 else throw("You have no rights for disputes resolving")
388- let aR = {
389- let aS = ((w + "_") + m)
390- let aT = getString(this, aS)
391- let A = aT
392- if ($isInstanceOf(A, "String"))
403+ let aP = {
404+ let aQ = ((v + "_") + l)
405+ let aR = getString(this, aQ)
406+ let z = aR
407+ if ($isInstanceOf(z, "String"))
393408 then {
394- let z = A
395- z
409+ let y = z
410+ y
396411 }
397412 else throw("Cannot find data of dispute in storage")
398413 }
399- let aU = split(aR, "/")
400- let aV = aU[0]
401- if ((aV == "4"))
414+ let aS = split(aP, "/")
415+ let aT = aS[0]
416+ if ((aT == "4"))
402417 then {
403- let aW = split(aU[1], "_")
404- let aX = split(aU[2], "_")
405- let aY = if ((aQ == aW[0]))
418+ let aU = split(aS[1], "_")
419+ let aV = split(aS[2], "_")
420+ let aW = if ((aO == aU[0]))
406421 then true
407- else (aQ == aW[1])
408- if (aY)
422+ else (aO == aU[1])
423+ if (aW)
409424 then throw("You already voted")
410425 else {
411- let aZ = "5"
412- let ba = ((aU[1] + "_") + aQ)
413- let bb = ((aU[2] + "_") + aP)
414- let bc = ((((aZ + "/") + ba) + "/") + bb)
415- let bd = {
416- let be = if ((aX[0] == o))
426+ let aX = "5"
427+ let aY = ((aS[1] + "_") + aO)
428+ let aZ = ((aS[2] + "_") + aN)
429+ let ba = ((((aX + "/") + aY) + "/") + aZ)
430+ let bb = {
431+ let bc = if ((aV[0] == n))
417432 then 1
418433 else 0
419- let bf = if ((aX[1] == o))
434+ let bd = if ((aV[1] == n))
420435 then 1
421436 else 0
422- let bg = if ((aX[2] == o))
437+ let be = if ((aV[2] == n))
423438 then 1
424439 else 0
425- let bh = if ((aX[3] == o))
440+ let bf = if ((aV[3] == n))
426441 then 1
427442 else 0
428- let bi = if ((aP == o))
443+ let bg = if ((aN == n))
429444 then 1
430445 else 0
431- let bj = ((((be + bf) + bg) + bh) + bi)
432- if ((bj > 2))
433- then o
434- else p
446+ let bh = ((((bc + bd) + be) + bf) + bg)
447+ if ((bh > 2))
448+ then n
449+ else o
435450 }
436- let aJ = ((((((((((ak[1] + "_") + ak[2]) + "_") + ak[3]) + "_") + ak[4]) + "_") + ak[5]) + "_") + ak[6])
437- let bk = if ((bd == o))
451+ let bi = ((((((((((ak[1] + "_") + ak[2]) + "_") + ak[3]) + "_") + ak[4]) + "_") + ak[5]) + "_") + ak[6])
452+ let bj = if ((bb == n))
438453 then ak[1]
439454 else ak[6]
440- let bl = (I - ((I * 3) / 100))
441- ScriptResult(WriteSet([DataEntry(v(w), (n + aJ)), DataEntry(((w + "_") + m), bc)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bk)), bl, fromBase58String(aO))]))
455+ let bk = (H - ((H * 3) / 100))
456+ ScriptResult(WriteSet([DataEntry(u(v), ((((m + "_") + Z) + "_") + bi)), DataEntry(((v + "_") + l), ba)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bj)), bk, fromBase58String(aM))]))
442457 }
443458 }
444459 else {
445- let bc = if ((aV == "0"))
460+ let ba = if ((aT == "0"))
446461 then {
447- let aZ = "1"
448- let ba = aQ
449- let bb = aP
450- let aJ = ((((aZ + "/") + ba) + "/") + bb)
451- aJ
462+ let aX = "1"
463+ let aY = aO
464+ let aZ = aN
465+ let bi = ((((aX + "/") + aY) + "/") + aZ)
466+ bi
452467 }
453- else if ((aV == "1"))
468+ else if ((aT == "1"))
454469 then {
455- let bm = aU[1]
456- let be = aU[2]
457- let aY = (aQ == bm)
458- if (aY)
470+ let bl = aS[1]
471+ let bc = aS[2]
472+ let aW = (aO == bl)
473+ if (aW)
459474 then throw("You already voted")
460475 else {
461- let aZ = "1"
462- let ba = (bm + aQ)
463- let bb = (be + aP)
464- let aJ = ((((aZ + "/") + ba) + "/") + bb)
465- aJ
476+ let aX = "1"
477+ let aY = (bl + aO)
478+ let aZ = (bc + aN)
479+ let bi = ((((aX + "/") + aY) + "/") + aZ)
480+ bi
466481 }
467482 }
468- else if ((aV == "2"))
483+ else if ((aT == "2"))
469484 then {
470- let aW = split(aU[1], "_")
471- let aX = split(aU[2], "_")
472- let aY = if ((aQ == aW[0]))
485+ let aU = split(aS[1], "_")
486+ let aV = split(aS[2], "_")
487+ let aW = if ((aO == aU[0]))
473488 then true
474- else (aQ == aW[1])
475- if (aY)
489+ else (aO == aU[1])
490+ if (aW)
476491 then throw("You already voted")
477492 else {
478- let aZ = "3"
479- let ba = ((aU[1] + "_") + aQ)
480- let bb = ((aU[2] + "_") + aP)
481- let aJ = ((((aZ + "/") + ba) + "/") + bb)
482- aJ
493+ let aX = "3"
494+ let aY = ((aS[1] + "_") + aO)
495+ let aZ = ((aS[2] + "_") + aN)
496+ let bi = ((((aX + "/") + aY) + "/") + aZ)
497+ bi
483498 }
484499 }
485- else if ((aV == "3"))
500+ else if ((aT == "3"))
486501 then {
487- let aW = split(aU[1], "_")
488- let aX = split(aU[2], "_")
489- let aY = if (if ((aQ == aW[0]))
502+ let aU = split(aS[1], "_")
503+ let aV = split(aS[2], "_")
504+ let aW = if (if ((aO == aU[0]))
490505 then true
491- else (aQ == aW[1]))
506+ else (aO == aU[1]))
492507 then true
493- else (aQ == aW[2])
494- if (aY)
508+ else (aO == aU[2])
509+ if (aW)
495510 then throw("You already voted")
496511 else {
497- let aZ = "4"
498- let ba = ((aU[1] + "_") + aQ)
499- let bb = ((aU[2] + "_") + aP)
500- let aJ = ((((aZ + "/") + ba) + "/") + bb)
501- aJ
512+ let aX = "4"
513+ let aY = ((aS[1] + "_") + aO)
514+ let aZ = ((aS[2] + "_") + aN)
515+ let bi = ((((aX + "/") + aY) + "/") + aZ)
516+ bi
502517 }
503518 }
504519 else throw("Dispute has been already resolved")
505- WriteSet([DataEntry(((w + "_") + m), bc)])
520+ WriteSet([DataEntry(((v + "_") + l), ba)])
506521 }
507522 }
508523
509524
510525
511-@Callable(U)
512-func workIsDone (w) = {
513- let aj = v(w)
514- let ak = x(aj)
526+@Callable(T)
527+func workHandOver (v) = {
528+ let aj = u(v)
529+ let ak = w(aj)
515530 let al = ak[0]
516- let ad = parseIntValue(ak[2])
517- let aG = parseIntValue(ak[3])
518- let K = height
519- let bn = {
520- let T = toBase58String(U.callerPublicKey)
531+ let Z = ak[1]
532+ let aa = fromBase58String(ak[2])
533+ let ad = parseIntValue(ak[3])
534+ let am = parseIntValue(ak[4])
535+ let an = parseIntValue(ak[5])
536+ let E = ak[6]
537+ let H = parseIntValue(ak[7])
538+ let J = height
539+ let bm = {
540+ let S = toBase58String(T.callerPublicKey)
521541 let at = ak[6]
522- if ((T == at))
523- then T
542+ if ((S == at))
543+ then S
524544 else throw("Only a freelancer can indicate that the work is done")
525545 }
526- let bo = ((K - ad) > aG)
527- if ((al == j))
528- then if (bo)
546+ let bn = ((J - ad) > an)
547+ if ((al == i))
548+ then if (bn)
529549 then {
530- let aJ = ((((((((((ak[1] + "_") + ak[2]) + "_") + ak[3]) + "_") + ak[4]) + "_") + ak[5]) + "_") + ak[6])
531- WriteSet([DataEntry(aj, (m + aJ))])
550+ let bi = ((((((((((ak[1] + "_") + ak[2]) + "_") + ak[3]) + "_") + ak[4]) + "_") + ak[5]) + "_") + ak[6])
551+ WriteSet([DataEntry(aj, ((((l + "_") + Z) + "_") + bi))])
532552 }
533553 else {
534- let aJ = ((((((((((ak[1] + "_") + ak[2]) + "_") + ak[3]) + "_") + ak[4]) + "_") + ak[5]) + "_") + ak[6])
535- WriteSet([DataEntry(aj, (k + aJ))])
554+ let bi = ((((((((((ak[1] + "_") + ak[2]) + "_") + ak[3]) + "_") + ak[4]) + "_") + ak[5]) + "_") + ak[6])
555+ WriteSet([DataEntry(aj, ((((j + "_") + Z) + "_") + bi))])
536556 }
537557 else throw("Auction state is incorrect")
538558 }
539559
540560
541561
542-@Callable(U)
543-func acceptByCustomer (w) = {
544- let aj = v(w)
545- let ak = x(aj)
562+@Callable(T)
563+func acceptWork (v) = {
564+ let aj = u(v)
565+ let ak = w(aj)
546566 let al = ak[0]
547- let aa = ak[1]
548- let F = ak[4]
549- let I = parseIntValue(ak[5])
550- let at = ak[6]
551- let T = toBase58String(U.callerPublicKey)
552- let ar = ((I * 3) / 100)
553- let bl = (I - ar)
554- let ao = E(F)
555- let bp = {
556- let bq = getInteger(this, (at + "_Rating"))
557- let br = {
558- let A = bq
559- if ($isInstanceOf(A, "Int"))
567+ let Z = ak[1]
568+ let aa = fromBase58String(ak[2])
569+ let ad = parseIntValue(ak[3])
570+ let am = parseIntValue(ak[4])
571+ let an = parseIntValue(ak[5])
572+ let E = ak[6]
573+ let H = parseIntValue(ak[7])
574+ let at = ak[2]
575+ let S = extract(T.callerPublicKey)
576+ let ar = ((H * 3) / 100)
577+ let bk = (H - ar)
578+ let ao = D(E)
579+ let bo = {
580+ let bp = getInteger(this, (at + "_Rating"))
581+ let bq = {
582+ let z = bp
583+ if ($isInstanceOf(z, "Int"))
560584 then {
561- let z = A
562- z
585+ let y = z
586+ y
563587 }
564588 else 0
565589 }
566- (br + 1)
590+ (bq + 1)
567591 }
568- if ((T == aa))
569- then if ((al == k))
592+ if ((S == aa))
593+ then if ((al == j))
570594 then {
571- let aJ = ((((((((((ak[1] + "_") + ak[2]) + "_") + ak[3]) + "_") + ak[4]) + "_") + ak[5]) + "_") + ak[6])
572- ScriptResult(WriteSet([DataEntry(aj, (l + aJ)), DataEntry((at + "_Rating"), bp)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(at)), bl, ao)]))
595+ let bi = ((((((((((ak[1] + "_") + ak[2]) + "_") + ak[3]) + "_") + ak[4]) + "_") + ak[5]) + "_") + ak[6])
596+ ScriptResult(WriteSet([DataEntry(aj, ((((k + "_") + Z) + "_") + bi)), DataEntry((at + "_Rating"), bo)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(at)), bk, ao)]))
573597 }
574- else throw(("Incorrect state. Must be: " + k))
598+ else throw(("Incorrect state. Must be: " + j))
575599 else throw("Only auction customer can use this function")
576600 }
577601
578602
579-@Verifier(bs)
580-func bt () = if (sigVerify(bs.bodyBytes, bs.proofs[0], bs.senderPublicKey))
603+@Verifier(br)
604+func bs () = if (sigVerify(br.bodyBytes, br.proofs[0], br.senderPublicKey))
581605 then {
582- let A = bs
583- if ($isInstanceOf(A, "TransferTransaction"))
606+ let z = br
607+ if ($isInstanceOf(z, "TransferTransaction"))
584608 then {
585- let bu = A
609+ let bt = z
586610 true
587611 }
588- else if ($isInstanceOf(A, "SetScriptTransaction"))
612+ else if ($isInstanceOf(z, "SetScriptTransaction"))
589613 then {
590- let bv = A
614+ let bu = z
591615 true
592616 }
593617 else false
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 1440
55
6-let b = 3
6+let b = unit
77
8-let c = unit
8+let c = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
99
10-let d = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
10+let d = base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU'
1111
12-let e = base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU'
12+let e = base58'Ft8X1v1LTa1ABafufpaCWyVj8KkaxUWE6xBhW6sNFJck'
1313
14-let f = base58'Ft8X1v1LTa1ABafufpaCWyVj8KkaxUWE6xBhW6sNFJck'
14+let f = "Opened"
1515
16-let g = "Opened"
16+let g = "Suggested"
1717
18-let h = "Suggested"
18+let h = "Canceled"
1919
20-let i = "Canceled"
20+let i = "InProgress"
2121
22-let j = "InProgress"
22+let j = "WaitForConfirmation"
2323
24-let k = "WaitForConfirmation"
24+let k = "Completed"
2525
26-let l = "Completed"
26+let l = "Dispute"
2727
28-let m = "Dispute"
28+let m = "DisputeResolved"
2929
30-let n = "DisputeResolved"
30+let n = "CMR"
3131
32-let o = "CMR"
32+let o = "FL"
3333
34-let p = "FL"
34+let p = base58'1'
3535
3636 let q = base58'1'
3737
3838 let r = base58'1'
3939
4040 let s = base58'1'
4141
4242 let t = base58'1'
4343
44-let u = base58'1'
45-
46-func v (w) = (w + "_Auction")
44+func u (v) = (v + "_AuctionData")
4745
4846
49-func x (w) = {
50- let y = getString(this, w)
51- let z = {
52- let A = y
53- if ($isInstanceOf(A, "String"))
47+func w (v) = {
48+ let x = getString(this, v)
49+ let y = {
50+ let z = x
51+ if ($isInstanceOf(z, "String"))
5452 then {
55- let z = A
56- z
53+ let y = z
54+ y
5755 }
5856 else throw("AuctionId was not found")
5957 }
60- split(z, "_")
58+ split(y, "_")
6159 }
6260
6361
64-func B (w) = {
65- let C = ((w + "_") + m)
66- let D = getString(this, C)
67- let z = {
68- let A = D
69- if ($isInstanceOf(A, "String"))
62+func A (v) = {
63+ let B = ((v + "_") + l)
64+ let C = getString(this, B)
65+ let y = {
66+ let z = C
67+ if ($isInstanceOf(z, "String"))
7068 then {
71- let z = A
72- z
69+ let y = z
70+ y
7371 }
7472 else throw("Dispute data was not found")
7573 }
76- split(z, "/")
74+ split(y, "/")
7775 }
7876
7977
80-func E (F) = if ((F == "WAVES"))
81- then c
82- else if ((F == "BTC"))
83- then d
84- else if ((F == "EUR"))
85- then e
86- else if ((F == "USD"))
87- then f
78+func D (E) = if ((E == "WAVES"))
79+ then b
80+ else if ((E == "BTC"))
81+ then c
82+ else if ((E == "EUR"))
83+ then d
84+ else if ((E == "USD"))
85+ then e
8886 else throw("Incorrect Asset Id")
8987
9088
91-func G (H,I) = if ((I > H))
92- then H
93- else throw(("Bet price must be lower than actual price. Actual price: " + toString(I)))
89+func F (G,H) = if ((H > G))
90+ then G
91+ else throw(("Bet price must be lower than actual price. Actual price: " + toString(H)))
9492
9593
96-func J (K,L,M) = ((K - L) > M)
94+func I (J,K,L) = ((J - K) > L)
9795
9896
99-func N (O,I) = {
100- let P = getInteger(this, (O + "_Freezed"))
101- let Q = {
102- let A = P
103- if ($isInstanceOf(A, "Int"))
97+func M (N,H) = {
98+ let O = getInteger(this, (N + "_Freezed"))
99+ let P = {
100+ let z = O
101+ if ($isInstanceOf(z, "Int"))
104102 then {
105- let z = A
106- z
103+ let y = z
104+ y
107105 }
108106 else 0
109107 }
110- (Q + I)
108+ (P + H)
111109 }
112110
113111
114-func R (O,I) = {
115- let P = getInteger(this, (O + "_Freezed"))
116- let Q = {
117- let A = P
118- if ($isInstanceOf(A, "Int"))
112+func Q (N,H) = {
113+ let O = getInteger(this, (N + "_Freezed"))
114+ let P = {
115+ let z = O
116+ if ($isInstanceOf(z, "Int"))
119117 then {
120- let z = A
121- z
118+ let y = z
119+ y
122120 }
123121 else 0
124122 }
125- let z = (Q - I)
126- if ((z > 0))
127- then z
123+ let y = (P - H)
124+ if ((y > 0))
125+ then y
128126 else throw("Freezed amount couldn't be less than 0")
129127 }
130128
131129
132-func S (T) = {
133- let S = getString(this, (T + "_Status"))
134- let A = S
135- if ($isInstanceOf(A, "String"))
130+func R (S) = {
131+ let R = getString(this, (S + "_Status"))
132+ let z = R
133+ if ($isInstanceOf(z, "String"))
136134 then {
137- let z = A
138- z
135+ let y = z
136+ y
139137 }
140138 else throw("Only registered users can make bets")
141139 }
142140
143141
144-@Callable(U)
145-func freelancerSignUp (V) = {
146- let W = toBase58String(U.callerPublicKey)
147- let X = getString(this, (W + "_Freelancer"))
148- if (isDefined(X))
142+@Callable(T)
143+func freelancerSignUp (U) = {
144+ let V = toBase58String(T.callerPublicKey)
145+ let W = getString(this, (V + "_Freelancer"))
146+ if (isDefined(W))
149147 then throw("User already registered")
150- else WriteSet([DataEntry((W + "_Registered"), V)])
148+ else WriteSet([DataEntry((V + "_Registered"), U)])
151149 }
152150
153151
154152
155-@Callable(U)
156-func clientSignUp (V) = {
157- let W = toBase58String(U.callerPublicKey)
158- let X = getString(this, (W + "_Client"))
159- if (isDefined(X))
153+@Callable(T)
154+func clientSignUp (U) = {
155+ let V = toBase58String(T.callerPublicKey)
156+ let W = getString(this, (V + "_Client"))
157+ if (isDefined(W))
160158 then throw("User already registered")
161- else WriteSet([DataEntry((W + "_Client"), V)])
159+ else WriteSet([DataEntry((V + "_Client"), U)])
162160 }
163161
164162
165163
166-@Callable(U)
167-func createAuction (Y,Z) = {
168- let w = toBase58String(U.transactionId)
169- let aa = toBase58String(U.callerPublicKey)
170- let ab = extract(U.payment)
164+@Callable(T)
165+func createAuction (X,Y,Z) = {
166+ let v = toBase58String(T.transactionId)
167+ let aa = toBase58String(T.callerPublicKey)
168+ let ab = extract(T.payment)
171169 let ac = ab.amount
172- let I = if ((ac > 0))
170+ let H = if ((ac > 0))
173171 then ac
174172 else throw("Amount must be higher then 0")
175173 let ad = height
176- let ae = (Z * a)
177- let af = (Y * a)
178- let O = if (!(isDefined(ab.assetId)))
174+ let ae = (Y * a)
175+ let af = (X * a)
176+ let N = if (!(isDefined(ab.assetId)))
179177 then "WAVES"
180- else if ((ab.assetId == d))
178+ else if ((ab.assetId == c))
181179 then "BTC"
182- else if ((ab.assetId == e))
180+ else if ((ab.assetId == d))
183181 then "EUR"
184- else if ((ab.assetId == f))
182+ else if ((ab.assetId == e))
185183 then "USD"
186184 else throw("AssetId is incorrect")
187- let ag = N(O, I)
188- WriteSet([DataEntry(v(w), ((((((((((((g + "_") + aa) + "_") + toString(ad)) + "_") + toString(ae)) + "_") + toString(af)) + "_") + O) + "_") + toString(I))), DataEntry((O + "_Freezed"), ag)])
185+ let ag = M(N, H)
186+ WriteSet([DataEntry(u(v), ((((((((((((((f + "_") + Z) + "_") + aa) + "_") + toString(ad)) + "_") + toString(ae)) + "_") + toString(af)) + "_") + N) + "_") + toString(H))), DataEntry((v + "_AuctionInfo"), Z), DataEntry((N + "_Freezed"), ag)])
189187 }
190188
191189
192190
193-@Callable(U)
194-func makeBid (w,H) = {
195- let ah = toBase58String(U.callerPublicKey)
191+@Callable(T)
192+func makeBid (v,G) = {
193+ let ah = toBase58String(T.callerPublicKey)
196194 let ai = height
197- let aj = v(w)
198- let ak = x(aj)
195+ let aj = u(v)
196+ let ak = w(aj)
199197 let al = ak[0]
200- let aa = fromBase58String(ak[1])
201- let ad = parseIntValue(ak[2])
202- let am = parseIntValue(ak[3])
203- let an = parseIntValue(ak[4])
204- let F = ak[5]
205- let I = parseIntValue(ak[6])
206- let ao = E(F)
207- let ap = G(H, I)
208- let aq = S(ah)
209- let ar = ((I * 3) / 100)
210- let ag = R(F, I)
211- let as = J(ai, ad, am)
198+ let Z = ak[1]
199+ let aa = fromBase58String(ak[2])
200+ let ad = parseIntValue(ak[3])
201+ let am = parseIntValue(ak[4])
202+ let an = parseIntValue(ak[5])
203+ let E = ak[6]
204+ let H = parseIntValue(ak[7])
205+ let ao = D(E)
206+ let ap = F(G, H)
207+ let aq = R(ah)
208+ let ar = ((H * 3) / 100)
209+ let ag = Q(E, H)
210+ let as = I(ai, ad, am)
212211 if (as)
213- then if ((al == g))
214- then ScriptResult(WriteSet([DataEntry(aj, ((((((((((((((((i + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + F) + "_") + toString(I)) + "_") + "NoFreelancer") + "_") + "NoBid")), DataEntry((F + "_Freezed"), ag)]), TransferSet([ScriptTransfer(addressFromPublicKey(aa), (I - ar), ao)]))
215- else if ((al == h))
212+ then if ((al == f))
213+ then ScriptResult(WriteSet([DataEntry(aj, ((((((((((((((((((h + "_") + Z) + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + E) + "_") + toString(H)) + "_") + "NoFreelancer") + "_") + "NoBid")), DataEntry((E + "_Freezed"), ag)]), TransferSet([ScriptTransfer(addressFromPublicKey(aa), (H - ar), ao)]))
214+ else if ((al == g))
216215 then {
217216 let at = ak[7]
218217 let au = ak[8]
219- WriteSet([DataEntry(aj, ((((((((((((((((j + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + F) + "_") + toString(I)) + "_") + at) + "_") + au))])
218+ WriteSet([DataEntry(aj, ((((((((((((((((((i + "_") + Z) + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + E) + "_") + toString(H)) + "_") + at) + "_") + au))])
220219 }
221220 else throw("Incorrect auction state")
222- else if ((al == g))
223- then WriteSet([DataEntry(((w + "_") + aq), H), DataEntry(aj, ((((((((((((((h + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + F) + "_") + toString(I)) + "_") + aq))])
224- else if ((al == h))
221+ else if ((al == f))
222+ then WriteSet([DataEntry(((v + "_") + aq), G), DataEntry(aj, ((((((((((((((((g + "_") + Z) + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + E) + "_") + toString(H)) + "_") + aq))])
223+ else if ((al == g))
225224 then {
226225 let av = ak[7]
227226 let aw = {
228- let ax = ((w + "_") + av)
227+ let ax = ((v + "_") + av)
229228 let ay = getInteger(this, ax)
230229 let az = {
231- let A = ay
232- if ($isInstanceOf(A, "Int"))
230+ let z = ay
231+ if ($isInstanceOf(z, "Int"))
233232 then {
234- let z = A
235- z
233+ let y = z
234+ y
236235 }
237236 else throw("Can't find lowest bid by public key")
238237 }
239238 if ((az > ap))
240239 then aq
241240 else av
242241 }
243- WriteSet([DataEntry(((w + "_") + ah), H), DataEntry(aj, ((((((((((((((h + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + F) + "_") + toString(I)) + "_") + aw))])
242+ WriteSet([DataEntry(((v + "_") + ah), G), DataEntry(aj, ((((((((((((((((g + "_") + Z) + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + E) + "_") + toString(H)) + "_") + aw))])
244243 }
245- else throw(((((("Incorrect jobId state. Now: " + al) + ", must be: ") + g) + " or ") + h))
244+ else throw(((((("Incorrect jobId state. Now: " + al) + ", must be: ") + f) + " or ") + g))
246245 }
247246
248247
249248
250-@Callable(U)
251-func chooseFreelancer (w,aA) = {
252- let ah = toBase58String(U.callerPublicKey)
249+@Callable(T)
250+func chooseFreelancer (v,aA) = {
251+ let ah = extract(T.callerPublicKey)
253252 let ai = height
254- let aj = v(w)
255- let ak = x(aj)
253+ let aj = u(v)
254+ let ak = w(aj)
256255 let al = ak[0]
257- let aa = ak[1]
258- let ad = parseIntValue(ak[2])
259- let am = parseIntValue(ak[3])
260- let an = parseIntValue(ak[4])
261- let F = ak[5]
262- let I = parseIntValue(ak[6])
263- let ao = E(F)
256+ let Z = ak[1]
257+ let aa = fromBase58String(ak[2])
258+ let ad = parseIntValue(ak[3])
259+ let am = parseIntValue(ak[4])
260+ let an = parseIntValue(ak[5])
261+ let E = ak[6]
262+ let H = parseIntValue(ak[7])
263+ let ao = D(E)
264264 let aB = {
265- let aC = ((w + "_") + aA)
265+ let aC = ((v + "_") + aA)
266266 let aD = getInteger(this, aC)
267- let A = aD
268- if ($isInstanceOf(A, "Int"))
267+ let z = aD
268+ if ($isInstanceOf(z, "Int"))
269269 then {
270- let z = A
271- z
270+ let y = z
271+ y
272272 }
273273 else throw("Freelancer's bet was not found")
274274 }
275- let ar = ((I * 3) / 100)
276- let aE = ((I - aB) - ar)
277- let as = J(ai, ad, am)
275+ let ar = ((H * 3) / 100)
276+ let aE = ((H - aB) - ar)
277+ let as = I(ai, ad, am)
278278 if ((ah == aa))
279279 then if (as)
280- then if ((al == g))
281- then ScriptResult(WriteSet([DataEntry(aj, ((((((((((((((((i + "_") + aa) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + F) + "_") + toString(I)) + "_") + "NoFreelancer") + "_") + "NoBid"))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aa)), (I - ar), ao)]))
282- else if ((al == h))
283- then WriteSet([DataEntry(aj, ((((((((((((j + "_") + aa) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + F) + "_") + toString(I)))])
280+ then if ((al == f))
281+ then ScriptResult(WriteSet([DataEntry(aj, ((((((((((((((((((h + "_") + Z) + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + E) + "_") + toString(H)) + "_") + "NoFreelancer") + "_") + "NoBid"))]), TransferSet([ScriptTransfer(addressFromPublicKey(aa), (H - ar), ao)]))
282+ else if ((al == g))
283+ then WriteSet([DataEntry(aj, ((((((((((((((i + "_") + Z) + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + E) + "_") + toString(H)))])
284284 else throw("Incorrect auction state")
285- else ScriptResult(WriteSet([DataEntry(aj, ((((((((((((((j + "_") + aa) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + F) + "_") + toString(aB)) + "_") + aA))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aa)), aE, ao)]))
285+ else ScriptResult(WriteSet([DataEntry(aj, ((((((((((((((((i + "_") + Z) + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + E) + "_") + toString(aB)) + "_") + aA))]), TransferSet([ScriptTransfer(addressFromPublicKey(aa), aE, ao)]))
286286 else throw("Only auction customer can choose a freelancer")
287287 }
288288
289289
290290
291-@Callable(U)
292-func increaseExecutionTime (w,aF) = {
293- let T = toBase58String(U.callerPublicKey)
294- let aj = v(w)
295- let ak = x(aj)
291+@Callable(T)
292+func increaseExecutionTime (v,aF) = {
293+ let S = extract(T.callerPublicKey)
294+ let aj = u(v)
295+ let ak = w(aj)
296296 let al = ak[0]
297- let aa = ak[1]
298- let aG = parseIntValue(ak[3])
299- let aH = {
300- let aI = (aF * a)
301- if ((aI > aG))
302- then aI
297+ let Z = ak[1]
298+ let aa = fromBase58String(ak[2])
299+ let ad = parseIntValue(ak[3])
300+ let am = parseIntValue(ak[4])
301+ let an = parseIntValue(ak[5])
302+ let E = ak[6]
303+ let H = parseIntValue(ak[7])
304+ let aG = {
305+ let aH = (aF * a)
306+ if ((aH > an))
307+ then aH
303308 else throw("New execution time must more than current execution time")
304309 }
305- if ((T == aa))
306- then if (if (if ((al == g))
307- then true
308- else (al == h))
309- then true
310- else (al == j))
311- then {
312- let aJ = ((((((((((((al + "_") + aa) + "_") + ak[2]) + "_") + toString(aH)) + "_") + ak[4]) + "_") + ak[5]) + "_") + ak[6])
313- WriteSet([DataEntry(aj, aJ)])
314- }
315- else throw("Incorrect state")
310+ if ((S == aa))
311+ then if ((al == f))
312+ then WriteSet([DataEntry(aj, ((((((((((((((al + "_") + Z) + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + E) + "_") + toString(H)))])
313+ else if (if ((al == g))
314+ then true
315+ else (al == i))
316+ then {
317+ let aA = ak[7]
318+ WriteSet([DataEntry(aj, ((((((((((((((((al + "_") + Z) + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + E) + "_") + toString(H)) + "_") + aA))])
319+ }
320+ else throw("Incorrect state")
316321 else throw("Only customer can increase execution time")
317322 }
318323
319324
320325
321-@Callable(U)
322-func cancelAuction (w) = {
323- let aj = v(w)
324- let ak = x(aj)
326+@Callable(T)
327+func cancelAuction (v) = {
328+ let aj = u(v)
329+ let ak = w(aj)
325330 let al = ak[0]
326- let aa = fromBase58String(ak[1])
327- let aK = if ((U.callerPublicKey == aa))
331+ let Z = ak[1]
332+ let aa = fromBase58String(ak[2])
333+ let ad = parseIntValue(ak[3])
334+ let am = parseIntValue(ak[4])
335+ let an = parseIntValue(ak[5])
336+ let E = ak[6]
337+ let H = parseIntValue(ak[7])
338+ let aI = if ((T.callerPublicKey == aa))
328339 then true
329340 else throw("Auction can be canceled only by owner.")
330- if ((al == g))
331- then {
332- let aL = ((((((((ak[1] + "_") + ak[2]) + "_") + ak[3]) + "_") + ak[4]) + "_") + ak[5])
333- WriteSet([DataEntry(aj, ((i + "_") + aL))])
334- }
341+ if ((al == f))
342+ then WriteSet([DataEntry(aj, ((((((((((((((h + "_") + Z) + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + E) + "_") + toString(H)))])
335343 else throw("Incorrect auction state.")
336344 }
337345
338346
339347
340-@Callable(U)
341-func openDispute (w) = {
342- let T = toBase58String(U.callerPublicKey)
343- let aj = v(w)
344- let ak = x(aj)
348+@Callable(T)
349+func openDispute (v) = {
350+ let S = extract(T.callerPublicKey)
351+ let aj = u(v)
352+ let ak = w(aj)
345353 let al = ak[0]
346- let aa = ak[1]
347- let at = ak[6]
348- if (if ((T == aa))
354+ let Z = ak[1]
355+ let aa = fromBase58String(ak[2])
356+ let ad = parseIntValue(ak[3])
357+ let am = parseIntValue(ak[4])
358+ let an = parseIntValue(ak[5])
359+ let E = ak[6]
360+ let H = parseIntValue(ak[7])
361+ let at = fromBase58String(ak[8])
362+ if (if ((S == aa))
349363 then true
350- else (T == at))
364+ else (S == at))
351365 then {
352- let aL = "1"
353- WriteSet([DataEntry(aj, (m + aL)), DataEntry((w + "_Dispute"), "0")])
366+ let aJ = "1"
367+ WriteSet([DataEntry(aj, ((((l + "_") + Z) + "_") + aJ)), DataEntry((v + "_Dispute"), "0")])
354368 }
355369 else throw("Only customer and freelancer can open dispute")
356370 }
357371
358372
359373
360-@Callable(U)
361-func voteDispute (w,aM) = {
362- let aj = v(w)
363- let ak = x(aj)
364- let aN = {
374+@Callable(T)
375+func voteDispute (v,aK) = {
376+ let aj = u(v)
377+ let ak = w(aj)
378+ let Z = ak[1]
379+ let aL = {
365380 let al = ak[0]
366- if ((al == m))
381+ if ((al == l))
367382 then true
368- else throw(("Incorrect state. Must be: " + m))
383+ else throw(("Incorrect state. Must be: " + l))
369384 }
370- let aO = ak[4]
371- let I = parseIntValue(ak[5])
372- let aP = if (if ((aM == o))
385+ let aM = ak[4]
386+ let H = parseIntValue(ak[5])
387+ let aN = if (if ((aK == n))
373388 then true
374- else (aM == p))
375- then aM
376- else throw(((("Vote is incorrect. Must be: " + o) + " or ") + p))
377- let aQ = if (if (if (if (if ((U.callerPublicKey == q))
389+ else (aK == o))
390+ then aK
391+ else throw(((("Vote is incorrect. Must be: " + n) + " or ") + o))
392+ let aO = if (if (if (if (if ((T.callerPublicKey == p))
378393 then true
379- else (U.callerPublicKey == r))
394+ else (T.callerPublicKey == q))
380395 then true
381- else (U.callerPublicKey == s))
396+ else (T.callerPublicKey == r))
382397 then true
383- else (U.callerPublicKey == t))
398+ else (T.callerPublicKey == s))
384399 then true
385- else (U.callerPublicKey == u))
386- then toBase58String(U.callerPublicKey)
400+ else (T.callerPublicKey == t))
401+ then toBase58String(T.callerPublicKey)
387402 else throw("You have no rights for disputes resolving")
388- let aR = {
389- let aS = ((w + "_") + m)
390- let aT = getString(this, aS)
391- let A = aT
392- if ($isInstanceOf(A, "String"))
403+ let aP = {
404+ let aQ = ((v + "_") + l)
405+ let aR = getString(this, aQ)
406+ let z = aR
407+ if ($isInstanceOf(z, "String"))
393408 then {
394- let z = A
395- z
409+ let y = z
410+ y
396411 }
397412 else throw("Cannot find data of dispute in storage")
398413 }
399- let aU = split(aR, "/")
400- let aV = aU[0]
401- if ((aV == "4"))
414+ let aS = split(aP, "/")
415+ let aT = aS[0]
416+ if ((aT == "4"))
402417 then {
403- let aW = split(aU[1], "_")
404- let aX = split(aU[2], "_")
405- let aY = if ((aQ == aW[0]))
418+ let aU = split(aS[1], "_")
419+ let aV = split(aS[2], "_")
420+ let aW = if ((aO == aU[0]))
406421 then true
407- else (aQ == aW[1])
408- if (aY)
422+ else (aO == aU[1])
423+ if (aW)
409424 then throw("You already voted")
410425 else {
411- let aZ = "5"
412- let ba = ((aU[1] + "_") + aQ)
413- let bb = ((aU[2] + "_") + aP)
414- let bc = ((((aZ + "/") + ba) + "/") + bb)
415- let bd = {
416- let be = if ((aX[0] == o))
426+ let aX = "5"
427+ let aY = ((aS[1] + "_") + aO)
428+ let aZ = ((aS[2] + "_") + aN)
429+ let ba = ((((aX + "/") + aY) + "/") + aZ)
430+ let bb = {
431+ let bc = if ((aV[0] == n))
417432 then 1
418433 else 0
419- let bf = if ((aX[1] == o))
434+ let bd = if ((aV[1] == n))
420435 then 1
421436 else 0
422- let bg = if ((aX[2] == o))
437+ let be = if ((aV[2] == n))
423438 then 1
424439 else 0
425- let bh = if ((aX[3] == o))
440+ let bf = if ((aV[3] == n))
426441 then 1
427442 else 0
428- let bi = if ((aP == o))
443+ let bg = if ((aN == n))
429444 then 1
430445 else 0
431- let bj = ((((be + bf) + bg) + bh) + bi)
432- if ((bj > 2))
433- then o
434- else p
446+ let bh = ((((bc + bd) + be) + bf) + bg)
447+ if ((bh > 2))
448+ then n
449+ else o
435450 }
436- let aJ = ((((((((((ak[1] + "_") + ak[2]) + "_") + ak[3]) + "_") + ak[4]) + "_") + ak[5]) + "_") + ak[6])
437- let bk = if ((bd == o))
451+ let bi = ((((((((((ak[1] + "_") + ak[2]) + "_") + ak[3]) + "_") + ak[4]) + "_") + ak[5]) + "_") + ak[6])
452+ let bj = if ((bb == n))
438453 then ak[1]
439454 else ak[6]
440- let bl = (I - ((I * 3) / 100))
441- ScriptResult(WriteSet([DataEntry(v(w), (n + aJ)), DataEntry(((w + "_") + m), bc)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bk)), bl, fromBase58String(aO))]))
455+ let bk = (H - ((H * 3) / 100))
456+ ScriptResult(WriteSet([DataEntry(u(v), ((((m + "_") + Z) + "_") + bi)), DataEntry(((v + "_") + l), ba)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bj)), bk, fromBase58String(aM))]))
442457 }
443458 }
444459 else {
445- let bc = if ((aV == "0"))
460+ let ba = if ((aT == "0"))
446461 then {
447- let aZ = "1"
448- let ba = aQ
449- let bb = aP
450- let aJ = ((((aZ + "/") + ba) + "/") + bb)
451- aJ
462+ let aX = "1"
463+ let aY = aO
464+ let aZ = aN
465+ let bi = ((((aX + "/") + aY) + "/") + aZ)
466+ bi
452467 }
453- else if ((aV == "1"))
468+ else if ((aT == "1"))
454469 then {
455- let bm = aU[1]
456- let be = aU[2]
457- let aY = (aQ == bm)
458- if (aY)
470+ let bl = aS[1]
471+ let bc = aS[2]
472+ let aW = (aO == bl)
473+ if (aW)
459474 then throw("You already voted")
460475 else {
461- let aZ = "1"
462- let ba = (bm + aQ)
463- let bb = (be + aP)
464- let aJ = ((((aZ + "/") + ba) + "/") + bb)
465- aJ
476+ let aX = "1"
477+ let aY = (bl + aO)
478+ let aZ = (bc + aN)
479+ let bi = ((((aX + "/") + aY) + "/") + aZ)
480+ bi
466481 }
467482 }
468- else if ((aV == "2"))
483+ else if ((aT == "2"))
469484 then {
470- let aW = split(aU[1], "_")
471- let aX = split(aU[2], "_")
472- let aY = if ((aQ == aW[0]))
485+ let aU = split(aS[1], "_")
486+ let aV = split(aS[2], "_")
487+ let aW = if ((aO == aU[0]))
473488 then true
474- else (aQ == aW[1])
475- if (aY)
489+ else (aO == aU[1])
490+ if (aW)
476491 then throw("You already voted")
477492 else {
478- let aZ = "3"
479- let ba = ((aU[1] + "_") + aQ)
480- let bb = ((aU[2] + "_") + aP)
481- let aJ = ((((aZ + "/") + ba) + "/") + bb)
482- aJ
493+ let aX = "3"
494+ let aY = ((aS[1] + "_") + aO)
495+ let aZ = ((aS[2] + "_") + aN)
496+ let bi = ((((aX + "/") + aY) + "/") + aZ)
497+ bi
483498 }
484499 }
485- else if ((aV == "3"))
500+ else if ((aT == "3"))
486501 then {
487- let aW = split(aU[1], "_")
488- let aX = split(aU[2], "_")
489- let aY = if (if ((aQ == aW[0]))
502+ let aU = split(aS[1], "_")
503+ let aV = split(aS[2], "_")
504+ let aW = if (if ((aO == aU[0]))
490505 then true
491- else (aQ == aW[1]))
506+ else (aO == aU[1]))
492507 then true
493- else (aQ == aW[2])
494- if (aY)
508+ else (aO == aU[2])
509+ if (aW)
495510 then throw("You already voted")
496511 else {
497- let aZ = "4"
498- let ba = ((aU[1] + "_") + aQ)
499- let bb = ((aU[2] + "_") + aP)
500- let aJ = ((((aZ + "/") + ba) + "/") + bb)
501- aJ
512+ let aX = "4"
513+ let aY = ((aS[1] + "_") + aO)
514+ let aZ = ((aS[2] + "_") + aN)
515+ let bi = ((((aX + "/") + aY) + "/") + aZ)
516+ bi
502517 }
503518 }
504519 else throw("Dispute has been already resolved")
505- WriteSet([DataEntry(((w + "_") + m), bc)])
520+ WriteSet([DataEntry(((v + "_") + l), ba)])
506521 }
507522 }
508523
509524
510525
511-@Callable(U)
512-func workIsDone (w) = {
513- let aj = v(w)
514- let ak = x(aj)
526+@Callable(T)
527+func workHandOver (v) = {
528+ let aj = u(v)
529+ let ak = w(aj)
515530 let al = ak[0]
516- let ad = parseIntValue(ak[2])
517- let aG = parseIntValue(ak[3])
518- let K = height
519- let bn = {
520- let T = toBase58String(U.callerPublicKey)
531+ let Z = ak[1]
532+ let aa = fromBase58String(ak[2])
533+ let ad = parseIntValue(ak[3])
534+ let am = parseIntValue(ak[4])
535+ let an = parseIntValue(ak[5])
536+ let E = ak[6]
537+ let H = parseIntValue(ak[7])
538+ let J = height
539+ let bm = {
540+ let S = toBase58String(T.callerPublicKey)
521541 let at = ak[6]
522- if ((T == at))
523- then T
542+ if ((S == at))
543+ then S
524544 else throw("Only a freelancer can indicate that the work is done")
525545 }
526- let bo = ((K - ad) > aG)
527- if ((al == j))
528- then if (bo)
546+ let bn = ((J - ad) > an)
547+ if ((al == i))
548+ then if (bn)
529549 then {
530- let aJ = ((((((((((ak[1] + "_") + ak[2]) + "_") + ak[3]) + "_") + ak[4]) + "_") + ak[5]) + "_") + ak[6])
531- WriteSet([DataEntry(aj, (m + aJ))])
550+ let bi = ((((((((((ak[1] + "_") + ak[2]) + "_") + ak[3]) + "_") + ak[4]) + "_") + ak[5]) + "_") + ak[6])
551+ WriteSet([DataEntry(aj, ((((l + "_") + Z) + "_") + bi))])
532552 }
533553 else {
534- let aJ = ((((((((((ak[1] + "_") + ak[2]) + "_") + ak[3]) + "_") + ak[4]) + "_") + ak[5]) + "_") + ak[6])
535- WriteSet([DataEntry(aj, (k + aJ))])
554+ let bi = ((((((((((ak[1] + "_") + ak[2]) + "_") + ak[3]) + "_") + ak[4]) + "_") + ak[5]) + "_") + ak[6])
555+ WriteSet([DataEntry(aj, ((((j + "_") + Z) + "_") + bi))])
536556 }
537557 else throw("Auction state is incorrect")
538558 }
539559
540560
541561
542-@Callable(U)
543-func acceptByCustomer (w) = {
544- let aj = v(w)
545- let ak = x(aj)
562+@Callable(T)
563+func acceptWork (v) = {
564+ let aj = u(v)
565+ let ak = w(aj)
546566 let al = ak[0]
547- let aa = ak[1]
548- let F = ak[4]
549- let I = parseIntValue(ak[5])
550- let at = ak[6]
551- let T = toBase58String(U.callerPublicKey)
552- let ar = ((I * 3) / 100)
553- let bl = (I - ar)
554- let ao = E(F)
555- let bp = {
556- let bq = getInteger(this, (at + "_Rating"))
557- let br = {
558- let A = bq
559- if ($isInstanceOf(A, "Int"))
567+ let Z = ak[1]
568+ let aa = fromBase58String(ak[2])
569+ let ad = parseIntValue(ak[3])
570+ let am = parseIntValue(ak[4])
571+ let an = parseIntValue(ak[5])
572+ let E = ak[6]
573+ let H = parseIntValue(ak[7])
574+ let at = ak[2]
575+ let S = extract(T.callerPublicKey)
576+ let ar = ((H * 3) / 100)
577+ let bk = (H - ar)
578+ let ao = D(E)
579+ let bo = {
580+ let bp = getInteger(this, (at + "_Rating"))
581+ let bq = {
582+ let z = bp
583+ if ($isInstanceOf(z, "Int"))
560584 then {
561- let z = A
562- z
585+ let y = z
586+ y
563587 }
564588 else 0
565589 }
566- (br + 1)
590+ (bq + 1)
567591 }
568- if ((T == aa))
569- then if ((al == k))
592+ if ((S == aa))
593+ then if ((al == j))
570594 then {
571- let aJ = ((((((((((ak[1] + "_") + ak[2]) + "_") + ak[3]) + "_") + ak[4]) + "_") + ak[5]) + "_") + ak[6])
572- ScriptResult(WriteSet([DataEntry(aj, (l + aJ)), DataEntry((at + "_Rating"), bp)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(at)), bl, ao)]))
595+ let bi = ((((((((((ak[1] + "_") + ak[2]) + "_") + ak[3]) + "_") + ak[4]) + "_") + ak[5]) + "_") + ak[6])
596+ ScriptResult(WriteSet([DataEntry(aj, ((((k + "_") + Z) + "_") + bi)), DataEntry((at + "_Rating"), bo)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(at)), bk, ao)]))
573597 }
574- else throw(("Incorrect state. Must be: " + k))
598+ else throw(("Incorrect state. Must be: " + j))
575599 else throw("Only auction customer can use this function")
576600 }
577601
578602
579-@Verifier(bs)
580-func bt () = if (sigVerify(bs.bodyBytes, bs.proofs[0], bs.senderPublicKey))
603+@Verifier(br)
604+func bs () = if (sigVerify(br.bodyBytes, br.proofs[0], br.senderPublicKey))
581605 then {
582- let A = bs
583- if ($isInstanceOf(A, "TransferTransaction"))
606+ let z = br
607+ if ($isInstanceOf(z, "TransferTransaction"))
584608 then {
585- let bu = A
609+ let bt = z
586610 true
587611 }
588- else if ($isInstanceOf(A, "SetScriptTransaction"))
612+ else if ($isInstanceOf(z, "SetScriptTransaction"))
589613 then {
590- let bv = A
614+ let bu = z
591615 true
592616 }
593617 else false
594618 }
595619 else false
596620

github/deemru/w8io/026f985 
191.54 ms