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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aGVjawAAAAMAAAALY3VycmVudFRpbWUAAAAJc3RhcnRUaW1lAAAADmV4cGlyYXRpb25UaW1lCQAAZgAAAAIJAABlAAAAAgUAAAALY3VycmVudFRpbWUFAAAACXN0YXJ0VGltZQUAAAAOZXhwaXJhdGlvblRpbWUBAAAAFmluY3JlYXNlRnJlZXplZEJhbGFuY2UAAAACAAAADHBtdEFzc2V0TmFtZQAAAAxhdWN0aW9uUHJpY2UEAAAAD2tleUZyZWV6ZWRGdW5kcwkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAADHBtdEFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQEAAAAFWN1cnJlbnRGcmVlemVkQmFsYW5jZQQAAAAHJG1hdGNoMAUAAAAPa2V5RnJlZXplZEZ1bmRzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAJAABkAAAAAgUAAAAVY3VycmVudEZyZWV6ZWRCYWxhbmNlBQAAAAxhdWN0aW9uUHJpY2UBAAAAFmRlY3JlYXNlRnJlZXplZEJhbGFuY2UAAAACAAAADHBtdEFzc2V0TmFtZQAAAAxhdWN0aW9uUHJpY2UEAAAAD2tleUZyZWV6ZWRGdW5kcwkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAADHBtdEFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQEAAAAFWN1cnJlbnRGcmVlemVkQmFsYW5jZQQAAAAHJG1hdGNoMAUAAAAPa2V5RnJlZXplZEZ1bmRzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAAWEJAABlAAAAAgUAAAAVY3VycmVudEZyZWV6ZWRCYWxhbmNlBQAAAAxhdWN0aW9uUHJpY2UDCQAAZgAAAAIFAAAAAWEAAAAAAAAAAAAFAAAAAWEJAAACAAAAAQIAAAAmRnJlZXplZCBhbW91bnQgY291bGRuJ3QgYmUgbGVzcyB0aGFuIDABAAAAFmZyZWVsYW5jZXJJc1JlZ2lzdGVyZWQAAAABAAAABmNhbGxlcgQAAAAWZnJlZWxhbmNlcklzUmVnaXN0ZXJlZAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAABmNhbGxlcgIAAAAHX1N0YXR1cwQAAAAHJG1hdGNoMAUAAAAWZnJlZWxhbmNlcklzUmVnaXN0ZXJlZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAI09ubHkgcmVnaXN0ZXJlZCB1c2VycyBjYW4gbWFrZSBiZXRzAAAACwAAAAFpAQAAABBmcmVlbGFuY2VyU2lnblVwAAAAAQAAAARpbmZvBAAAAA11c2VyUHVibGljS2V5CQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAARYWxyZWFkeVJlZ2lzdGVyZWQJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAAtfRnJlZWxhbmNlcgMJAQAAAAlpc0RlZmluZWQAAAABBQAAABFhbHJlYWR5UmVnaXN0ZXJlZAkAAAIAAAABAgAAABdVc2VyIGFscmVhZHkgcmVnaXN0ZXJlZAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAAtfUmVnaXN0ZXJlZAUAAAAEaW5mbwUAAAADbmlsAAAAAWkBAAAADGNsaWVudFNpZ25VcAAAAAEAAAAEaW5mbwQAAAANdXNlclB1YmxpY0tleQkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAEWFscmVhZHlSZWdpc3RlcmVkCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAANdXNlclB1YmxpY0tleQIAAAAHX0NsaWVudAMJAQAAAAlpc0RlZmluZWQAAAABBQAAABFhbHJlYWR5UmVnaXN0ZXJlZAkAAAIAAAABAgAAABdVc2VyIGFscmVhZHkgcmVnaXN0ZXJlZAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAAdfQ2xpZW50BQAAAARpbmZvBQAAAANuaWwAAAABaQEAAAANY3JlYXRlQXVjdGlvbgAAAAMAAAAQam9iRXhlY3V0aW9uRGF5cwAAABNhdWN0aW9uRHVyYXRpb25EYXlzAAAAC2F1Y3Rpb25JbmZvBAAAAAlhdWN0aW9uSWQJAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAQAAAAPYXVjdGlvbkN1c3RvbWVyCQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAADcG10CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQEAAAACXBtdEFtb3VudAgFAAAAA3BtdAAAAAZhbW91bnQEAAAADGF1Y3Rpb25QcmljZQMJAABmAAAAAgUAAAAJcG10QW1vdW50AAAAAAAAAAAABQAAAAlwbXRBbW91bnQJAAACAAAAAQIAAAAcQW1vdW50IG11c3QgYmUgaGlnaGVyIHRoZW4gMAQAAAAMYXVjdGlvblN0YXJ0BQAAAAZoZWlnaHQEAAAAFWF1Y3Rpb25EdXJhdGlvbkJsb2NrcwkAAGgAAAACBQAAABNhdWN0aW9uRHVyYXRpb25EYXlzBQAAAANkYXkEAAAAEmJsb2Nrc0ZvckV4ZWN1dGlvbgkAAGgAAAACBQAAABBqb2JFeGVjdXRpb25EYXlzBQAAAANkYXkEAAAADHBtdEFzc2V0TmFtZQMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAIAAAAFV0FWRVMDCQAAAAAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAUAAAAEd0JUQwIAAAADQlRDAwkAAAAAAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAABHdFVVICAAAAA0VVUgMJAAAAAAAAAggFAAAAA3BtdAAAAAdhc3NldElkBQAAAAR3VVNEAgAAAANVU0QJAAACAAAAAQIAAAAUQXNzZXRJZCBpcyBpbmNvcnJlY3QEAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWaW5jcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAADHBtdEFzc2V0TmFtZQUAAAAMYXVjdGlvblByaWNlCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAQQXVjdGlvbklkRGF0YUtleQAAAAEFAAAACWF1Y3Rpb25JZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAACXN0YXRlT3BlbgIAAAABXwUAAAALYXVjdGlvbkluZm8CAAAAAV8FAAAAD2F1Y3Rpb25DdXN0b21lcgIAAAABXwkAAaQAAAABBQAAAAxhdWN0aW9uU3RhcnQCAAAAAV8JAAGkAAAAAQUAAAAVYXVjdGlvbkR1cmF0aW9uQmxvY2tzAgAAAAFfCQABpAAAAAEFAAAAEmJsb2Nrc0ZvckV4ZWN1dGlvbgIAAAABXwUAAAAMcG10QXNzZXROYW1lAgAAAAFfCQABpAAAAAEFAAAADGF1Y3Rpb25QcmljZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADF9BdWN0aW9uSW5mbwUAAAALYXVjdGlvbkluZm8JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAMcG10QXNzZXROYW1lAgAAAAhfRnJlZXplZAUAAAARbmV3RnJlZXplZEJhbGFuY2UFAAAAA25pbAAAAAFpAQAAAAdtYWtlQmlkAAAAAgAAAAlhdWN0aW9uSWQAAAAIYmV0UHJpY2UEAAAACWNhbGxlclB1YgkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAB2JldFRpbWUFAAAABmhlaWdodAQAAAAMQXVjdGlvbklkS2V5CQEAAAAQQXVjdGlvbklkRGF0YUtleQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAPYXVjdGlvbkRhdGFMaXN0CQEAAAALZ2V0RGF0YUxpc3QAAAABBQAAAAxBdWN0aW9uSWRLZXkEAAAADGF1Y3Rpb25TdGF0ZQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAAEAAAAC2F1Y3Rpb25JbmZvCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAAAQQAAAAPYXVjdGlvbkN1c3RvbWVyCQACWQAAAAEJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAACBAAAAAxhdWN0aW9uU3RhcnQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAMEAAAAD2F1Y3Rpb25EdXJhdGlvbgkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABAQAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABQQAAAAQYXVjdGlvbkFzc2V0TmFtZQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAYEAAAADGF1Y3Rpb25QcmljZQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABwQAAAAQYXVjdGlvbkFzc2V0SWQ1OAkBAAAAEUFzc2V0TmFtZVRvQmFzZTU4AAAAAQUAAAAQYXVjdGlvbkFzc2V0TmFtZQQAAAAGbmV3QmlkCQEAAAANYmV0UHJpY2VDaGVjawAAAAIFAAAACGJldFByaWNlBQAAAAxhdWN0aW9uUHJpY2UEAAAADW5ld0ZyZWVsYW5jZXIJAQAAABZmcmVlbGFuY2VySXNSZWdpc3RlcmVkAAAAAQUAAAAJY2FsbGVyUHViBAAAAA5kQXBwQ29tbWlzc2lvbgkAAGkAAAACCQAAaAAAAAIFAAAADGF1Y3Rpb25QcmljZQAAAAAAAAAAAwAAAAAAAAAAZAQAAAARbmV3RnJlZXplZEJhbGFuY2UJAQAAABZkZWNyZWFzZUZyZWV6ZWRCYWxhbmNlAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQUAAAAMYXVjdGlvblByaWNlBAAAABFhdWN0aW9uVGltZWlzT3ZlcgkBAAAACXRpbWVDaGVjawAAAAMFAAAAB2JldFRpbWUFAAAADGF1Y3Rpb25TdGFydAUAAAAPYXVjdGlvbkR1cmF0aW9uAwUAAAARYXVjdGlvblRpbWVpc092ZXIDCQAAAAAA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AAEFAAAADEF1Y3Rpb25JZEtleQQAAAAMYXVjdGlvblN0YXRlCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAAAAQAAAALYXVjdGlvbkluZm8JAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAABBAAAAA9hdWN0aW9uQ3VzdG9tZXIJAAJZAAAAAQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAIEAAAADGF1Y3Rpb25TdGFydAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAAAwQAAAAPYXVjdGlvbkR1cmF0aW9uCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAAEBAAAABlhdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAAFBAAAABBhdWN0aW9uQXNzZXROYW1lCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABgQAAAAMYXVjdGlvblByaWNlCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAAHBAAAABBhdWN0aW9uQXNzZXRJZDU4CQEAAAARQXNzZXROYW1lVG9CYXNlNTgAAAABBQAAABBhdWN0aW9uQXNzZXROYW1lBAAAABNGcmVlbGFuY2VyQmlkQW1vdW50BAAAABBrZXlGcmVlbGFuY2VyQmlkCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAFfBQAAAA1mcmVlbGFuY2VyUHViBAAAABF2YWx1ZUZyZWVsYWNlckJpZAkABBoAAAACBQAAAAR0aGlzBQAAABBrZXlGcmVlbGFuY2VyQmlkBAAAAAckbWF0Y2gwBQAAABF2YWx1ZUZyZWVsYWNlckJpZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAA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AAIFAAAAD3N0YXRlSW5Qcm9ncmVzcwIAAAABXwUAAAALYXVjdGlvbkluZm8CAAAAAV8JAAJYAAAAAQUAAAAPYXVjdGlvbkN1c3RvbWVyAgAAAAFfCQABpAAAAAEFAAAADGF1Y3Rpb25TdGFydAIAAAABXwkAAaQAAAABBQAAAA9hdWN0aW9uRHVyYXRpb24CAAAAAV8JAAGkAAAAAQUAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgIAAAABXwUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAABXwkAAaQAAAABBQAAABNGcmVlbGFuY2VyQmlkQW1vdW50AgAAAAFfBQAAAA1mcmVlbGFuY2VyUHViBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAAPYXVjdGlvbkN1c3RvbWVyBQAAABBhbW91bnREaWZmZXJlbmNlBQAAABBhdWN0aW9uQXNzZXRJZDU4BQAAAANuaWwJAAACAAAAAQIAAAAtT25seSBhdWN0aW9uIGN1c3RvbWVyIGNhbiBjaG9vc2UgYSBmcmVlbGFuY2VyAAAAAWkBAAAAFWluY3JlYXNlRXhlY3V0aW9uVGltZQAAAAIAAAAJYXVjdGlvbklkAAAADWV4ZWN1dGlvbkRheXMEAAAABmNhbGxlcgkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAADEF1Y3Rpb25JZEtleQkBAAAAEEF1Y3Rpb25JZERhdGFLZXkAAAABBQAAAAlhdWN0aW9uSWQEAAAAD2F1Y3Rpb25EYXRhTGlzdAkBAAAAC2dldERhdGFMaXN0AAAAAQUAAAAMQXVjdGlvbklkS2V5BAAAAAxhdWN0aW9uU3RhdGUJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAAABAAAAAthdWN0aW9uSW5mbwkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAEEAAAAD2F1Y3Rpb25DdXN0b21lcgkAAlkAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAAAgQAAAAMYXVjdGlvblN0YXJ0CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAADBAAAAA9hdWN0aW9uRHVyYXRpb24JAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAQEAAAAGWF1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24JAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAUEAAAAEGF1Y3Rpb25Bc3NldE5hbWUJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAAGBAAAAAxhdWN0aW9uUHJpY2UJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAcEAAAAF25ld0F1Y3Rpb25FeGVjdXRpb25UaW1lBAAAABxuZXdBdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uCQAAaAAAAAIFAAAADWV4ZWN1dGlvbkRheXMFAAAAA2RheQMJAABmAAAAAgUAAAAcbmV3QXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgUAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgUAAAAcbmV3QXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgkAAAIAAAABAgAAADhOZXcgZXhlY3V0aW9uIHRpbWUgbXVzdCBtb3JlIHRoYW4gY3VycmVudCBleGVjdXRpb24gdGltZQMJAAAAAAAAAgUAAAAGY2FsbGVyBQAAAA9hdWN0aW9uQ3VzdG9tZXIDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAJc3RhdGVPcGVuCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAxBdWN0aW9uSWRLZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAxhdWN0aW9uU3RhdGUCAAAAAV8FAAAAC2F1Y3Rpb25JbmZvAgAAAAFfCQACWAAAAAEFAAAAD2F1Y3Rpb25DdXN0b21lcgIAAAABXwkAAaQAAAABBQAAAAxhdWN0aW9uU3RhcnQCAAAAAV8JAAGkAAAAAQUAAAAPYXVjdGlvbkR1cmF0aW9uAgAAAAFfCQABpAAAAAEFAAAAGWF1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24CAAAAAV8FAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAAAV8JAAGkAAAAAQUAAAAMYXVjdGlvblByaWNlBQAAAANuaWwDAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAADnN0YXRlU3VnZ2VzdGVkBgkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAAD3N0YXRlSW5Qcm9ncmVzcwQAAAANZnJlZWxhbmNlclB1YgkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAcJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADEF1Y3Rpb25JZEtleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAxhdWN0aW9uU3RhdGUCAAAAAV8FAAAAC2F1Y3Rpb25JbmZvAgAAAAFfCQACWAAAAAEFAAAAD2F1Y3Rpb25DdXN0b21lcgIAAAABXwkAAaQAAAABBQAAAAxhdWN0aW9uU3RhcnQCAAAAAV8JAAGkAAAAAQUAAAAPYXVjdGlvbkR1cmF0aW9uAgAAAAFfCQABpAAAAAEFAAAAGWF1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24CAAAAAV8FAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAAAV8JAAGkAAAAAQUAAAAMYXVjdGlvblByaWNlAgAAAAFfBQAAAA1mcmVlbGFuY2VyUHViBQAAAANuaWwJAAACAAAAAQIAAAAPSW5jb3JyZWN0IHN0YXRlCQAAAgAAAAECAAAAKU9ubHkgY3VzdG9tZXIgY2FuIGluY3JlYXNlIGV4ZWN1dGlvbiB0aW1lAAAAAWkBAAAADWNhbmNlbEF1Y3Rpb24AAAABAAAACWF1Y3Rpb25JZAQAAAAMQXVjdGlvbklkS2V5CQEAAAAQQXVjdGlvbklkRGF0YUtleQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAPYXVjdGlvbkRhdGFMaXN0CQEAAAALZ2V0RGF0YUxpc3QAAAABBQAAAAxBdWN0aW9uSWRLZXkEAAAADGF1Y3Rpb25TdGF0ZQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAAEAAAAC2F1Y3Rpb25JbmZvCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAAAQQAAAAPYXVjdGlvbkN1c3RvbWVyCQACWQAAAAEJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAACBAAAAAxhdWN0aW9uU3RhcnQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAMEAAAAD2F1Y3Rpb25EdXJhdGlvbgkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABAQAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABQQAAAAQYXVjdGlvbkFzc2V0TmFtZQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAYEAAAADGF1Y3Rpb25QcmljZQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABwQAAAATYXVjdGlvbklkT3duZXJDaGVjawMJAAAAAAAAAggFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BQAAAA9hdWN0aW9uQ3VzdG9tZXIGCQAAAgAAAAECAAAAJkF1Y3Rpb24gY2FuIGJlIGNhbmNlbGVkIG9ubHkgYnkgb3duZXIuAwkAAAAAAAACBQAAAAxh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AZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAMEAAAAD2F1Y3Rpb25EdXJhdGlvbgkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABAQAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABQQAAAAQYXVjdGlvbkFzc2V0TmFtZQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAYEAAAADGF1Y3Rpb25QcmljZQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABwQAAAALY3VycmVudFRpbWUFAAAABmhlaWdodAQAAAASZnJlZWxhbmNlclB1YkNoZWNrBAAAAAZjYWxsZXIJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAABFhdWN0aW9uRnJlZWxhbmNlcgkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAYDCQAAAAAAAAIFAAAABmNhbGxlcgUAAAARYXVjdGlvbkZyZWVsYW5jZXIFAAAABmNhbGxlcgkAAAIAAAABAgAAADRPbmx5IGEgZnJlZWxhbmNlciBjYW4gaW5kaWNhdGUgdGhhdCB0aGUgd29yayBpcyBkb25lBAAAAAp0aW1lSXNPdmVyCQAAZgAAAAIJAABlAAAAAgUAAAALY3VycmVudFRpbWUFAAAADGF1Y3Rpb25TdGFydAUAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAA9zdGF0ZUluUHJvZ3Jlc3MDBQAAAAp0aW1lSXNPdmVyBAAAAA1uZXdEYXRhU3RyaW5nCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAABAgAAAAFfCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAAAgIAAAABXwkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAMCAAAAAV8JAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAAEAgAAAAFfCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABQIAAAABXwkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAYJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADEF1Y3Rpb25JZEtleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAxzdGF0ZURpc3B1dGUCAAAAAV8FAAAAC2F1Y3Rpb25JbmZvAgAAAAFfBQAAAA1uZXdEYXRhU3RyaW5nBQAAAANuaWwEAAAADW5ld0RhdGFTdHJpbmcJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAECAAAAAV8JAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAACAgAAAAFfCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAAAwIAAAABXwkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAQCAAAAAV8JAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAAFAgAAAAFfCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAMQXVjdGlvbklkS2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAAEXN0YXRlV2FpdDRDb25maXJtAgAAAAFfBQAAAAthdWN0aW9uSW5mbwIAAAABXwUAAAANbmV3RGF0YVN0cmluZwUAAAADbmlsCQAAAgAAAAECAAAAGkF1Y3Rpb24gc3RhdGUgaXMgaW5jb3JyZWN0AAAAAWkBAAAACmFjY2VwdFdvcmsAAAABAAAACWF1Y3Rpb25JZAQAAAAMQXVjdGlvbklkS2V5CQEAAAAQQXVjdGlvbklkRGF0YUtleQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAPYXVjdGlvbkRhdGFMaXN0CQEAAAALZ2V0RGF0YUxpc3QAAAABBQAAAAxBdWN0aW9uSWRLZXkEAAAADGF1Y3Rpb25TdGF0ZQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAAEAAAAC2F1Y3Rpb25JbmZvCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAAAQQAAAAPYXVjdGlvbkN1c3RvbWVyCQACWQAAAAEJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAACBAAAAAxhdWN0aW9uU3RhcnQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAMEAAAAD2F1Y3Rpb25EdXJhdGlvbgkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABAQAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABQQAAAAQYXVjdGlvbkFzc2V0TmFtZQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAYEAAAADGF1Y3Rpb25QcmljZQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABwQAAAARYXVjdGlvbkZyZWVsYW5jZXIJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAACBAAAAAZjYWxsZXIJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAA5kQXBwQ29tbWlzc2lvbgkAAGkAAAACCQAAaAAAAAIFAAAA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",
"chainId": 84,
"height": 686169,
"spentComplexity": 0
}
View: original | compacted
Prev: EntXs9xrRnEXHcdroPfb913ypGj4173xsXC5oHw6VoRc
Next: uHMRMMVqgLft9Gz3TPboWSv1VMCnscBqvkYah7j6Ywk
Diff:
Old | New | | Differences |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | 4 | | let a = 1440 |
---|
5 | 5 | | |
---|
6 | | - | let b = 3 |
---|
| 6 | + | let b = unit |
---|
7 | 7 | | |
---|
8 | | - | let c = unit |
---|
| 8 | + | let c = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS' |
---|
9 | 9 | | |
---|
10 | | - | let d = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS' |
---|
| 10 | + | let d = base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU' |
---|
11 | 11 | | |
---|
12 | | - | let e = base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU' |
---|
| 12 | + | let e = base58'Ft8X1v1LTa1ABafufpaCWyVj8KkaxUWE6xBhW6sNFJck' |
---|
13 | 13 | | |
---|
14 | | - | let f = base58'Ft8X1v1LTa1ABafufpaCWyVj8KkaxUWE6xBhW6sNFJck' |
---|
| 14 | + | let f = "Opened" |
---|
15 | 15 | | |
---|
16 | | - | let g = "Opened" |
---|
| 16 | + | let g = "Suggested" |
---|
17 | 17 | | |
---|
18 | | - | let h = "Suggested" |
---|
| 18 | + | let h = "Canceled" |
---|
19 | 19 | | |
---|
20 | | - | let i = "Canceled" |
---|
| 20 | + | let i = "InProgress" |
---|
21 | 21 | | |
---|
22 | | - | let j = "InProgress" |
---|
| 22 | + | let j = "WaitForConfirmation" |
---|
23 | 23 | | |
---|
24 | | - | let k = "WaitForConfirmation" |
---|
| 24 | + | let k = "Completed" |
---|
25 | 25 | | |
---|
26 | | - | let l = "Completed" |
---|
| 26 | + | let l = "Dispute" |
---|
27 | 27 | | |
---|
28 | | - | let m = "Dispute" |
---|
| 28 | + | let m = "DisputeResolved" |
---|
29 | 29 | | |
---|
30 | | - | let n = "DisputeResolved" |
---|
| 30 | + | let n = "CMR" |
---|
31 | 31 | | |
---|
32 | | - | let o = "CMR" |
---|
| 32 | + | let o = "FL" |
---|
33 | 33 | | |
---|
34 | | - | let p = "FL" |
---|
| 34 | + | let p = base58'1' |
---|
35 | 35 | | |
---|
36 | 36 | | let q = base58'1' |
---|
37 | 37 | | |
---|
|
41 | 41 | | |
---|
42 | 42 | | let t = base58'1' |
---|
43 | 43 | | |
---|
44 | | - | let u = base58'1' |
---|
45 | | - | |
---|
46 | | - | func v (w) = (w + "_Auction") |
---|
| 44 | + | func u (v) = (v + "_AuctionData") |
---|
47 | 45 | | |
---|
48 | 46 | | |
---|
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")) |
---|
54 | 52 | | then { |
---|
55 | | - | let z = A |
---|
56 | | - | z |
---|
| 53 | + | let y = z |
---|
| 54 | + | y |
---|
57 | 55 | | } |
---|
58 | 56 | | else throw("AuctionId was not found") |
---|
59 | 57 | | } |
---|
60 | | - | split(z, "_") |
---|
| 58 | + | split(y, "_") |
---|
61 | 59 | | } |
---|
62 | 60 | | |
---|
63 | 61 | | |
---|
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")) |
---|
70 | 68 | | then { |
---|
71 | | - | let z = A |
---|
72 | | - | z |
---|
| 69 | + | let y = z |
---|
| 70 | + | y |
---|
73 | 71 | | } |
---|
74 | 72 | | else throw("Dispute data was not found") |
---|
75 | 73 | | } |
---|
76 | | - | split(z, "/") |
---|
| 74 | + | split(y, "/") |
---|
77 | 75 | | } |
---|
78 | 76 | | |
---|
79 | 77 | | |
---|
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 |
---|
88 | 86 | | else throw("Incorrect Asset Id") |
---|
89 | 87 | | |
---|
90 | 88 | | |
---|
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))) |
---|
94 | 92 | | |
---|
95 | 93 | | |
---|
96 | | - | func J (K,L,M) = ((K - L) > M) |
---|
| 94 | + | func I (J,K,L) = ((J - K) > L) |
---|
97 | 95 | | |
---|
98 | 96 | | |
---|
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")) |
---|
104 | 102 | | then { |
---|
105 | | - | let z = A |
---|
106 | | - | z |
---|
| 103 | + | let y = z |
---|
| 104 | + | y |
---|
107 | 105 | | } |
---|
108 | 106 | | else 0 |
---|
109 | 107 | | } |
---|
110 | | - | (Q + I) |
---|
| 108 | + | (P + H) |
---|
111 | 109 | | } |
---|
112 | 110 | | |
---|
113 | 111 | | |
---|
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")) |
---|
119 | 117 | | then { |
---|
120 | | - | let z = A |
---|
121 | | - | z |
---|
| 118 | + | let y = z |
---|
| 119 | + | y |
---|
122 | 120 | | } |
---|
123 | 121 | | else 0 |
---|
124 | 122 | | } |
---|
125 | | - | let z = (Q - I) |
---|
126 | | - | if ((z > 0)) |
---|
127 | | - | then z |
---|
| 123 | + | let y = (P - H) |
---|
| 124 | + | if ((y > 0)) |
---|
| 125 | + | then y |
---|
128 | 126 | | else throw("Freezed amount couldn't be less than 0") |
---|
129 | 127 | | } |
---|
130 | 128 | | |
---|
131 | 129 | | |
---|
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")) |
---|
136 | 134 | | then { |
---|
137 | | - | let z = A |
---|
138 | | - | z |
---|
| 135 | + | let y = z |
---|
| 136 | + | y |
---|
139 | 137 | | } |
---|
140 | 138 | | else throw("Only registered users can make bets") |
---|
141 | 139 | | } |
---|
142 | 140 | | |
---|
143 | 141 | | |
---|
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)) |
---|
149 | 147 | | then throw("User already registered") |
---|
150 | | - | else WriteSet([DataEntry((W + "_Registered"), V)]) |
---|
| 148 | + | else WriteSet([DataEntry((V + "_Registered"), U)]) |
---|
151 | 149 | | } |
---|
152 | 150 | | |
---|
153 | 151 | | |
---|
154 | 152 | | |
---|
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)) |
---|
160 | 158 | | then throw("User already registered") |
---|
161 | | - | else WriteSet([DataEntry((W + "_Client"), V)]) |
---|
| 159 | + | else WriteSet([DataEntry((V + "_Client"), U)]) |
---|
162 | 160 | | } |
---|
163 | 161 | | |
---|
164 | 162 | | |
---|
165 | 163 | | |
---|
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) |
---|
171 | 169 | | let ac = ab.amount |
---|
172 | | - | let I = if ((ac > 0)) |
---|
| 170 | + | let H = if ((ac > 0)) |
---|
173 | 171 | | then ac |
---|
174 | 172 | | else throw("Amount must be higher then 0") |
---|
175 | 173 | | 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))) |
---|
179 | 177 | | then "WAVES" |
---|
180 | | - | else if ((ab.assetId == d)) |
---|
| 178 | + | else if ((ab.assetId == c)) |
---|
181 | 179 | | then "BTC" |
---|
182 | | - | else if ((ab.assetId == e)) |
---|
| 180 | + | else if ((ab.assetId == d)) |
---|
183 | 181 | | then "EUR" |
---|
184 | | - | else if ((ab.assetId == f)) |
---|
| 182 | + | else if ((ab.assetId == e)) |
---|
185 | 183 | | then "USD" |
---|
186 | 184 | | 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)]) |
---|
189 | 187 | | } |
---|
190 | 188 | | |
---|
191 | 189 | | |
---|
192 | 190 | | |
---|
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) |
---|
196 | 194 | | let ai = height |
---|
197 | | - | let aj = v(w) |
---|
198 | | - | let ak = x(aj) |
---|
| 195 | + | let aj = u(v) |
---|
| 196 | + | let ak = w(aj) |
---|
199 | 197 | | 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) |
---|
212 | 211 | | 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)) |
---|
216 | 215 | | then { |
---|
217 | 216 | | let at = ak[7] |
---|
218 | 217 | | 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))]) |
---|
220 | 219 | | } |
---|
221 | 220 | | 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)) |
---|
225 | 224 | | then { |
---|
226 | 225 | | let av = ak[7] |
---|
227 | 226 | | let aw = { |
---|
228 | | - | let ax = ((w + "_") + av) |
---|
| 227 | + | let ax = ((v + "_") + av) |
---|
229 | 228 | | let ay = getInteger(this, ax) |
---|
230 | 229 | | let az = { |
---|
231 | | - | let A = ay |
---|
232 | | - | if ($isInstanceOf(A, "Int")) |
---|
| 230 | + | let z = ay |
---|
| 231 | + | if ($isInstanceOf(z, "Int")) |
---|
233 | 232 | | then { |
---|
234 | | - | let z = A |
---|
235 | | - | z |
---|
| 233 | + | let y = z |
---|
| 234 | + | y |
---|
236 | 235 | | } |
---|
237 | 236 | | else throw("Can't find lowest bid by public key") |
---|
238 | 237 | | } |
---|
|
240 | 239 | | then aq |
---|
241 | 240 | | else av |
---|
242 | 241 | | } |
---|
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))]) |
---|
244 | 243 | | } |
---|
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)) |
---|
246 | 245 | | } |
---|
247 | 246 | | |
---|
248 | 247 | | |
---|
249 | 248 | | |
---|
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) |
---|
253 | 252 | | let ai = height |
---|
254 | | - | let aj = v(w) |
---|
255 | | - | let ak = x(aj) |
---|
| 253 | + | let aj = u(v) |
---|
| 254 | + | let ak = w(aj) |
---|
256 | 255 | | 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) |
---|
264 | 264 | | let aB = { |
---|
265 | | - | let aC = ((w + "_") + aA) |
---|
| 265 | + | let aC = ((v + "_") + aA) |
---|
266 | 266 | | let aD = getInteger(this, aC) |
---|
267 | | - | let A = aD |
---|
268 | | - | if ($isInstanceOf(A, "Int")) |
---|
| 267 | + | let z = aD |
---|
| 268 | + | if ($isInstanceOf(z, "Int")) |
---|
269 | 269 | | then { |
---|
270 | | - | let z = A |
---|
271 | | - | z |
---|
| 270 | + | let y = z |
---|
| 271 | + | y |
---|
272 | 272 | | } |
---|
273 | 273 | | else throw("Freelancer's bet was not found") |
---|
274 | 274 | | } |
---|
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) |
---|
278 | 278 | | if ((ah == aa)) |
---|
279 | 279 | | 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)))]) |
---|
284 | 284 | | 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)])) |
---|
286 | 286 | | else throw("Only auction customer can choose a freelancer") |
---|
287 | 287 | | } |
---|
288 | 288 | | |
---|
289 | 289 | | |
---|
290 | 290 | | |
---|
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) |
---|
296 | 296 | | 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 |
---|
303 | 308 | | else throw("New execution time must more than current execution time") |
---|
304 | 309 | | } |
---|
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") |
---|
316 | 321 | | else throw("Only customer can increase execution time") |
---|
317 | 322 | | } |
---|
318 | 323 | | |
---|
319 | 324 | | |
---|
320 | 325 | | |
---|
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) |
---|
325 | 330 | | 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)) |
---|
328 | 339 | | then true |
---|
329 | 340 | | 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)))]) |
---|
335 | 343 | | else throw("Incorrect auction state.") |
---|
336 | 344 | | } |
---|
337 | 345 | | |
---|
338 | 346 | | |
---|
339 | 347 | | |
---|
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) |
---|
345 | 353 | | 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)) |
---|
349 | 363 | | then true |
---|
350 | | - | else (T == at)) |
---|
| 364 | + | else (S == at)) |
---|
351 | 365 | | 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")]) |
---|
354 | 368 | | } |
---|
355 | 369 | | else throw("Only customer and freelancer can open dispute") |
---|
356 | 370 | | } |
---|
357 | 371 | | |
---|
358 | 372 | | |
---|
359 | 373 | | |
---|
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 = { |
---|
365 | 380 | | let al = ak[0] |
---|
366 | | - | if ((al == m)) |
---|
| 381 | + | if ((al == l)) |
---|
367 | 382 | | then true |
---|
368 | | - | else throw(("Incorrect state. Must be: " + m)) |
---|
| 383 | + | else throw(("Incorrect state. Must be: " + l)) |
---|
369 | 384 | | } |
---|
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)) |
---|
373 | 388 | | 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)) |
---|
378 | 393 | | then true |
---|
379 | | - | else (U.callerPublicKey == r)) |
---|
| 394 | + | else (T.callerPublicKey == q)) |
---|
380 | 395 | | then true |
---|
381 | | - | else (U.callerPublicKey == s)) |
---|
| 396 | + | else (T.callerPublicKey == r)) |
---|
382 | 397 | | then true |
---|
383 | | - | else (U.callerPublicKey == t)) |
---|
| 398 | + | else (T.callerPublicKey == s)) |
---|
384 | 399 | | then true |
---|
385 | | - | else (U.callerPublicKey == u)) |
---|
386 | | - | then toBase58String(U.callerPublicKey) |
---|
| 400 | + | else (T.callerPublicKey == t)) |
---|
| 401 | + | then toBase58String(T.callerPublicKey) |
---|
387 | 402 | | 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")) |
---|
393 | 408 | | then { |
---|
394 | | - | let z = A |
---|
395 | | - | z |
---|
| 409 | + | let y = z |
---|
| 410 | + | y |
---|
396 | 411 | | } |
---|
397 | 412 | | else throw("Cannot find data of dispute in storage") |
---|
398 | 413 | | } |
---|
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")) |
---|
402 | 417 | | 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])) |
---|
406 | 421 | | then true |
---|
407 | | - | else (aQ == aW[1]) |
---|
408 | | - | if (aY) |
---|
| 422 | + | else (aO == aU[1]) |
---|
| 423 | + | if (aW) |
---|
409 | 424 | | then throw("You already voted") |
---|
410 | 425 | | 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)) |
---|
417 | 432 | | then 1 |
---|
418 | 433 | | else 0 |
---|
419 | | - | let bf = if ((aX[1] == o)) |
---|
| 434 | + | let bd = if ((aV[1] == n)) |
---|
420 | 435 | | then 1 |
---|
421 | 436 | | else 0 |
---|
422 | | - | let bg = if ((aX[2] == o)) |
---|
| 437 | + | let be = if ((aV[2] == n)) |
---|
423 | 438 | | then 1 |
---|
424 | 439 | | else 0 |
---|
425 | | - | let bh = if ((aX[3] == o)) |
---|
| 440 | + | let bf = if ((aV[3] == n)) |
---|
426 | 441 | | then 1 |
---|
427 | 442 | | else 0 |
---|
428 | | - | let bi = if ((aP == o)) |
---|
| 443 | + | let bg = if ((aN == n)) |
---|
429 | 444 | | then 1 |
---|
430 | 445 | | 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 |
---|
435 | 450 | | } |
---|
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)) |
---|
438 | 453 | | then ak[1] |
---|
439 | 454 | | 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))])) |
---|
442 | 457 | | } |
---|
443 | 458 | | } |
---|
444 | 459 | | else { |
---|
445 | | - | let bc = if ((aV == "0")) |
---|
| 460 | + | let ba = if ((aT == "0")) |
---|
446 | 461 | | 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 |
---|
452 | 467 | | } |
---|
453 | | - | else if ((aV == "1")) |
---|
| 468 | + | else if ((aT == "1")) |
---|
454 | 469 | | 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) |
---|
459 | 474 | | then throw("You already voted") |
---|
460 | 475 | | 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 |
---|
466 | 481 | | } |
---|
467 | 482 | | } |
---|
468 | | - | else if ((aV == "2")) |
---|
| 483 | + | else if ((aT == "2")) |
---|
469 | 484 | | 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])) |
---|
473 | 488 | | then true |
---|
474 | | - | else (aQ == aW[1]) |
---|
475 | | - | if (aY) |
---|
| 489 | + | else (aO == aU[1]) |
---|
| 490 | + | if (aW) |
---|
476 | 491 | | then throw("You already voted") |
---|
477 | 492 | | 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 |
---|
483 | 498 | | } |
---|
484 | 499 | | } |
---|
485 | | - | else if ((aV == "3")) |
---|
| 500 | + | else if ((aT == "3")) |
---|
486 | 501 | | 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])) |
---|
490 | 505 | | then true |
---|
491 | | - | else (aQ == aW[1])) |
---|
| 506 | + | else (aO == aU[1])) |
---|
492 | 507 | | then true |
---|
493 | | - | else (aQ == aW[2]) |
---|
494 | | - | if (aY) |
---|
| 508 | + | else (aO == aU[2]) |
---|
| 509 | + | if (aW) |
---|
495 | 510 | | then throw("You already voted") |
---|
496 | 511 | | 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 |
---|
502 | 517 | | } |
---|
503 | 518 | | } |
---|
504 | 519 | | else throw("Dispute has been already resolved") |
---|
505 | | - | WriteSet([DataEntry(((w + "_") + m), bc)]) |
---|
| 520 | + | WriteSet([DataEntry(((v + "_") + l), ba)]) |
---|
506 | 521 | | } |
---|
507 | 522 | | } |
---|
508 | 523 | | |
---|
509 | 524 | | |
---|
510 | 525 | | |
---|
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) |
---|
515 | 530 | | 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) |
---|
521 | 541 | | let at = ak[6] |
---|
522 | | - | if ((T == at)) |
---|
523 | | - | then T |
---|
| 542 | + | if ((S == at)) |
---|
| 543 | + | then S |
---|
524 | 544 | | else throw("Only a freelancer can indicate that the work is done") |
---|
525 | 545 | | } |
---|
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) |
---|
529 | 549 | | 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))]) |
---|
532 | 552 | | } |
---|
533 | 553 | | 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))]) |
---|
536 | 556 | | } |
---|
537 | 557 | | else throw("Auction state is incorrect") |
---|
538 | 558 | | } |
---|
539 | 559 | | |
---|
540 | 560 | | |
---|
541 | 561 | | |
---|
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) |
---|
546 | 566 | | 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")) |
---|
560 | 584 | | then { |
---|
561 | | - | let z = A |
---|
562 | | - | z |
---|
| 585 | + | let y = z |
---|
| 586 | + | y |
---|
563 | 587 | | } |
---|
564 | 588 | | else 0 |
---|
565 | 589 | | } |
---|
566 | | - | (br + 1) |
---|
| 590 | + | (bq + 1) |
---|
567 | 591 | | } |
---|
568 | | - | if ((T == aa)) |
---|
569 | | - | then if ((al == k)) |
---|
| 592 | + | if ((S == aa)) |
---|
| 593 | + | then if ((al == j)) |
---|
570 | 594 | | 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)])) |
---|
573 | 597 | | } |
---|
574 | | - | else throw(("Incorrect state. Must be: " + k)) |
---|
| 598 | + | else throw(("Incorrect state. Must be: " + j)) |
---|
575 | 599 | | else throw("Only auction customer can use this function") |
---|
576 | 600 | | } |
---|
577 | 601 | | |
---|
578 | 602 | | |
---|
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)) |
---|
581 | 605 | | then { |
---|
582 | | - | let A = bs |
---|
583 | | - | if ($isInstanceOf(A, "TransferTransaction")) |
---|
| 606 | + | let z = br |
---|
| 607 | + | if ($isInstanceOf(z, "TransferTransaction")) |
---|
584 | 608 | | then { |
---|
585 | | - | let bu = A |
---|
| 609 | + | let bt = z |
---|
586 | 610 | | true |
---|
587 | 611 | | } |
---|
588 | | - | else if ($isInstanceOf(A, "SetScriptTransaction")) |
---|
| 612 | + | else if ($isInstanceOf(z, "SetScriptTransaction")) |
---|
589 | 613 | | then { |
---|
590 | | - | let bv = A |
---|
| 614 | + | let bu = z |
---|
591 | 615 | | true |
---|
592 | 616 | | } |
---|
593 | 617 | | else false |
---|
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 3 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | 4 | | let a = 1440 |
---|
5 | 5 | | |
---|
6 | | - | let b = 3 |
---|
| 6 | + | let b = unit |
---|
7 | 7 | | |
---|
8 | | - | let c = unit |
---|
| 8 | + | let c = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS' |
---|
9 | 9 | | |
---|
10 | | - | let d = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS' |
---|
| 10 | + | let d = base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU' |
---|
11 | 11 | | |
---|
12 | | - | let e = base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU' |
---|
| 12 | + | let e = base58'Ft8X1v1LTa1ABafufpaCWyVj8KkaxUWE6xBhW6sNFJck' |
---|
13 | 13 | | |
---|
14 | | - | let f = base58'Ft8X1v1LTa1ABafufpaCWyVj8KkaxUWE6xBhW6sNFJck' |
---|
| 14 | + | let f = "Opened" |
---|
15 | 15 | | |
---|
16 | | - | let g = "Opened" |
---|
| 16 | + | let g = "Suggested" |
---|
17 | 17 | | |
---|
18 | | - | let h = "Suggested" |
---|
| 18 | + | let h = "Canceled" |
---|
19 | 19 | | |
---|
20 | | - | let i = "Canceled" |
---|
| 20 | + | let i = "InProgress" |
---|
21 | 21 | | |
---|
22 | | - | let j = "InProgress" |
---|
| 22 | + | let j = "WaitForConfirmation" |
---|
23 | 23 | | |
---|
24 | | - | let k = "WaitForConfirmation" |
---|
| 24 | + | let k = "Completed" |
---|
25 | 25 | | |
---|
26 | | - | let l = "Completed" |
---|
| 26 | + | let l = "Dispute" |
---|
27 | 27 | | |
---|
28 | | - | let m = "Dispute" |
---|
| 28 | + | let m = "DisputeResolved" |
---|
29 | 29 | | |
---|
30 | | - | let n = "DisputeResolved" |
---|
| 30 | + | let n = "CMR" |
---|
31 | 31 | | |
---|
32 | | - | let o = "CMR" |
---|
| 32 | + | let o = "FL" |
---|
33 | 33 | | |
---|
34 | | - | let p = "FL" |
---|
| 34 | + | let p = base58'1' |
---|
35 | 35 | | |
---|
36 | 36 | | let q = base58'1' |
---|
37 | 37 | | |
---|
38 | 38 | | let r = base58'1' |
---|
39 | 39 | | |
---|
40 | 40 | | let s = base58'1' |
---|
41 | 41 | | |
---|
42 | 42 | | let t = base58'1' |
---|
43 | 43 | | |
---|
44 | | - | let u = base58'1' |
---|
45 | | - | |
---|
46 | | - | func v (w) = (w + "_Auction") |
---|
| 44 | + | func u (v) = (v + "_AuctionData") |
---|
47 | 45 | | |
---|
48 | 46 | | |
---|
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")) |
---|
54 | 52 | | then { |
---|
55 | | - | let z = A |
---|
56 | | - | z |
---|
| 53 | + | let y = z |
---|
| 54 | + | y |
---|
57 | 55 | | } |
---|
58 | 56 | | else throw("AuctionId was not found") |
---|
59 | 57 | | } |
---|
60 | | - | split(z, "_") |
---|
| 58 | + | split(y, "_") |
---|
61 | 59 | | } |
---|
62 | 60 | | |
---|
63 | 61 | | |
---|
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")) |
---|
70 | 68 | | then { |
---|
71 | | - | let z = A |
---|
72 | | - | z |
---|
| 69 | + | let y = z |
---|
| 70 | + | y |
---|
73 | 71 | | } |
---|
74 | 72 | | else throw("Dispute data was not found") |
---|
75 | 73 | | } |
---|
76 | | - | split(z, "/") |
---|
| 74 | + | split(y, "/") |
---|
77 | 75 | | } |
---|
78 | 76 | | |
---|
79 | 77 | | |
---|
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 |
---|
88 | 86 | | else throw("Incorrect Asset Id") |
---|
89 | 87 | | |
---|
90 | 88 | | |
---|
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))) |
---|
94 | 92 | | |
---|
95 | 93 | | |
---|
96 | | - | func J (K,L,M) = ((K - L) > M) |
---|
| 94 | + | func I (J,K,L) = ((J - K) > L) |
---|
97 | 95 | | |
---|
98 | 96 | | |
---|
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")) |
---|
104 | 102 | | then { |
---|
105 | | - | let z = A |
---|
106 | | - | z |
---|
| 103 | + | let y = z |
---|
| 104 | + | y |
---|
107 | 105 | | } |
---|
108 | 106 | | else 0 |
---|
109 | 107 | | } |
---|
110 | | - | (Q + I) |
---|
| 108 | + | (P + H) |
---|
111 | 109 | | } |
---|
112 | 110 | | |
---|
113 | 111 | | |
---|
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")) |
---|
119 | 117 | | then { |
---|
120 | | - | let z = A |
---|
121 | | - | z |
---|
| 118 | + | let y = z |
---|
| 119 | + | y |
---|
122 | 120 | | } |
---|
123 | 121 | | else 0 |
---|
124 | 122 | | } |
---|
125 | | - | let z = (Q - I) |
---|
126 | | - | if ((z > 0)) |
---|
127 | | - | then z |
---|
| 123 | + | let y = (P - H) |
---|
| 124 | + | if ((y > 0)) |
---|
| 125 | + | then y |
---|
128 | 126 | | else throw("Freezed amount couldn't be less than 0") |
---|
129 | 127 | | } |
---|
130 | 128 | | |
---|
131 | 129 | | |
---|
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")) |
---|
136 | 134 | | then { |
---|
137 | | - | let z = A |
---|
138 | | - | z |
---|
| 135 | + | let y = z |
---|
| 136 | + | y |
---|
139 | 137 | | } |
---|
140 | 138 | | else throw("Only registered users can make bets") |
---|
141 | 139 | | } |
---|
142 | 140 | | |
---|
143 | 141 | | |
---|
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)) |
---|
149 | 147 | | then throw("User already registered") |
---|
150 | | - | else WriteSet([DataEntry((W + "_Registered"), V)]) |
---|
| 148 | + | else WriteSet([DataEntry((V + "_Registered"), U)]) |
---|
151 | 149 | | } |
---|
152 | 150 | | |
---|
153 | 151 | | |
---|
154 | 152 | | |
---|
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)) |
---|
160 | 158 | | then throw("User already registered") |
---|
161 | | - | else WriteSet([DataEntry((W + "_Client"), V)]) |
---|
| 159 | + | else WriteSet([DataEntry((V + "_Client"), U)]) |
---|
162 | 160 | | } |
---|
163 | 161 | | |
---|
164 | 162 | | |
---|
165 | 163 | | |
---|
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) |
---|
171 | 169 | | let ac = ab.amount |
---|
172 | | - | let I = if ((ac > 0)) |
---|
| 170 | + | let H = if ((ac > 0)) |
---|
173 | 171 | | then ac |
---|
174 | 172 | | else throw("Amount must be higher then 0") |
---|
175 | 173 | | 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))) |
---|
179 | 177 | | then "WAVES" |
---|
180 | | - | else if ((ab.assetId == d)) |
---|
| 178 | + | else if ((ab.assetId == c)) |
---|
181 | 179 | | then "BTC" |
---|
182 | | - | else if ((ab.assetId == e)) |
---|
| 180 | + | else if ((ab.assetId == d)) |
---|
183 | 181 | | then "EUR" |
---|
184 | | - | else if ((ab.assetId == f)) |
---|
| 182 | + | else if ((ab.assetId == e)) |
---|
185 | 183 | | then "USD" |
---|
186 | 184 | | 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)]) |
---|
189 | 187 | | } |
---|
190 | 188 | | |
---|
191 | 189 | | |
---|
192 | 190 | | |
---|
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) |
---|
196 | 194 | | let ai = height |
---|
197 | | - | let aj = v(w) |
---|
198 | | - | let ak = x(aj) |
---|
| 195 | + | let aj = u(v) |
---|
| 196 | + | let ak = w(aj) |
---|
199 | 197 | | 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) |
---|
212 | 211 | | 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)) |
---|
216 | 215 | | then { |
---|
217 | 216 | | let at = ak[7] |
---|
218 | 217 | | 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))]) |
---|
220 | 219 | | } |
---|
221 | 220 | | 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)) |
---|
225 | 224 | | then { |
---|
226 | 225 | | let av = ak[7] |
---|
227 | 226 | | let aw = { |
---|
228 | | - | let ax = ((w + "_") + av) |
---|
| 227 | + | let ax = ((v + "_") + av) |
---|
229 | 228 | | let ay = getInteger(this, ax) |
---|
230 | 229 | | let az = { |
---|
231 | | - | let A = ay |
---|
232 | | - | if ($isInstanceOf(A, "Int")) |
---|
| 230 | + | let z = ay |
---|
| 231 | + | if ($isInstanceOf(z, "Int")) |
---|
233 | 232 | | then { |
---|
234 | | - | let z = A |
---|
235 | | - | z |
---|
| 233 | + | let y = z |
---|
| 234 | + | y |
---|
236 | 235 | | } |
---|
237 | 236 | | else throw("Can't find lowest bid by public key") |
---|
238 | 237 | | } |
---|
239 | 238 | | if ((az > ap)) |
---|
240 | 239 | | then aq |
---|
241 | 240 | | else av |
---|
242 | 241 | | } |
---|
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))]) |
---|
244 | 243 | | } |
---|
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)) |
---|
246 | 245 | | } |
---|
247 | 246 | | |
---|
248 | 247 | | |
---|
249 | 248 | | |
---|
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) |
---|
253 | 252 | | let ai = height |
---|
254 | | - | let aj = v(w) |
---|
255 | | - | let ak = x(aj) |
---|
| 253 | + | let aj = u(v) |
---|
| 254 | + | let ak = w(aj) |
---|
256 | 255 | | 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) |
---|
264 | 264 | | let aB = { |
---|
265 | | - | let aC = ((w + "_") + aA) |
---|
| 265 | + | let aC = ((v + "_") + aA) |
---|
266 | 266 | | let aD = getInteger(this, aC) |
---|
267 | | - | let A = aD |
---|
268 | | - | if ($isInstanceOf(A, "Int")) |
---|
| 267 | + | let z = aD |
---|
| 268 | + | if ($isInstanceOf(z, "Int")) |
---|
269 | 269 | | then { |
---|
270 | | - | let z = A |
---|
271 | | - | z |
---|
| 270 | + | let y = z |
---|
| 271 | + | y |
---|
272 | 272 | | } |
---|
273 | 273 | | else throw("Freelancer's bet was not found") |
---|
274 | 274 | | } |
---|
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) |
---|
278 | 278 | | if ((ah == aa)) |
---|
279 | 279 | | 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)))]) |
---|
284 | 284 | | 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)])) |
---|
286 | 286 | | else throw("Only auction customer can choose a freelancer") |
---|
287 | 287 | | } |
---|
288 | 288 | | |
---|
289 | 289 | | |
---|
290 | 290 | | |
---|
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) |
---|
296 | 296 | | 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 |
---|
303 | 308 | | else throw("New execution time must more than current execution time") |
---|
304 | 309 | | } |
---|
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") |
---|
316 | 321 | | else throw("Only customer can increase execution time") |
---|
317 | 322 | | } |
---|
318 | 323 | | |
---|
319 | 324 | | |
---|
320 | 325 | | |
---|
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) |
---|
325 | 330 | | 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)) |
---|
328 | 339 | | then true |
---|
329 | 340 | | 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)))]) |
---|
335 | 343 | | else throw("Incorrect auction state.") |
---|
336 | 344 | | } |
---|
337 | 345 | | |
---|
338 | 346 | | |
---|
339 | 347 | | |
---|
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) |
---|
345 | 353 | | 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)) |
---|
349 | 363 | | then true |
---|
350 | | - | else (T == at)) |
---|
| 364 | + | else (S == at)) |
---|
351 | 365 | | 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")]) |
---|
354 | 368 | | } |
---|
355 | 369 | | else throw("Only customer and freelancer can open dispute") |
---|
356 | 370 | | } |
---|
357 | 371 | | |
---|
358 | 372 | | |
---|
359 | 373 | | |
---|
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 = { |
---|
365 | 380 | | let al = ak[0] |
---|
366 | | - | if ((al == m)) |
---|
| 381 | + | if ((al == l)) |
---|
367 | 382 | | then true |
---|
368 | | - | else throw(("Incorrect state. Must be: " + m)) |
---|
| 383 | + | else throw(("Incorrect state. Must be: " + l)) |
---|
369 | 384 | | } |
---|
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)) |
---|
373 | 388 | | 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)) |
---|
378 | 393 | | then true |
---|
379 | | - | else (U.callerPublicKey == r)) |
---|
| 394 | + | else (T.callerPublicKey == q)) |
---|
380 | 395 | | then true |
---|
381 | | - | else (U.callerPublicKey == s)) |
---|
| 396 | + | else (T.callerPublicKey == r)) |
---|
382 | 397 | | then true |
---|
383 | | - | else (U.callerPublicKey == t)) |
---|
| 398 | + | else (T.callerPublicKey == s)) |
---|
384 | 399 | | then true |
---|
385 | | - | else (U.callerPublicKey == u)) |
---|
386 | | - | then toBase58String(U.callerPublicKey) |
---|
| 400 | + | else (T.callerPublicKey == t)) |
---|
| 401 | + | then toBase58String(T.callerPublicKey) |
---|
387 | 402 | | 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")) |
---|
393 | 408 | | then { |
---|
394 | | - | let z = A |
---|
395 | | - | z |
---|
| 409 | + | let y = z |
---|
| 410 | + | y |
---|
396 | 411 | | } |
---|
397 | 412 | | else throw("Cannot find data of dispute in storage") |
---|
398 | 413 | | } |
---|
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")) |
---|
402 | 417 | | 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])) |
---|
406 | 421 | | then true |
---|
407 | | - | else (aQ == aW[1]) |
---|
408 | | - | if (aY) |
---|
| 422 | + | else (aO == aU[1]) |
---|
| 423 | + | if (aW) |
---|
409 | 424 | | then throw("You already voted") |
---|
410 | 425 | | 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)) |
---|
417 | 432 | | then 1 |
---|
418 | 433 | | else 0 |
---|
419 | | - | let bf = if ((aX[1] == o)) |
---|
| 434 | + | let bd = if ((aV[1] == n)) |
---|
420 | 435 | | then 1 |
---|
421 | 436 | | else 0 |
---|
422 | | - | let bg = if ((aX[2] == o)) |
---|
| 437 | + | let be = if ((aV[2] == n)) |
---|
423 | 438 | | then 1 |
---|
424 | 439 | | else 0 |
---|
425 | | - | let bh = if ((aX[3] == o)) |
---|
| 440 | + | let bf = if ((aV[3] == n)) |
---|
426 | 441 | | then 1 |
---|
427 | 442 | | else 0 |
---|
428 | | - | let bi = if ((aP == o)) |
---|
| 443 | + | let bg = if ((aN == n)) |
---|
429 | 444 | | then 1 |
---|
430 | 445 | | 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 |
---|
435 | 450 | | } |
---|
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)) |
---|
438 | 453 | | then ak[1] |
---|
439 | 454 | | 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))])) |
---|
442 | 457 | | } |
---|
443 | 458 | | } |
---|
444 | 459 | | else { |
---|
445 | | - | let bc = if ((aV == "0")) |
---|
| 460 | + | let ba = if ((aT == "0")) |
---|
446 | 461 | | 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 |
---|
452 | 467 | | } |
---|
453 | | - | else if ((aV == "1")) |
---|
| 468 | + | else if ((aT == "1")) |
---|
454 | 469 | | 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) |
---|
459 | 474 | | then throw("You already voted") |
---|
460 | 475 | | 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 |
---|
466 | 481 | | } |
---|
467 | 482 | | } |
---|
468 | | - | else if ((aV == "2")) |
---|
| 483 | + | else if ((aT == "2")) |
---|
469 | 484 | | 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])) |
---|
473 | 488 | | then true |
---|
474 | | - | else (aQ == aW[1]) |
---|
475 | | - | if (aY) |
---|
| 489 | + | else (aO == aU[1]) |
---|
| 490 | + | if (aW) |
---|
476 | 491 | | then throw("You already voted") |
---|
477 | 492 | | 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 |
---|
483 | 498 | | } |
---|
484 | 499 | | } |
---|
485 | | - | else if ((aV == "3")) |
---|
| 500 | + | else if ((aT == "3")) |
---|
486 | 501 | | 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])) |
---|
490 | 505 | | then true |
---|
491 | | - | else (aQ == aW[1])) |
---|
| 506 | + | else (aO == aU[1])) |
---|
492 | 507 | | then true |
---|
493 | | - | else (aQ == aW[2]) |
---|
494 | | - | if (aY) |
---|
| 508 | + | else (aO == aU[2]) |
---|
| 509 | + | if (aW) |
---|
495 | 510 | | then throw("You already voted") |
---|
496 | 511 | | 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 |
---|
502 | 517 | | } |
---|
503 | 518 | | } |
---|
504 | 519 | | else throw("Dispute has been already resolved") |
---|
505 | | - | WriteSet([DataEntry(((w + "_") + m), bc)]) |
---|
| 520 | + | WriteSet([DataEntry(((v + "_") + l), ba)]) |
---|
506 | 521 | | } |
---|
507 | 522 | | } |
---|
508 | 523 | | |
---|
509 | 524 | | |
---|
510 | 525 | | |
---|
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) |
---|
515 | 530 | | 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) |
---|
521 | 541 | | let at = ak[6] |
---|
522 | | - | if ((T == at)) |
---|
523 | | - | then T |
---|
| 542 | + | if ((S == at)) |
---|
| 543 | + | then S |
---|
524 | 544 | | else throw("Only a freelancer can indicate that the work is done") |
---|
525 | 545 | | } |
---|
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) |
---|
529 | 549 | | 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))]) |
---|
532 | 552 | | } |
---|
533 | 553 | | 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))]) |
---|
536 | 556 | | } |
---|
537 | 557 | | else throw("Auction state is incorrect") |
---|
538 | 558 | | } |
---|
539 | 559 | | |
---|
540 | 560 | | |
---|
541 | 561 | | |
---|
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) |
---|
546 | 566 | | 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")) |
---|
560 | 584 | | then { |
---|
561 | | - | let z = A |
---|
562 | | - | z |
---|
| 585 | + | let y = z |
---|
| 586 | + | y |
---|
563 | 587 | | } |
---|
564 | 588 | | else 0 |
---|
565 | 589 | | } |
---|
566 | | - | (br + 1) |
---|
| 590 | + | (bq + 1) |
---|
567 | 591 | | } |
---|
568 | | - | if ((T == aa)) |
---|
569 | | - | then if ((al == k)) |
---|
| 592 | + | if ((S == aa)) |
---|
| 593 | + | then if ((al == j)) |
---|
570 | 594 | | 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)])) |
---|
573 | 597 | | } |
---|
574 | | - | else throw(("Incorrect state. Must be: " + k)) |
---|
| 598 | + | else throw(("Incorrect state. Must be: " + j)) |
---|
575 | 599 | | else throw("Only auction customer can use this function") |
---|
576 | 600 | | } |
---|
577 | 601 | | |
---|
578 | 602 | | |
---|
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)) |
---|
581 | 605 | | then { |
---|
582 | | - | let A = bs |
---|
583 | | - | if ($isInstanceOf(A, "TransferTransaction")) |
---|
| 606 | + | let z = br |
---|
| 607 | + | if ($isInstanceOf(z, "TransferTransaction")) |
---|
584 | 608 | | then { |
---|
585 | | - | let bu = A |
---|
| 609 | + | let bt = z |
---|
586 | 610 | | true |
---|
587 | 611 | | } |
---|
588 | | - | else if ($isInstanceOf(A, "SetScriptTransaction")) |
---|
| 612 | + | else if ($isInstanceOf(z, "SetScriptTransaction")) |
---|
589 | 613 | | then { |
---|
590 | | - | let bv = A |
---|
| 614 | + | let bu = z |
---|
591 | 615 | | true |
---|
592 | 616 | | } |
---|
593 | 617 | | else false |
---|
594 | 618 | | } |
---|
595 | 619 | | else false |
---|
596 | 620 | | |
---|