tx · DSAcTpaQdfnwGgFnSYFsGZYeoTsWB4dbhXAXC3VsdVb4
3Mz5wFCFSTfF4iW9me9EVrj4Ahm2VTCTsHZ: -0.01400000 Waves
2019.06.23 12:36 [554515] smart account 3Mz5wFCFSTfF4iW9me9EVrj4Ahm2VTCTsHZ > SELF 0.00000000 Waves
{
"type": 13,
"id": "DSAcTpaQdfnwGgFnSYFsGZYeoTsWB4dbhXAXC3VsdVb4",
"fee": 1400000,
"feeAssetId": null,
"timestamp": 1561282636138,
"version": 1,
"sender": "3Mz5wFCFSTfF4iW9me9EVrj4Ahm2VTCTsHZ",
"senderPublicKey": "55dGDbXbEiK5dkWmRvEkVpQP3ZxxA8qUV3xwxnBuD6Rg",
"proofs": [
"3sLtfAGoecynmricF2ABgRenEqYzPPHnQmhVrFuSXz4ztgy37FyLuuRwHzwMdi6gpnqMqiLFWFavihZ3rfxKCtcr"
],
"script": "base64:AAIDAAAAAAAAAAAAAAAeAAAAAAROT05FAgAAAARub25lAAAAAAZWT1RFUlMAAAAAAAAAAAMAAAAABlFVT1JVTQAAAAAAAAAAAgAAAAAGVk9USU5HAgAAAAZ2b3RpbmcAAAAABlJFVkVBTAIAAAAGcmV2ZWFsAAAAAAhGRUFUVVJFRAIAAAAIZmVhdHVyZWQAAAAACERFTElTVEVEAgAAAAhkZWxpc3RlZAAAAAAEd0VVUgEAAAAg+SHGy1pmNV9GZrG9FQtKAbSPH2Hck25AKl3UAeE+e4gBAAAACmdldEtleUl0ZW0AAAACAAAACHN1cHBsaWVyAAAABXRpdGxlCQABLAAAAAICAAAABWl0ZW1fCQACWAAAAAEJAAH3AAAAAQkAAZsAAAABCQABLAAAAAIFAAAACHN1cHBsaWVyBQAAAAV0aXRsZQEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAABl9vd25lcgEAAAAVZ2V0S2V5QmFsYW5jZVN1cHBsaWVyAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAACF9iYWxhbmNlAQAAAA9nZXRLZXlJdGVtUHJpY2UAAAABAAAABGl0ZW0JAAEsAAAAAgUAAAAEaXRlbQIAAAAGX3ByaWNlAQAAAA5nZXRLZXlJdGVtRGF0YQAAAAEAAAAEaXRlbQkAASwAAAACBQAAAARpdGVtAgAAAAVfZGF0YQEAAAAVZ2V0S2V5VXNlckl0ZW1Db3VudGVyAAAAAgAAAAR1c2VyAAAABGl0ZW0JAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABGl0ZW0CAAAAAV8FAAAABHVzZXICAAAABF9jbnQBAAAAC2dldFN0ckJ5S2V5AAAAAQAAAANrZXkEAAAAA3N0cgQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQUAAAAETk9ORQUAAAADc3RyAQAAAA5nZXROdW1iZXJCeUtleQAAAAEAAAADa2V5BAAAAANudW0EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAFAAAAA251bQEAAAAUZ2V0VmFsdWVJdGVtU3VwcGxpZXIAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABJnZXRLZXlJdGVtU3VwcGxpZXIAAAABBQAAAARpdGVtAQAAABFnZXRWYWx1ZUl0ZW1QcmljZQAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAD2dldEtleUl0ZW1QcmljZQAAAAEFAAAABGl0ZW0BAAAAF2dldFZhbHVlVXNlckl0ZW1Db3VudGVyAAAAAgAAAAR1c2VyAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABVnZXRLZXlVc2VySXRlbUNvdW50ZXIAAAACBQAAAAR1c2VyBQAAAARpdGVtAQAAABdnZXRWYWx1ZUJhbGFuY2VTdXBwbGllcgAAAAEAAAAHYWNjb3VudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFWdldEtleUJhbGFuY2VTdXBwbGllcgAAAAEFAAAAB2FjY291bnQBAAAADGdldEtleUNvbW1pdAAAAAIAAAAEaXRlbQAAAAR1c2VyCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARpdGVtAgAAAAFfBQAAAAR1c2VyAgAAAAdfY29tbWl0AQAAAA5nZXRWYWx1ZUNvbW1pdAAAAAIAAAAEaXRlbQAAAAR1c2VyCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAMZ2V0S2V5Q29tbWl0AAAAAgUAAAAEaXRlbQUAAAAEdXNlcgEAAAASZ2V0S2V5Q29tbWl0c0NvdW50AAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAAB19jb21jbnQBAAAAFGdldFZhbHVlQ29tbWl0c0NvdW50AAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAASZ2V0S2V5Q29tbWl0c0NvdW50AAAAAQUAAAAEaXRlbQEAAAAMZ2V0S2V5UmV2ZWFsAAAAAgAAAARpdGVtAAAABHVzZXIJAAEsAAAAAgkAASwAAAAC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",
"chainId": 84,
"height": 554515,
"spentComplexity": 0
}
View: original | compacted
Prev: XuBjMEQP8dRhCD9UXJfJhtueJQq1ZKGz2Ejv4uB5agz
Next: 3WwJdvwomHk4fw5noNCvYWZNDEbx55cZqpdAEuZD5X25
Diff:
Old | New | | Differences |
---|
15 | 15 | | |
---|
16 | 16 | | let g = "delisted" |
---|
17 | 17 | | |
---|
18 | | - | func h (i,j) = ("item_" + toBase58String(sha256(toBytes((i + j))))) |
---|
| 18 | + | let h = base58'HmWPZDMJ6zq2QCcpCMucVQtQuMGkCTkz37J5qjvUwJe3' |
---|
| 19 | + | |
---|
| 20 | + | func i (j,k) = ("item_" + toBase58String(sha256(toBytes((j + k))))) |
---|
19 | 21 | | |
---|
20 | 22 | | |
---|
21 | | - | func k (l) = (l + "_owner") |
---|
| 23 | + | func l (m) = (m + "_owner") |
---|
22 | 24 | | |
---|
23 | 25 | | |
---|
24 | | - | func m (l) = (l + "_balance") |
---|
| 26 | + | func n (m) = (m + "_balance") |
---|
25 | 27 | | |
---|
26 | 28 | | |
---|
27 | | - | func n (l) = (l + "_price") |
---|
| 29 | + | func o (m) = (m + "_price") |
---|
28 | 30 | | |
---|
29 | 31 | | |
---|
30 | | - | func o (l) = (l + "_data") |
---|
| 32 | + | func p (m) = (m + "_data") |
---|
31 | 33 | | |
---|
32 | 34 | | |
---|
33 | | - | func p (q,l) = (((l + "_") + q) + "_cnt") |
---|
| 35 | + | func q (r,m) = (((m + "_") + r) + "_cnt") |
---|
34 | 36 | | |
---|
35 | 37 | | |
---|
36 | | - | func r (s) = { |
---|
37 | | - | let t = { |
---|
38 | | - | let u = getString(this, s) |
---|
39 | | - | if ($isInstanceOf(u, "String")) |
---|
| 38 | + | func s (t) = { |
---|
| 39 | + | let u = { |
---|
| 40 | + | let v = getString(this, t) |
---|
| 41 | + | if ($isInstanceOf(v, "String")) |
---|
40 | 42 | | then { |
---|
41 | | - | let v = u |
---|
42 | | - | v |
---|
| 43 | + | let w = v |
---|
| 44 | + | w |
---|
43 | 45 | | } |
---|
44 | 46 | | else a |
---|
45 | 47 | | } |
---|
46 | | - | t |
---|
| 48 | + | u |
---|
47 | 49 | | } |
---|
48 | 50 | | |
---|
49 | 51 | | |
---|
50 | | - | func w (s) = { |
---|
51 | | - | let x = { |
---|
52 | | - | let u = getInteger(this, s) |
---|
53 | | - | if ($isInstanceOf(u, "Int")) |
---|
| 52 | + | func x (t) = { |
---|
| 53 | + | let y = { |
---|
| 54 | + | let v = getInteger(this, t) |
---|
| 55 | + | if ($isInstanceOf(v, "Int")) |
---|
54 | 56 | | then { |
---|
55 | | - | let v = u |
---|
56 | | - | v |
---|
| 57 | + | let w = v |
---|
| 58 | + | w |
---|
57 | 59 | | } |
---|
58 | 60 | | else 0 |
---|
59 | 61 | | } |
---|
60 | | - | x |
---|
| 62 | + | y |
---|
61 | 63 | | } |
---|
62 | 64 | | |
---|
63 | 65 | | |
---|
64 | | - | func y (l) = r(k(l)) |
---|
| 66 | + | func z (m) = s(l(m)) |
---|
65 | 67 | | |
---|
66 | 68 | | |
---|
67 | | - | func z (l) = w(n(l)) |
---|
| 69 | + | func A (m) = x(o(m)) |
---|
68 | 70 | | |
---|
69 | 71 | | |
---|
70 | | - | func A (q,l) = w(p(q, l)) |
---|
| 72 | + | func B (r,m) = x(q(r, m)) |
---|
71 | 73 | | |
---|
72 | 74 | | |
---|
73 | | - | func B (C) = w(m(C)) |
---|
| 75 | + | func C (D) = x(n(D)) |
---|
74 | 76 | | |
---|
75 | 77 | | |
---|
76 | | - | func D (l,q) = (((l + "_") + q) + "_commit") |
---|
| 78 | + | func E (m,r) = (((m + "_") + r) + "_commit") |
---|
77 | 79 | | |
---|
78 | 80 | | |
---|
79 | | - | func E (l,q) = r(D(l, q)) |
---|
| 81 | + | func F (m,r) = s(E(m, r)) |
---|
80 | 82 | | |
---|
81 | 83 | | |
---|
82 | | - | func F (l) = (l + "_comcnt") |
---|
| 84 | + | func G (m) = (m + "_comcnt") |
---|
83 | 85 | | |
---|
84 | 86 | | |
---|
85 | | - | func G (l) = w(F(l)) |
---|
| 87 | + | func H (m) = x(G(m)) |
---|
86 | 88 | | |
---|
87 | 89 | | |
---|
88 | | - | func H (l,q) = (((l + "_") + q) + "_reveal") |
---|
| 90 | + | func I (m,r) = (((m + "_") + r) + "_reveal") |
---|
89 | 91 | | |
---|
90 | 92 | | |
---|
91 | | - | func I (l,q) = r(H(l, q)) |
---|
| 93 | + | func J (m,r) = s(I(m, r)) |
---|
92 | 94 | | |
---|
93 | 95 | | |
---|
94 | | - | func J (l) = (l + "_status") |
---|
| 96 | + | func K (m) = (m + "_status") |
---|
95 | 97 | | |
---|
96 | 98 | | |
---|
97 | | - | func K (l) = r(J(l)) |
---|
| 99 | + | func L (m) = s(K(m)) |
---|
98 | 100 | | |
---|
99 | 101 | | |
---|
100 | | - | func L (l,M) = ((l + "_res:") + M) |
---|
| 102 | + | func M (m,N) = ((m + "_res:") + N) |
---|
101 | 103 | | |
---|
102 | 104 | | |
---|
103 | | - | func N (l,M) = w(L(l, M)) |
---|
| 105 | + | func O (m,N) = x(M(m, N)) |
---|
104 | 106 | | |
---|
105 | 107 | | |
---|
106 | | - | @Callable(O) |
---|
107 | | - | func purchaseOld (P) = { |
---|
108 | | - | let Q = extract(O.payment) |
---|
109 | | - | if (isDefined(Q.assetId)) |
---|
| 108 | + | @Callable(P) |
---|
| 109 | + | func purchaseOld (Q) = { |
---|
| 110 | + | let R = extract(P.payment) |
---|
| 111 | + | if (isDefined(R.assetId)) |
---|
110 | 112 | | then throw("can use WAVES only at the moment") |
---|
111 | 113 | | else { |
---|
112 | | - | let R = toBase58String(O.caller.bytes) |
---|
113 | | - | let S = { |
---|
114 | | - | let u = getInteger(this, (("item_" + P) + "_coupon_price")) |
---|
115 | | - | if ($isInstanceOf(u, "Int")) |
---|
| 114 | + | let S = toBase58String(P.caller.bytes) |
---|
| 115 | + | let T = { |
---|
| 116 | + | let v = getInteger(this, (("item_" + Q) + "_coupon_price")) |
---|
| 117 | + | if ($isInstanceOf(v, "Int")) |
---|
116 | 118 | | then { |
---|
117 | | - | let v = u |
---|
118 | | - | v |
---|
| 119 | + | let w = v |
---|
| 120 | + | w |
---|
119 | 121 | | } |
---|
120 | 122 | | else 0 |
---|
121 | 123 | | } |
---|
122 | | - | if ((S > Q.amount)) |
---|
| 124 | + | if ((T > R.amount)) |
---|
123 | 125 | | then throw("purschase amount cannot be less than item price") |
---|
124 | | - | else if ((Q.amount > S)) |
---|
| 126 | + | else if ((R.amount > T)) |
---|
125 | 127 | | then throw("purchase amount cannot be higher than item price") |
---|
126 | | - | else WriteSet([DataEntry(((("status:purchase_item_" + P) + "_customer_") + R), "confirmed"), DataEntry(((("price:purchase_item_" + P) + "_customer_") + R), S)]) |
---|
| 128 | + | else WriteSet([DataEntry(((("status:purchase_item_" + Q) + "_customer_") + S), "confirmed"), DataEntry(((("price:purchase_item_" + Q) + "_customer_") + S), T)]) |
---|
127 | 129 | | } |
---|
128 | 130 | | } |
---|
129 | 131 | | |
---|
130 | 132 | | |
---|
131 | 133 | | |
---|
132 | | - | @Callable(O) |
---|
133 | | - | func addItem (j,S,T) = { |
---|
134 | | - | let U = toBase58String(O.caller.bytes) |
---|
135 | | - | let l = h(U, j) |
---|
136 | | - | if ((0 >= S)) |
---|
| 134 | + | @Callable(P) |
---|
| 135 | + | func addItem (k,T,U) = { |
---|
| 136 | + | let V = toBase58String(P.caller.bytes) |
---|
| 137 | + | let m = i(V, k) |
---|
| 138 | + | if ((0 >= T)) |
---|
137 | 139 | | then throw("purchase amount cannot be less than item price") |
---|
138 | | - | else if ((y(l) != a)) |
---|
| 140 | + | else if ((z(m) != a)) |
---|
139 | 141 | | then throw("an items is already exist") |
---|
140 | | - | else WriteSet([DataEntry(k(l), U), DataEntry(n(l), S), DataEntry(o(l), T)]) |
---|
| 142 | + | else WriteSet([DataEntry(l(m), V), DataEntry(o(m), T), DataEntry(p(m), U)]) |
---|
141 | 143 | | } |
---|
142 | 144 | | |
---|
143 | 145 | | |
---|
144 | 146 | | |
---|
145 | | - | @Callable(O) |
---|
146 | | - | func purchase (l) = { |
---|
147 | | - | let Q = extract(O.payment) |
---|
148 | | - | if (isDefined(Q.assetId)) |
---|
| 147 | + | @Callable(P) |
---|
| 148 | + | func purchase (m) = { |
---|
| 149 | + | let R = extract(P.payment) |
---|
| 150 | + | if (isDefined(R.assetId)) |
---|
149 | 151 | | then throw("WAVES tokens only at the moment") |
---|
150 | 152 | | else { |
---|
151 | | - | let V = toBase58String(O.caller.bytes) |
---|
152 | | - | let S = z(l) |
---|
153 | | - | let U = y(l) |
---|
154 | | - | if ((S > Q.amount)) |
---|
| 153 | + | let W = toBase58String(P.caller.bytes) |
---|
| 154 | + | let T = A(m) |
---|
| 155 | + | let V = z(m) |
---|
| 156 | + | if ((T > R.amount)) |
---|
155 | 157 | | then throw("purchase amount cannot be less than item price") |
---|
156 | | - | else if ((Q.amount > S)) |
---|
| 158 | + | else if ((R.amount > T)) |
---|
157 | 159 | | then throw("purchase amount cannot be higher than item price") |
---|
158 | | - | else if ((U == a)) |
---|
| 160 | + | else if ((V == a)) |
---|
159 | 161 | | then throw("supplier does not exist") |
---|
160 | | - | else WriteSet([DataEntry(p(V, l), (A(V, l) + 1)), DataEntry(m(U), (B(U) + Q.amount))]) |
---|
| 162 | + | else WriteSet([DataEntry(q(W, m), (B(W, m) + 1)), DataEntry(n(V), (C(V) + R.amount))]) |
---|
161 | 163 | | } |
---|
162 | 164 | | } |
---|
163 | 165 | | |
---|
164 | 166 | | |
---|
165 | 167 | | |
---|
166 | | - | @Callable(O) |
---|
167 | | - | func withdraw () = { |
---|
168 | | - | let U = toBase58String(O.caller.bytes) |
---|
169 | | - | let W = B(U) |
---|
170 | | - | if ((0 >= W)) |
---|
| 168 | + | @Callable(P) |
---|
| 169 | + | func withdrawO () = { |
---|
| 170 | + | let V = toBase58String(P.caller.bytes) |
---|
| 171 | + | let X = C(V) |
---|
| 172 | + | if ((0 >= X)) |
---|
171 | 173 | | then throw("insufficient balance") |
---|
172 | | - | else ScriptResult(WriteSet([DataEntry(m(U), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(U), W, unit)])) |
---|
| 174 | + | else ScriptResult(WriteSet([DataEntry(n(V), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(V), X, unit)])) |
---|
173 | 175 | | } |
---|
174 | 176 | | |
---|
175 | 177 | | |
---|
176 | 178 | | |
---|
177 | | - | @Callable(O) |
---|
178 | | - | func voteCommit (l,X) = { |
---|
179 | | - | let q = toBase58String(O.caller.bytes) |
---|
180 | | - | let Y = G(l) |
---|
181 | | - | let Z = K(l) |
---|
182 | | - | if ((Y >= b)) |
---|
| 179 | + | @Callable(P) |
---|
| 180 | + | func voteCommit (m,Y) = { |
---|
| 181 | + | let r = toBase58String(P.caller.bytes) |
---|
| 182 | + | let Z = H(m) |
---|
| 183 | + | let aa = L(m) |
---|
| 184 | + | if ((Z >= b)) |
---|
183 | 185 | | then throw("max votes") |
---|
184 | | - | else if ((E(l, q) != a)) |
---|
| 186 | + | else if ((F(m, r) != a)) |
---|
185 | 187 | | then throw("already participated") |
---|
186 | | - | else if ((k(l) == a)) |
---|
| 188 | + | else if ((l(m) == a)) |
---|
187 | 189 | | then throw("item not exist") |
---|
188 | | - | else if (if ((Z != a)) |
---|
189 | | - | then (Z != d) |
---|
| 190 | + | else if (if ((aa != a)) |
---|
| 191 | + | then (aa != d) |
---|
190 | 192 | | else false) |
---|
191 | 193 | | then throw("voting not possible") |
---|
192 | | - | else WriteSet([DataEntry(D(l, q), X), DataEntry(F(l), (Y + 1)), DataEntry(J(l), if ((Y == b)) |
---|
| 194 | + | else WriteSet([DataEntry(E(m, r), Y), DataEntry(G(m), (Z + 1)), DataEntry(K(m), if ((Z == b)) |
---|
193 | 195 | | then e |
---|
194 | 196 | | else d)]) |
---|
195 | 197 | | } |
---|
196 | 198 | | |
---|
197 | 199 | | |
---|
198 | 200 | | |
---|
199 | | - | @Callable(O) |
---|
200 | | - | func voteReveal (l,M,aa) = { |
---|
201 | | - | let q = toBase58String(O.caller.bytes) |
---|
202 | | - | let Z = K(l) |
---|
203 | | - | let ab = (N(l, M) + 1) |
---|
204 | | - | if ((toBase58String(sha256(toBytes((M + aa)))) != E(l, q))) |
---|
| 201 | + | @Callable(P) |
---|
| 202 | + | func voteReveal (m,N,ab) = { |
---|
| 203 | + | let r = toBase58String(P.caller.bytes) |
---|
| 204 | + | let aa = L(m) |
---|
| 205 | + | let ac = (O(m, N) + 1) |
---|
| 206 | + | if ((toBase58String(sha256(toBytes((N + ab)))) != F(m, r))) |
---|
205 | 207 | | then throw("reveal data is not valid") |
---|
206 | | - | else if ((b > G(l))) |
---|
| 208 | + | else if ((b > H(m))) |
---|
207 | 209 | | then throw("max num of voters not reached") |
---|
208 | | - | else if ((I(l, q) != a)) |
---|
| 210 | + | else if ((J(m, r) != a)) |
---|
209 | 211 | | then throw("user has already participated") |
---|
210 | | - | else if (if ((Z != d)) |
---|
211 | | - | then (Z != e) |
---|
| 212 | + | else if (if ((aa != d)) |
---|
| 213 | + | then (aa != e) |
---|
212 | 214 | | else false) |
---|
213 | 215 | | then throw("wrong status") |
---|
214 | | - | else if (if ((M != f)) |
---|
215 | | - | then (M != g) |
---|
| 216 | + | else if (if ((N != f)) |
---|
| 217 | + | then (N != g) |
---|
216 | 218 | | else false) |
---|
217 | 219 | | then throw("wrong vote") |
---|
218 | | - | else if (if ((Z == f)) |
---|
| 220 | + | else if (if ((aa == f)) |
---|
219 | 221 | | then true |
---|
220 | | - | else (Z == g)) |
---|
| 222 | + | else (aa == g)) |
---|
221 | 223 | | then throw("vote finished") |
---|
222 | | - | else WriteSet([DataEntry(H(l, q), M), DataEntry(L(l, M), ab), DataEntry(J(l), if ((ab >= c)) |
---|
223 | | - | then M |
---|
| 224 | + | else WriteSet([DataEntry(I(m, r), N), DataEntry(M(m, N), ac), DataEntry(K(m), if ((ac >= c)) |
---|
| 225 | + | then N |
---|
224 | 226 | | else e)]) |
---|
| 227 | + | } |
---|
| 228 | + | |
---|
| 229 | + | |
---|
| 230 | + | |
---|
| 231 | + | @Callable(P) |
---|
| 232 | + | func deposit () = { |
---|
| 233 | + | let R = extract(P.payment) |
---|
| 234 | + | if ((R.assetId != h)) |
---|
| 235 | + | then throw("HmWPZDMJ6zq2QCcpCMucVQtQuMGkCTkz37J5qjvUwJe3 only at moment") |
---|
| 236 | + | else { |
---|
| 237 | + | let ad = toBase58String(P.caller.bytes) |
---|
| 238 | + | let ae = { |
---|
| 239 | + | let v = getInteger(this, ad) |
---|
| 240 | + | if ($isInstanceOf(v, "Int")) |
---|
| 241 | + | then { |
---|
| 242 | + | let w = v |
---|
| 243 | + | w |
---|
| 244 | + | } |
---|
| 245 | + | else 0 |
---|
| 246 | + | } |
---|
| 247 | + | let af = (ae + R.amount) |
---|
| 248 | + | WriteSet([DataEntry(ad, af)]) |
---|
| 249 | + | } |
---|
| 250 | + | } |
---|
| 251 | + | |
---|
| 252 | + | |
---|
| 253 | + | |
---|
| 254 | + | @Callable(P) |
---|
| 255 | + | func withdraw (ag) = { |
---|
| 256 | + | let ad = toBase58String(P.caller.bytes) |
---|
| 257 | + | let ae = { |
---|
| 258 | + | let v = getInteger(this, ad) |
---|
| 259 | + | if ($isInstanceOf(v, "Int")) |
---|
| 260 | + | then { |
---|
| 261 | + | let w = v |
---|
| 262 | + | w |
---|
| 263 | + | } |
---|
| 264 | + | else 0 |
---|
| 265 | + | } |
---|
| 266 | + | let af = (ae - ag) |
---|
| 267 | + | if ((0 > ag)) |
---|
| 268 | + | then throw("Can't wd negative amount") |
---|
| 269 | + | else if ((0 > af)) |
---|
| 270 | + | then throw("not enough") |
---|
| 271 | + | else ScriptResult(WriteSet([DataEntry(ad, af)]), TransferSet([ScriptTransfer(P.caller, ag, h)])) |
---|
225 | 272 | | } |
---|
226 | 273 | | |
---|
227 | 274 | | |
---|
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 = 3 |
---|
7 | 7 | | |
---|
8 | 8 | | let c = 2 |
---|
9 | 9 | | |
---|
10 | 10 | | let d = "voting" |
---|
11 | 11 | | |
---|
12 | 12 | | let e = "reveal" |
---|
13 | 13 | | |
---|
14 | 14 | | let f = "featured" |
---|
15 | 15 | | |
---|
16 | 16 | | let g = "delisted" |
---|
17 | 17 | | |
---|
18 | | - | func h (i,j) = ("item_" + toBase58String(sha256(toBytes((i + j))))) |
---|
| 18 | + | let h = base58'HmWPZDMJ6zq2QCcpCMucVQtQuMGkCTkz37J5qjvUwJe3' |
---|
| 19 | + | |
---|
| 20 | + | func i (j,k) = ("item_" + toBase58String(sha256(toBytes((j + k))))) |
---|
19 | 21 | | |
---|
20 | 22 | | |
---|
21 | | - | func k (l) = (l + "_owner") |
---|
| 23 | + | func l (m) = (m + "_owner") |
---|
22 | 24 | | |
---|
23 | 25 | | |
---|
24 | | - | func m (l) = (l + "_balance") |
---|
| 26 | + | func n (m) = (m + "_balance") |
---|
25 | 27 | | |
---|
26 | 28 | | |
---|
27 | | - | func n (l) = (l + "_price") |
---|
| 29 | + | func o (m) = (m + "_price") |
---|
28 | 30 | | |
---|
29 | 31 | | |
---|
30 | | - | func o (l) = (l + "_data") |
---|
| 32 | + | func p (m) = (m + "_data") |
---|
31 | 33 | | |
---|
32 | 34 | | |
---|
33 | | - | func p (q,l) = (((l + "_") + q) + "_cnt") |
---|
| 35 | + | func q (r,m) = (((m + "_") + r) + "_cnt") |
---|
34 | 36 | | |
---|
35 | 37 | | |
---|
36 | | - | func r (s) = { |
---|
37 | | - | let t = { |
---|
38 | | - | let u = getString(this, s) |
---|
39 | | - | if ($isInstanceOf(u, "String")) |
---|
| 38 | + | func s (t) = { |
---|
| 39 | + | let u = { |
---|
| 40 | + | let v = getString(this, t) |
---|
| 41 | + | if ($isInstanceOf(v, "String")) |
---|
40 | 42 | | then { |
---|
41 | | - | let v = u |
---|
42 | | - | v |
---|
| 43 | + | let w = v |
---|
| 44 | + | w |
---|
43 | 45 | | } |
---|
44 | 46 | | else a |
---|
45 | 47 | | } |
---|
46 | | - | t |
---|
| 48 | + | u |
---|
47 | 49 | | } |
---|
48 | 50 | | |
---|
49 | 51 | | |
---|
50 | | - | func w (s) = { |
---|
51 | | - | let x = { |
---|
52 | | - | let u = getInteger(this, s) |
---|
53 | | - | if ($isInstanceOf(u, "Int")) |
---|
| 52 | + | func x (t) = { |
---|
| 53 | + | let y = { |
---|
| 54 | + | let v = getInteger(this, t) |
---|
| 55 | + | if ($isInstanceOf(v, "Int")) |
---|
54 | 56 | | then { |
---|
55 | | - | let v = u |
---|
56 | | - | v |
---|
| 57 | + | let w = v |
---|
| 58 | + | w |
---|
57 | 59 | | } |
---|
58 | 60 | | else 0 |
---|
59 | 61 | | } |
---|
60 | | - | x |
---|
| 62 | + | y |
---|
61 | 63 | | } |
---|
62 | 64 | | |
---|
63 | 65 | | |
---|
64 | | - | func y (l) = r(k(l)) |
---|
| 66 | + | func z (m) = s(l(m)) |
---|
65 | 67 | | |
---|
66 | 68 | | |
---|
67 | | - | func z (l) = w(n(l)) |
---|
| 69 | + | func A (m) = x(o(m)) |
---|
68 | 70 | | |
---|
69 | 71 | | |
---|
70 | | - | func A (q,l) = w(p(q, l)) |
---|
| 72 | + | func B (r,m) = x(q(r, m)) |
---|
71 | 73 | | |
---|
72 | 74 | | |
---|
73 | | - | func B (C) = w(m(C)) |
---|
| 75 | + | func C (D) = x(n(D)) |
---|
74 | 76 | | |
---|
75 | 77 | | |
---|
76 | | - | func D (l,q) = (((l + "_") + q) + "_commit") |
---|
| 78 | + | func E (m,r) = (((m + "_") + r) + "_commit") |
---|
77 | 79 | | |
---|
78 | 80 | | |
---|
79 | | - | func E (l,q) = r(D(l, q)) |
---|
| 81 | + | func F (m,r) = s(E(m, r)) |
---|
80 | 82 | | |
---|
81 | 83 | | |
---|
82 | | - | func F (l) = (l + "_comcnt") |
---|
| 84 | + | func G (m) = (m + "_comcnt") |
---|
83 | 85 | | |
---|
84 | 86 | | |
---|
85 | | - | func G (l) = w(F(l)) |
---|
| 87 | + | func H (m) = x(G(m)) |
---|
86 | 88 | | |
---|
87 | 89 | | |
---|
88 | | - | func H (l,q) = (((l + "_") + q) + "_reveal") |
---|
| 90 | + | func I (m,r) = (((m + "_") + r) + "_reveal") |
---|
89 | 91 | | |
---|
90 | 92 | | |
---|
91 | | - | func I (l,q) = r(H(l, q)) |
---|
| 93 | + | func J (m,r) = s(I(m, r)) |
---|
92 | 94 | | |
---|
93 | 95 | | |
---|
94 | | - | func J (l) = (l + "_status") |
---|
| 96 | + | func K (m) = (m + "_status") |
---|
95 | 97 | | |
---|
96 | 98 | | |
---|
97 | | - | func K (l) = r(J(l)) |
---|
| 99 | + | func L (m) = s(K(m)) |
---|
98 | 100 | | |
---|
99 | 101 | | |
---|
100 | | - | func L (l,M) = ((l + "_res:") + M) |
---|
| 102 | + | func M (m,N) = ((m + "_res:") + N) |
---|
101 | 103 | | |
---|
102 | 104 | | |
---|
103 | | - | func N (l,M) = w(L(l, M)) |
---|
| 105 | + | func O (m,N) = x(M(m, N)) |
---|
104 | 106 | | |
---|
105 | 107 | | |
---|
106 | | - | @Callable(O) |
---|
107 | | - | func purchaseOld (P) = { |
---|
108 | | - | let Q = extract(O.payment) |
---|
109 | | - | if (isDefined(Q.assetId)) |
---|
| 108 | + | @Callable(P) |
---|
| 109 | + | func purchaseOld (Q) = { |
---|
| 110 | + | let R = extract(P.payment) |
---|
| 111 | + | if (isDefined(R.assetId)) |
---|
110 | 112 | | then throw("can use WAVES only at the moment") |
---|
111 | 113 | | else { |
---|
112 | | - | let R = toBase58String(O.caller.bytes) |
---|
113 | | - | let S = { |
---|
114 | | - | let u = getInteger(this, (("item_" + P) + "_coupon_price")) |
---|
115 | | - | if ($isInstanceOf(u, "Int")) |
---|
| 114 | + | let S = toBase58String(P.caller.bytes) |
---|
| 115 | + | let T = { |
---|
| 116 | + | let v = getInteger(this, (("item_" + Q) + "_coupon_price")) |
---|
| 117 | + | if ($isInstanceOf(v, "Int")) |
---|
116 | 118 | | then { |
---|
117 | | - | let v = u |
---|
118 | | - | v |
---|
| 119 | + | let w = v |
---|
| 120 | + | w |
---|
119 | 121 | | } |
---|
120 | 122 | | else 0 |
---|
121 | 123 | | } |
---|
122 | | - | if ((S > Q.amount)) |
---|
| 124 | + | if ((T > R.amount)) |
---|
123 | 125 | | then throw("purschase amount cannot be less than item price") |
---|
124 | | - | else if ((Q.amount > S)) |
---|
| 126 | + | else if ((R.amount > T)) |
---|
125 | 127 | | then throw("purchase amount cannot be higher than item price") |
---|
126 | | - | else WriteSet([DataEntry(((("status:purchase_item_" + P) + "_customer_") + R), "confirmed"), DataEntry(((("price:purchase_item_" + P) + "_customer_") + R), S)]) |
---|
| 128 | + | else WriteSet([DataEntry(((("status:purchase_item_" + Q) + "_customer_") + S), "confirmed"), DataEntry(((("price:purchase_item_" + Q) + "_customer_") + S), T)]) |
---|
127 | 129 | | } |
---|
128 | 130 | | } |
---|
129 | 131 | | |
---|
130 | 132 | | |
---|
131 | 133 | | |
---|
132 | | - | @Callable(O) |
---|
133 | | - | func addItem (j,S,T) = { |
---|
134 | | - | let U = toBase58String(O.caller.bytes) |
---|
135 | | - | let l = h(U, j) |
---|
136 | | - | if ((0 >= S)) |
---|
| 134 | + | @Callable(P) |
---|
| 135 | + | func addItem (k,T,U) = { |
---|
| 136 | + | let V = toBase58String(P.caller.bytes) |
---|
| 137 | + | let m = i(V, k) |
---|
| 138 | + | if ((0 >= T)) |
---|
137 | 139 | | then throw("purchase amount cannot be less than item price") |
---|
138 | | - | else if ((y(l) != a)) |
---|
| 140 | + | else if ((z(m) != a)) |
---|
139 | 141 | | then throw("an items is already exist") |
---|
140 | | - | else WriteSet([DataEntry(k(l), U), DataEntry(n(l), S), DataEntry(o(l), T)]) |
---|
| 142 | + | else WriteSet([DataEntry(l(m), V), DataEntry(o(m), T), DataEntry(p(m), U)]) |
---|
141 | 143 | | } |
---|
142 | 144 | | |
---|
143 | 145 | | |
---|
144 | 146 | | |
---|
145 | | - | @Callable(O) |
---|
146 | | - | func purchase (l) = { |
---|
147 | | - | let Q = extract(O.payment) |
---|
148 | | - | if (isDefined(Q.assetId)) |
---|
| 147 | + | @Callable(P) |
---|
| 148 | + | func purchase (m) = { |
---|
| 149 | + | let R = extract(P.payment) |
---|
| 150 | + | if (isDefined(R.assetId)) |
---|
149 | 151 | | then throw("WAVES tokens only at the moment") |
---|
150 | 152 | | else { |
---|
151 | | - | let V = toBase58String(O.caller.bytes) |
---|
152 | | - | let S = z(l) |
---|
153 | | - | let U = y(l) |
---|
154 | | - | if ((S > Q.amount)) |
---|
| 153 | + | let W = toBase58String(P.caller.bytes) |
---|
| 154 | + | let T = A(m) |
---|
| 155 | + | let V = z(m) |
---|
| 156 | + | if ((T > R.amount)) |
---|
155 | 157 | | then throw("purchase amount cannot be less than item price") |
---|
156 | | - | else if ((Q.amount > S)) |
---|
| 158 | + | else if ((R.amount > T)) |
---|
157 | 159 | | then throw("purchase amount cannot be higher than item price") |
---|
158 | | - | else if ((U == a)) |
---|
| 160 | + | else if ((V == a)) |
---|
159 | 161 | | then throw("supplier does not exist") |
---|
160 | | - | else WriteSet([DataEntry(p(V, l), (A(V, l) + 1)), DataEntry(m(U), (B(U) + Q.amount))]) |
---|
| 162 | + | else WriteSet([DataEntry(q(W, m), (B(W, m) + 1)), DataEntry(n(V), (C(V) + R.amount))]) |
---|
161 | 163 | | } |
---|
162 | 164 | | } |
---|
163 | 165 | | |
---|
164 | 166 | | |
---|
165 | 167 | | |
---|
166 | | - | @Callable(O) |
---|
167 | | - | func withdraw () = { |
---|
168 | | - | let U = toBase58String(O.caller.bytes) |
---|
169 | | - | let W = B(U) |
---|
170 | | - | if ((0 >= W)) |
---|
| 168 | + | @Callable(P) |
---|
| 169 | + | func withdrawO () = { |
---|
| 170 | + | let V = toBase58String(P.caller.bytes) |
---|
| 171 | + | let X = C(V) |
---|
| 172 | + | if ((0 >= X)) |
---|
171 | 173 | | then throw("insufficient balance") |
---|
172 | | - | else ScriptResult(WriteSet([DataEntry(m(U), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(U), W, unit)])) |
---|
| 174 | + | else ScriptResult(WriteSet([DataEntry(n(V), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(V), X, unit)])) |
---|
173 | 175 | | } |
---|
174 | 176 | | |
---|
175 | 177 | | |
---|
176 | 178 | | |
---|
177 | | - | @Callable(O) |
---|
178 | | - | func voteCommit (l,X) = { |
---|
179 | | - | let q = toBase58String(O.caller.bytes) |
---|
180 | | - | let Y = G(l) |
---|
181 | | - | let Z = K(l) |
---|
182 | | - | if ((Y >= b)) |
---|
| 179 | + | @Callable(P) |
---|
| 180 | + | func voteCommit (m,Y) = { |
---|
| 181 | + | let r = toBase58String(P.caller.bytes) |
---|
| 182 | + | let Z = H(m) |
---|
| 183 | + | let aa = L(m) |
---|
| 184 | + | if ((Z >= b)) |
---|
183 | 185 | | then throw("max votes") |
---|
184 | | - | else if ((E(l, q) != a)) |
---|
| 186 | + | else if ((F(m, r) != a)) |
---|
185 | 187 | | then throw("already participated") |
---|
186 | | - | else if ((k(l) == a)) |
---|
| 188 | + | else if ((l(m) == a)) |
---|
187 | 189 | | then throw("item not exist") |
---|
188 | | - | else if (if ((Z != a)) |
---|
189 | | - | then (Z != d) |
---|
| 190 | + | else if (if ((aa != a)) |
---|
| 191 | + | then (aa != d) |
---|
190 | 192 | | else false) |
---|
191 | 193 | | then throw("voting not possible") |
---|
192 | | - | else WriteSet([DataEntry(D(l, q), X), DataEntry(F(l), (Y + 1)), DataEntry(J(l), if ((Y == b)) |
---|
| 194 | + | else WriteSet([DataEntry(E(m, r), Y), DataEntry(G(m), (Z + 1)), DataEntry(K(m), if ((Z == b)) |
---|
193 | 195 | | then e |
---|
194 | 196 | | else d)]) |
---|
195 | 197 | | } |
---|
196 | 198 | | |
---|
197 | 199 | | |
---|
198 | 200 | | |
---|
199 | | - | @Callable(O) |
---|
200 | | - | func voteReveal (l,M,aa) = { |
---|
201 | | - | let q = toBase58String(O.caller.bytes) |
---|
202 | | - | let Z = K(l) |
---|
203 | | - | let ab = (N(l, M) + 1) |
---|
204 | | - | if ((toBase58String(sha256(toBytes((M + aa)))) != E(l, q))) |
---|
| 201 | + | @Callable(P) |
---|
| 202 | + | func voteReveal (m,N,ab) = { |
---|
| 203 | + | let r = toBase58String(P.caller.bytes) |
---|
| 204 | + | let aa = L(m) |
---|
| 205 | + | let ac = (O(m, N) + 1) |
---|
| 206 | + | if ((toBase58String(sha256(toBytes((N + ab)))) != F(m, r))) |
---|
205 | 207 | | then throw("reveal data is not valid") |
---|
206 | | - | else if ((b > G(l))) |
---|
| 208 | + | else if ((b > H(m))) |
---|
207 | 209 | | then throw("max num of voters not reached") |
---|
208 | | - | else if ((I(l, q) != a)) |
---|
| 210 | + | else if ((J(m, r) != a)) |
---|
209 | 211 | | then throw("user has already participated") |
---|
210 | | - | else if (if ((Z != d)) |
---|
211 | | - | then (Z != e) |
---|
| 212 | + | else if (if ((aa != d)) |
---|
| 213 | + | then (aa != e) |
---|
212 | 214 | | else false) |
---|
213 | 215 | | then throw("wrong status") |
---|
214 | | - | else if (if ((M != f)) |
---|
215 | | - | then (M != g) |
---|
| 216 | + | else if (if ((N != f)) |
---|
| 217 | + | then (N != g) |
---|
216 | 218 | | else false) |
---|
217 | 219 | | then throw("wrong vote") |
---|
218 | | - | else if (if ((Z == f)) |
---|
| 220 | + | else if (if ((aa == f)) |
---|
219 | 221 | | then true |
---|
220 | | - | else (Z == g)) |
---|
| 222 | + | else (aa == g)) |
---|
221 | 223 | | then throw("vote finished") |
---|
222 | | - | else WriteSet([DataEntry(H(l, q), M), DataEntry(L(l, M), ab), DataEntry(J(l), if ((ab >= c)) |
---|
223 | | - | then M |
---|
| 224 | + | else WriteSet([DataEntry(I(m, r), N), DataEntry(M(m, N), ac), DataEntry(K(m), if ((ac >= c)) |
---|
| 225 | + | then N |
---|
224 | 226 | | else e)]) |
---|
| 227 | + | } |
---|
| 228 | + | |
---|
| 229 | + | |
---|
| 230 | + | |
---|
| 231 | + | @Callable(P) |
---|
| 232 | + | func deposit () = { |
---|
| 233 | + | let R = extract(P.payment) |
---|
| 234 | + | if ((R.assetId != h)) |
---|
| 235 | + | then throw("HmWPZDMJ6zq2QCcpCMucVQtQuMGkCTkz37J5qjvUwJe3 only at moment") |
---|
| 236 | + | else { |
---|
| 237 | + | let ad = toBase58String(P.caller.bytes) |
---|
| 238 | + | let ae = { |
---|
| 239 | + | let v = getInteger(this, ad) |
---|
| 240 | + | if ($isInstanceOf(v, "Int")) |
---|
| 241 | + | then { |
---|
| 242 | + | let w = v |
---|
| 243 | + | w |
---|
| 244 | + | } |
---|
| 245 | + | else 0 |
---|
| 246 | + | } |
---|
| 247 | + | let af = (ae + R.amount) |
---|
| 248 | + | WriteSet([DataEntry(ad, af)]) |
---|
| 249 | + | } |
---|
| 250 | + | } |
---|
| 251 | + | |
---|
| 252 | + | |
---|
| 253 | + | |
---|
| 254 | + | @Callable(P) |
---|
| 255 | + | func withdraw (ag) = { |
---|
| 256 | + | let ad = toBase58String(P.caller.bytes) |
---|
| 257 | + | let ae = { |
---|
| 258 | + | let v = getInteger(this, ad) |
---|
| 259 | + | if ($isInstanceOf(v, "Int")) |
---|
| 260 | + | then { |
---|
| 261 | + | let w = v |
---|
| 262 | + | w |
---|
| 263 | + | } |
---|
| 264 | + | else 0 |
---|
| 265 | + | } |
---|
| 266 | + | let af = (ae - ag) |
---|
| 267 | + | if ((0 > ag)) |
---|
| 268 | + | then throw("Can't wd negative amount") |
---|
| 269 | + | else if ((0 > af)) |
---|
| 270 | + | then throw("not enough") |
---|
| 271 | + | else ScriptResult(WriteSet([DataEntry(ad, af)]), TransferSet([ScriptTransfer(P.caller, ag, h)])) |
---|
225 | 272 | | } |
---|
226 | 273 | | |
---|
227 | 274 | | |
---|