tx · EntXs9xrRnEXHcdroPfb913ypGj4173xsXC5oHw6VoRc

3N2EM5HFgf6UMBnvcJX3Cegmozwdv1iDeq2:  -0.01500000 Waves

2019.09.19 16:48 [683249] smart account 3N2EM5HFgf6UMBnvcJX3Cegmozwdv1iDeq2 > SELF 0.00000000 Waves

{ "type": 13, "id": "EntXs9xrRnEXHcdroPfb913ypGj4173xsXC5oHw6VoRc", "fee": 1500000, "feeAssetId": null, "timestamp": 1568900946377, "version": 1, "sender": "3N2EM5HFgf6UMBnvcJX3Cegmozwdv1iDeq2", "senderPublicKey": "8y2Uc9uYf5gRD6Dzm1aC73zYe3LZvtVDUVAnAhNdN2mg", "proofs": [ "4C1bivYZfviNU8iThmeFMc8UAfpvnASKFQafbqHB4GbXrw5JHgvS8PX8Zb3jKKz6XK9RL84AK5N946VTgzr9EghM" ], "script": "base64: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cmljZQEAAAAJdGltZUNoZWNrAAAAAwAAAAtjdXJyZW50VGltZQAAAAlzdGFydFRpbWUAAAAOZXhwaXJhdGlvblRpbWUJAABmAAAAAgkAAGUAAAACBQAAAAtjdXJyZW50VGltZQUAAAAJc3RhcnRUaW1lBQAAAA5leHBpcmF0aW9uVGltZQEAAAAWaW5jcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIAAAAMcG10QXNzZXROYW1lAAAADGF1Y3Rpb25QcmljZQQAAAAPa2V5RnJlZXplZEZ1bmRzCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAMcG10QXNzZXROYW1lAgAAAAhfRnJlZXplZAQAAAAVY3VycmVudEZyZWV6ZWRCYWxhbmNlBAAAAAckbWF0Y2gwBQAAAA9rZXlGcmVlemVkRnVuZHMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAkAAGQAAAACBQAAABVjdXJyZW50RnJlZXplZEJhbGFuY2UFAAAADGF1Y3Rpb25QcmljZQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIAAAAMcG10QXNzZXROYW1lAAAADGF1Y3Rpb25QcmljZQQAAAAPa2V5RnJlZXplZEZ1bmRzCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAMcG10QXNzZXROYW1lAgAAAAhfRnJlZXplZAQAAAAVY3VycmVudEZyZWV6ZWRCYWxhbmNlBAAAAAckbWF0Y2gwBQAAAA9rZXlGcmVlemVkRnVuZHMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAABYQkAAGUAAAACBQAAABVjdXJyZW50RnJlZXplZEJhbGFuY2UFAAAADGF1Y3Rpb25QcmljZQMJAABmAAAAAgUAAAABYQAAAAAAAAAAAAUAAAABYQkAAAIAAAABAgAAACZGcmVlemVkIGFtb3VudCBjb3VsZG4ndCBiZSBsZXNzIHRoYW4gMAEAAAAWZnJlZWxhbmNlcklzUmVnaXN0ZXJlZAAAAAEAAAAGY2FsbGVyBAAAABZmcmVlbGFuY2VySXNSZWdpc3RlcmVkCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAGY2FsbGVyAgAAAAdfU3RhdHVzBAAAAAckbWF0Y2gwBQAAABZmcmVlbGFuY2VySXNSZWdpc3RlcmVkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAjT25seSByZWdpc3RlcmVkIHVzZXJzIGNhbiBtYWtlIGJldHMAAAALAAAAAWkBAAAAEGZyZWVsYW5jZXJTaWduVXAAAAABAAAABGluZm8EAAAADXVzZXJQdWJsaWNLZXkJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAABFhbHJlYWR5UmVnaXN0ZXJlZAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAADXVzZXJQdWJsaWNLZXkCAAAAC19GcmVlbGFuY2VyAwkBAAAACWlzRGVmaW5lZAAAAAEFAAAAEWFscmVhZHlSZWdpc3RlcmVkCQAAAgAAAAECAAAAF1VzZXIgYWxyZWFkeSByZWdpc3RlcmVkCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADXVzZXJQdWJsaWNLZXkCAAAAC19SZWdpc3RlcmVkBQAAAARpbmZvBQAAAANuaWwAAAABaQEAAAAMY2xpZW50U2lnblVwAAAAAQAAAARpbmZvBAAAAA11c2VyUHVibGljS2V5CQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAARYWxyZWFkeVJlZ2lzdGVyZWQJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAAdfQ2xpZW50AwkBAAAACWlzRGVmaW5lZAAAAAEFAAAAEWFscmVhZHlSZWdpc3RlcmVkCQAAAgAAAAECAAAAF1VzZXIgYWxyZWFkeSByZWdpc3RlcmVkCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADXVzZXJQdWJsaWNLZXkCAAAAB19DbGllbnQFAAAABGluZm8FAAAAA25pbAAAAAFp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YUxpc3QAAAAAAAAAAAMEAAAAGWF1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24JAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAQEAAAAEGF1Y3Rpb25Bc3NldE5hbWUJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAAFBAAAAAxhdWN0aW9uUHJpY2UJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAYEAAAAEGF1Y3Rpb25Bc3NldElkNTgJAQAAABFBc3NldE5hbWVUb0Jhc2U1OAAAAAEFAAAAEGF1Y3Rpb25Bc3NldE5hbWUEAAAABm5ld0JpZAkBAAAADWJldFByaWNlQ2hlY2sAAAACBQAAAAhiZXRQcmljZQUAAAAMYXVjdGlvblByaWNlBAAAAA1uZXdGcmVlbGFuY2VyCQEAAAAWZnJlZWxhbmNlcklzUmVnaXN0ZXJlZAAAAAEFAAAACWNhbGxlclB1YgQAAAAOZEFwcENvbW1pc3Npb24JAABpAAAAAgkAAGgAAAACBQAAAAxhdWN0aW9uUHJpY2UAAAAAAAAAAAMAAAAAAAAAAGQEAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUFAAAADGF1Y3Rpb25QcmljZQQAAAARYXVjdGlvblRpbWVpc092ZXIJAQAAAAl0aW1lQ2hlY2sAAAADBQAAAAdiZXRUaW1lBQAAAAxhdWN0aW9uU3RhcnQFAAAAD2F1Y3Rpb25EdXJhdGlvbgMFAAAAEWF1Y3Rpb25UaW1laXNPdmVyAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAACXN0YXRlT3BlbgkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADGF1Y3Rpb25JZEtleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJ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AAFfCQABpAAAAAEFAAAAD2F1Y3Rpb25EdXJhdGlvbgIAAAABXwkAAaQAAAABBQAAABlhdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uAgAAAAFfBQAAABBhdWN0aW9uQXNzZXROYW1lAgAAAAFfCQABpAAAAAEFAAAADGF1Y3Rpb25QcmljZQIAAAABXwUAAAAWbmV3QXVjdGlvbkxvd2VzdEJpZGRlcgUAAAADbmlsCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABxJbmNvcnJlY3Qgam9iSWQgc3RhdGUuIE5vdzogBQAAAAxhdWN0aW9uU3RhdGUCAAAACywgbXVzdCBiZTogBQAAAAlzdGF0ZU9wZW4CAAAABCBvciAFAAAADnN0YXRlU3VnZ2VzdGVkAAAAAWkBAAAAEGNob29zZUZyZWVsYW5jZXIAAAACAAAACWF1Y3Rpb25JZAAAAA1mcmVlbGFuY2VyUHViBAAAAAljYWxsZXJQdWIJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAdiZXRUaW1lBQAAAAZoZWlnaHQEAAAADGF1Y3Rpb25JZEtleQkBAAAADEF1Y3Rpb25JZEtleQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAPYXVjdGlvbkRhdGFMaXN0CQEAAAALZ2V0RGF0YUxpc3QAAAABBQAAAAxhdWN0aW9uSWRLZXkEAAAADGF1Y3Rpb25TdGF0ZQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAAEAAAAD2F1Y3Rpb25DdXN0b21lcgkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAEEAAAADGF1Y3Rpb25TdGFydAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAAAgQAAAAPYXVjdGlvbkR1cmF0aW9uCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAADBAAAABlhdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAAEBAAAABBhdWN0aW9uQXNzZXROYW1lCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABQQAAAAMYXVjdGlvblByaWNlCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAAGBAAAABBhdWN0aW9uQXNzZXRJZDU4CQEAAAARQXNzZXROYW1lVG9CYXNlNTgAAAABBQAAABBhdWN0aW9uQXNzZXROYW1lBAAAABNGcmVlbGFuY2VyQmlkQW1vdW50BAAAABBrZXlGcmVlbGFuY2VyQmlkCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAFfBQAAAA1mcmVlbGFuY2VyUHViBAAAABF2YWx1ZUZyZWVsYWNlckJpZAkABBoAAAACBQAAAAR0aGlzBQAAABBrZXlGcmVlbGFuY2VyQmlkBAAAAAckbWF0Y2gwBQAAABF2YWx1ZUZyZWVsYWNlckJpZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAHkZyZWVsYW5jZXIncyBiZXQgd2FzIG5vdCBmb3VuZAQAAAAOZEFwcENvbW1pc3Npb24JAABpAAAAAgkAAGgAAAACBQAAAAxhdWN0aW9uUHJpY2UAAAAAAAAAAAMAAAAAAAAAAGQEAAAAEGFtb3VudERpZmZlcmVuY2UJAABlAAAAAgkAAGUAAAACBQAAAAxhdWN0aW9uUHJpY2UFAAAAE0ZyZWVsYW5jZXJCaWRBbW91bnQFAAAADmRBcHBDb21taXNzaW9uBAAAABFhdWN0aW9uVGltZWlzT3ZlcgkBAAAACXRpbWVDaGVjawAAAAMFAAAAB2JldFRpbWUFAAAADGF1Y3Rpb25TdGFydAUAAAAPYXVjdGlvbkR1cmF0aW9uAwkAAAAAAAACBQAAAAljYWxsZXJQdWIFAAAAD2F1Y3Rpb25DdXN0b21lcgMFAAAAEWF1Y3Rpb25UaW1laXNPdmVyAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAACXN0YXRlT3BlbgkBAAAADFNjcmlwdFJl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AAAACWF1Y3Rpb25JZAAAAA1leGVjdXRpb25EYXlzBAAAAAZjYWxsZXIJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAxhdWN0aW9uSWRLZXkJAQAAAAxBdWN0aW9uSWRLZXkAAAABBQAAAAlhdWN0aW9uSWQEAAAAD2F1Y3Rpb25EYXRhTGlzdAkBAAAAC2dldERhdGFMaXN0AAAAAQUAAAAMYXVjdGlvbklkS2V5BAAAAAxhdWN0aW9uU3RhdGUJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAAABAAAAA9hdWN0aW9uQ3VzdG9tZXIJAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAABBAAAABRhdWN0aW9uRXhlY3V0aW9uVGltZQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAAAwQAAAAXbmV3QXVjdGlvbkV4ZWN1dGlvblRpbWUEAAAAEG5ld0V4ZWN1dGlvblRpbWUJAABoAAAAAgUAAAANZXhlY3V0aW9uRGF5cwUAAAADZGF5AwkAAGYAAAACBQAAABBuZXdFeGVjdXRpb25UaW1lBQAAABRhdWN0aW9uRXhlY3V0aW9uVGltZQUAAAAQbmV3RXhlY3V0aW9uVGltZQkAAAIAAAABAgAAADhOZXcgZXhlY3V0aW9uIHRpbWUgbXVzdCBtb3JlIHRoYW4gY3VycmVudCBleGVjdXRpb24gdGltZQMJAAAAAAAAAgUAAAAGY2FsbGVyBQAAAA9hdWN0aW9uQ3VzdG9tZXIDAwMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAAlzdGF0ZU9wZW4GCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAOc3RhdGVTdWdnZXN0ZWQGCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAPc3RhdGVJblByb2dyZXNzBAAAAA1uZXdEYXRhU3RyaW5nCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAxhdWN0aW9uU3RhdGUCAAAAAV8FAAAAD2F1Y3Rpb25DdXN0b21lcgIAAAABXwkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAICAAAAAV8JAAGkAAAAAQUAAAAXbmV3QXVjdGlvbkV4ZWN1dGlvblRpbWUCAAAAAV8JAAGRAAAAAgUAAAAPYXVjdGlvbkRhdGFMaXN0AAAAAAAAAAAEAgAAAAFfCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAABQIAAAABXwkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAYJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADGF1Y3Rpb25JZEtleQUAAAANbmV3RGF0YVN0cmluZwUAAAADbmlsCQAAAgAAAAECAAAAD0luY29ycmVjdCBzdGF0ZQkAAAIAAAABAgAAAClPbmx5IGN1c3RvbWVyIGNhbiBpbmNyZWFzZSBleGVjdXRpb24gdGltZQAAAAFpAQAAAA1jYW5jZWxBdWN0aW9uAAAAAQAAAAlhdWN0aW9uSWQEAAAADGF1Y3Rpb25JZEtleQkBAAAADEF1Y3Rpb25JZEtleQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAPYXVjdGlvbkRhdGFMaXN0CQEAAAALZ2V0RGF0YUxpc3QAAAABBQAAAAxhdWN0aW9uSWRLZXkEAAAADGF1Y3Rpb25TdGF0ZQkAAZEAAAACBQAAAA9hdWN0aW9uRGF0YUxpc3QAAAAAAAAAAAAEAAAAD2F1Y3Rpb25DdXN0b21lcgkAAlkAAAABCQABkQAAAAIFAAAAD2F1Y3Rpb25EYXRhTGlzdAAAAAAAAAAAAQQAAAATYXVjdGlvbklkT3duZXJDaGVjawMJAAAAAAAAAggFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BQAAAA9hdWN0aW9uQ3VzdG9tZXIGCQAAAgAAAAECAAAAJkF1Y3Rpb24gY2FuIGJlIGNhbmNlbGVkIG9ubHkgYnkgb3duZXIuAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAACXN0YXRlT3BlbgQAAAAKZGF0YVN0cmluZwkAASwAAAACCQABLAAAAAIJAAEs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", "chainId": 84, "height": 683249, "spentComplexity": 0 } View: original | compacted Prev: CELRGYBHp7rymFnbB5mrNQuEznF64AbNmaCm7zzytQ6G Next: 5qqdtqrjLea7TyQMdcRq9nLE7bfwN3JFxjcTpk9et5Ry Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = 4320
4+let a = 1440
55
6-let b = 1440
6+let b = 3
77
8-let c = 3
8+let c = unit
99
10-let d = unit
10+let d = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
1111
12-let e = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
12+let e = base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU'
1313
14-let f = base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU'
14+let f = base58'Ft8X1v1LTa1ABafufpaCWyVj8KkaxUWE6xBhW6sNFJck'
1515
16-let g = base58'Ft8X1v1LTa1ABafufpaCWyVj8KkaxUWE6xBhW6sNFJck'
16+let g = "Opened"
1717
18-let h = "Opened"
18+let h = "Suggested"
1919
20-let i = "Suggested"
20+let i = "Canceled"
2121
22-let j = "Canceled"
22+let j = "InProgress"
2323
24-let k = "InProgress"
24+let k = "WaitForConfirmation"
2525
26-let l = "WaitForConfirmation"
26+let l = "Completed"
2727
28-let m = "Completed"
28+let m = "Dispute"
2929
30-let n = "Dispute"
30+let n = "DisputeResolved"
3131
32-let o = "DisputeResolved"
32+let o = "CMR"
3333
34-let p = "CMR"
34+let p = "FL"
3535
36-let q = "FL"
36+let q = base58'1'
3737
3838 let r = base58'1'
3939
4343
4444 let u = base58'1'
4545
46-let v = base58'1'
46+func v (w) = (w + "_Auction")
4747
48-func w (x) = {
49- let y = getString(this, x)
48+
49+func x (w) = {
50+ let y = getString(this, w)
5051 let z = {
5152 let A = y
5253 if ($isInstanceOf(A, "String"))
6061 }
6162
6263
63-func B (x) = {
64- let C = ((x + "_") + n)
64+func B (w) = {
65+ let C = ((w + "_") + m)
6566 let D = getString(this, C)
6667 let z = {
6768 let A = D
7778
7879
7980 func E (F) = if ((F == "WAVES"))
80- then d
81+ then c
8182 else if ((F == "BTC"))
82- then e
83+ then d
8384 else if ((F == "EUR"))
84- then f
85+ then e
8586 else if ((F == "USD"))
86- then g
87+ then f
8788 else throw("Incorrect Asset Id")
8889
8990
9596 func J (K,L,M) = ((K - L) > M)
9697
9798
98-func N (O,I,P) = {
99- let Q = getInteger(this, (O + "_Freezed"))
100- let R = {
101- let A = Q
99+func N (O,I) = {
100+ let P = getInteger(this, (O + "_Freezed"))
101+ let Q = {
102+ let A = P
102103 if ($isInstanceOf(A, "Int"))
103104 then {
104105 let z = A
106107 }
107108 else 0
108109 }
109- ((R + I) - P)
110+ (Q + I)
111+ }
112+
113+
114+func R (O,I) = {
115+ let P = getInteger(this, (O + "_Freezed"))
116+ let Q = {
117+ let A = P
118+ if ($isInstanceOf(A, "Int"))
119+ then {
120+ let z = A
121+ z
122+ }
123+ else 0
124+ }
125+ let z = (Q - I)
126+ if ((z > 0))
127+ then z
128+ else throw("Freezed amount couldn't be less than 0")
110129 }
111130
112131
123142
124143
125144 @Callable(U)
126-func signUp (V) = {
145+func freelancerSignUp (V) = {
127146 let W = toBase58String(U.callerPublicKey)
128- let X = getString(this, (W + "_Registered"))
147+ let X = getString(this, (W + "_Freelancer"))
129148 if (isDefined(X))
130149 then throw("User already registered")
131150 else WriteSet([DataEntry((W + "_Registered"), V)])
134153
135154
136155 @Callable(U)
137-func createAuction (Y) = {
138- let x = toBase58String(U.transactionId)
139- let Z = toBase58String(U.callerPublicKey)
140- let aa = extract(U.payment)
141- let I = if ((aa.amount > 0))
142- then aa.amount
143- else throw("Amount must be higher then 0")
144- let ab = height
145- let ac = (Y * b)
146- let P = ((I * 3) / 100)
147- let O = if (!(isDefined(aa.assetId)))
148- then "WAVES"
149- else if ((aa.assetId == e))
150- then "BTC"
151- else if ((aa.assetId == f))
152- then "EUR"
153- else if ((aa.assetId == g))
154- then "USD"
155- else throw("AssetId is incorrect")
156- let ad = N(O, I, P)
157- WriteSet([DataEntry(x, ((((((((((h + "_") + Z) + "_") + toString(ab)) + "_") + toString(ac)) + "_") + O) + "_") + toString(I))), DataEntry((O + "_Freezed"), ad)])
156+func clientSignUp (V) = {
157+ let W = toBase58String(U.callerPublicKey)
158+ let X = getString(this, (W + "_Client"))
159+ if (isDefined(X))
160+ then throw("User already registered")
161+ else WriteSet([DataEntry((W + "_Client"), V)])
158162 }
159163
160164
161165
162166 @Callable(U)
163-func makeBet (x,H) = {
164- let aa = extract(U.payment)
165- let ae = aa.assetId
166- let T = toBase58String(U.callerPublicKey)
167- let af = height
168- let ag = w(x)
169- let ah = ag[0]
170- let Z = fromBase58String(ag[1])
171- let ab = parseIntValue(ag[2])
172- let F = ag[4]
173- let I = parseIntValue(ag[5])
174- let ai = E(F)
175- let aj = G(H, I)
176- let ak = S(T)
177- let O = if ((ae == d))
167+func createAuction (Y,Z) = {
168+ let w = toBase58String(U.transactionId)
169+ let aa = toBase58String(U.callerPublicKey)
170+ let ab = extract(U.payment)
171+ let ac = ab.amount
172+ let I = if ((ac > 0))
173+ then ac
174+ else throw("Amount must be higher then 0")
175+ let ad = height
176+ let ae = (Z * a)
177+ let af = (Y * a)
178+ let O = if (!(isDefined(ab.assetId)))
178179 then "WAVES"
179- else if ((ae == e))
180+ else if ((ab.assetId == d))
180181 then "BTC"
181- else if ((ae == f))
182+ else if ((ab.assetId == e))
182183 then "EUR"
183- else if ((ae == g))
184+ else if ((ab.assetId == f))
184185 then "USD"
185186 else throw("AssetId is incorrect")
186- let al = J(af, ab, a)
187- if ((ae == ai))
188- then if (al)
189- then if ((ah == h))
190- then {
191- let am = ((((((((ag[1] + "_") + ag[2]) + "_") + ag[3]) + "_") + ag[4]) + "_") + ag[5])
192- let an = (I - ((I * 3) / 100))
193- ScriptResult(WriteSet([DataEntry(x, ((j + "_") + am))]), TransferSet([ScriptTransfer(addressFromPublicKey(Z), an, ai)]))
194- }
195- else if ((ah == i))
196- then {
197- let am = ((((((((((ag[1] + "_") + ag[2]) + "_") + ag[3]) + "_") + ag[4]) + "_") + ag[5]) + "_") + ag[6])
198- WriteSet([DataEntry(x, ((k + "_") + am))])
199- }
200- else throw(((((("Incorrect auctionId state. Now: " + ah) + ", must be: ") + h) + " or ") + i))
201- else if (if ((ah == h))
202- then true
203- else (ah == i))
204- then {
205- let am = ((((((ag[1] + "_") + ag[2]) + "_") + ag[3]) + "_") + ag[4])
206- WriteSet([DataEntry(x, ((((((i + "_") + am) + "_") + toString(aj)) + "_") + ak))])
207- }
208- else throw(((((("Incorrect jobId state. Now: " + ah) + ", must be: ") + h) + " or ") + i))
209- else throw(("Payment must be in " + F))
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)])
210189 }
211190
212191
213192
214193 @Callable(U)
215-func increaseExecutionTime (x,Y) = {
194+func makeBid (w,H) = {
195+ let ah = toBase58String(U.callerPublicKey)
196+ let ai = height
197+ let aj = v(w)
198+ let ak = x(aj)
199+ 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)
212+ 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))
216+ then {
217+ let at = ak[7]
218+ let au = ak[8]
219+ WriteSet([DataEntry(aj, ((((((((((((((((j + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + F) + "_") + toString(I)) + "_") + at) + "_") + au))])
220+ }
221+ 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))
225+ then {
226+ let av = ak[7]
227+ let aw = {
228+ let ax = ((w + "_") + av)
229+ let ay = getInteger(this, ax)
230+ let az = {
231+ let A = ay
232+ if ($isInstanceOf(A, "Int"))
233+ then {
234+ let z = A
235+ z
236+ }
237+ else throw("Can't find lowest bid by public key")
238+ }
239+ if ((az > ap))
240+ then aq
241+ else av
242+ }
243+ WriteSet([DataEntry(((w + "_") + ah), H), DataEntry(aj, ((((((((((((((h + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + F) + "_") + toString(I)) + "_") + aw))])
244+ }
245+ else throw(((((("Incorrect jobId state. Now: " + al) + ", must be: ") + g) + " or ") + h))
246+ }
247+
248+
249+
250+@Callable(U)
251+func chooseFreelancer (w,aA) = {
252+ let ah = toBase58String(U.callerPublicKey)
253+ let ai = height
254+ let aj = v(w)
255+ let ak = x(aj)
256+ 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)
264+ let aB = {
265+ let aC = ((w + "_") + aA)
266+ let aD = getInteger(this, aC)
267+ let A = aD
268+ if ($isInstanceOf(A, "Int"))
269+ then {
270+ let z = A
271+ z
272+ }
273+ else throw("Freelancer's bet was not found")
274+ }
275+ let ar = ((I * 3) / 100)
276+ let aE = ((I - aB) - ar)
277+ let as = J(ai, ad, am)
278+ if ((ah == aa))
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)))])
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)]))
286+ else throw("Only auction customer can choose a freelancer")
287+ }
288+
289+
290+
291+@Callable(U)
292+func increaseExecutionTime (w,aF) = {
216293 let T = toBase58String(U.callerPublicKey)
217- let ag = w(x)
218- let ah = ag[0]
219- let Z = ag[1]
220- let ao = parseIntValue(ag[3])
221- let ap = {
222- let aq = (Y * b)
223- if ((aq > ao))
224- then aq
294+ let aj = v(w)
295+ let ak = x(aj)
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
225303 else throw("New execution time must more than current execution time")
226304 }
227- if ((T == Z))
228- then if (if (if ((ah == h))
305+ if ((T == aa))
306+ then if (if (if ((al == g))
229307 then true
230- else (ah == i))
308+ else (al == h))
231309 then true
232- else (ah == k))
310+ else (al == j))
233311 then {
234- let ar = ((((((((((((ah + "_") + Z) + "_") + ag[2]) + "_") + toString(ap)) + "_") + ag[4]) + "_") + ag[5]) + "_") + ag[6])
235- WriteSet([DataEntry(x, ar)])
312+ let aJ = ((((((((((((al + "_") + aa) + "_") + ak[2]) + "_") + toString(aH)) + "_") + ak[4]) + "_") + ak[5]) + "_") + ak[6])
313+ WriteSet([DataEntry(aj, aJ)])
236314 }
237315 else throw("Incorrect state")
238316 else throw("Only customer can increase execution time")
241319
242320
243321 @Callable(U)
244-func cancelAuction (x) = {
245- let ag = w(x)
246- let ah = ag[0]
247- let Z = fromBase58String(ag[1])
248- let as = if ((U.callerPublicKey == Z))
322+func cancelAuction (w) = {
323+ let aj = v(w)
324+ let ak = x(aj)
325+ let al = ak[0]
326+ let aa = fromBase58String(ak[1])
327+ let aK = if ((U.callerPublicKey == aa))
249328 then true
250329 else throw("Auction can be canceled only by owner.")
251- if ((ah == h))
330+ if ((al == g))
252331 then {
253- let am = ((((((((ag[1] + "_") + ag[2]) + "_") + ag[3]) + "_") + ag[4]) + "_") + ag[5])
254- WriteSet([DataEntry(x, ((j + "_") + am))])
332+ let aL = ((((((((ak[1] + "_") + ak[2]) + "_") + ak[3]) + "_") + ak[4]) + "_") + ak[5])
333+ WriteSet([DataEntry(aj, ((i + "_") + aL))])
255334 }
256335 else throw("Incorrect auction state.")
257336 }
259338
260339
261340 @Callable(U)
262-func openDispute (x) = {
341+func openDispute (w) = {
263342 let T = toBase58String(U.callerPublicKey)
264- let ag = w(x)
265- let ah = ag[0]
266- let Z = ag[1]
267- let at = ag[6]
268- if (if ((T == Z))
343+ let aj = v(w)
344+ let ak = x(aj)
345+ let al = ak[0]
346+ let aa = ak[1]
347+ let at = ak[6]
348+ if (if ((T == aa))
269349 then true
270350 else (T == at))
271351 then {
272- let am = "1"
273- WriteSet([DataEntry(x, (n + am)), DataEntry((x + "_Dispute"), "0")])
352+ let aL = "1"
353+ WriteSet([DataEntry(aj, (m + aL)), DataEntry((w + "_Dispute"), "0")])
274354 }
275355 else throw("Only customer and freelancer can open dispute")
276356 }
278358
279359
280360 @Callable(U)
281-func voteDispute (x,au) = {
282- let ag = w(x)
283- let av = {
284- let ah = ag[0]
285- if ((ah == n))
361+func voteDispute (w,aM) = {
362+ let aj = v(w)
363+ let ak = x(aj)
364+ let aN = {
365+ let al = ak[0]
366+ if ((al == m))
286367 then true
287- else throw(("Incorrect state. Must be: " + n))
368+ else throw(("Incorrect state. Must be: " + m))
288369 }
289- let aw = ag[4]
290- let I = parseIntValue(ag[5])
291- let ax = if (if ((au == p))
370+ let aO = ak[4]
371+ let I = parseIntValue(ak[5])
372+ let aP = if (if ((aM == o))
292373 then true
293- else (au == q))
294- then au
295- else throw(((("Vote is incorrect. Must be: " + p) + " or ") + q))
296- let ay = if (if (if (if (if ((U.callerPublicKey == r))
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))
378+ then true
379+ else (U.callerPublicKey == r))
297380 then true
298381 else (U.callerPublicKey == s))
299382 then true
300383 else (U.callerPublicKey == t))
301384 then true
302385 else (U.callerPublicKey == u))
303- then true
304- else (U.callerPublicKey == v))
305386 then toBase58String(U.callerPublicKey)
306387 else throw("You have no rights for disputes resolving")
307- let az = {
308- let aA = ((x + "_") + n)
309- let aB = getString(this, aA)
310- let A = aB
388+ let aR = {
389+ let aS = ((w + "_") + m)
390+ let aT = getString(this, aS)
391+ let A = aT
311392 if ($isInstanceOf(A, "String"))
312393 then {
313394 let z = A
315396 }
316397 else throw("Cannot find data of dispute in storage")
317398 }
318- let aC = split(az, "/")
319- let aD = aC[0]
320- if ((aD == "4"))
399+ let aU = split(aR, "/")
400+ let aV = aU[0]
401+ if ((aV == "4"))
321402 then {
322- let aE = split(aC[1], "_")
323- let aF = split(aC[2], "_")
324- let aG = if ((ay == aE[0]))
403+ let aW = split(aU[1], "_")
404+ let aX = split(aU[2], "_")
405+ let aY = if ((aQ == aW[0]))
325406 then true
326- else (ay == aE[1])
327- if (aG)
407+ else (aQ == aW[1])
408+ if (aY)
328409 then throw("You already voted")
329410 else {
330- let aH = "5"
331- let aI = ((aC[1] + "_") + ay)
332- let aJ = ((aC[2] + "_") + ax)
333- let aK = ((((aH + "/") + aI) + "/") + aJ)
334- let aL = {
335- let aM = if ((aF[0] == p))
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))
336417 then 1
337418 else 0
338- let aN = if ((aF[1] == p))
419+ let bf = if ((aX[1] == o))
339420 then 1
340421 else 0
341- let aO = if ((aF[2] == p))
422+ let bg = if ((aX[2] == o))
342423 then 1
343424 else 0
344- let aP = if ((aF[3] == p))
425+ let bh = if ((aX[3] == o))
345426 then 1
346427 else 0
347- let aQ = if ((ax == p))
428+ let bi = if ((aP == o))
348429 then 1
349430 else 0
350- let aR = ((((aM + aN) + aO) + aP) + aQ)
351- if ((aR > 2))
352- then p
353- else q
431+ let bj = ((((be + bf) + bg) + bh) + bi)
432+ if ((bj > 2))
433+ then o
434+ else p
354435 }
355- let ar = ((((((((((ag[1] + "_") + ag[2]) + "_") + ag[3]) + "_") + ag[4]) + "_") + ag[5]) + "_") + ag[6])
356- let aS = if ((aL == p))
357- then ag[1]
358- else ag[6]
359- let an = (I - ((I * 3) / 100))
360- ScriptResult(WriteSet([DataEntry(x, (o + ar)), DataEntry(((x + "_") + n), aK)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), an, fromBase58String(aw))]))
436+ let aJ = ((((((((((ak[1] + "_") + ak[2]) + "_") + ak[3]) + "_") + ak[4]) + "_") + ak[5]) + "_") + ak[6])
437+ let bk = if ((bd == o))
438+ then ak[1]
439+ 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))]))
361442 }
362443 }
363444 else {
364- let aK = if ((aD == "0"))
445+ let bc = if ((aV == "0"))
365446 then {
366- let aH = "1"
367- let aI = ay
368- let aJ = ax
369- let ar = ((((aH + "/") + aI) + "/") + aJ)
370- ar
447+ let aZ = "1"
448+ let ba = aQ
449+ let bb = aP
450+ let aJ = ((((aZ + "/") + ba) + "/") + bb)
451+ aJ
371452 }
372- else if ((aD == "1"))
453+ else if ((aV == "1"))
373454 then {
374- let aT = aC[1]
375- let aM = aC[2]
376- let aG = (ay == aT)
377- if (aG)
455+ let bm = aU[1]
456+ let be = aU[2]
457+ let aY = (aQ == bm)
458+ if (aY)
378459 then throw("You already voted")
379460 else {
380- let aH = "1"
381- let aI = (aT + ay)
382- let aJ = (aM + ax)
383- let ar = ((((aH + "/") + aI) + "/") + aJ)
384- ar
461+ let aZ = "1"
462+ let ba = (bm + aQ)
463+ let bb = (be + aP)
464+ let aJ = ((((aZ + "/") + ba) + "/") + bb)
465+ aJ
385466 }
386467 }
387- else if ((aD == "2"))
468+ else if ((aV == "2"))
388469 then {
389- let aE = split(aC[1], "_")
390- let aF = split(aC[2], "_")
391- let aG = if ((ay == aE[0]))
470+ let aW = split(aU[1], "_")
471+ let aX = split(aU[2], "_")
472+ let aY = if ((aQ == aW[0]))
392473 then true
393- else (ay == aE[1])
394- if (aG)
474+ else (aQ == aW[1])
475+ if (aY)
395476 then throw("You already voted")
396477 else {
397- let aH = "3"
398- let aI = ((aC[1] + "_") + ay)
399- let aJ = ((aC[2] + "_") + ax)
400- let ar = ((((aH + "/") + aI) + "/") + aJ)
401- ar
478+ let aZ = "3"
479+ let ba = ((aU[1] + "_") + aQ)
480+ let bb = ((aU[2] + "_") + aP)
481+ let aJ = ((((aZ + "/") + ba) + "/") + bb)
482+ aJ
402483 }
403484 }
404- else if ((aD == "3"))
485+ else if ((aV == "3"))
405486 then {
406- let aE = split(aC[1], "_")
407- let aF = split(aC[2], "_")
408- let aG = if (if ((ay == aE[0]))
487+ let aW = split(aU[1], "_")
488+ let aX = split(aU[2], "_")
489+ let aY = if (if ((aQ == aW[0]))
409490 then true
410- else (ay == aE[1]))
491+ else (aQ == aW[1]))
411492 then true
412- else (ay == aE[2])
413- if (aG)
493+ else (aQ == aW[2])
494+ if (aY)
414495 then throw("You already voted")
415496 else {
416- let aH = "4"
417- let aI = ((aC[1] + "_") + ay)
418- let aJ = ((aC[2] + "_") + ax)
419- let ar = ((((aH + "/") + aI) + "/") + aJ)
420- ar
497+ let aZ = "4"
498+ let ba = ((aU[1] + "_") + aQ)
499+ let bb = ((aU[2] + "_") + aP)
500+ let aJ = ((((aZ + "/") + ba) + "/") + bb)
501+ aJ
421502 }
422503 }
423504 else throw("Dispute has been already resolved")
424- WriteSet([DataEntry(((x + "_") + n), aK)])
505+ WriteSet([DataEntry(((w + "_") + m), bc)])
425506 }
426507 }
427508
428509
429510
430511 @Callable(U)
431-func workIsDone (x) = {
432- let ag = w(x)
433- let ah = ag[0]
434- let ab = parseIntValue(ag[2])
435- let ao = parseIntValue(ag[3])
512+func workIsDone (w) = {
513+ let aj = v(w)
514+ let ak = x(aj)
515+ let al = ak[0]
516+ let ad = parseIntValue(ak[2])
517+ let aG = parseIntValue(ak[3])
436518 let K = height
437- let aU = {
519+ let bn = {
438520 let T = toBase58String(U.callerPublicKey)
439- let at = ag[6]
521+ let at = ak[6]
440522 if ((T == at))
441523 then T
442524 else throw("Only a freelancer can indicate that the work is done")
443525 }
444- let aV = ((K - ab) > ao)
445- if ((ah == k))
446- then if (aV)
526+ let bo = ((K - ad) > aG)
527+ if ((al == j))
528+ then if (bo)
447529 then {
448- let ar = ((((((((((ag[1] + "_") + ag[2]) + "_") + ag[3]) + "_") + ag[4]) + "_") + ag[5]) + "_") + ag[6])
449- WriteSet([DataEntry(x, (n + ar))])
530+ let aJ = ((((((((((ak[1] + "_") + ak[2]) + "_") + ak[3]) + "_") + ak[4]) + "_") + ak[5]) + "_") + ak[6])
531+ WriteSet([DataEntry(aj, (m + aJ))])
450532 }
451533 else {
452- let ar = ((((((((((ag[1] + "_") + ag[2]) + "_") + ag[3]) + "_") + ag[4]) + "_") + ag[5]) + "_") + ag[6])
453- WriteSet([DataEntry(x, (l + ar))])
534+ let aJ = ((((((((((ak[1] + "_") + ak[2]) + "_") + ak[3]) + "_") + ak[4]) + "_") + ak[5]) + "_") + ak[6])
535+ WriteSet([DataEntry(aj, (k + aJ))])
454536 }
455537 else throw("Auction state is incorrect")
456538 }
458540
459541
460542 @Callable(U)
461-func acceptByCustomer (x) = {
462- let ag = w(x)
463- let ah = ag[0]
464- let Z = ag[1]
465- let F = ag[4]
466- let I = parseIntValue(ag[5])
467- let at = ag[6]
543+func acceptByCustomer (w) = {
544+ let aj = v(w)
545+ let ak = x(aj)
546+ 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]
468551 let T = toBase58String(U.callerPublicKey)
469- let P = ((I * 3) / 100)
470- let an = (I - P)
471- let ai = E(F)
472- let aW = {
473- let aX = getInteger(this, (at + "_Rating"))
474- let aY = {
475- let A = aX
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
476559 if ($isInstanceOf(A, "Int"))
477560 then {
478561 let z = A
480563 }
481564 else 0
482565 }
483- (aY + 1)
566+ (br + 1)
484567 }
485- if ((T == Z))
486- then if ((ah == l))
568+ if ((T == aa))
569+ then if ((al == k))
487570 then {
488- let ar = ((((((((((ag[1] + "_") + ag[2]) + "_") + ag[3]) + "_") + ag[4]) + "_") + ag[5]) + "_") + ag[6])
489- ScriptResult(WriteSet([DataEntry(x, (m + ar)), DataEntry((at + "_Rating"), aW)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(at)), an, ai)]))
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)]))
490573 }
491- else throw(("Incorrect state. Must be: " + l))
574+ else throw(("Incorrect state. Must be: " + k))
492575 else throw("Only auction customer can use this function")
493576 }
494577
495578
496-@Verifier(aZ)
497-func ba () = if (sigVerify(aZ.bodyBytes, aZ.proofs[0], aZ.senderPublicKey))
579+@Verifier(bs)
580+func bt () = if (sigVerify(bs.bodyBytes, bs.proofs[0], bs.senderPublicKey))
498581 then {
499- let A = aZ
582+ let A = bs
500583 if ($isInstanceOf(A, "TransferTransaction"))
501584 then {
502- let bb = A
585+ let bu = A
503586 true
504587 }
505588 else if ($isInstanceOf(A, "SetScriptTransaction"))
506589 then {
507- let bc = A
590+ let bv = A
508591 true
509592 }
510593 else false
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = 4320
4+let a = 1440
55
6-let b = 1440
6+let b = 3
77
8-let c = 3
8+let c = unit
99
10-let d = unit
10+let d = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
1111
12-let e = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
12+let e = base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU'
1313
14-let f = base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU'
14+let f = base58'Ft8X1v1LTa1ABafufpaCWyVj8KkaxUWE6xBhW6sNFJck'
1515
16-let g = base58'Ft8X1v1LTa1ABafufpaCWyVj8KkaxUWE6xBhW6sNFJck'
16+let g = "Opened"
1717
18-let h = "Opened"
18+let h = "Suggested"
1919
20-let i = "Suggested"
20+let i = "Canceled"
2121
22-let j = "Canceled"
22+let j = "InProgress"
2323
24-let k = "InProgress"
24+let k = "WaitForConfirmation"
2525
26-let l = "WaitForConfirmation"
26+let l = "Completed"
2727
28-let m = "Completed"
28+let m = "Dispute"
2929
30-let n = "Dispute"
30+let n = "DisputeResolved"
3131
32-let o = "DisputeResolved"
32+let o = "CMR"
3333
34-let p = "CMR"
34+let p = "FL"
3535
36-let q = "FL"
36+let q = base58'1'
3737
3838 let r = base58'1'
3939
4040 let s = base58'1'
4141
4242 let t = base58'1'
4343
4444 let u = base58'1'
4545
46-let v = base58'1'
46+func v (w) = (w + "_Auction")
4747
48-func w (x) = {
49- let y = getString(this, x)
48+
49+func x (w) = {
50+ let y = getString(this, w)
5051 let z = {
5152 let A = y
5253 if ($isInstanceOf(A, "String"))
5354 then {
5455 let z = A
5556 z
5657 }
5758 else throw("AuctionId was not found")
5859 }
5960 split(z, "_")
6061 }
6162
6263
63-func B (x) = {
64- let C = ((x + "_") + n)
64+func B (w) = {
65+ let C = ((w + "_") + m)
6566 let D = getString(this, C)
6667 let z = {
6768 let A = D
6869 if ($isInstanceOf(A, "String"))
6970 then {
7071 let z = A
7172 z
7273 }
7374 else throw("Dispute data was not found")
7475 }
7576 split(z, "/")
7677 }
7778
7879
7980 func E (F) = if ((F == "WAVES"))
80- then d
81+ then c
8182 else if ((F == "BTC"))
82- then e
83+ then d
8384 else if ((F == "EUR"))
84- then f
85+ then e
8586 else if ((F == "USD"))
86- then g
87+ then f
8788 else throw("Incorrect Asset Id")
8889
8990
9091 func G (H,I) = if ((I > H))
9192 then H
9293 else throw(("Bet price must be lower than actual price. Actual price: " + toString(I)))
9394
9495
9596 func J (K,L,M) = ((K - L) > M)
9697
9798
98-func N (O,I,P) = {
99- let Q = getInteger(this, (O + "_Freezed"))
100- let R = {
101- let A = Q
99+func N (O,I) = {
100+ let P = getInteger(this, (O + "_Freezed"))
101+ let Q = {
102+ let A = P
102103 if ($isInstanceOf(A, "Int"))
103104 then {
104105 let z = A
105106 z
106107 }
107108 else 0
108109 }
109- ((R + I) - P)
110+ (Q + I)
111+ }
112+
113+
114+func R (O,I) = {
115+ let P = getInteger(this, (O + "_Freezed"))
116+ let Q = {
117+ let A = P
118+ if ($isInstanceOf(A, "Int"))
119+ then {
120+ let z = A
121+ z
122+ }
123+ else 0
124+ }
125+ let z = (Q - I)
126+ if ((z > 0))
127+ then z
128+ else throw("Freezed amount couldn't be less than 0")
110129 }
111130
112131
113132 func S (T) = {
114133 let S = getString(this, (T + "_Status"))
115134 let A = S
116135 if ($isInstanceOf(A, "String"))
117136 then {
118137 let z = A
119138 z
120139 }
121140 else throw("Only registered users can make bets")
122141 }
123142
124143
125144 @Callable(U)
126-func signUp (V) = {
145+func freelancerSignUp (V) = {
127146 let W = toBase58String(U.callerPublicKey)
128- let X = getString(this, (W + "_Registered"))
147+ let X = getString(this, (W + "_Freelancer"))
129148 if (isDefined(X))
130149 then throw("User already registered")
131150 else WriteSet([DataEntry((W + "_Registered"), V)])
132151 }
133152
134153
135154
136155 @Callable(U)
137-func createAuction (Y) = {
138- let x = toBase58String(U.transactionId)
139- let Z = toBase58String(U.callerPublicKey)
140- let aa = extract(U.payment)
141- let I = if ((aa.amount > 0))
142- then aa.amount
143- else throw("Amount must be higher then 0")
144- let ab = height
145- let ac = (Y * b)
146- let P = ((I * 3) / 100)
147- let O = if (!(isDefined(aa.assetId)))
148- then "WAVES"
149- else if ((aa.assetId == e))
150- then "BTC"
151- else if ((aa.assetId == f))
152- then "EUR"
153- else if ((aa.assetId == g))
154- then "USD"
155- else throw("AssetId is incorrect")
156- let ad = N(O, I, P)
157- WriteSet([DataEntry(x, ((((((((((h + "_") + Z) + "_") + toString(ab)) + "_") + toString(ac)) + "_") + O) + "_") + toString(I))), DataEntry((O + "_Freezed"), ad)])
156+func clientSignUp (V) = {
157+ let W = toBase58String(U.callerPublicKey)
158+ let X = getString(this, (W + "_Client"))
159+ if (isDefined(X))
160+ then throw("User already registered")
161+ else WriteSet([DataEntry((W + "_Client"), V)])
158162 }
159163
160164
161165
162166 @Callable(U)
163-func makeBet (x,H) = {
164- let aa = extract(U.payment)
165- let ae = aa.assetId
166- let T = toBase58String(U.callerPublicKey)
167- let af = height
168- let ag = w(x)
169- let ah = ag[0]
170- let Z = fromBase58String(ag[1])
171- let ab = parseIntValue(ag[2])
172- let F = ag[4]
173- let I = parseIntValue(ag[5])
174- let ai = E(F)
175- let aj = G(H, I)
176- let ak = S(T)
177- let O = if ((ae == d))
167+func createAuction (Y,Z) = {
168+ let w = toBase58String(U.transactionId)
169+ let aa = toBase58String(U.callerPublicKey)
170+ let ab = extract(U.payment)
171+ let ac = ab.amount
172+ let I = if ((ac > 0))
173+ then ac
174+ else throw("Amount must be higher then 0")
175+ let ad = height
176+ let ae = (Z * a)
177+ let af = (Y * a)
178+ let O = if (!(isDefined(ab.assetId)))
178179 then "WAVES"
179- else if ((ae == e))
180+ else if ((ab.assetId == d))
180181 then "BTC"
181- else if ((ae == f))
182+ else if ((ab.assetId == e))
182183 then "EUR"
183- else if ((ae == g))
184+ else if ((ab.assetId == f))
184185 then "USD"
185186 else throw("AssetId is incorrect")
186- let al = J(af, ab, a)
187- if ((ae == ai))
188- then if (al)
189- then if ((ah == h))
190- then {
191- let am = ((((((((ag[1] + "_") + ag[2]) + "_") + ag[3]) + "_") + ag[4]) + "_") + ag[5])
192- let an = (I - ((I * 3) / 100))
193- ScriptResult(WriteSet([DataEntry(x, ((j + "_") + am))]), TransferSet([ScriptTransfer(addressFromPublicKey(Z), an, ai)]))
194- }
195- else if ((ah == i))
196- then {
197- let am = ((((((((((ag[1] + "_") + ag[2]) + "_") + ag[3]) + "_") + ag[4]) + "_") + ag[5]) + "_") + ag[6])
198- WriteSet([DataEntry(x, ((k + "_") + am))])
199- }
200- else throw(((((("Incorrect auctionId state. Now: " + ah) + ", must be: ") + h) + " or ") + i))
201- else if (if ((ah == h))
202- then true
203- else (ah == i))
204- then {
205- let am = ((((((ag[1] + "_") + ag[2]) + "_") + ag[3]) + "_") + ag[4])
206- WriteSet([DataEntry(x, ((((((i + "_") + am) + "_") + toString(aj)) + "_") + ak))])
207- }
208- else throw(((((("Incorrect jobId state. Now: " + ah) + ", must be: ") + h) + " or ") + i))
209- else throw(("Payment must be in " + F))
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)])
210189 }
211190
212191
213192
214193 @Callable(U)
215-func increaseExecutionTime (x,Y) = {
194+func makeBid (w,H) = {
195+ let ah = toBase58String(U.callerPublicKey)
196+ let ai = height
197+ let aj = v(w)
198+ let ak = x(aj)
199+ 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)
212+ 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))
216+ then {
217+ let at = ak[7]
218+ let au = ak[8]
219+ WriteSet([DataEntry(aj, ((((((((((((((((j + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + F) + "_") + toString(I)) + "_") + at) + "_") + au))])
220+ }
221+ 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))
225+ then {
226+ let av = ak[7]
227+ let aw = {
228+ let ax = ((w + "_") + av)
229+ let ay = getInteger(this, ax)
230+ let az = {
231+ let A = ay
232+ if ($isInstanceOf(A, "Int"))
233+ then {
234+ let z = A
235+ z
236+ }
237+ else throw("Can't find lowest bid by public key")
238+ }
239+ if ((az > ap))
240+ then aq
241+ else av
242+ }
243+ WriteSet([DataEntry(((w + "_") + ah), H), DataEntry(aj, ((((((((((((((h + "_") + toBase58String(aa)) + "_") + toString(ad)) + "_") + toString(am)) + "_") + toString(an)) + "_") + F) + "_") + toString(I)) + "_") + aw))])
244+ }
245+ else throw(((((("Incorrect jobId state. Now: " + al) + ", must be: ") + g) + " or ") + h))
246+ }
247+
248+
249+
250+@Callable(U)
251+func chooseFreelancer (w,aA) = {
252+ let ah = toBase58String(U.callerPublicKey)
253+ let ai = height
254+ let aj = v(w)
255+ let ak = x(aj)
256+ 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)
264+ let aB = {
265+ let aC = ((w + "_") + aA)
266+ let aD = getInteger(this, aC)
267+ let A = aD
268+ if ($isInstanceOf(A, "Int"))
269+ then {
270+ let z = A
271+ z
272+ }
273+ else throw("Freelancer's bet was not found")
274+ }
275+ let ar = ((I * 3) / 100)
276+ let aE = ((I - aB) - ar)
277+ let as = J(ai, ad, am)
278+ if ((ah == aa))
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)))])
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)]))
286+ else throw("Only auction customer can choose a freelancer")
287+ }
288+
289+
290+
291+@Callable(U)
292+func increaseExecutionTime (w,aF) = {
216293 let T = toBase58String(U.callerPublicKey)
217- let ag = w(x)
218- let ah = ag[0]
219- let Z = ag[1]
220- let ao = parseIntValue(ag[3])
221- let ap = {
222- let aq = (Y * b)
223- if ((aq > ao))
224- then aq
294+ let aj = v(w)
295+ let ak = x(aj)
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
225303 else throw("New execution time must more than current execution time")
226304 }
227- if ((T == Z))
228- then if (if (if ((ah == h))
305+ if ((T == aa))
306+ then if (if (if ((al == g))
229307 then true
230- else (ah == i))
308+ else (al == h))
231309 then true
232- else (ah == k))
310+ else (al == j))
233311 then {
234- let ar = ((((((((((((ah + "_") + Z) + "_") + ag[2]) + "_") + toString(ap)) + "_") + ag[4]) + "_") + ag[5]) + "_") + ag[6])
235- WriteSet([DataEntry(x, ar)])
312+ let aJ = ((((((((((((al + "_") + aa) + "_") + ak[2]) + "_") + toString(aH)) + "_") + ak[4]) + "_") + ak[5]) + "_") + ak[6])
313+ WriteSet([DataEntry(aj, aJ)])
236314 }
237315 else throw("Incorrect state")
238316 else throw("Only customer can increase execution time")
239317 }
240318
241319
242320
243321 @Callable(U)
244-func cancelAuction (x) = {
245- let ag = w(x)
246- let ah = ag[0]
247- let Z = fromBase58String(ag[1])
248- let as = if ((U.callerPublicKey == Z))
322+func cancelAuction (w) = {
323+ let aj = v(w)
324+ let ak = x(aj)
325+ let al = ak[0]
326+ let aa = fromBase58String(ak[1])
327+ let aK = if ((U.callerPublicKey == aa))
249328 then true
250329 else throw("Auction can be canceled only by owner.")
251- if ((ah == h))
330+ if ((al == g))
252331 then {
253- let am = ((((((((ag[1] + "_") + ag[2]) + "_") + ag[3]) + "_") + ag[4]) + "_") + ag[5])
254- WriteSet([DataEntry(x, ((j + "_") + am))])
332+ let aL = ((((((((ak[1] + "_") + ak[2]) + "_") + ak[3]) + "_") + ak[4]) + "_") + ak[5])
333+ WriteSet([DataEntry(aj, ((i + "_") + aL))])
255334 }
256335 else throw("Incorrect auction state.")
257336 }
258337
259338
260339
261340 @Callable(U)
262-func openDispute (x) = {
341+func openDispute (w) = {
263342 let T = toBase58String(U.callerPublicKey)
264- let ag = w(x)
265- let ah = ag[0]
266- let Z = ag[1]
267- let at = ag[6]
268- if (if ((T == Z))
343+ let aj = v(w)
344+ let ak = x(aj)
345+ let al = ak[0]
346+ let aa = ak[1]
347+ let at = ak[6]
348+ if (if ((T == aa))
269349 then true
270350 else (T == at))
271351 then {
272- let am = "1"
273- WriteSet([DataEntry(x, (n + am)), DataEntry((x + "_Dispute"), "0")])
352+ let aL = "1"
353+ WriteSet([DataEntry(aj, (m + aL)), DataEntry((w + "_Dispute"), "0")])
274354 }
275355 else throw("Only customer and freelancer can open dispute")
276356 }
277357
278358
279359
280360 @Callable(U)
281-func voteDispute (x,au) = {
282- let ag = w(x)
283- let av = {
284- let ah = ag[0]
285- if ((ah == n))
361+func voteDispute (w,aM) = {
362+ let aj = v(w)
363+ let ak = x(aj)
364+ let aN = {
365+ let al = ak[0]
366+ if ((al == m))
286367 then true
287- else throw(("Incorrect state. Must be: " + n))
368+ else throw(("Incorrect state. Must be: " + m))
288369 }
289- let aw = ag[4]
290- let I = parseIntValue(ag[5])
291- let ax = if (if ((au == p))
370+ let aO = ak[4]
371+ let I = parseIntValue(ak[5])
372+ let aP = if (if ((aM == o))
292373 then true
293- else (au == q))
294- then au
295- else throw(((("Vote is incorrect. Must be: " + p) + " or ") + q))
296- let ay = if (if (if (if (if ((U.callerPublicKey == r))
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))
378+ then true
379+ else (U.callerPublicKey == r))
297380 then true
298381 else (U.callerPublicKey == s))
299382 then true
300383 else (U.callerPublicKey == t))
301384 then true
302385 else (U.callerPublicKey == u))
303- then true
304- else (U.callerPublicKey == v))
305386 then toBase58String(U.callerPublicKey)
306387 else throw("You have no rights for disputes resolving")
307- let az = {
308- let aA = ((x + "_") + n)
309- let aB = getString(this, aA)
310- let A = aB
388+ let aR = {
389+ let aS = ((w + "_") + m)
390+ let aT = getString(this, aS)
391+ let A = aT
311392 if ($isInstanceOf(A, "String"))
312393 then {
313394 let z = A
314395 z
315396 }
316397 else throw("Cannot find data of dispute in storage")
317398 }
318- let aC = split(az, "/")
319- let aD = aC[0]
320- if ((aD == "4"))
399+ let aU = split(aR, "/")
400+ let aV = aU[0]
401+ if ((aV == "4"))
321402 then {
322- let aE = split(aC[1], "_")
323- let aF = split(aC[2], "_")
324- let aG = if ((ay == aE[0]))
403+ let aW = split(aU[1], "_")
404+ let aX = split(aU[2], "_")
405+ let aY = if ((aQ == aW[0]))
325406 then true
326- else (ay == aE[1])
327- if (aG)
407+ else (aQ == aW[1])
408+ if (aY)
328409 then throw("You already voted")
329410 else {
330- let aH = "5"
331- let aI = ((aC[1] + "_") + ay)
332- let aJ = ((aC[2] + "_") + ax)
333- let aK = ((((aH + "/") + aI) + "/") + aJ)
334- let aL = {
335- let aM = if ((aF[0] == p))
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))
336417 then 1
337418 else 0
338- let aN = if ((aF[1] == p))
419+ let bf = if ((aX[1] == o))
339420 then 1
340421 else 0
341- let aO = if ((aF[2] == p))
422+ let bg = if ((aX[2] == o))
342423 then 1
343424 else 0
344- let aP = if ((aF[3] == p))
425+ let bh = if ((aX[3] == o))
345426 then 1
346427 else 0
347- let aQ = if ((ax == p))
428+ let bi = if ((aP == o))
348429 then 1
349430 else 0
350- let aR = ((((aM + aN) + aO) + aP) + aQ)
351- if ((aR > 2))
352- then p
353- else q
431+ let bj = ((((be + bf) + bg) + bh) + bi)
432+ if ((bj > 2))
433+ then o
434+ else p
354435 }
355- let ar = ((((((((((ag[1] + "_") + ag[2]) + "_") + ag[3]) + "_") + ag[4]) + "_") + ag[5]) + "_") + ag[6])
356- let aS = if ((aL == p))
357- then ag[1]
358- else ag[6]
359- let an = (I - ((I * 3) / 100))
360- ScriptResult(WriteSet([DataEntry(x, (o + ar)), DataEntry(((x + "_") + n), aK)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), an, fromBase58String(aw))]))
436+ let aJ = ((((((((((ak[1] + "_") + ak[2]) + "_") + ak[3]) + "_") + ak[4]) + "_") + ak[5]) + "_") + ak[6])
437+ let bk = if ((bd == o))
438+ then ak[1]
439+ 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))]))
361442 }
362443 }
363444 else {
364- let aK = if ((aD == "0"))
445+ let bc = if ((aV == "0"))
365446 then {
366- let aH = "1"
367- let aI = ay
368- let aJ = ax
369- let ar = ((((aH + "/") + aI) + "/") + aJ)
370- ar
447+ let aZ = "1"
448+ let ba = aQ
449+ let bb = aP
450+ let aJ = ((((aZ + "/") + ba) + "/") + bb)
451+ aJ
371452 }
372- else if ((aD == "1"))
453+ else if ((aV == "1"))
373454 then {
374- let aT = aC[1]
375- let aM = aC[2]
376- let aG = (ay == aT)
377- if (aG)
455+ let bm = aU[1]
456+ let be = aU[2]
457+ let aY = (aQ == bm)
458+ if (aY)
378459 then throw("You already voted")
379460 else {
380- let aH = "1"
381- let aI = (aT + ay)
382- let aJ = (aM + ax)
383- let ar = ((((aH + "/") + aI) + "/") + aJ)
384- ar
461+ let aZ = "1"
462+ let ba = (bm + aQ)
463+ let bb = (be + aP)
464+ let aJ = ((((aZ + "/") + ba) + "/") + bb)
465+ aJ
385466 }
386467 }
387- else if ((aD == "2"))
468+ else if ((aV == "2"))
388469 then {
389- let aE = split(aC[1], "_")
390- let aF = split(aC[2], "_")
391- let aG = if ((ay == aE[0]))
470+ let aW = split(aU[1], "_")
471+ let aX = split(aU[2], "_")
472+ let aY = if ((aQ == aW[0]))
392473 then true
393- else (ay == aE[1])
394- if (aG)
474+ else (aQ == aW[1])
475+ if (aY)
395476 then throw("You already voted")
396477 else {
397- let aH = "3"
398- let aI = ((aC[1] + "_") + ay)
399- let aJ = ((aC[2] + "_") + ax)
400- let ar = ((((aH + "/") + aI) + "/") + aJ)
401- ar
478+ let aZ = "3"
479+ let ba = ((aU[1] + "_") + aQ)
480+ let bb = ((aU[2] + "_") + aP)
481+ let aJ = ((((aZ + "/") + ba) + "/") + bb)
482+ aJ
402483 }
403484 }
404- else if ((aD == "3"))
485+ else if ((aV == "3"))
405486 then {
406- let aE = split(aC[1], "_")
407- let aF = split(aC[2], "_")
408- let aG = if (if ((ay == aE[0]))
487+ let aW = split(aU[1], "_")
488+ let aX = split(aU[2], "_")
489+ let aY = if (if ((aQ == aW[0]))
409490 then true
410- else (ay == aE[1]))
491+ else (aQ == aW[1]))
411492 then true
412- else (ay == aE[2])
413- if (aG)
493+ else (aQ == aW[2])
494+ if (aY)
414495 then throw("You already voted")
415496 else {
416- let aH = "4"
417- let aI = ((aC[1] + "_") + ay)
418- let aJ = ((aC[2] + "_") + ax)
419- let ar = ((((aH + "/") + aI) + "/") + aJ)
420- ar
497+ let aZ = "4"
498+ let ba = ((aU[1] + "_") + aQ)
499+ let bb = ((aU[2] + "_") + aP)
500+ let aJ = ((((aZ + "/") + ba) + "/") + bb)
501+ aJ
421502 }
422503 }
423504 else throw("Dispute has been already resolved")
424- WriteSet([DataEntry(((x + "_") + n), aK)])
505+ WriteSet([DataEntry(((w + "_") + m), bc)])
425506 }
426507 }
427508
428509
429510
430511 @Callable(U)
431-func workIsDone (x) = {
432- let ag = w(x)
433- let ah = ag[0]
434- let ab = parseIntValue(ag[2])
435- let ao = parseIntValue(ag[3])
512+func workIsDone (w) = {
513+ let aj = v(w)
514+ let ak = x(aj)
515+ let al = ak[0]
516+ let ad = parseIntValue(ak[2])
517+ let aG = parseIntValue(ak[3])
436518 let K = height
437- let aU = {
519+ let bn = {
438520 let T = toBase58String(U.callerPublicKey)
439- let at = ag[6]
521+ let at = ak[6]
440522 if ((T == at))
441523 then T
442524 else throw("Only a freelancer can indicate that the work is done")
443525 }
444- let aV = ((K - ab) > ao)
445- if ((ah == k))
446- then if (aV)
526+ let bo = ((K - ad) > aG)
527+ if ((al == j))
528+ then if (bo)
447529 then {
448- let ar = ((((((((((ag[1] + "_") + ag[2]) + "_") + ag[3]) + "_") + ag[4]) + "_") + ag[5]) + "_") + ag[6])
449- WriteSet([DataEntry(x, (n + ar))])
530+ let aJ = ((((((((((ak[1] + "_") + ak[2]) + "_") + ak[3]) + "_") + ak[4]) + "_") + ak[5]) + "_") + ak[6])
531+ WriteSet([DataEntry(aj, (m + aJ))])
450532 }
451533 else {
452- let ar = ((((((((((ag[1] + "_") + ag[2]) + "_") + ag[3]) + "_") + ag[4]) + "_") + ag[5]) + "_") + ag[6])
453- WriteSet([DataEntry(x, (l + ar))])
534+ let aJ = ((((((((((ak[1] + "_") + ak[2]) + "_") + ak[3]) + "_") + ak[4]) + "_") + ak[5]) + "_") + ak[6])
535+ WriteSet([DataEntry(aj, (k + aJ))])
454536 }
455537 else throw("Auction state is incorrect")
456538 }
457539
458540
459541
460542 @Callable(U)
461-func acceptByCustomer (x) = {
462- let ag = w(x)
463- let ah = ag[0]
464- let Z = ag[1]
465- let F = ag[4]
466- let I = parseIntValue(ag[5])
467- let at = ag[6]
543+func acceptByCustomer (w) = {
544+ let aj = v(w)
545+ let ak = x(aj)
546+ 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]
468551 let T = toBase58String(U.callerPublicKey)
469- let P = ((I * 3) / 100)
470- let an = (I - P)
471- let ai = E(F)
472- let aW = {
473- let aX = getInteger(this, (at + "_Rating"))
474- let aY = {
475- let A = aX
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
476559 if ($isInstanceOf(A, "Int"))
477560 then {
478561 let z = A
479562 z
480563 }
481564 else 0
482565 }
483- (aY + 1)
566+ (br + 1)
484567 }
485- if ((T == Z))
486- then if ((ah == l))
568+ if ((T == aa))
569+ then if ((al == k))
487570 then {
488- let ar = ((((((((((ag[1] + "_") + ag[2]) + "_") + ag[3]) + "_") + ag[4]) + "_") + ag[5]) + "_") + ag[6])
489- ScriptResult(WriteSet([DataEntry(x, (m + ar)), DataEntry((at + "_Rating"), aW)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(at)), an, ai)]))
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)]))
490573 }
491- else throw(("Incorrect state. Must be: " + l))
574+ else throw(("Incorrect state. Must be: " + k))
492575 else throw("Only auction customer can use this function")
493576 }
494577
495578
496-@Verifier(aZ)
497-func ba () = if (sigVerify(aZ.bodyBytes, aZ.proofs[0], aZ.senderPublicKey))
579+@Verifier(bs)
580+func bt () = if (sigVerify(bs.bodyBytes, bs.proofs[0], bs.senderPublicKey))
498581 then {
499- let A = aZ
582+ let A = bs
500583 if ($isInstanceOf(A, "TransferTransaction"))
501584 then {
502- let bb = A
585+ let bu = A
503586 true
504587 }
505588 else if ($isInstanceOf(A, "SetScriptTransaction"))
506589 then {
507- let bc = A
590+ let bv = A
508591 true
509592 }
510593 else false
511594 }
512595 else false
513596

github/deemru/w8io/026f985 
225.65 ms