tx · FqyjEYvywE8e6GKX4UhTgEYMt5bSGbLfwPrLps8Y4yBw
3N3PDiDHb1AJU8tTXJLcvoDNP29fdGNNWqs: -0.05000000 Waves
2019.12.30 15:16 [831805] smart account 3N3PDiDHb1AJU8tTXJLcvoDNP29fdGNNWqs > SELF 0.00000000 Waves
{
"type": 13,
"id": "FqyjEYvywE8e6GKX4UhTgEYMt5bSGbLfwPrLps8Y4yBw",
"fee": 5000000,
"feeAssetId": null,
"timestamp": 1577708127303,
"version": 1,
"sender": "3N3PDiDHb1AJU8tTXJLcvoDNP29fdGNNWqs",
"senderPublicKey": "5uHVezdnBEVjiWnLWW7VW2bPp8P5h6zdbha2dfHgHytt",
"proofs": [
"4cyyKLTBxiRkGdsBP8LPfLV6kCisJhDWV58av7dCNEjwCYwB3xiqMXn9ik75A7HS1djBpWb9jgkHNcZbigNmLmDD"
],
"script": "base64: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AAAEdGFzawkAASwAAAACAgAAAAZibG9ja18FAAAABHRhc2sBAAAAEWdldFZhbHVlVGFza0Jsb2NrAAAAAQAAAAR0YXNrCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAPZ2V0S2V5VGFza0Jsb2NrAAAAAQUAAAAEdGFzawEAAAAOZ2V0S2V5VGFza0JhbmsAAAABAAAABHRhc2sJAAEsAAAAAgIAAAAFYmFua18FAAAABHRhc2sBAAAAEGdldFZhbHVlVGFza0JhbmsAAAABAAAABHRhc2sJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAA5nZXRLZXlUYXNrQmFuawAAAAEFAAAABHRhc2sBAAAAFGdldEtleVRhc2tGcmVlbGFuY2VyAAAAAQAAAAR0YXNrCQABLAAAAAICAAAAC2ZyZWVsYW5jZXJfBQAAAAR0YXNrAQAAABZnZXRWYWx1ZVRhc2tGcmVlbGFuY2VyAAAAAQAAAAR0YXNrCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAUZ2V0S2V5VGFza0ZyZWVsYW5jZXIAAAABBQAAAAR0YXNrAQAAABBnZXRLZXlUYXNrU3RhdHVzAAAAAQAAAAR0YXNrCQABLAAAAAICAAAAB3N0YXR1c18FAAAABHRhc2sBAAAAEmdldFZhbHVlVGFza1N0YXR1cwAAAAEAAAAEdGFzawkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEGdldEtleVRhc2tTdGF0dXMAAAABBQAAAAR0YXNrAQAAABRnZXRLZXlUYXNrRXhwaXJhdGlvbgAAAAEAAAAEdGFzawkAASwAAAACAgAAABFleHBpcmF0aW9uX2Jsb2NrXwUAAAAEdGFzawEAAAAWZ2V0VmFsdWVUYXNrRXhwaXJhdGlvbgAAAAEAAAAEdGFzawkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFGdldEtleVRhc2tFeHBpcmF0aW9uAAAAAQUAAAAEdGFzawEAAAANZ2V0S2V5VXNlckJpbwAAAAEAAAAHYWNjb3VudAkAASwAAAACAgAAAAl1c2VyX2Jpb18FAAAAB2FjY291bnQBAAAAD2dldFZhbHVlVXNlckJpbwAAAAEAAAAHYWNjb3VudAkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAADWdldEtleVVzZXJCaW8AAAABBQAAAAdhY2NvdW50AQAAABBnZXRLZXlVc2VyU3RhdHVzAAAAAQAAAAdhY2NvdW50CQABLAAAAAICAAAACXVzZXJfc3RzXwUAAAAHYWNjb3VudAEAAAASZ2V0VmFsdWVVc2VyU3RhdHVzAAAAAQAAAAdhY2NvdW50CQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAQZ2V0S2V5VXNlclN0YXR1cwAAAAEFAAAAB2FjY291bnQBAAAAD2dldEtleVVzZXJCbG9jawAAAAEAAAAHYWNjb3VudAkAASwAAAACAgAAAAl1c2VyX2Jsa18FAAAAB2FjY291bnQBAAAAGGdldEtleVRhc2tSZXBvcnRDb21wbGV0ZQAAAAMAAAAKZnJlZWxhbmNlcgAAAAR0YXNrAAAABXN0YWdlCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAADcmNfBQAAAAR0YXNrAgAAAAFfBQAAAApmcmVlbGFuY2VyAgAAAAdfc3RhZ2U6BQAAAAVzdGFnZQEAAAAaZ2V0VmFsdWVUYXNrUmVwb3J0Q29tcGxldGUAAAADAAAACmZyZWVsYW5jZXIAAAAEdGFzawAAAAVzdGFnZQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAGGdldEtleVRhc2tSZXBvcnRDb21wbGV0ZQAAAAMFAAAACmZyZWVsYW5jZXIFAAAABHRhc2sFAAAABXN0YWdlAQAAABtnZXRLZXlUYXNrUmVwb3J0Q29tcGxldGVDbnQAAAACAAAABHRhc2sAAAAKZnJlZWxhbmNlcgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAHcmNfY250XwUAAAAEdGFzawIAAAABXwUAAAAKZnJlZWxhbmNlcgEAAAAdZ2V0VmFsdWVUYXNrUmVwb3J0Q29tcGxldGVDbnQAAAACAAAABHRhc2sAAAAKZnJlZWxhbmNlcgkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAG2dldEtleVRhc2tSZXBvcnRDb21wbGV0ZUNudAAAAAIFAAAABHRhc2sFAAAACmZyZWVsYW5jZXIBAAAAFGdldEtleURlY3J5YmVCYWxhbmNlAAAAAAIAAAAPZGVjcnliZV9i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AA9Vc2VyIG5vdCBzaWdudXAJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA1nZXRLZXlVc2VyQmlvAAAAAQUAAAAHYWNjb3VudAUAAAAEZGF0YQUAAAADbmlsAAAAAWkBAAAAEnJlcG9ydENvbXBsZXRlVGFzawAAAAEAAAAEdGFzawQAAAAHYWNjb3VudAkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAVzdGFnZQkAAGQAAAACCQEAAAAdZ2V0VmFsdWVUYXNrUmVwb3J0Q29tcGxldGVDbnQAAAACBQAAAAR0YXNrBQAAAAdhY2NvdW50AAAAAAAAAAABBAAAAAt0YXNrQ3JlYXRvcgkBAAAAEmdldFZhbHVlVGFza0F1dGhvcgAAAAEFAAAABHRhc2sEAAAABnN0YXR1cwkBAAAAEmdldFZhbHVlVGFza1N0YXR1cwAAAAEFAAAABHRhc2sEAAAAFWZyZWVsYW5jZXJNZXNzYWdlc0NudAkBAAAAF2dldFZhbHVlVXNlck1lc3NhZ2VzQ250AAAAAgUAAAAHYWNjb3VudAUAAAALdGFza0NyZWF0b3IEAAAAFWxhc3RGcmVlbGFuY2VyTWVzc2FnZQkBAAAAE2dldFZhbHVlVXNlck1lc3NhZ2UAAAADBQAAAAdhY2NvdW50BQAAAAt0YXNrQ3JlYXRvcgkAAaQAAAABBQAAABVmcmVlbGFuY2VyTWVzc2FnZXNDbnQDCQAAAAAAAAIJAQAAABZnZXRWYWx1ZVRhc2tGcmVlbGFuY2VyAAAAAQUAAAAEdGFzawUAAAAHYWNjb3VudAMJAAAAAAAAAgUAAAAGc3RhdHVzBQAAAApJTlBST0dSRVNTCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAYZ2V0S2V5VGFza1JlcG9ydENvbXBsZXRlAAAAAwUAAAAHYWNjb3VudAUAAAAEdGFzawkAAaQAAAABBQAAAAVzdGFnZQUAAAAVZnJlZWxhbmNlck1lc3NhZ2VzQ250CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAQZ2V0S2V5VGFza1N0YXR1cwAAAAEFAAAABHRhc2sFAAAAB1BFTkRJTkcFAAAAA25pbAMJAAAAAAAAAgUAAAAGc3RhdHVzBQAAAAlDT01QTEVURUQJAAACAAAAAQIAAAAmWW91J3ZlIGFscmVhZHkgYmVlbiBwYWlkIGZvciB5b3VyIHdvcmsJAAACAAAAAQIAAAAdVGhlIHdvcmsgaXMgYXdhaXRpbmcgYXBwcm92YWwDCQAAAAAAAAIJAQAAABZnZXRWYWx1ZVRhc2tGcmVlbGFuY2VyAAAAAQUAAAAEdGFzawUAAAAETk9ORQkAAAIAAAABAgAAABxUYXNrIGZyZWVsYW5jZXIgZG9lc250IGV4aXN0AwkAAAAAAAACCQEAAAASZ2V0VmFsdWVUYXNrQXV0aG9yAAAAAQUAAAAEdGFzawUAAAAHYWNjb3VudAkAAAIAAAABAgAAAA5Zb3UgYXJlIGF1dGhvcgkAAAIAAAABAgAAAAhFcnJvciAjMQAAAAFpAQAAAAphY2NlcHRXb3JrAAAAAgAAAAR0YXNrAAAACGNvbXBsZXRlBAAAAAdhY2NvdW50CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAB2NyZWF0b3IJAQAAABJnZXRWYWx1ZVRhc2tBdXRob3IAAAABBQAAAAR0YXNrBAAAAApmcmVlbGFuY2VyCQEAAAAWZ2V0VmFsdWVUYXNrRnJlZWxhbmNlcgAAAAEFAAAABHRhc2sEAAAABXN0YWdlCQEAAAAdZ2V0VmFsdWVUYXNrUmVwb3J0Q29tcGxldGVDbnQAAAACBQAAAAR0YXNrBQAAAApmcmVlbGFuY2VyBAAAAAZzdGF0dXMJAQAAABJnZXRWYWx1ZVRhc2tTdGF0dXMAAAABBQAAAAR0YXNrBAAAAARiYW5rCQEAAAAQZ2V0VmFsdWVUYXNrQmFuawAAAAEFAAAABHRhc2sDCQAAAAAAAAIFAAAAB2FjY291bnQFAAAAB2NyZWF0b3IDCQAAAAAAAAIFAAAABnN0YXR1cwUAAAAHUEVORElORwMFAAAACGNvbXBsZXRlCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEGdldEtleVRhc2tTdGF0dXMAAAABBQAAAAR0YXNrBQAAAAlDT01QTEVURUQFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAACmZyZWVsYW5jZXIFAAAABGJhbmsFAAAABHVuaXQFAAAAA25pbAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEGdldEtleVRhc2tTdGF0dXMAAAABBQAAAAR0YXNrBQAAAApJTlBST0dSRVNTBQAAAANuaWwJAAACAAAAAQIAAAAjRnJlZWxhbmNlciBkb2VzbnQgY29tcGxldGUgdGhlIHRhc2sDCQAAAAAAAAIJAQAAABBnZXRWYWx1ZVRhc2tEYXRhAAAAAQUAAAAEdGFzawUAAAAETk9ORQkAAAIAAAABAgAAABFUYXNrIGRvZXNudCBleGlzdAMJAAAAAAAAAgkBAAAAD2dldFZhbHVlVXNlckJpbwAAAAEFAAAAB2FjY291bnQFAAAABE5PTkUJAAACAAAAAQIAAAARU2VuZGVyIG5vdCBzaWdudXAJAAACAAAAAQIAAAASWW91IGFyZSBub3QgYXV0aG9yAAAAAWkBAAAADG1vdmVEZWFkbGluZQAAAAIAAAAEdGFzawAAAAhkZWFkbGluZQQAAAAHYWNjb3VudAkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAdjcmVhdG9yCQEAAAASZ2V0VmFsdWVUYXNrQXV0aG9yAAAAAQUAAAAEdGFzawQAAAAKZXhwaXJhdGlvbgkBAAAAFmdldFZhbHVlVGFza0V4cGlyYXRpb24AAAABBQAAAAR0YXNrBAAAAAZzdGF0dXMJAQAAABJnZXRWYWx1ZVRhc2tTdGF0dXMAAAABBQAAAAR0YXNrAwkBAAAAAiE9AAAAAgUAAAAGc3RhdHVzBQAAAAlDT01QTEVURUQJAAACAAAAAQIAAAAVVGhlIHRhc2sgaXMgY29tcGxldGVkAwkAAAAAAAACBQAAAAZzdGF0dXMFAAAACUlORElTUFVURQkAAAIAAAABAgAAACpZb3UgY2FuJ3QgY2hhbmdlIHRoZSBkZWFkbGluZSBhdCB0aGlzIHRpbWUDCQEAAAACIT0AAAACBQAAAAdhY2NvdW50BQAAAAdjcmVhdG9yCQAAAgAAAAECAAAAHllvdSBhcmUgbm90IGF1dGhvciBvZiB0aGUgdGFzawMJAABmAAAAAgUAAAAGaGVpZ2h0BQAAAAhkZWFkbGluZQkAAAIAAAABAgAAAChUaGUgZGVhZGxpbmUgbXVzdCBiZSA+IHRoZSBjdXJyZW50IGJsb2NrAwkAAGYAAAACBQAAAApleHBpcmF0aW9uBQAAAAhkZWFkbGluZQkAAAIAAAABAgAAACZUaGUgZGVhZGxpbmUgY2FuIG9ubHkgYmUgbW92ZWQgZm9yd2FyZAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFGdldEtleVRhc2tFeHBpcmF0aW9uAAAAAQUAAAAEdGFzawUAAAAIZGVhZGxpbmUFAAAAA25pbAAAAAB40Tzo",
"chainId": 84,
"height": 831805,
"spentComplexity": 0
}
View: original | compacted
Prev: 8pusnTpWde81VZhmwuhcMRHT5BGYmUjKmXkPG1GucGiG
Next: 56tjf7wUqNfMMZ6APKX7hqMjb98fzMEpkVgaw63kDvSb
Diff:
Old | New | | Differences |
---|
25 | 25 | | |
---|
26 | 26 | | let l = (2 / 100) |
---|
27 | 27 | | |
---|
28 | | - | func m (n) = { |
---|
29 | | - | let o = { |
---|
30 | | - | let p = getString(this, n) |
---|
31 | | - | if ($isInstanceOf(p, "String")) |
---|
| 28 | + | let m = 100000000 |
---|
| 29 | + | |
---|
| 30 | + | func n (o) = { |
---|
| 31 | + | let p = { |
---|
| 32 | + | let q = getString(this, o) |
---|
| 33 | + | if ($isInstanceOf(q, "String")) |
---|
32 | 34 | | then { |
---|
33 | | - | let q = p |
---|
34 | | - | q |
---|
| 35 | + | let r = q |
---|
| 36 | + | r |
---|
35 | 37 | | } |
---|
36 | 38 | | else a |
---|
37 | 39 | | } |
---|
38 | | - | o |
---|
| 40 | + | p |
---|
39 | 41 | | } |
---|
40 | 42 | | |
---|
41 | 43 | | |
---|
42 | | - | func r (n) = { |
---|
43 | | - | let s = { |
---|
44 | | - | let p = getInteger(this, n) |
---|
45 | | - | if ($isInstanceOf(p, "Int")) |
---|
| 44 | + | func s (o) = { |
---|
| 45 | + | let t = { |
---|
| 46 | + | let q = getInteger(this, o) |
---|
| 47 | + | if ($isInstanceOf(q, "Int")) |
---|
46 | 48 | | then { |
---|
47 | | - | let q = p |
---|
48 | | - | q |
---|
| 49 | + | let r = q |
---|
| 50 | + | r |
---|
49 | 51 | | } |
---|
50 | 52 | | else 0 |
---|
51 | 53 | | } |
---|
52 | | - | s |
---|
| 54 | + | t |
---|
53 | 55 | | } |
---|
54 | 56 | | |
---|
55 | 57 | | |
---|
56 | | - | func t (u,v) = ((("msg_cnt_" + u) + "_") + v) |
---|
| 58 | + | func u (v,w) = ((("msg_cnt_" + v) + "_") + w) |
---|
57 | 59 | | |
---|
58 | 60 | | |
---|
59 | | - | func w (u,v) = r(t(u, v)) |
---|
| 61 | + | func x (v,w) = s(u(v, w)) |
---|
60 | 62 | | |
---|
61 | 63 | | |
---|
62 | | - | func x (u,v,y) = ((((("msg_" + u) + "_") + v) + "_id:") + y) |
---|
| 64 | + | func y (v,w,z) = ((((("msg_" + v) + "_") + w) + "_id:") + z) |
---|
63 | 65 | | |
---|
64 | 66 | | |
---|
65 | | - | func z (u,v,A) = m(x(u, v, A)) |
---|
| 67 | + | func A (v,w,B) = n(y(v, w, B)) |
---|
66 | 68 | | |
---|
67 | 69 | | |
---|
68 | | - | func B (u,v,A) = ((((("block_msg_" + u) + "_") + v) + "_id:") + A) |
---|
| 70 | + | func C (v,w,B) = ((((("block_msg_" + v) + "_") + w) + "_id:") + B) |
---|
69 | 71 | | |
---|
70 | 72 | | |
---|
71 | | - | func C (u,v,A) = m(B(u, v, A)) |
---|
| 73 | + | func D (v,w,B) = n(C(v, w, B)) |
---|
72 | 74 | | |
---|
73 | 75 | | |
---|
74 | | - | func D (E) = ("datajson_" + E) |
---|
| 76 | + | func E (F) = ("datajson_" + F) |
---|
75 | 77 | | |
---|
76 | 78 | | |
---|
77 | | - | func F (E) = m(D(E)) |
---|
| 79 | + | func G (F) = n(E(F)) |
---|
78 | 80 | | |
---|
79 | 81 | | |
---|
80 | | - | func G (E) = ("author_" + E) |
---|
| 82 | + | func H (F) = ("author_" + F) |
---|
81 | 83 | | |
---|
82 | 84 | | |
---|
83 | | - | func H (E) = m(G(E)) |
---|
| 85 | + | func I (F) = n(H(F)) |
---|
84 | 86 | | |
---|
85 | 87 | | |
---|
86 | | - | func I (E) = ("block_" + E) |
---|
| 88 | + | func J (F) = ("block_" + F) |
---|
87 | 89 | | |
---|
88 | 90 | | |
---|
89 | | - | func J (E) = r(I(E)) |
---|
| 91 | + | func K (F) = s(J(F)) |
---|
90 | 92 | | |
---|
91 | 93 | | |
---|
92 | | - | func K (E) = ("bank_" + E) |
---|
| 94 | + | func L (F) = ("bank_" + F) |
---|
93 | 95 | | |
---|
94 | 96 | | |
---|
95 | | - | func L (E) = r(K(E)) |
---|
| 97 | + | func M (F) = s(L(F)) |
---|
96 | 98 | | |
---|
97 | 99 | | |
---|
98 | | - | func M (E) = ("freelancer_" + E) |
---|
| 100 | + | func N (F) = ("freelancer_" + F) |
---|
99 | 101 | | |
---|
100 | 102 | | |
---|
101 | | - | func N (E) = m(M(E)) |
---|
| 103 | + | func O (F) = n(N(F)) |
---|
102 | 104 | | |
---|
103 | 105 | | |
---|
104 | | - | func O (E) = ("status_" + E) |
---|
| 106 | + | func P (F) = ("status_" + F) |
---|
105 | 107 | | |
---|
106 | 108 | | |
---|
107 | | - | func P (E) = m(O(E)) |
---|
| 109 | + | func Q (F) = n(P(F)) |
---|
108 | 110 | | |
---|
109 | 111 | | |
---|
110 | | - | func Q (E) = ("expiration_block_" + E) |
---|
| 112 | + | func R (F) = ("expiration_block_" + F) |
---|
111 | 113 | | |
---|
112 | 114 | | |
---|
113 | | - | func R (E) = r(Q(E)) |
---|
| 115 | + | func S (F) = s(R(F)) |
---|
114 | 116 | | |
---|
115 | 117 | | |
---|
116 | | - | func S (T) = ("user_bio_" + T) |
---|
| 118 | + | func T (U) = ("user_bio_" + U) |
---|
117 | 119 | | |
---|
118 | 120 | | |
---|
119 | | - | func U (T) = m(S(T)) |
---|
| 121 | + | func V (U) = n(T(U)) |
---|
120 | 122 | | |
---|
121 | 123 | | |
---|
122 | | - | func V (T) = ("user_sts_" + T) |
---|
| 124 | + | func W (U) = ("user_sts_" + U) |
---|
123 | 125 | | |
---|
124 | 126 | | |
---|
125 | | - | func W (T) = m(V(T)) |
---|
| 127 | + | func X (U) = n(W(U)) |
---|
126 | 128 | | |
---|
127 | 129 | | |
---|
128 | | - | func X (T) = ("user_blk_" + T) |
---|
| 130 | + | func Y (U) = ("user_blk_" + U) |
---|
129 | 131 | | |
---|
130 | 132 | | |
---|
131 | | - | func Y (Z,E,aa) = ((((("rc_" + E) + "_") + Z) + "_stage:") + aa) |
---|
| 133 | + | func Z (aa,F,ab) = ((((("rc_" + F) + "_") + aa) + "_stage:") + ab) |
---|
132 | 134 | | |
---|
133 | 135 | | |
---|
134 | | - | func ab (Z,E,aa) = m(Y(Z, E, aa)) |
---|
| 136 | + | func ac (aa,F,ab) = n(Z(aa, F, ab)) |
---|
135 | 137 | | |
---|
136 | 138 | | |
---|
137 | | - | func ac (E,Z) = ((("rc_cnt_" + E) + "_") + Z) |
---|
| 139 | + | func ad (F,aa) = ((("rc_cnt_" + F) + "_") + aa) |
---|
138 | 140 | | |
---|
139 | 141 | | |
---|
140 | | - | func ad (E,Z) = r(ac(E, Z)) |
---|
| 142 | + | func ae (F,aa) = s(ad(F, aa)) |
---|
141 | 143 | | |
---|
142 | 144 | | |
---|
143 | | - | func ae () = "decrybe_balance" |
---|
| 145 | + | func af () = "decrybe_balance" |
---|
144 | 146 | | |
---|
145 | 147 | | |
---|
146 | | - | func af () = r(ae()) |
---|
| 148 | + | func ag () = s(af()) |
---|
147 | 149 | | |
---|
148 | 150 | | |
---|
149 | | - | @Callable(ag) |
---|
150 | | - | func withdrawDecrybeBalance (ah) = { |
---|
151 | | - | let T = toBase58String(ag.caller.bytes) |
---|
152 | | - | let ai = af() |
---|
153 | | - | if ((T == f)) |
---|
154 | | - | then if ((ai >= ah)) |
---|
155 | | - | then TransferSet([ScriptTransfer(addressFromStringValue(T), ah, unit)]) |
---|
156 | | - | else throw(("You cannot withdraw an amount greater than " + toString(ai))) |
---|
| 151 | + | @Callable(ah) |
---|
| 152 | + | func withdrawDecrybeBalance (ai) = { |
---|
| 153 | + | let U = toBase58String(ah.caller.bytes) |
---|
| 154 | + | let aj = ag() |
---|
| 155 | + | if ((U == f)) |
---|
| 156 | + | then if ((aj >= ai)) |
---|
| 157 | + | then TransferSet([ScriptTransfer(addressFromStringValue(U), ai, unit)]) |
---|
| 158 | + | else throw(("You cannot withdraw an amount greater than " + toString(aj))) |
---|
157 | 159 | | else throw("You can't do that") |
---|
158 | 160 | | } |
---|
159 | 161 | | |
---|
160 | 162 | | |
---|
161 | 163 | | |
---|
162 | | - | @Callable(ag) |
---|
163 | | - | func createTask (E,aj,ak) = { |
---|
164 | | - | let T = toBase58String(ag.caller.bytes) |
---|
165 | | - | let al = extract(ag.payment) |
---|
166 | | - | let am = al.amount |
---|
167 | | - | let an = (am / (1 + l)) |
---|
168 | | - | let ao = (am - an) |
---|
169 | | - | if (isDefined(al.assetId)) |
---|
| 164 | + | @Callable(ah) |
---|
| 165 | + | func createTask (F,ak,al) = { |
---|
| 166 | + | let U = toBase58String(ah.caller.bytes) |
---|
| 167 | + | let am = extract(ah.payment) |
---|
| 168 | + | let an = am.amount |
---|
| 169 | + | let ao = (an / ((1 * m) + l)) |
---|
| 170 | + | let ap = (an - ao) |
---|
| 171 | + | if (isDefined(am.assetId)) |
---|
170 | 172 | | then throw("Can use waves only at the moment") |
---|
171 | | - | else if ((am == 0)) |
---|
| 173 | + | else if ((an == 0)) |
---|
172 | 174 | | then throw("Amount must be higher then 0") |
---|
173 | | - | else if ((H(E) != a)) |
---|
| 175 | + | else if ((I(F) != a)) |
---|
174 | 176 | | then throw("Task already exist") |
---|
175 | | - | else if ((U(T) == a)) |
---|
| 177 | + | else if ((V(U) == a)) |
---|
176 | 178 | | then throw("User not signup") |
---|
177 | | - | else WriteSet([DataEntry(G(E), T), DataEntry(I(E), height), DataEntry(Q(E), (height + aj)), DataEntry(K(E), an), DataEntry(O(E), b), DataEntry(D(E), ak), DataEntry(ae(), (af() + ao))]) |
---|
| 179 | + | else WriteSet([DataEntry(H(F), U), DataEntry(J(F), height), DataEntry(R(F), (height + ak)), DataEntry(L(F), ao), DataEntry(P(F), b), DataEntry(E(F), al), DataEntry(af(), (ag() + ap))]) |
---|
178 | 180 | | } |
---|
179 | 181 | | |
---|
180 | 182 | | |
---|
181 | 183 | | |
---|
182 | | - | @Callable(ag) |
---|
183 | | - | func signUp (ak) = { |
---|
184 | | - | let T = toBase58String(ag.caller.bytes) |
---|
185 | | - | if ((U(T) != a)) |
---|
| 184 | + | @Callable(ah) |
---|
| 185 | + | func signUp (al) = { |
---|
| 186 | + | let U = toBase58String(ah.caller.bytes) |
---|
| 187 | + | if ((V(U) != a)) |
---|
186 | 188 | | then throw("User already exist") |
---|
187 | | - | else WriteSet([DataEntry(S(T), ak), DataEntry(X(T), height), DataEntry(V(T), e)]) |
---|
| 189 | + | else WriteSet([DataEntry(T(U), al), DataEntry(Y(U), height), DataEntry(W(U), e)]) |
---|
188 | 190 | | } |
---|
189 | 191 | | |
---|
190 | 192 | | |
---|
191 | 193 | | |
---|
192 | | - | @Callable(ag) |
---|
193 | | - | func hireFreelancer (E,Z) = { |
---|
194 | | - | let T = toBase58String(ag.caller.bytes) |
---|
195 | | - | if ((F(E) == a)) |
---|
| 194 | + | @Callable(ah) |
---|
| 195 | + | func hireFreelancer (F,aa) = { |
---|
| 196 | + | let U = toBase58String(ah.caller.bytes) |
---|
| 197 | + | if ((G(F) == a)) |
---|
196 | 198 | | then throw("Task doesnt exist") |
---|
197 | | - | else if ((U(T) == a)) |
---|
| 199 | + | else if ((V(U) == a)) |
---|
198 | 200 | | then throw("Customer not signup") |
---|
199 | | - | else if ((U(Z) == a)) |
---|
| 201 | + | else if ((V(aa) == a)) |
---|
200 | 202 | | then throw("Freelancer not signup") |
---|
201 | | - | else if ((H(E) != T)) |
---|
| 203 | + | else if ((I(F) != U)) |
---|
202 | 204 | | then throw("You're not author") |
---|
203 | | - | else if ((P(E) == g)) |
---|
| 205 | + | else if ((Q(F) == g)) |
---|
204 | 206 | | then throw("Freelancer is no longer required (the task is already in progress)") |
---|
205 | | - | else if ((Z == T)) |
---|
| 207 | + | else if ((aa == U)) |
---|
206 | 208 | | then throw("You can't hire yourself") |
---|
207 | | - | else WriteSet([DataEntry(M(E), Z), DataEntry(O(E), g)]) |
---|
| 209 | + | else WriteSet([DataEntry(N(F), aa), DataEntry(P(F), g)]) |
---|
208 | 210 | | } |
---|
209 | 211 | | |
---|
210 | 212 | | |
---|
211 | 213 | | |
---|
212 | | - | @Callable(ag) |
---|
213 | | - | func sendMessage (E,v,ap) = { |
---|
214 | | - | let T = toBase58String(ag.caller.bytes) |
---|
215 | | - | let A = (w(T, v) + 1) |
---|
216 | | - | if ((F(E) == a)) |
---|
| 214 | + | @Callable(ah) |
---|
| 215 | + | func sendMessage (F,w,aq) = { |
---|
| 216 | + | let U = toBase58String(ah.caller.bytes) |
---|
| 217 | + | let B = (x(U, w) + 1) |
---|
| 218 | + | if ((G(F) == a)) |
---|
217 | 219 | | then throw("Task doesnt exist") |
---|
218 | | - | else if ((T == v)) |
---|
| 220 | + | else if ((U == w)) |
---|
219 | 221 | | then throw("You can't send messages to yourself") |
---|
220 | | - | else if ((U(T) == a)) |
---|
| 222 | + | else if ((V(U) == a)) |
---|
221 | 223 | | then throw("Sender not signup") |
---|
222 | | - | else if ((U(v) == a)) |
---|
| 224 | + | else if ((V(w) == a)) |
---|
223 | 225 | | then throw("Recipient not singup") |
---|
224 | | - | else WriteSet([DataEntry(t(T, v), A), DataEntry(x(T, v, toString(A)), ap), DataEntry(B(T, v, toString(A)), height)]) |
---|
| 226 | + | else WriteSet([DataEntry(u(U, w), B), DataEntry(y(U, w, toString(B)), aq), DataEntry(C(U, w, toString(B)), height)]) |
---|
225 | 227 | | } |
---|
226 | 228 | | |
---|
227 | 229 | | |
---|
228 | 230 | | |
---|
229 | | - | @Callable(ag) |
---|
230 | | - | func taskUpdate (E,ak) = { |
---|
231 | | - | let T = toBase58String(ag.caller.bytes) |
---|
232 | | - | if ((F(E) == a)) |
---|
| 231 | + | @Callable(ah) |
---|
| 232 | + | func taskUpdate (F,al) = { |
---|
| 233 | + | let U = toBase58String(ah.caller.bytes) |
---|
| 234 | + | if ((G(F) == a)) |
---|
233 | 235 | | then throw("Task doesnt exist") |
---|
234 | | - | else if ((H(E) != T)) |
---|
| 236 | + | else if ((I(F) != U)) |
---|
235 | 237 | | then throw("You're not author") |
---|
236 | | - | else if ((P(E) == g)) |
---|
| 238 | + | else if ((Q(F) == g)) |
---|
237 | 239 | | then throw("Editing tasks is not available after hiring a freelancer") |
---|
238 | | - | else WriteSet([DataEntry(D(E), ak)]) |
---|
| 240 | + | else WriteSet([DataEntry(E(F), al)]) |
---|
239 | 241 | | } |
---|
240 | 242 | | |
---|
241 | 243 | | |
---|
242 | 244 | | |
---|
243 | | - | @Callable(ag) |
---|
244 | | - | func userUpdate (ak) = { |
---|
245 | | - | let T = toBase58String(ag.caller.bytes) |
---|
246 | | - | if ((U(T) == a)) |
---|
| 245 | + | @Callable(ah) |
---|
| 246 | + | func userUpdate (al) = { |
---|
| 247 | + | let U = toBase58String(ah.caller.bytes) |
---|
| 248 | + | if ((V(U) == a)) |
---|
247 | 249 | | then throw("User not signup") |
---|
248 | | - | else WriteSet([DataEntry(S(T), ak)]) |
---|
| 250 | + | else WriteSet([DataEntry(T(U), al)]) |
---|
249 | 251 | | } |
---|
250 | 252 | | |
---|
251 | 253 | | |
---|
252 | 254 | | |
---|
253 | | - | @Callable(ag) |
---|
254 | | - | func reportCompleteTask (E) = { |
---|
255 | | - | let T = toBase58String(ag.caller.bytes) |
---|
256 | | - | let aa = (ad(E, T) + 1) |
---|
257 | | - | let aq = H(E) |
---|
258 | | - | let ar = P(E) |
---|
259 | | - | let as = w(T, aq) |
---|
260 | | - | let at = z(T, aq, toString(as)) |
---|
261 | | - | if ((N(E) == T)) |
---|
262 | | - | then if ((ar == g)) |
---|
263 | | - | then WriteSet([DataEntry(Y(T, E, toString(aa)), as), DataEntry(O(E), i)]) |
---|
264 | | - | else if ((ar == h)) |
---|
| 255 | + | @Callable(ah) |
---|
| 256 | + | func reportCompleteTask (F) = { |
---|
| 257 | + | let U = toBase58String(ah.caller.bytes) |
---|
| 258 | + | let ab = (ae(F, U) + 1) |
---|
| 259 | + | let ar = I(F) |
---|
| 260 | + | let as = Q(F) |
---|
| 261 | + | let at = x(U, ar) |
---|
| 262 | + | let au = A(U, ar, toString(at)) |
---|
| 263 | + | if ((O(F) == U)) |
---|
| 264 | + | then if ((as == g)) |
---|
| 265 | + | then WriteSet([DataEntry(Z(U, F, toString(ab)), at), DataEntry(P(F), i)]) |
---|
| 266 | + | else if ((as == h)) |
---|
265 | 267 | | then throw("You've already been paid for your work") |
---|
266 | 268 | | else throw("The work is awaiting approval") |
---|
267 | | - | else if ((N(E) == a)) |
---|
| 269 | + | else if ((O(F) == a)) |
---|
268 | 270 | | then throw("Task freelancer doesnt exist") |
---|
269 | | - | else if ((H(E) == T)) |
---|
| 271 | + | else if ((I(F) == U)) |
---|
270 | 272 | | then throw("You are author") |
---|
271 | 273 | | else throw("Error #1") |
---|
272 | 274 | | } |
---|
273 | 275 | | |
---|
274 | 276 | | |
---|
275 | 277 | | |
---|
276 | | - | @Callable(ag) |
---|
277 | | - | func acceptWork (E,au) = { |
---|
278 | | - | let T = toBase58String(ag.caller.bytes) |
---|
279 | | - | let av = H(E) |
---|
280 | | - | let Z = N(E) |
---|
281 | | - | let aa = ad(E, Z) |
---|
282 | | - | let ar = P(E) |
---|
283 | | - | let aw = L(E) |
---|
284 | | - | if ((T == av)) |
---|
285 | | - | then if ((ar == i)) |
---|
286 | | - | then if (au) |
---|
287 | | - | then ScriptResult(WriteSet([DataEntry(O(E), h)]), TransferSet([ScriptTransfer(addressFromStringValue(Z), aw, unit)])) |
---|
288 | | - | else WriteSet([DataEntry(O(E), g)]) |
---|
| 278 | + | @Callable(ah) |
---|
| 279 | + | func acceptWork (F,av) = { |
---|
| 280 | + | let U = toBase58String(ah.caller.bytes) |
---|
| 281 | + | let aw = I(F) |
---|
| 282 | + | let aa = O(F) |
---|
| 283 | + | let ab = ae(F, aa) |
---|
| 284 | + | let as = Q(F) |
---|
| 285 | + | let ax = M(F) |
---|
| 286 | + | if ((U == aw)) |
---|
| 287 | + | then if ((as == i)) |
---|
| 288 | + | then if (av) |
---|
| 289 | + | then ScriptResult(WriteSet([DataEntry(P(F), h)]), TransferSet([ScriptTransfer(addressFromStringValue(aa), ax, unit)])) |
---|
| 290 | + | else WriteSet([DataEntry(P(F), g)]) |
---|
289 | 291 | | else throw("Freelancer doesnt complete the task") |
---|
290 | | - | else if ((F(E) == a)) |
---|
| 292 | + | else if ((G(F) == a)) |
---|
291 | 293 | | then throw("Task doesnt exist") |
---|
292 | | - | else if ((U(T) == a)) |
---|
| 294 | + | else if ((V(U) == a)) |
---|
293 | 295 | | then throw("Sender not signup") |
---|
294 | 296 | | else throw("You are not author") |
---|
295 | 297 | | } |
---|
296 | 298 | | |
---|
297 | 299 | | |
---|
298 | 300 | | |
---|
299 | | - | @Callable(ag) |
---|
300 | | - | func moveDeadline (E,ax) = { |
---|
301 | | - | let T = toBase58String(ag.caller.bytes) |
---|
302 | | - | let av = H(E) |
---|
303 | | - | let aj = R(E) |
---|
304 | | - | let ar = P(E) |
---|
305 | | - | if ((ar != h)) |
---|
| 301 | + | @Callable(ah) |
---|
| 302 | + | func moveDeadline (F,ay) = { |
---|
| 303 | + | let U = toBase58String(ah.caller.bytes) |
---|
| 304 | + | let aw = I(F) |
---|
| 305 | + | let ak = S(F) |
---|
| 306 | + | let as = Q(F) |
---|
| 307 | + | if ((as != h)) |
---|
306 | 308 | | then throw("The task is completed") |
---|
307 | | - | else if ((ar == j)) |
---|
| 309 | + | else if ((as == j)) |
---|
308 | 310 | | then throw("You can't change the deadline at this time") |
---|
309 | | - | else if ((T != av)) |
---|
| 311 | + | else if ((U != aw)) |
---|
310 | 312 | | then throw("You are not author of the task") |
---|
311 | | - | else if ((height > ax)) |
---|
| 313 | + | else if ((height > ay)) |
---|
312 | 314 | | then throw("The deadline must be > the current block") |
---|
313 | | - | else if ((aj > ax)) |
---|
| 315 | + | else if ((ak > ay)) |
---|
314 | 316 | | then throw("The deadline can only be moved forward") |
---|
315 | | - | else WriteSet([DataEntry(Q(E), ax)]) |
---|
| 317 | + | else WriteSet([DataEntry(R(F), ay)]) |
---|
316 | 318 | | } |
---|
317 | 319 | | |
---|
318 | 320 | | |
---|
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 3 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | 4 | | let a = "none" |
---|
5 | 5 | | |
---|
6 | 6 | | let b = "featured" |
---|
7 | 7 | | |
---|
8 | 8 | | let c = "" |
---|
9 | 9 | | |
---|
10 | 10 | | let d = "mod" |
---|
11 | 11 | | |
---|
12 | 12 | | let e = "registered" |
---|
13 | 13 | | |
---|
14 | 14 | | let f = "3MsTLizEg4vqNgD7ZVjhkPaZgsrN11JqzLJ" |
---|
15 | 15 | | |
---|
16 | 16 | | let g = "in progress" |
---|
17 | 17 | | |
---|
18 | 18 | | let h = "completed" |
---|
19 | 19 | | |
---|
20 | 20 | | let i = "pending" |
---|
21 | 21 | | |
---|
22 | 22 | | let j = "in dispute" |
---|
23 | 23 | | |
---|
24 | 24 | | let k = "revision" |
---|
25 | 25 | | |
---|
26 | 26 | | let l = (2 / 100) |
---|
27 | 27 | | |
---|
28 | | - | func m (n) = { |
---|
29 | | - | let o = { |
---|
30 | | - | let p = getString(this, n) |
---|
31 | | - | if ($isInstanceOf(p, "String")) |
---|
| 28 | + | let m = 100000000 |
---|
| 29 | + | |
---|
| 30 | + | func n (o) = { |
---|
| 31 | + | let p = { |
---|
| 32 | + | let q = getString(this, o) |
---|
| 33 | + | if ($isInstanceOf(q, "String")) |
---|
32 | 34 | | then { |
---|
33 | | - | let q = p |
---|
34 | | - | q |
---|
| 35 | + | let r = q |
---|
| 36 | + | r |
---|
35 | 37 | | } |
---|
36 | 38 | | else a |
---|
37 | 39 | | } |
---|
38 | | - | o |
---|
| 40 | + | p |
---|
39 | 41 | | } |
---|
40 | 42 | | |
---|
41 | 43 | | |
---|
42 | | - | func r (n) = { |
---|
43 | | - | let s = { |
---|
44 | | - | let p = getInteger(this, n) |
---|
45 | | - | if ($isInstanceOf(p, "Int")) |
---|
| 44 | + | func s (o) = { |
---|
| 45 | + | let t = { |
---|
| 46 | + | let q = getInteger(this, o) |
---|
| 47 | + | if ($isInstanceOf(q, "Int")) |
---|
46 | 48 | | then { |
---|
47 | | - | let q = p |
---|
48 | | - | q |
---|
| 49 | + | let r = q |
---|
| 50 | + | r |
---|
49 | 51 | | } |
---|
50 | 52 | | else 0 |
---|
51 | 53 | | } |
---|
52 | | - | s |
---|
| 54 | + | t |
---|
53 | 55 | | } |
---|
54 | 56 | | |
---|
55 | 57 | | |
---|
56 | | - | func t (u,v) = ((("msg_cnt_" + u) + "_") + v) |
---|
| 58 | + | func u (v,w) = ((("msg_cnt_" + v) + "_") + w) |
---|
57 | 59 | | |
---|
58 | 60 | | |
---|
59 | | - | func w (u,v) = r(t(u, v)) |
---|
| 61 | + | func x (v,w) = s(u(v, w)) |
---|
60 | 62 | | |
---|
61 | 63 | | |
---|
62 | | - | func x (u,v,y) = ((((("msg_" + u) + "_") + v) + "_id:") + y) |
---|
| 64 | + | func y (v,w,z) = ((((("msg_" + v) + "_") + w) + "_id:") + z) |
---|
63 | 65 | | |
---|
64 | 66 | | |
---|
65 | | - | func z (u,v,A) = m(x(u, v, A)) |
---|
| 67 | + | func A (v,w,B) = n(y(v, w, B)) |
---|
66 | 68 | | |
---|
67 | 69 | | |
---|
68 | | - | func B (u,v,A) = ((((("block_msg_" + u) + "_") + v) + "_id:") + A) |
---|
| 70 | + | func C (v,w,B) = ((((("block_msg_" + v) + "_") + w) + "_id:") + B) |
---|
69 | 71 | | |
---|
70 | 72 | | |
---|
71 | | - | func C (u,v,A) = m(B(u, v, A)) |
---|
| 73 | + | func D (v,w,B) = n(C(v, w, B)) |
---|
72 | 74 | | |
---|
73 | 75 | | |
---|
74 | | - | func D (E) = ("datajson_" + E) |
---|
| 76 | + | func E (F) = ("datajson_" + F) |
---|
75 | 77 | | |
---|
76 | 78 | | |
---|
77 | | - | func F (E) = m(D(E)) |
---|
| 79 | + | func G (F) = n(E(F)) |
---|
78 | 80 | | |
---|
79 | 81 | | |
---|
80 | | - | func G (E) = ("author_" + E) |
---|
| 82 | + | func H (F) = ("author_" + F) |
---|
81 | 83 | | |
---|
82 | 84 | | |
---|
83 | | - | func H (E) = m(G(E)) |
---|
| 85 | + | func I (F) = n(H(F)) |
---|
84 | 86 | | |
---|
85 | 87 | | |
---|
86 | | - | func I (E) = ("block_" + E) |
---|
| 88 | + | func J (F) = ("block_" + F) |
---|
87 | 89 | | |
---|
88 | 90 | | |
---|
89 | | - | func J (E) = r(I(E)) |
---|
| 91 | + | func K (F) = s(J(F)) |
---|
90 | 92 | | |
---|
91 | 93 | | |
---|
92 | | - | func K (E) = ("bank_" + E) |
---|
| 94 | + | func L (F) = ("bank_" + F) |
---|
93 | 95 | | |
---|
94 | 96 | | |
---|
95 | | - | func L (E) = r(K(E)) |
---|
| 97 | + | func M (F) = s(L(F)) |
---|
96 | 98 | | |
---|
97 | 99 | | |
---|
98 | | - | func M (E) = ("freelancer_" + E) |
---|
| 100 | + | func N (F) = ("freelancer_" + F) |
---|
99 | 101 | | |
---|
100 | 102 | | |
---|
101 | | - | func N (E) = m(M(E)) |
---|
| 103 | + | func O (F) = n(N(F)) |
---|
102 | 104 | | |
---|
103 | 105 | | |
---|
104 | | - | func O (E) = ("status_" + E) |
---|
| 106 | + | func P (F) = ("status_" + F) |
---|
105 | 107 | | |
---|
106 | 108 | | |
---|
107 | | - | func P (E) = m(O(E)) |
---|
| 109 | + | func Q (F) = n(P(F)) |
---|
108 | 110 | | |
---|
109 | 111 | | |
---|
110 | | - | func Q (E) = ("expiration_block_" + E) |
---|
| 112 | + | func R (F) = ("expiration_block_" + F) |
---|
111 | 113 | | |
---|
112 | 114 | | |
---|
113 | | - | func R (E) = r(Q(E)) |
---|
| 115 | + | func S (F) = s(R(F)) |
---|
114 | 116 | | |
---|
115 | 117 | | |
---|
116 | | - | func S (T) = ("user_bio_" + T) |
---|
| 118 | + | func T (U) = ("user_bio_" + U) |
---|
117 | 119 | | |
---|
118 | 120 | | |
---|
119 | | - | func U (T) = m(S(T)) |
---|
| 121 | + | func V (U) = n(T(U)) |
---|
120 | 122 | | |
---|
121 | 123 | | |
---|
122 | | - | func V (T) = ("user_sts_" + T) |
---|
| 124 | + | func W (U) = ("user_sts_" + U) |
---|
123 | 125 | | |
---|
124 | 126 | | |
---|
125 | | - | func W (T) = m(V(T)) |
---|
| 127 | + | func X (U) = n(W(U)) |
---|
126 | 128 | | |
---|
127 | 129 | | |
---|
128 | | - | func X (T) = ("user_blk_" + T) |
---|
| 130 | + | func Y (U) = ("user_blk_" + U) |
---|
129 | 131 | | |
---|
130 | 132 | | |
---|
131 | | - | func Y (Z,E,aa) = ((((("rc_" + E) + "_") + Z) + "_stage:") + aa) |
---|
| 133 | + | func Z (aa,F,ab) = ((((("rc_" + F) + "_") + aa) + "_stage:") + ab) |
---|
132 | 134 | | |
---|
133 | 135 | | |
---|
134 | | - | func ab (Z,E,aa) = m(Y(Z, E, aa)) |
---|
| 136 | + | func ac (aa,F,ab) = n(Z(aa, F, ab)) |
---|
135 | 137 | | |
---|
136 | 138 | | |
---|
137 | | - | func ac (E,Z) = ((("rc_cnt_" + E) + "_") + Z) |
---|
| 139 | + | func ad (F,aa) = ((("rc_cnt_" + F) + "_") + aa) |
---|
138 | 140 | | |
---|
139 | 141 | | |
---|
140 | | - | func ad (E,Z) = r(ac(E, Z)) |
---|
| 142 | + | func ae (F,aa) = s(ad(F, aa)) |
---|
141 | 143 | | |
---|
142 | 144 | | |
---|
143 | | - | func ae () = "decrybe_balance" |
---|
| 145 | + | func af () = "decrybe_balance" |
---|
144 | 146 | | |
---|
145 | 147 | | |
---|
146 | | - | func af () = r(ae()) |
---|
| 148 | + | func ag () = s(af()) |
---|
147 | 149 | | |
---|
148 | 150 | | |
---|
149 | | - | @Callable(ag) |
---|
150 | | - | func withdrawDecrybeBalance (ah) = { |
---|
151 | | - | let T = toBase58String(ag.caller.bytes) |
---|
152 | | - | let ai = af() |
---|
153 | | - | if ((T == f)) |
---|
154 | | - | then if ((ai >= ah)) |
---|
155 | | - | then TransferSet([ScriptTransfer(addressFromStringValue(T), ah, unit)]) |
---|
156 | | - | else throw(("You cannot withdraw an amount greater than " + toString(ai))) |
---|
| 151 | + | @Callable(ah) |
---|
| 152 | + | func withdrawDecrybeBalance (ai) = { |
---|
| 153 | + | let U = toBase58String(ah.caller.bytes) |
---|
| 154 | + | let aj = ag() |
---|
| 155 | + | if ((U == f)) |
---|
| 156 | + | then if ((aj >= ai)) |
---|
| 157 | + | then TransferSet([ScriptTransfer(addressFromStringValue(U), ai, unit)]) |
---|
| 158 | + | else throw(("You cannot withdraw an amount greater than " + toString(aj))) |
---|
157 | 159 | | else throw("You can't do that") |
---|
158 | 160 | | } |
---|
159 | 161 | | |
---|
160 | 162 | | |
---|
161 | 163 | | |
---|
162 | | - | @Callable(ag) |
---|
163 | | - | func createTask (E,aj,ak) = { |
---|
164 | | - | let T = toBase58String(ag.caller.bytes) |
---|
165 | | - | let al = extract(ag.payment) |
---|
166 | | - | let am = al.amount |
---|
167 | | - | let an = (am / (1 + l)) |
---|
168 | | - | let ao = (am - an) |
---|
169 | | - | if (isDefined(al.assetId)) |
---|
| 164 | + | @Callable(ah) |
---|
| 165 | + | func createTask (F,ak,al) = { |
---|
| 166 | + | let U = toBase58String(ah.caller.bytes) |
---|
| 167 | + | let am = extract(ah.payment) |
---|
| 168 | + | let an = am.amount |
---|
| 169 | + | let ao = (an / ((1 * m) + l)) |
---|
| 170 | + | let ap = (an - ao) |
---|
| 171 | + | if (isDefined(am.assetId)) |
---|
170 | 172 | | then throw("Can use waves only at the moment") |
---|
171 | | - | else if ((am == 0)) |
---|
| 173 | + | else if ((an == 0)) |
---|
172 | 174 | | then throw("Amount must be higher then 0") |
---|
173 | | - | else if ((H(E) != a)) |
---|
| 175 | + | else if ((I(F) != a)) |
---|
174 | 176 | | then throw("Task already exist") |
---|
175 | | - | else if ((U(T) == a)) |
---|
| 177 | + | else if ((V(U) == a)) |
---|
176 | 178 | | then throw("User not signup") |
---|
177 | | - | else WriteSet([DataEntry(G(E), T), DataEntry(I(E), height), DataEntry(Q(E), (height + aj)), DataEntry(K(E), an), DataEntry(O(E), b), DataEntry(D(E), ak), DataEntry(ae(), (af() + ao))]) |
---|
| 179 | + | else WriteSet([DataEntry(H(F), U), DataEntry(J(F), height), DataEntry(R(F), (height + ak)), DataEntry(L(F), ao), DataEntry(P(F), b), DataEntry(E(F), al), DataEntry(af(), (ag() + ap))]) |
---|
178 | 180 | | } |
---|
179 | 181 | | |
---|
180 | 182 | | |
---|
181 | 183 | | |
---|
182 | | - | @Callable(ag) |
---|
183 | | - | func signUp (ak) = { |
---|
184 | | - | let T = toBase58String(ag.caller.bytes) |
---|
185 | | - | if ((U(T) != a)) |
---|
| 184 | + | @Callable(ah) |
---|
| 185 | + | func signUp (al) = { |
---|
| 186 | + | let U = toBase58String(ah.caller.bytes) |
---|
| 187 | + | if ((V(U) != a)) |
---|
186 | 188 | | then throw("User already exist") |
---|
187 | | - | else WriteSet([DataEntry(S(T), ak), DataEntry(X(T), height), DataEntry(V(T), e)]) |
---|
| 189 | + | else WriteSet([DataEntry(T(U), al), DataEntry(Y(U), height), DataEntry(W(U), e)]) |
---|
188 | 190 | | } |
---|
189 | 191 | | |
---|
190 | 192 | | |
---|
191 | 193 | | |
---|
192 | | - | @Callable(ag) |
---|
193 | | - | func hireFreelancer (E,Z) = { |
---|
194 | | - | let T = toBase58String(ag.caller.bytes) |
---|
195 | | - | if ((F(E) == a)) |
---|
| 194 | + | @Callable(ah) |
---|
| 195 | + | func hireFreelancer (F,aa) = { |
---|
| 196 | + | let U = toBase58String(ah.caller.bytes) |
---|
| 197 | + | if ((G(F) == a)) |
---|
196 | 198 | | then throw("Task doesnt exist") |
---|
197 | | - | else if ((U(T) == a)) |
---|
| 199 | + | else if ((V(U) == a)) |
---|
198 | 200 | | then throw("Customer not signup") |
---|
199 | | - | else if ((U(Z) == a)) |
---|
| 201 | + | else if ((V(aa) == a)) |
---|
200 | 202 | | then throw("Freelancer not signup") |
---|
201 | | - | else if ((H(E) != T)) |
---|
| 203 | + | else if ((I(F) != U)) |
---|
202 | 204 | | then throw("You're not author") |
---|
203 | | - | else if ((P(E) == g)) |
---|
| 205 | + | else if ((Q(F) == g)) |
---|
204 | 206 | | then throw("Freelancer is no longer required (the task is already in progress)") |
---|
205 | | - | else if ((Z == T)) |
---|
| 207 | + | else if ((aa == U)) |
---|
206 | 208 | | then throw("You can't hire yourself") |
---|
207 | | - | else WriteSet([DataEntry(M(E), Z), DataEntry(O(E), g)]) |
---|
| 209 | + | else WriteSet([DataEntry(N(F), aa), DataEntry(P(F), g)]) |
---|
208 | 210 | | } |
---|
209 | 211 | | |
---|
210 | 212 | | |
---|
211 | 213 | | |
---|
212 | | - | @Callable(ag) |
---|
213 | | - | func sendMessage (E,v,ap) = { |
---|
214 | | - | let T = toBase58String(ag.caller.bytes) |
---|
215 | | - | let A = (w(T, v) + 1) |
---|
216 | | - | if ((F(E) == a)) |
---|
| 214 | + | @Callable(ah) |
---|
| 215 | + | func sendMessage (F,w,aq) = { |
---|
| 216 | + | let U = toBase58String(ah.caller.bytes) |
---|
| 217 | + | let B = (x(U, w) + 1) |
---|
| 218 | + | if ((G(F) == a)) |
---|
217 | 219 | | then throw("Task doesnt exist") |
---|
218 | | - | else if ((T == v)) |
---|
| 220 | + | else if ((U == w)) |
---|
219 | 221 | | then throw("You can't send messages to yourself") |
---|
220 | | - | else if ((U(T) == a)) |
---|
| 222 | + | else if ((V(U) == a)) |
---|
221 | 223 | | then throw("Sender not signup") |
---|
222 | | - | else if ((U(v) == a)) |
---|
| 224 | + | else if ((V(w) == a)) |
---|
223 | 225 | | then throw("Recipient not singup") |
---|
224 | | - | else WriteSet([DataEntry(t(T, v), A), DataEntry(x(T, v, toString(A)), ap), DataEntry(B(T, v, toString(A)), height)]) |
---|
| 226 | + | else WriteSet([DataEntry(u(U, w), B), DataEntry(y(U, w, toString(B)), aq), DataEntry(C(U, w, toString(B)), height)]) |
---|
225 | 227 | | } |
---|
226 | 228 | | |
---|
227 | 229 | | |
---|
228 | 230 | | |
---|
229 | | - | @Callable(ag) |
---|
230 | | - | func taskUpdate (E,ak) = { |
---|
231 | | - | let T = toBase58String(ag.caller.bytes) |
---|
232 | | - | if ((F(E) == a)) |
---|
| 231 | + | @Callable(ah) |
---|
| 232 | + | func taskUpdate (F,al) = { |
---|
| 233 | + | let U = toBase58String(ah.caller.bytes) |
---|
| 234 | + | if ((G(F) == a)) |
---|
233 | 235 | | then throw("Task doesnt exist") |
---|
234 | | - | else if ((H(E) != T)) |
---|
| 236 | + | else if ((I(F) != U)) |
---|
235 | 237 | | then throw("You're not author") |
---|
236 | | - | else if ((P(E) == g)) |
---|
| 238 | + | else if ((Q(F) == g)) |
---|
237 | 239 | | then throw("Editing tasks is not available after hiring a freelancer") |
---|
238 | | - | else WriteSet([DataEntry(D(E), ak)]) |
---|
| 240 | + | else WriteSet([DataEntry(E(F), al)]) |
---|
239 | 241 | | } |
---|
240 | 242 | | |
---|
241 | 243 | | |
---|
242 | 244 | | |
---|
243 | | - | @Callable(ag) |
---|
244 | | - | func userUpdate (ak) = { |
---|
245 | | - | let T = toBase58String(ag.caller.bytes) |
---|
246 | | - | if ((U(T) == a)) |
---|
| 245 | + | @Callable(ah) |
---|
| 246 | + | func userUpdate (al) = { |
---|
| 247 | + | let U = toBase58String(ah.caller.bytes) |
---|
| 248 | + | if ((V(U) == a)) |
---|
247 | 249 | | then throw("User not signup") |
---|
248 | | - | else WriteSet([DataEntry(S(T), ak)]) |
---|
| 250 | + | else WriteSet([DataEntry(T(U), al)]) |
---|
249 | 251 | | } |
---|
250 | 252 | | |
---|
251 | 253 | | |
---|
252 | 254 | | |
---|
253 | | - | @Callable(ag) |
---|
254 | | - | func reportCompleteTask (E) = { |
---|
255 | | - | let T = toBase58String(ag.caller.bytes) |
---|
256 | | - | let aa = (ad(E, T) + 1) |
---|
257 | | - | let aq = H(E) |
---|
258 | | - | let ar = P(E) |
---|
259 | | - | let as = w(T, aq) |
---|
260 | | - | let at = z(T, aq, toString(as)) |
---|
261 | | - | if ((N(E) == T)) |
---|
262 | | - | then if ((ar == g)) |
---|
263 | | - | then WriteSet([DataEntry(Y(T, E, toString(aa)), as), DataEntry(O(E), i)]) |
---|
264 | | - | else if ((ar == h)) |
---|
| 255 | + | @Callable(ah) |
---|
| 256 | + | func reportCompleteTask (F) = { |
---|
| 257 | + | let U = toBase58String(ah.caller.bytes) |
---|
| 258 | + | let ab = (ae(F, U) + 1) |
---|
| 259 | + | let ar = I(F) |
---|
| 260 | + | let as = Q(F) |
---|
| 261 | + | let at = x(U, ar) |
---|
| 262 | + | let au = A(U, ar, toString(at)) |
---|
| 263 | + | if ((O(F) == U)) |
---|
| 264 | + | then if ((as == g)) |
---|
| 265 | + | then WriteSet([DataEntry(Z(U, F, toString(ab)), at), DataEntry(P(F), i)]) |
---|
| 266 | + | else if ((as == h)) |
---|
265 | 267 | | then throw("You've already been paid for your work") |
---|
266 | 268 | | else throw("The work is awaiting approval") |
---|
267 | | - | else if ((N(E) == a)) |
---|
| 269 | + | else if ((O(F) == a)) |
---|
268 | 270 | | then throw("Task freelancer doesnt exist") |
---|
269 | | - | else if ((H(E) == T)) |
---|
| 271 | + | else if ((I(F) == U)) |
---|
270 | 272 | | then throw("You are author") |
---|
271 | 273 | | else throw("Error #1") |
---|
272 | 274 | | } |
---|
273 | 275 | | |
---|
274 | 276 | | |
---|
275 | 277 | | |
---|
276 | | - | @Callable(ag) |
---|
277 | | - | func acceptWork (E,au) = { |
---|
278 | | - | let T = toBase58String(ag.caller.bytes) |
---|
279 | | - | let av = H(E) |
---|
280 | | - | let Z = N(E) |
---|
281 | | - | let aa = ad(E, Z) |
---|
282 | | - | let ar = P(E) |
---|
283 | | - | let aw = L(E) |
---|
284 | | - | if ((T == av)) |
---|
285 | | - | then if ((ar == i)) |
---|
286 | | - | then if (au) |
---|
287 | | - | then ScriptResult(WriteSet([DataEntry(O(E), h)]), TransferSet([ScriptTransfer(addressFromStringValue(Z), aw, unit)])) |
---|
288 | | - | else WriteSet([DataEntry(O(E), g)]) |
---|
| 278 | + | @Callable(ah) |
---|
| 279 | + | func acceptWork (F,av) = { |
---|
| 280 | + | let U = toBase58String(ah.caller.bytes) |
---|
| 281 | + | let aw = I(F) |
---|
| 282 | + | let aa = O(F) |
---|
| 283 | + | let ab = ae(F, aa) |
---|
| 284 | + | let as = Q(F) |
---|
| 285 | + | let ax = M(F) |
---|
| 286 | + | if ((U == aw)) |
---|
| 287 | + | then if ((as == i)) |
---|
| 288 | + | then if (av) |
---|
| 289 | + | then ScriptResult(WriteSet([DataEntry(P(F), h)]), TransferSet([ScriptTransfer(addressFromStringValue(aa), ax, unit)])) |
---|
| 290 | + | else WriteSet([DataEntry(P(F), g)]) |
---|
289 | 291 | | else throw("Freelancer doesnt complete the task") |
---|
290 | | - | else if ((F(E) == a)) |
---|
| 292 | + | else if ((G(F) == a)) |
---|
291 | 293 | | then throw("Task doesnt exist") |
---|
292 | | - | else if ((U(T) == a)) |
---|
| 294 | + | else if ((V(U) == a)) |
---|
293 | 295 | | then throw("Sender not signup") |
---|
294 | 296 | | else throw("You are not author") |
---|
295 | 297 | | } |
---|
296 | 298 | | |
---|
297 | 299 | | |
---|
298 | 300 | | |
---|
299 | | - | @Callable(ag) |
---|
300 | | - | func moveDeadline (E,ax) = { |
---|
301 | | - | let T = toBase58String(ag.caller.bytes) |
---|
302 | | - | let av = H(E) |
---|
303 | | - | let aj = R(E) |
---|
304 | | - | let ar = P(E) |
---|
305 | | - | if ((ar != h)) |
---|
| 301 | + | @Callable(ah) |
---|
| 302 | + | func moveDeadline (F,ay) = { |
---|
| 303 | + | let U = toBase58String(ah.caller.bytes) |
---|
| 304 | + | let aw = I(F) |
---|
| 305 | + | let ak = S(F) |
---|
| 306 | + | let as = Q(F) |
---|
| 307 | + | if ((as != h)) |
---|
306 | 308 | | then throw("The task is completed") |
---|
307 | | - | else if ((ar == j)) |
---|
| 309 | + | else if ((as == j)) |
---|
308 | 310 | | then throw("You can't change the deadline at this time") |
---|
309 | | - | else if ((T != av)) |
---|
| 311 | + | else if ((U != aw)) |
---|
310 | 312 | | then throw("You are not author of the task") |
---|
311 | | - | else if ((height > ax)) |
---|
| 313 | + | else if ((height > ay)) |
---|
312 | 314 | | then throw("The deadline must be > the current block") |
---|
313 | | - | else if ((aj > ax)) |
---|
| 315 | + | else if ((ak > ay)) |
---|
314 | 316 | | then throw("The deadline can only be moved forward") |
---|
315 | | - | else WriteSet([DataEntry(Q(E), ax)]) |
---|
| 317 | + | else WriteSet([DataEntry(R(F), ay)]) |
---|
316 | 318 | | } |
---|
317 | 319 | | |
---|
318 | 320 | | |
---|