tx · BzLDAiFw74yJHL88bsWeVxL3LNFiL3j3PUXYeYkDUZNV

3N3PDiDHb1AJU8tTXJLcvoDNP29fdGNNWqs:  -0.05000000 Waves

2019.12.25 11:04 [824264] smart account 3N3PDiDHb1AJU8tTXJLcvoDNP29fdGNNWqs > SELF 0.00000000 Waves

{ "type": 13, "id": "BzLDAiFw74yJHL88bsWeVxL3LNFiL3j3PUXYeYkDUZNV", "fee": 5000000, "feeAssetId": null, "timestamp": 1577257457538, "version": 1, "sender": "3N3PDiDHb1AJU8tTXJLcvoDNP29fdGNNWqs", "senderPublicKey": "5uHVezdnBEVjiWnLWW7VW2bPp8P5h6zdbha2dfHgHytt", "proofs": [ "eB6ktzZ5hdptXLgyXQnSmFL9titZDqX4Mx1aKqjoQxZuWe5iia2SaH9KmJepFZchwdy1W5rMxF8xZoJ1bmHFqci" ], "script": "base64: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YmFua18FAAAABHRhc2sBAAAAEGdldFZhbHVlVGFza0JhbmsAAAABAAAABHRhc2sJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAA5nZXRLZXlUYXNrQmFuawAAAAEFAAAABHRhc2sBAAAAFGdldEtleVRhc2tGcmVlbGFuY2VyAAAAAQAAAAR0YXNrCQABLAAAAAICAAAAC2ZyZWVsYW5jZXJfBQAAAAR0YXNrAQAAABZnZXRWYWx1ZVRhc2tGcmVlbGFuY2VyAAAAAQAAAAR0YXNrCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAUZ2V0S2V5VGFza0ZyZWVsYW5jZXIAAAABBQAAAAR0YXNrAQAAABBnZXRLZXlUYXNrU3RhdHVzAAAAAQAAAAR0YXNrCQABLAAAAAICAAAAB3N0YXR1c18FAAAABHRhc2sBAAAAEmdldFZhbHVlVGFza1N0YXR1cwAAAAEAAAAEdGFzawkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEGdldEtleVRhc2tTdGF0dXMAAAABBQAAAAR0YXNrAQAAABRnZXRLZXlUYXNrRXhwaXJhdGlvbgAAAAEAAAAEdGFzawkAASwAAAACAgAAABFleHBpcmF0aW9uX2Jsb2NrXwUAAAAEdGFzawEAAAANZ2V0S2V5VXNlckJpbwAAAAEAAAAHYWNjb3VudAkAASwAAAACAgAAAAl1c2VyX2Jpb18FAAAAB2FjY291bnQBAAAAD2dldFZhbHVlVXNlckJpbwAAAAEAAAAHYWNjb3VudAkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAADWdldEtleVVzZXJCaW8AAAABBQAAAAdhY2NvdW50AQAAABBnZXRLZXlVc2VyU3RhdHVzAAAAAQAAAAdhY2NvdW50CQABLAAAAAICAAAACXVzZXJfc3RzXwUAAAAHYWNjb3VudAEAAAASZ2V0VmFsdWVVc2VyU3RhdHVzAAAAAQAAAAdhY2NvdW50CQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAQZ2V0S2V5VXNlclN0YXR1cwAAAAEFAAAAB2FjY291bnQBAAAAD2dldEtleVVzZXJCbG9jawAAAAEAAAAHYWNjb3VudAkAASwAAAACAgAAAAl1c2VyX2Jsa18FAAAAB2FjY291bnQBAAAA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dW50BQAAAAROT05FCQAAAgAAAAECAAAAD1VzZXIgbm90IHNpZ251cAMJAQAAAAIhPQAAAAIFAAAAB2FkZHJlc3MFAAAAB2FjY291bnQJAAACAAAAAQIAAAAcWW91J3JlIG5vdCB0aGUgYWNjb3VudCBvd25lcgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAADWdldEtleVVzZXJCaW8AAAABBQAAAAdhY2NvdW50BQAAAARkYXRhBQAAAANuaWwAAAABaQEAAAAScmVwb3J0Q29tcGxldGVUYXNrAAAAAQAAAAR0YXNrBAAAAAdhY2NvdW50CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAABXN0YWdlCQAAZAAAAAIJAQAAAB1nZXRWYWx1ZVRhc2tSZXBvcnRDb21wbGV0ZUNudAAAAAIFAAAABHRhc2sFAAAAB2FjY291bnQAAAAAAAAAAAEEAAAAC3Rhc2tDcmVhdG9yCQEAAAASZ2V0VmFsdWVUYXNrQXV0aG9yAAAAAQUAAAAEdGFzawQAAAAVZnJlZWxhbmNlck1lc3NhZ2VzQ250CQEAAAAXZ2V0VmFsdWVVc2VyTWVzc2FnZXNDbnQAAAACBQAAAAdhY2NvdW50BQAAAAt0YXNrQ3JlYXRvcgQAAAAVbGFzdEZyZWVsYW5jZXJNZXNzYWdlCQEAAAATZ2V0VmFsdWVVc2VyTWVzc2FnZQAAAAMFAAAAB2FjY291bnQFAAAAC3Rhc2tDcmVhdG9yCQABpAAAAAEFAAAAFWZyZWVsYW5jZXJNZXNzYWdlc0NudAMJAAAAAAAAAgkBAAAAFmdldFZhbHVlVGFza0ZyZWVsYW5jZXIAAAABBQAAAAR0YXNrBQAAAAdhY2NvdW50CQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAYZ2V0S2V5VGFza1JlcG9ydENvbXBsZXRlAAAAAwUAAAAHYWNjb3VudAUAAAAEdGFzawkAAaQAAAABBQAAAAVzdGFnZQUAAAAVZnJlZWxhbmNlck1lc3NhZ2VzQ250CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAQZ2V0S2V5VGFza1N0YXR1cwAAAAEFAAAABHRhc2sFAAAAB1BFTkRJTkcFAAAAA25pbAMJAAAAAAAAAgkBAAAAFmdldFZhbHVlVGFza0ZyZWVsYW5jZXIAAAABBQAAAAR0YXNrBQAAAAROT05FCQAAAgAAAAECAAAAHFRhc2sgZnJlZWxhbmNlciBkb2VzbnQgZXhpc3QDCQAAAAAAAAIJAQAAABJnZXRWYWx1ZVRhc2tBdXRob3IAAAABBQAAAAR0YXNrBQAAAAdhY2NvdW50CQAAAgAAAAECAAAADllvdSBhcmUgYXV0aG9yCQAAAgAAAAECAAAACEVycm9yICMxAAAAAWkBAAAACmFjY2VwdFdvcmsAAAACAAAABHRhc2sAAAAIY29tcGxldGUEAAAAB2FjY291bnQJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAHY3JlYXRvcgkBAAAAEmdldFZhbHVlVGFza0F1dGhvcgAAAAEFAAAABHRhc2sEAAAACmZyZWVsYW5jZXIJAQAAABZnZXRWYWx1ZVRhc2tGcmVlbGFuY2VyAAAAAQUAAAAEdGFzawQAAAAFc3RhZ2UJAQAAAB1nZXRWYWx1ZVRhc2tSZXBvcnRDb21wbGV0ZUNudAAAAAIFAAAABHRhc2sFAAAACmZyZWVsYW5jZXIEAAAABGJhbmsJAQAAABBnZXRWYWx1ZVRhc2tCYW5rAAAAAQUAAAAEdGFzawQAAAAHcGF5bWVudAkAAGUAAAACBQAAAARiYW5rCQAAaQAAAAIJAABoAAAAAgUAAAAEYmFuawUAAAAKREVDUllCRUZFRQAAAAAAAAAAZAQAAAADcG10CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQEAAAACXBtdEFtb3VudAgFAAAAA3BtdAAAAAZhbW91bnQDCQAAAAAAAAIFAAAAB2FjY291bnQFAAAAB2NyZWF0b3IDCQEAAAACIT0AAAACBQAAAAVzdGFnZQAAAAAAAAAAAAMFAAAACGNvbXBsZXRlCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEGdldEtleVRhc2tTdGF0dXMAAAABBQAAAAR0YXNrBQAAAAlDT01QTEVURUQFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAACmZyZWVsYW5jZXIFAAAAB3BheW1lbnQFAAAABHVuaXQFAAAAA25pbAkAAAIAAAABAgAAAAZDYW5jZWwJAAACAAAAAQIAAAAjRnJlZWxhbmNlciBkb2VzbnQgY29tcGxldGUgdGhlIHRhc2sDCQAAAAAAAAIJAQAAABBnZXRWYWx1ZVRhc2tEYXRhAAAAAQUAAAAEdGFzawUAAAAETk9ORQkAAAIAAAABAgAAABFUYXNrIGRvZXNudCBleGlzdAMJAAAAAAAAAgkBAAAAD2dldFZhbHVlVXNlckJpbwAAAAEFAAAAB2FjY291bnQFAAAABE5PTkUJAAACAAAAAQIAAAARU2VuZGVyIG5vdCBzaWdudXAJAAACAAAAAQIAAAASWW91IGFyZSBub3QgYXV0aG9yAAAAAO4clCk=", "chainId": 84, "height": 824264, "spentComplexity": 0 } View: original | compacted Prev: Bey7758WbWZFaU2aLj1ZA8rSVrR6gt9XN6rRcXMdjKVW Next: 8MyAch9Zhr2BkZewoYvZNLhAR4WZFyBpJmRriY9v19y9 Diff:
OldNewDifferences
77
88 let c = ""
99
10-let d = (1 * 100000000)
10+let d = "mod"
1111
12-let e = "mod"
12+let e = "registered"
1313
14-let f = "registered"
14+let f = "admin"
1515
16-let g = "admin"
16+let g = "in progress"
1717
18-let h = "in progress"
18+let h = "completed"
1919
20-func i (j) = {
21- let k = {
22- let l = getString(this, j)
23- if ($isInstanceOf(l, "String"))
20+let i = "pending"
21+
22+let j = "in dispute"
23+
24+let k = "revision"
25+
26+let l = 5
27+
28+func m (n) = {
29+ let o = {
30+ let p = getString(this, n)
31+ if ($isInstanceOf(p, "String"))
2432 then {
25- let m = l
26- m
33+ let q = p
34+ q
2735 }
2836 else a
29- }
30- k
31- }
32-
33-
34-func n (j) = {
35- let o = {
36- let l = getInteger(this, j)
37- if ($isInstanceOf(l, "Int"))
38- then {
39- let m = l
40- m
41- }
42- else 0
4337 }
4438 o
4539 }
4640
4741
48-func p (q,r) = ((("msg_cnt_" + q) + "_") + r)
42+func r (n) = {
43+ let s = {
44+ let p = getInteger(this, n)
45+ if ($isInstanceOf(p, "Int"))
46+ then {
47+ let q = p
48+ q
49+ }
50+ else 0
51+ }
52+ s
53+ }
4954
5055
51-func s (q,r) = n(p(q, r))
56+func t (u,v) = ((("msg_cnt_" + u) + "_") + v)
5257
5358
54-func t (q,r,u) = ((((("msg_" + q) + "_") + r) + "_id:") + u)
59+func w (u,v) = r(t(u, v))
5560
5661
57-func v (q,r,w) = i(t(q, r, w))
62+func x (u,v,y) = ((((("msg_" + u) + "_") + v) + "_id:") + y)
5863
5964
60-func x (q,r,w) = ((((("block_msg_" + q) + "_") + r) + "_id:") + w)
65+func z (u,v,A) = m(x(u, v, A))
6166
6267
63-func y (z) = ("datajson_" + z)
68+func B (u,v,A) = ((((("block_msg_" + u) + "_") + v) + "_id:") + A)
6469
6570
66-func A (z) = i(y(z))
71+func C (u,v,A) = m(B(u, v, A))
6772
6873
69-func B (z) = ("author_" + z)
74+func D (E) = ("datajson_" + E)
7075
7176
72-func C (z) = i(B(z))
77+func F (E) = m(D(E))
7378
7479
75-func D (z) = ("block_" + z)
80+func G (E) = ("author_" + E)
7681
7782
78-func E (z) = ("bank_" + z)
83+func H (E) = m(G(E))
7984
8085
81-func F (z) = ("freelancer_" + z)
86+func I (E) = ("block_" + E)
8287
8388
84-func G (z) = i(F(z))
89+func J (E) = ("bank_" + E)
8590
8691
87-func H (z) = ("status_" + z)
92+func K (E) = r(J(E))
8893
8994
90-func I (z) = i(H(z))
95+func L (E) = ("freelancer_" + E)
9196
9297
93-func J (z) = ("expiration_block_" + z)
98+func M (E) = m(L(E))
9499
95100
96-func K (L) = ("user_bio_" + L)
101+func N (E) = ("status_" + E)
97102
98103
99-func M (L) = i(K(L))
104+func O (E) = m(N(E))
100105
101106
102-func N (L) = ("user_sts_" + L)
107+func P (E) = ("expiration_block_" + E)
103108
104109
105-func O (L) = i(N(L))
110+func Q (R) = ("user_bio_" + R)
106111
107112
108-func P (L) = ("user_blk_" + L)
113+func S (R) = m(Q(R))
109114
110115
111-@Callable(Q)
112-func createTask (z,R,S) = {
113- let L = toBase58String(Q.caller.bytes)
114- let T = extract(Q.payment)
115- if (isDefined(T.assetId))
116+func T (R) = ("user_sts_" + R)
117+
118+
119+func U (R) = m(T(R))
120+
121+
122+func V (R) = ("user_blk_" + R)
123+
124+
125+func W (X,E,Y) = ((((("rc_" + E) + "_") + X) + "_stage:") + Y)
126+
127+
128+func Z (X,E,Y) = m(W(X, E, Y))
129+
130+
131+func aa (E,X) = ((("rc_cnt_" + E) + "_") + X)
132+
133+
134+func ab (E,X) = r(aa(E, X))
135+
136+
137+@Callable(ac)
138+func createTask (E,ad,ae) = {
139+ let R = toBase58String(ac.caller.bytes)
140+ let af = extract(ac.payment)
141+ let ag = af.amount
142+ if (isDefined(af.assetId))
116143 then throw("Can use waves only at the moment")
117- else if ((T.amount != d))
118- then throw(((("Please pay exact amount for the listing: " + toString(d)) + ", actual payment is: ") + toString(T.amount)))
119- else if ((C(z) != a))
144+ else if ((ag == 0))
145+ then throw("Amount must be higher then 0")
146+ else if ((H(E) != a))
120147 then throw("Task already exist")
121- else if ((M(L) == a))
148+ else if ((S(R) == a))
122149 then throw("User not signup")
123- else WriteSet([DataEntry(B(z), L), DataEntry(D(z), height), DataEntry(J(z), (height + R)), DataEntry(E(z), d), DataEntry(H(z), b), DataEntry(y(z), S)])
150+ else WriteSet([DataEntry(G(E), R), DataEntry(I(E), height), DataEntry(P(E), (height + ad)), DataEntry(J(E), af.amount), DataEntry(N(E), b), DataEntry(D(E), ae)])
124151 }
125152
126153
127154
128-@Callable(Q)
129-func signUp (S) = {
130- let L = toBase58String(Q.caller.bytes)
131- if ((M(L) != a))
155+@Callable(ac)
156+func signUp (ae) = {
157+ let R = toBase58String(ac.caller.bytes)
158+ if ((S(R) != a))
132159 then throw("User already exist")
133- else WriteSet([DataEntry(K(L), S), DataEntry(P(L), height), DataEntry(N(L), f)])
160+ else WriteSet([DataEntry(Q(R), ae), DataEntry(V(R), height), DataEntry(T(R), e)])
134161 }
135162
136163
137164
138-@Callable(Q)
139-func hireFreelancer (z,U,S) = {
140- let L = toBase58String(Q.caller.bytes)
141- if ((A(z) == a))
165+@Callable(ac)
166+func hireFreelancer (E,X,ae) = {
167+ let R = toBase58String(ac.caller.bytes)
168+ if ((F(E) == a))
142169 then throw("Task doesnt exist")
143- else if ((M(L) == a))
170+ else if ((S(R) == a))
144171 then throw("Customer not signup")
145- else if ((M(U) == a))
172+ else if ((S(X) == a))
146173 then throw("Freelancer not signup")
147- else if ((C(z) != L))
174+ else if ((H(E) != R))
148175 then throw("You're not author")
149- else if ((I(z) == h))
176+ else if ((O(E) == g))
150177 then throw("Freelancer is no longer required (the task is already in progress)")
151- else if ((U == L))
178+ else if ((X == R))
152179 then throw("You can't hire yourself")
153- else WriteSet([DataEntry(F(z), U), DataEntry(y(z), S), DataEntry(H(z), h)])
180+ else WriteSet([DataEntry(L(E), X), DataEntry(D(E), ae), DataEntry(N(E), g)])
154181 }
155182
156183
157184
158-@Callable(Q)
159-func sendMessage (z,r,V) = {
160- let L = toBase58String(Q.caller.bytes)
161- let w = (s(L, r) + 1)
162- if ((A(z) == a))
185+@Callable(ac)
186+func sendMessage (E,v,ah) = {
187+ let R = toBase58String(ac.caller.bytes)
188+ let A = (w(R, v) + 1)
189+ if ((F(E) == a))
163190 then throw("Task doesnt exist")
164- else if ((L == r))
191+ else if ((R == v))
165192 then throw("You can't hire yourself")
166- else if ((M(L) == a))
193+ else if ((S(R) == a))
167194 then throw("Sender not signup")
168- else if ((M(r) == a))
195+ else if ((S(v) == a))
169196 then throw("Recipient not singup")
170- else if ((I(z) == h))
171- then throw("Freelancer is no longer required (the task is already in progress)")
172- else WriteSet([DataEntry(p(L, r), w), DataEntry(t(L, r, toString(w)), V), DataEntry(x(L, r, toString(w)), height)])
197+ else if ((O(E) == g))
198+ then throw("The task is already in progress/pending/completed/in dispute")
199+ else WriteSet([DataEntry(t(R, v), A), DataEntry(x(R, v, toString(A)), ah), DataEntry(B(R, v, toString(A)), height)])
173200 }
174201
175202
176203
177-@Callable(Q)
178-func taskUpdate (z,S,W) = {
179- let L = toBase58String(Q.caller.bytes)
180- if ((A(z) == a))
204+@Callable(ac)
205+func taskUpdate (E,ae,ai) = {
206+ let R = toBase58String(ac.caller.bytes)
207+ if ((F(E) == a))
181208 then throw("Task doesnt exist")
182- else if ((C(z) != L))
209+ else if ((H(E) != R))
183210 then throw("You're not author")
184- else if ((I(z) == h))
211+ else if ((O(E) == g))
185212 then throw("Editing tasks is not available after hiring a freelancer")
186- else WriteSet([DataEntry(y(z), S)])
213+ else WriteSet([DataEntry(D(E), ae)])
187214 }
188215
189216
190217
191-@Callable(Q)
192-func userUpdate (X,S) = {
193- let L = toBase58String(Q.caller.bytes)
194- if ((M(L) == a))
218+@Callable(ac)
219+func userUpdate (aj,ae) = {
220+ let R = toBase58String(ac.caller.bytes)
221+ if ((S(R) == a))
195222 then throw("User not signup")
196- else if ((X != L))
223+ else if ((aj != R))
197224 then throw("You're not the account owner")
198- else WriteSet([DataEntry(K(L), S)])
225+ else WriteSet([DataEntry(Q(R), ae)])
226+ }
227+
228+
229+
230+@Callable(ac)
231+func reportCompleteTask (E) = {
232+ let R = toBase58String(ac.caller.bytes)
233+ let Y = (ab(E, R) + 1)
234+ let ak = H(E)
235+ let al = w(R, ak)
236+ let am = z(R, ak, toString(al))
237+ if ((M(E) == R))
238+ then WriteSet([DataEntry(W(R, E, toString(Y)), al), DataEntry(N(E), i)])
239+ else if ((M(E) == a))
240+ then throw("Task freelancer doesnt exist")
241+ else if ((H(E) == R))
242+ then throw("You are author")
243+ else throw("Error #1")
244+ }
245+
246+
247+
248+@Callable(ac)
249+func acceptWork (E,an) = {
250+ let R = toBase58String(ac.caller.bytes)
251+ let ao = H(E)
252+ let X = M(E)
253+ let Y = ab(E, X)
254+ let ap = K(E)
255+ let aq = (ap - ((ap * l) / 100))
256+ let af = extract(ac.payment)
257+ let ag = af.amount
258+ if ((R == ao))
259+ then if ((Y != 0))
260+ then if (an)
261+ then ScriptResult(WriteSet([DataEntry(N(E), h)]), TransferSet([ScriptTransfer(addressFromStringValue(X), aq, unit)]))
262+ else throw("Cancel")
263+ else throw("Freelancer doesnt complete the task")
264+ else if ((F(E) == a))
265+ then throw("Task doesnt exist")
266+ else if ((S(R) == a))
267+ then throw("Sender not signup")
268+ else throw("You are not author")
199269 }
200270
201271
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "none"
55
66 let b = "featured"
77
88 let c = ""
99
10-let d = (1 * 100000000)
10+let d = "mod"
1111
12-let e = "mod"
12+let e = "registered"
1313
14-let f = "registered"
14+let f = "admin"
1515
16-let g = "admin"
16+let g = "in progress"
1717
18-let h = "in progress"
18+let h = "completed"
1919
20-func i (j) = {
21- let k = {
22- let l = getString(this, j)
23- if ($isInstanceOf(l, "String"))
20+let i = "pending"
21+
22+let j = "in dispute"
23+
24+let k = "revision"
25+
26+let l = 5
27+
28+func m (n) = {
29+ let o = {
30+ let p = getString(this, n)
31+ if ($isInstanceOf(p, "String"))
2432 then {
25- let m = l
26- m
33+ let q = p
34+ q
2735 }
2836 else a
29- }
30- k
31- }
32-
33-
34-func n (j) = {
35- let o = {
36- let l = getInteger(this, j)
37- if ($isInstanceOf(l, "Int"))
38- then {
39- let m = l
40- m
41- }
42- else 0
4337 }
4438 o
4539 }
4640
4741
48-func p (q,r) = ((("msg_cnt_" + q) + "_") + r)
42+func r (n) = {
43+ let s = {
44+ let p = getInteger(this, n)
45+ if ($isInstanceOf(p, "Int"))
46+ then {
47+ let q = p
48+ q
49+ }
50+ else 0
51+ }
52+ s
53+ }
4954
5055
51-func s (q,r) = n(p(q, r))
56+func t (u,v) = ((("msg_cnt_" + u) + "_") + v)
5257
5358
54-func t (q,r,u) = ((((("msg_" + q) + "_") + r) + "_id:") + u)
59+func w (u,v) = r(t(u, v))
5560
5661
57-func v (q,r,w) = i(t(q, r, w))
62+func x (u,v,y) = ((((("msg_" + u) + "_") + v) + "_id:") + y)
5863
5964
60-func x (q,r,w) = ((((("block_msg_" + q) + "_") + r) + "_id:") + w)
65+func z (u,v,A) = m(x(u, v, A))
6166
6267
63-func y (z) = ("datajson_" + z)
68+func B (u,v,A) = ((((("block_msg_" + u) + "_") + v) + "_id:") + A)
6469
6570
66-func A (z) = i(y(z))
71+func C (u,v,A) = m(B(u, v, A))
6772
6873
69-func B (z) = ("author_" + z)
74+func D (E) = ("datajson_" + E)
7075
7176
72-func C (z) = i(B(z))
77+func F (E) = m(D(E))
7378
7479
75-func D (z) = ("block_" + z)
80+func G (E) = ("author_" + E)
7681
7782
78-func E (z) = ("bank_" + z)
83+func H (E) = m(G(E))
7984
8085
81-func F (z) = ("freelancer_" + z)
86+func I (E) = ("block_" + E)
8287
8388
84-func G (z) = i(F(z))
89+func J (E) = ("bank_" + E)
8590
8691
87-func H (z) = ("status_" + z)
92+func K (E) = r(J(E))
8893
8994
90-func I (z) = i(H(z))
95+func L (E) = ("freelancer_" + E)
9196
9297
93-func J (z) = ("expiration_block_" + z)
98+func M (E) = m(L(E))
9499
95100
96-func K (L) = ("user_bio_" + L)
101+func N (E) = ("status_" + E)
97102
98103
99-func M (L) = i(K(L))
104+func O (E) = m(N(E))
100105
101106
102-func N (L) = ("user_sts_" + L)
107+func P (E) = ("expiration_block_" + E)
103108
104109
105-func O (L) = i(N(L))
110+func Q (R) = ("user_bio_" + R)
106111
107112
108-func P (L) = ("user_blk_" + L)
113+func S (R) = m(Q(R))
109114
110115
111-@Callable(Q)
112-func createTask (z,R,S) = {
113- let L = toBase58String(Q.caller.bytes)
114- let T = extract(Q.payment)
115- if (isDefined(T.assetId))
116+func T (R) = ("user_sts_" + R)
117+
118+
119+func U (R) = m(T(R))
120+
121+
122+func V (R) = ("user_blk_" + R)
123+
124+
125+func W (X,E,Y) = ((((("rc_" + E) + "_") + X) + "_stage:") + Y)
126+
127+
128+func Z (X,E,Y) = m(W(X, E, Y))
129+
130+
131+func aa (E,X) = ((("rc_cnt_" + E) + "_") + X)
132+
133+
134+func ab (E,X) = r(aa(E, X))
135+
136+
137+@Callable(ac)
138+func createTask (E,ad,ae) = {
139+ let R = toBase58String(ac.caller.bytes)
140+ let af = extract(ac.payment)
141+ let ag = af.amount
142+ if (isDefined(af.assetId))
116143 then throw("Can use waves only at the moment")
117- else if ((T.amount != d))
118- then throw(((("Please pay exact amount for the listing: " + toString(d)) + ", actual payment is: ") + toString(T.amount)))
119- else if ((C(z) != a))
144+ else if ((ag == 0))
145+ then throw("Amount must be higher then 0")
146+ else if ((H(E) != a))
120147 then throw("Task already exist")
121- else if ((M(L) == a))
148+ else if ((S(R) == a))
122149 then throw("User not signup")
123- else WriteSet([DataEntry(B(z), L), DataEntry(D(z), height), DataEntry(J(z), (height + R)), DataEntry(E(z), d), DataEntry(H(z), b), DataEntry(y(z), S)])
150+ else WriteSet([DataEntry(G(E), R), DataEntry(I(E), height), DataEntry(P(E), (height + ad)), DataEntry(J(E), af.amount), DataEntry(N(E), b), DataEntry(D(E), ae)])
124151 }
125152
126153
127154
128-@Callable(Q)
129-func signUp (S) = {
130- let L = toBase58String(Q.caller.bytes)
131- if ((M(L) != a))
155+@Callable(ac)
156+func signUp (ae) = {
157+ let R = toBase58String(ac.caller.bytes)
158+ if ((S(R) != a))
132159 then throw("User already exist")
133- else WriteSet([DataEntry(K(L), S), DataEntry(P(L), height), DataEntry(N(L), f)])
160+ else WriteSet([DataEntry(Q(R), ae), DataEntry(V(R), height), DataEntry(T(R), e)])
134161 }
135162
136163
137164
138-@Callable(Q)
139-func hireFreelancer (z,U,S) = {
140- let L = toBase58String(Q.caller.bytes)
141- if ((A(z) == a))
165+@Callable(ac)
166+func hireFreelancer (E,X,ae) = {
167+ let R = toBase58String(ac.caller.bytes)
168+ if ((F(E) == a))
142169 then throw("Task doesnt exist")
143- else if ((M(L) == a))
170+ else if ((S(R) == a))
144171 then throw("Customer not signup")
145- else if ((M(U) == a))
172+ else if ((S(X) == a))
146173 then throw("Freelancer not signup")
147- else if ((C(z) != L))
174+ else if ((H(E) != R))
148175 then throw("You're not author")
149- else if ((I(z) == h))
176+ else if ((O(E) == g))
150177 then throw("Freelancer is no longer required (the task is already in progress)")
151- else if ((U == L))
178+ else if ((X == R))
152179 then throw("You can't hire yourself")
153- else WriteSet([DataEntry(F(z), U), DataEntry(y(z), S), DataEntry(H(z), h)])
180+ else WriteSet([DataEntry(L(E), X), DataEntry(D(E), ae), DataEntry(N(E), g)])
154181 }
155182
156183
157184
158-@Callable(Q)
159-func sendMessage (z,r,V) = {
160- let L = toBase58String(Q.caller.bytes)
161- let w = (s(L, r) + 1)
162- if ((A(z) == a))
185+@Callable(ac)
186+func sendMessage (E,v,ah) = {
187+ let R = toBase58String(ac.caller.bytes)
188+ let A = (w(R, v) + 1)
189+ if ((F(E) == a))
163190 then throw("Task doesnt exist")
164- else if ((L == r))
191+ else if ((R == v))
165192 then throw("You can't hire yourself")
166- else if ((M(L) == a))
193+ else if ((S(R) == a))
167194 then throw("Sender not signup")
168- else if ((M(r) == a))
195+ else if ((S(v) == a))
169196 then throw("Recipient not singup")
170- else if ((I(z) == h))
171- then throw("Freelancer is no longer required (the task is already in progress)")
172- else WriteSet([DataEntry(p(L, r), w), DataEntry(t(L, r, toString(w)), V), DataEntry(x(L, r, toString(w)), height)])
197+ else if ((O(E) == g))
198+ then throw("The task is already in progress/pending/completed/in dispute")
199+ else WriteSet([DataEntry(t(R, v), A), DataEntry(x(R, v, toString(A)), ah), DataEntry(B(R, v, toString(A)), height)])
173200 }
174201
175202
176203
177-@Callable(Q)
178-func taskUpdate (z,S,W) = {
179- let L = toBase58String(Q.caller.bytes)
180- if ((A(z) == a))
204+@Callable(ac)
205+func taskUpdate (E,ae,ai) = {
206+ let R = toBase58String(ac.caller.bytes)
207+ if ((F(E) == a))
181208 then throw("Task doesnt exist")
182- else if ((C(z) != L))
209+ else if ((H(E) != R))
183210 then throw("You're not author")
184- else if ((I(z) == h))
211+ else if ((O(E) == g))
185212 then throw("Editing tasks is not available after hiring a freelancer")
186- else WriteSet([DataEntry(y(z), S)])
213+ else WriteSet([DataEntry(D(E), ae)])
187214 }
188215
189216
190217
191-@Callable(Q)
192-func userUpdate (X,S) = {
193- let L = toBase58String(Q.caller.bytes)
194- if ((M(L) == a))
218+@Callable(ac)
219+func userUpdate (aj,ae) = {
220+ let R = toBase58String(ac.caller.bytes)
221+ if ((S(R) == a))
195222 then throw("User not signup")
196- else if ((X != L))
223+ else if ((aj != R))
197224 then throw("You're not the account owner")
198- else WriteSet([DataEntry(K(L), S)])
225+ else WriteSet([DataEntry(Q(R), ae)])
226+ }
227+
228+
229+
230+@Callable(ac)
231+func reportCompleteTask (E) = {
232+ let R = toBase58String(ac.caller.bytes)
233+ let Y = (ab(E, R) + 1)
234+ let ak = H(E)
235+ let al = w(R, ak)
236+ let am = z(R, ak, toString(al))
237+ if ((M(E) == R))
238+ then WriteSet([DataEntry(W(R, E, toString(Y)), al), DataEntry(N(E), i)])
239+ else if ((M(E) == a))
240+ then throw("Task freelancer doesnt exist")
241+ else if ((H(E) == R))
242+ then throw("You are author")
243+ else throw("Error #1")
244+ }
245+
246+
247+
248+@Callable(ac)
249+func acceptWork (E,an) = {
250+ let R = toBase58String(ac.caller.bytes)
251+ let ao = H(E)
252+ let X = M(E)
253+ let Y = ab(E, X)
254+ let ap = K(E)
255+ let aq = (ap - ((ap * l) / 100))
256+ let af = extract(ac.payment)
257+ let ag = af.amount
258+ if ((R == ao))
259+ then if ((Y != 0))
260+ then if (an)
261+ then ScriptResult(WriteSet([DataEntry(N(E), h)]), TransferSet([ScriptTransfer(addressFromStringValue(X), aq, unit)]))
262+ else throw("Cancel")
263+ else throw("Freelancer doesnt complete the task")
264+ else if ((F(E) == a))
265+ then throw("Task doesnt exist")
266+ else if ((S(R) == a))
267+ then throw("Sender not signup")
268+ else throw("You are not author")
199269 }
200270
201271

github/deemru/w8io/873ac7e 
75.07 ms