tx · FXxhtZkQrMxteDajVYm9oRGoDaug25UfZktUVuuQ6Laq

3NBB3iv7YDRsD8ZM2Pw2V5eTcsfqh3j2mvF:  -0.01400000 Waves

2019.06.27 12:16 [560339] smart account 3NBB3iv7YDRsD8ZM2Pw2V5eTcsfqh3j2mvF > SELF 0.00000000 Waves

{ "type": 13, "id": "FXxhtZkQrMxteDajVYm9oRGoDaug25UfZktUVuuQ6Laq", "fee": 1400000, "feeAssetId": null, "timestamp": 1561626977371, "version": 1, "sender": "3NBB3iv7YDRsD8ZM2Pw2V5eTcsfqh3j2mvF", "senderPublicKey": "9i5FpMUFCwhogG5euZDBZKV6NehQN4xX83qvNr8NWipE", "proofs": [ "2pavKmAUTNQZ9xx7pvxMtbvsdMmGbenDrH2vRdB3oATmug3TrjtvyYY56F594oXMyXZLnopaNNyFmqQoaQwaWbrH" ], "script": "base64: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X2Z1bmRfBQAAAARpdGVtAQAAABZnZXRLZXlJdGVtRnVuZE5lZ2F0aXZlAAAAAQAAAARpdGVtCQABLAAAAAICAAAADm5lZ2F0aXZlX2Z1bmRfBQAAAARpdGVtAQAAABlnZXRLZXlJdGVtQWNjRnVuZFBvc2l0aXZlAAAAAgAAAARpdGVtAAAAB2FjY291bnQJAAEsAAAAAgkAASwAAAACCQEAAAAWZ2V0S2V5SXRlbUZ1bmRQb3NpdGl2ZQAAAAEFAAAABGl0ZW0CAAAAAV8FAAAAB2FjY291bnQBAAAAGWdldEtleUl0ZW1BY2NGdW5kTmVnYXRpdmUAAAACAAAABGl0ZW0AAAAHYWNjb3VudAkAASwAAAACCQABLAAAAAIJAQAAABZnZXRLZXlJdGVtRnVuZE5lZ2F0aXZlAAAAAQUAAAAEaXRlbQIAAAABXwUAAAAHYWNjb3VudAEAAAAXZ2V0S2V5SXRlbUFjY1Jldmlld3NDbnQAAAACAAAABGl0ZW0AAAAHYWNjb3VudAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAMcmV2aWV3c19jbnRfBQAAAARpdGVtAgAAAAFfBQAAAAdhY2NvdW50AQAAABNnZXRLZXlJdGVtQWNjUmV2aWV3AAAAAgAAAARpdGVtAAAAB2FjY291bnQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAB3Jldmlld18FAAAABGl0ZW0CAAAAAV8FAAAAB2FjY291bnQBAAAAF2dldEtleUl0ZW1BY2NSZXZpZXdUZXh0AAAAAwAAAARpdGVtAAAAB2FjY291bnQAAAADY250CQABLAAAAAIJAAEsAAAAAgkBAAAAE2dldEtleUl0ZW1BY2NSZXZpZXcAAAACBQAAAARpdGVtBQAAAAdhY2NvdW50AgAAAAlfdGV4dF9pZDoFAAAAA2NudAEAAAAXZ2V0S2V5SXRlbUFjY1Jldmlld01vZGUAAAADAAAABGl0ZW0AAAAHYWNjb3VudAAAAANjbnQJAAEsAAAAAgkAASwAAAACCQEAAAATZ2V0S2V5SXRlbUFjY1JldmlldwAAAAIFAAAABGl0ZW0FAAAAB2FjY291bnQCAAAACV9tb2RlX2lkOgUAAAADY250AQAAABdnZXRLZXlJdGVtQWNjUmV2aWV3VGllcgAAAAMAAAAEaXRlbQAAAAdhY2NvdW50AAAAA2NudAkAASwAAAACCQABLAAAAAIJAQAAABNnZXRLZXlJdGVtQWNjUmV2aWV3AAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAIAAAAJX3RpZXJfaWQ6BQAAAANjbnQBAAAAG2dldEtleUl0ZW1BY2NWb3RlUmV2aWV3VGV4dAAAAAIAAAAEaXRlbQAAAAdhY2NvdW50CQABLAAAAAIJAQAAABNnZXRLZXlJdGVtQWNjUmV2aWV3AAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAIAAAALX3ZvdGVyZXZpZXcBAAAAHGdldEtleUl0ZW1BY2NXaGFsZVJldmlld1RleHQAAAACAAAABGl0ZW0AAAAHYWNjb3VudAkAASwAAAACCQEAAAATZ2V0S2V5SXRlbUFjY1JldmlldwAAAAIFAAAABGl0ZW0FAAAAB2FjY291bnQCAAAADF93aGFsZXJldmlldwEAAAAWZ2V0S2V5SXRlbUJ1eW91dEFtb3VudAAAAAEAAAAEaXRlbQkAASwAAAACAgAAAA5idXlvdXRfYW1vdW50XwUAAAAEaXRlbQEAAAAVZ2V0S2V5SXRlbUFjY1dpbm5pbmdzAAAAAgAAAARpdGVtAAAAB2FjY291bnQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACXdpbm5pbmdzXwUAAAAEaXRlbQIAAAABXwUAAAAHYWNjb3VudAEAAAAUZ2V0VmFsdWVXaGl0ZWxpc3RSZWYAAAABAAAAB2FjY291bnQJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABJnZXRLZXlXaGl0ZWxpc3RSZWYAAAABBQAAAAdhY2NvdW50AQAAABdnZXRWYWx1ZVdoaXRlbGlzdFN0YXR1cwAAAAEAAAAHYWNjb3VudAkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAFWdldEtleVdoaXRlbGlzdFN0YXR1cwAAAAEFAAAAB2FjY291bnQBAAAAD2dldFZhbHVlQmFsYW5jZQAAAAEAAAAHYWNjb3VudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAADWdldEtleUJhbGFuY2UAAAABBQAAAAdhY2NvdW50AQAAABRnZXRWYWx1ZVdoaXRlbGlzdEJpbwAAAAEAAAAHYWNjb3VudAkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEmdldEtleVdoaXRlbGlzdEJpbwAAAAEFAAAAB2FjY291bnQBAAAAFmdldFZhbHVlV2hpdGVsaXN0QmxvY2sAAAABAAAAB2FjY291bnQJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABRnZXRLZXlXaGl0ZWxpc3RCbG9jawAAAAEFAAAAB2FjY291bnQBAAAAEmdldFZhbHVlSXRlbUF1dGhvcgAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEGdldEtleUl0ZW1BdXRob3IAAAABBQAAAARpdGVtAQAAABFnZXRWYWx1ZUl0ZW1CbG9jawAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAD2dldEtleUl0ZW1CbG9jawAAAAEFAAAABGl0ZW0BAAAAHGdldFZhbHVlSXRlbVZvdGluZ0V4cGlyYXRpb24AAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABpnZXRLZXlJdGVtVm90aW5nRXhwaXJhdGlvbgAAAAEFAAAABGl0ZW0BAAAAEGdldFZhbHVlSXRlbUJhbmsAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAA5nZXRLZXlJdGVtQmFuawAAAAEFAAAABGl0ZW0BAAAAEmdldFZhbHVlSXRlbVN0YXR1cwAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEGdldEtleUl0ZW1TdGF0dXMAAAABBQAAAARpdGVtAQAAABBnZXRWYWx1ZUl0ZW1EYXRhAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAOZ2V0S2V5SXRlbURhdGEAAAABBQAAAARpdGVtAQAAABtnZXRWYWx1ZUl0ZW1Dcm93ZEV4cGlyYXRpb24AAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABlnZXRLZXlJdGVtQ3Jvd2RFeHBpcmF0aW9uAAAAAQUAAAAEaXRlbQEAAAAbZ2V0VmFsdWVJdGVtV2hhbGVFeHBpcmF0aW9uAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAZZ2V0S2V5SXRlbVdoYWxlRXhwaXJhdGlvbgAAAAEFAAAABGl0ZW0BAAAAFGdldFZhbHVlSXRlbU5Db21taXRzAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAASZ2V0S2V5SXRlbU5Db21taXRzAAAAAQUAAAAEaXRlbQEAAAAVZ2V0VmFsdWVJdGVtQWNjQ29tbWl0AAAAAgAAAARpdGVtAAAAB2FjY291bnQJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABNnZXRLZXlJdGVtQWNjQ29tbWl0AAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAEAAAAVZ2V0VmFsdWVJdGVtQWNjUmV2ZWFsAAAAAgAAAARpdGVtAAAAB2FjY291bnQJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABNnZXRLZXlJdGVtQWNjUmV2ZWFsAAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAEAAAAUZ2V0VmFsdWVJdGVtVm90ZXNZZXMAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABJnZXRLZXlJdGVtVm90ZXNZZXMAAAABBQAAAARpdGVtAQAAABNnZXRWYWx1ZUl0ZW1Wb3Rlc05vAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAARZ2V0S2V5SXRlbVZvdGVzTm8AAAABBQAAAARpdGVtAQAAABRnZXRWYWx1ZUl0ZW1BY2NGaW5hbAAAAAIAAAAEaXRlbQAAAAdhY2NvdW50CQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAASZ2V0S2V5SXRlbUFjY0ZpbmFsAAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAEAAAAYZ2V0VmFsdWVJdGVtRnVuZFBvc2l0aXZlAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAWZ2V0S2V5SXRlbUZ1bmRQb3NpdGl2ZQAAAAEFAAAABGl0ZW0BAAAAGGdldFZhbHVlSXRlbUZ1bmROZWdhdGl2ZQAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFmdldEtleUl0ZW1GdW5kTmVnYXRpdmUAAAABBQAAAARpdGVtAQAAABtnZXRWYWx1ZUl0ZW1BY2NGdW5kUG9zaXRpdmUAAAACAAAABGl0ZW0AAAAHYWNjb3VudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAGWdldEtleUl0ZW1BY2NGdW5kUG9zaXRpdmUAAAACBQAAAARpdGVtBQAAAAdhY2NvdW50AQAAABtnZXRWYWx1ZUl0ZW1BY2NGdW5kTmVnYXRpdmUAAAACAAAABGl0ZW0AAAAHYWNjb3VudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAGWdldEtleUl0ZW1BY2NGdW5kTmVnYXRpdmUAAAACBQAAAARpdGVtBQAAAAdhY2NvdW50AQAAABlnZXRWYWx1ZUl0ZW1BY2NSZXZpZXdzQ250AAAAAgAAAARpdGVtAAAAB2FjY291bnQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABdnZXRLZXlJdGVtQWNjUmV2aWV3c0NudAAAAAIFAAAABGl0ZW0FAAAAB2FjY291bnQBAAAAGWdldFZhbHVlSXRlbUFjY1Jldmlld1RleHQAAAADAAAABGl0ZW0AAAAHYWNjb3VudAAAAANjbnQJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABdnZXRLZXlJdGVtQWNjUmV2aWV3VGV4dAAAAAMFAAAABGl0ZW0FAAAAB2FjY291bnQFAAAAA2NudAEAAAAZZ2V0VmFsdWVJdGVtQWNjUmV2aWV3TW9kZQAAAAMAAAAEaXRlbQAAAAdhY2NvdW50AAAAA2NudAkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAF2dldEtleUl0ZW1BY2NSZXZpZXdNb2RlAAAAAwUAAAAEaXRlbQUAAAAHYWNjb3VudAUAAAADY250AQAAABlnZXRWYWx1ZUl0ZW1BY2NSZXZpZXdUaWVyAAAAAwAAAARpdGVtAAAAB2FjY291bnQAAAADY250CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAXZ2V0S2V5SXRlbUFjY1Jldmlld1RpZXIAAAADBQAAAARpdGVtBQAAAAdhY2NvdW50BQAAAANjbnQBAAAAGGdldFZhbHVlSXRlbUJ1eW91dEFtb3VudAAAAAEAAAAEaXRlbQkBAAAA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", "chainId": 84, "height": 560339, "spentComplexity": 0 } View: original | compacted Prev: 5MT1zUXvRnhmFaMCapaKQW4gzwrRSKBAALoJwtDtVBFs Next: 5F9Sp2XzEKrJcssudhyWpNuKpXVjtxespJBgxiaFtdwr Diff:
OldNewDifferences
115115 func M (p,j,K) = ((I(p, j) + "_tier_id:") + K)
116116
117117
118-func N (p) = ("buyout_amount_" + p)
118+func N (p,j) = (I(p, j) + "_votereview")
119119
120120
121-func O (p,j) = ((("winnings_" + p) + "_") + j)
121+func O (p,j) = (I(p, j) + "_whalereview")
122122
123123
124-func P (j) = g(i(j))
124+func P (p) = ("buyout_amount_" + p)
125125
126126
127-func Q (j) = g(k(j))
127+func Q (p,j) = ((("winnings_" + p) + "_") + j)
128128
129129
130-func R (j) = b(l(j))
130+func R (j) = g(i(j))
131131
132132
133-func S (j) = g(m(j))
133+func S (j) = g(k(j))
134134
135135
136-func T (j) = g(n(j))
136+func T (j) = b(l(j))
137137
138138
139-func U (p) = g(o(p))
139+func U (j) = g(m(j))
140140
141141
142-func V (p) = b(q(p))
142+func V (j) = g(n(j))
143143
144144
145-func W (p) = b(r(p))
145+func W (p) = g(o(p))
146146
147147
148-func X (p) = b(s(p))
148+func X (p) = b(q(p))
149149
150150
151-func Y (p) = g(t(p))
151+func Y (p) = b(r(p))
152152
153153
154-func Z (p) = g(u(p))
154+func Z (p) = b(s(p))
155155
156156
157-func aa (p) = b(v(p))
157+func aa (p) = g(t(p))
158158
159159
160-func ab (p) = b(w(p))
160+func ab (p) = g(u(p))
161161
162162
163-func ac (p) = b(x(p))
163+func ac (p) = b(v(p))
164164
165165
166-func ad (p,j) = g(y(p, j))
166+func ad (p) = b(w(p))
167167
168168
169-func ae (p,j) = g(z(p, j))
169+func ae (p) = b(x(p))
170170
171171
172-func af (p) = b(A(p))
172+func af (p,j) = g(y(p, j))
173173
174174
175-func ag (p) = b(B(p))
175+func ag (p,j) = g(z(p, j))
176176
177177
178-func ah (p,j) = g(C(p, j))
178+func ah (p) = b(A(p))
179179
180180
181-func ai (p) = b(D(p))
181+func ai (p) = b(B(p))
182182
183183
184-func aj (p) = b(E(p))
184+func aj (p,j) = g(C(p, j))
185185
186186
187-func ak (p,j) = b(F(p, j))
187+func ak (p) = b(D(p))
188188
189189
190-func al (p,j) = b(G(p, j))
190+func al (p) = b(E(p))
191191
192192
193-func am (p,j) = b(H(p, j))
193+func am (p,j) = b(F(p, j))
194194
195195
196-func an (p,j,K) = g(J(p, j, K))
196+func an (p,j) = b(G(p, j))
197197
198198
199-func ao (p,j,K) = g(L(p, j, K))
199+func ao (p,j) = b(H(p, j))
200200
201201
202-func ap (p,j,K) = b(M(p, j, K))
202+func ap (p,j,K) = g(J(p, j, K))
203203
204204
205-func aq (p) = b(N(p))
205+func aq (p,j,K) = g(L(p, j, K))
206206
207207
208-func ar (p,j) = b(O(p, j))
208+func ar (p,j,K) = b(M(p, j, K))
209209
210210
211-let as = "registered"
211+func as (p) = b(P(p))
212212
213-let at = "invited"
214213
215-let au = "whale"
214+func at (p,j) = b(Q(p, j))
216215
217-let av = "new"
218216
219-let aw = "voting_commit"
217+let au = "registered"
220218
221-let ax = "voting_reveal"
219+let av = "invited"
222220
223-let ay = "featured"
221+let aw = "whale"
224222
225-let az = "delisted"
223+let ax = "new"
226224
227-let aA = "cashout"
225+let ay = "voting_commit"
228226
229-let aB = "buyout"
227+let az = "voting_reveal"
230228
231-let aC = "finished"
229+let aA = "featured"
232230
233-let aD = "claimed"
231+let aB = "delisted"
234232
235-let aE = "positive"
233+let aC = "cashout"
236234
237-let aF = "negative"
235+let aD = "buyout"
238236
239-let aG = "3NBB3iv7YDRsD8ZM2Pw2V5eTcsfqh3j2mvF"
237+let aE = "finished"
240238
241-let aH = 3
239+let aF = "claimed"
242240
243-let aI = 2
241+let aG = "positive"
244242
245-let aJ = (500000000 / 1000)
243+let aH = "negative"
246244
247-let aK = (150000000 / 1000)
245+let aI = "3NBB3iv7YDRsD8ZM2Pw2V5eTcsfqh3j2mvF"
248246
249-let aL = [10, 50, 250, 1250, 6250]
247+let aJ = 3
250248
251-let aM = 150
249+let aK = 2
252250
253-@Callable(aN)
254-func inviteuser (aO,aP) = {
255- let j = toBase58String(aN.caller.bytes)
256- if ((P(aO) != a))
251+let aL = (500000000 / 1000)
252+
253+let aM = (150000000 / 1000)
254+
255+let aN = [10, 50, 250, 1250, 6250]
256+
257+let aO = 150
258+
259+@Callable(aP)
260+func inviteuser (aQ,aR) = {
261+ let j = toBase58String(aP.caller.bytes)
262+ if ((R(aQ) != a))
257263 then throw("User has already been invited")
258- else if (if ((k(j) != as))
259- then (j != aG)
264+ else if (if ((k(j) != au))
265+ then (j != aI)
260266 else false)
261267 then throw("Your account should be whitelisted")
262- else WriteSet([DataEntry(i(aO), j), DataEntry(m(aO), aP), DataEntry(k(aO), at)])
268+ else WriteSet([DataEntry(i(aQ), j), DataEntry(m(aQ), aR), DataEntry(k(aQ), av)])
263269 }
264270
265271
266272
267-@Callable(aN)
268-func signup (aP,aQ) = {
269- let j = toBase58String(aN.caller.bytes)
270- if (if ((Q(j) != at))
271- then (aG != j)
273+@Callable(aP)
274+func signup (aR,aS) = {
275+ let j = toBase58String(aP.caller.bytes)
276+ if (if ((S(j) != av))
277+ then (aI != j)
272278 else false)
273279 then throw("Referral invite needed")
274- else WriteSet([DataEntry(m(j), aP), DataEntry(n(j), height), DataEntry(k(j), if ((aQ == au))
275- then au
276- else as)])
280+ else WriteSet([DataEntry(m(j), aR), DataEntry(n(j), height), DataEntry(k(j), if ((aS == aw))
281+ then aw
282+ else au)])
277283 }
278284
279285
280286
281-@Callable(aN)
282-func withdraw () = {
283- let aR = toBase58String(aN.caller.bytes)
284- let aS = R(aR)
285- if ((0 >= aS))
286- then throw("Not enough balance")
287- else ScriptResult(WriteSet([DataEntry(l(aR), 0)]), TransferSet([ScriptTransfer(aN.caller, aS, unit)]))
287+@Callable(aP)
288+func userupdate (aR,aS) = {
289+ let j = toBase58String(aP.caller.bytes)
290+ WriteSet([DataEntry(m(j), aR), DataEntry(k(j), if ((aS == aw))
291+ then aw
292+ else au)])
288293 }
289294
290295
291296
292-@Callable(aN)
293-func additem (p,aT,aU,aV,aP) = {
294- let j = toBase58String(aN.caller.bytes)
295- let aW = extract(aN.payment)
296- if (isDefined(aW.assetId))
297- then throw("can use waves only at the moment")
298- else if ((aW.amount != aJ))
299- then throw("Please pay exact amount for the listing")
300- else if (if (if ((aT > 2))
301- then (aU > 3)
302- else false)
303- then (aV > 4)
304- else false)
305- then throw("Incorrect time parameters")
306- else if ((U(p) != a))
307- then throw("Item already exist")
308- else WriteSet([DataEntry(o(p), j), DataEntry(q(p), height), DataEntry(r(p), (height + aT)), DataEntry(s(p), aJ), DataEntry(t(p), av), DataEntry(u(p), aP), DataEntry(v(p), (height + aU)), DataEntry(w(p), (height + aV))])
297+@Callable(aP)
298+func projupdate (p,aR) = {
299+ let j = toBase58String(aP.caller.bytes)
300+ if ((W(p) != j))
301+ then throw("You're not author")
302+ else WriteSet([DataEntry(u(p), aR)])
309303 }
310304
311305
312306
313-@Callable(aN)
314-func votecommit (p,aX) = {
315- let j = toBase58String(aN.caller.bytes)
316- let aY = ac(p)
317- let aZ = Y(p)
318- let aW = extract(aN.payment)
319- if (isDefined(aW.assetId))
320- then throw("can use waves only at the moment")
321- else if ((aW.amount != (2 * aK)))
322- then throw("Not enough funds to vote for a new item")
323- else if ((height > W(p)))
324- then throw("The voting has expired")
325- else if ((U(p) == j))
326- then throw("Cannot vote for own proposal")
327- else if (if ((aZ != av))
328- then (aZ != aw)
329- else false)
330- then throw("Wrong item status for 'commit' action")
331- else if ((aY >= aH))
332- then throw("No more voters for this item")
333- else if ((ad(p, j) != a))
334- then throw("Can't vote twice")
335- else WriteSet([DataEntry(t(p), if (((aY + 1) == aH))
336- then ax
337- else aw), DataEntry(y(p, j), aX), DataEntry(x(p), (aY + 1))])
307+@Callable(aP)
308+func withdraw () = {
309+ let aT = toBase58String(aP.caller.bytes)
310+ let aU = T(aT)
311+ if ((0 >= aU))
312+ then throw("Not enough balance")
313+ else ScriptResult(WriteSet([DataEntry(l(aT), 0)]), TransferSet([ScriptTransfer(aP.caller, aU, unit)]))
338314 }
339315
340316
341317
342-@Callable(aN)
343-func votereveal (p,ba,bb) = {
344- let bc = toBase58String(sha256(toBytes((ba + bb))))
345- let j = toBase58String(aN.caller.bytes)
346- let bd = if ((ba == ay))
347- then 1
348- else 0
349- let be = if ((ba == az))
350- then 1
351- else 0
352- let bf = af(p)
353- let bg = ag(p)
354- let bh = if ((bf >= aI))
355- then ay
356- else if ((bg >= aI))
357- then az
358- else ax
359- if ((ad(p, j) != bc))
360- then throw("Hashes don't match")
361- else if ((height > W(p)))
362- then throw("The challenge has expired")
363- else if ((aH > ac(p)))
364- then throw("It's still commit stage")
365- else if (if ((Y(p) != ax))
366- then (Y(p) != bh)
367- else false)
368- then throw("Wrong item status for 'reveal' action")
369- else if ((ae(p, j) != a))
370- then throw("Can't vote twice")
371- else if (if ((ba != ay))
372- then (ba != az)
373- else false)
374- then throw("Bad vote result format")
375- else WriteSet([DataEntry(z(p, j), ba), DataEntry(A(p), (bf + bd)), DataEntry(B(p), (bg + be)), DataEntry(t(p), bh), DataEntry(l(j), (R(j) + aK))])
318+@Callable(aP)
319+func additem (p,aV,aW,aX,aR) = {
320+ let j = toBase58String(aP.caller.bytes)
321+ let aY = extract(aP.payment)
322+ if (isDefined(aY.assetId))
323+ then throw("can use waves only at the moment")
324+ else if ((aY.amount != aL))
325+ then throw("Please pay exact amount for the listing")
326+ else if (if (if ((aV > 2))
327+ then (aW > 3)
328+ else false)
329+ then (aX > 4)
330+ else false)
331+ then throw("Incorrect time parameters")
332+ else if ((W(p) != a))
333+ then throw("Item already exist")
334+ else WriteSet([DataEntry(o(p), j), DataEntry(q(p), height), DataEntry(r(p), (height + aV)), DataEntry(s(p), aL), DataEntry(t(p), ax), DataEntry(u(p), aR), DataEntry(v(p), (height + aW)), DataEntry(w(p), (height + aX))])
376335 }
377336
378337
379338
380-@Callable(aN)
381-func finalizevoting (p,j) = {
382- let bf = af(p)
383- let bg = ag(p)
384- let bi = ae(p, j)
385- let bj = (j == U(p))
386- let bk = if ((bf > aI))
387- then ay
388- else if ((bg > aI))
389- then az
390- else a
391- let bl = if (if ((bf == aH))
392- then true
393- else (bg == aH))
394- then 0
395- else 1
396- let bm = if ((bk == ay))
397- then bf
398- else if ((bk == az))
399- then bg
400- else 0
401- let bn = (aH - bm)
402- let bo = if ((bk == bi))
403- then 1
404- else 0
405- let bp = if ((bm == 0))
406- then 0
407- else (bo * (aK + ((bl * ((bn * aK) + aJ)) / bm)))
408- let bq = (((aJ * (if (bj)
409- then 1
410- else 0)) * (if ((bl == 1))
411- then 0
412- else 1)) * (if ((bk == ay))
413- then 1
414- else 0))
415- if ((W(p) > height))
416- then throw("The voting hasn't finished yet")
417- else if ((ah(p, j) == aC))
418- then throw("Account has already claimed")
419- else if (if ((bi == a))
420- then !(bj)
421- else false)
422- then throw("Account hasnot voted, hasnot reveal or isnot author")
423- else if ((bk == a))
424- then throw("Voting has expired")
425- else WriteSet([DataEntry(C(p, j), aC), DataEntry(l(j), ((R(j) + bp) + bq))])
339+@Callable(aP)
340+func votecommit (p,aZ) = {
341+ let j = toBase58String(aP.caller.bytes)
342+ let ba = ae(p)
343+ let bb = aa(p)
344+ let aY = extract(aP.payment)
345+ if (isDefined(aY.assetId))
346+ then throw("can use waves only at the moment")
347+ else if ((aY.amount != (2 * aM)))
348+ then throw("Not enough funds to vote for a new item")
349+ else if ((height > Y(p)))
350+ then throw("The voting has expired")
351+ else if ((W(p) == j))
352+ then throw("Cannot vote for own proposal")
353+ else if (if ((bb != ax))
354+ then (bb != ay)
355+ else false)
356+ then throw("Wrong item status for 'commit' action")
357+ else if ((ba >= aJ))
358+ then throw("No more voters for this item")
359+ else if ((af(p, j) != a))
360+ then throw("Can't vote twice")
361+ else WriteSet([DataEntry(t(p), if (((ba + 1) == aJ))
362+ then az
363+ else ay), DataEntry(y(p, j), aZ), DataEntry(x(p), (ba + 1))])
426364 }
427365
428366
429367
430-@Callable(aN)
431-func closeexpiredvoting (p,j) = {
432- let bk = if ((af(p) > aI))
433- then ay
434- else if ((ag(p) > aI))
435- then az
436- else a
437- let bi = ae(p, j)
438- let bj = (j == U(p))
439- let br = ad(p, j)
440- let bs = (ac(p) == aH)
441- let bq = (aJ * (if (bj)
368+@Callable(aP)
369+func votereveal (p,bc,bd,be) = {
370+ let bf = toBase58String(sha256(toBytes((bc + bd))))
371+ let j = toBase58String(aP.caller.bytes)
372+ let bg = if ((bc == aA))
442373 then 1
443- else 0))
444- let bt = ((aK * (if (bs)
374+ else 0
375+ let bh = if ((bc == aB))
445376 then 1
446- else 0)) * (if ((bi != a))
447- then 1
448- else 0))
449- let bu = (((2 * aK) * (if (bs)
450- then 0
451- else 1)) * (if ((br != a))
452- then 1
453- else 0))
454- if ((W(p) > height))
455- then throw("The voting hasn't finished yet")
456- else if (if (!(bj))
457- then (br == a)
458- else false)
459- then throw("Wrong account or item")
460- else if ((ah(p, j) == aC))
461- then throw("Account has already claimed")
462- else if ((bk != a))
463- then throw("Wrong item status")
464- else WriteSet([DataEntry(C(p, j), aC), DataEntry(l(j), (((R(j) + bq) + bt) + bu))])
377+ else 0
378+ let bi = ah(p)
379+ let bj = ai(p)
380+ let bk = if ((bi >= aK))
381+ then aA
382+ else if ((bj >= aK))
383+ then aB
384+ else az
385+ if ((af(p, j) != bf))
386+ then throw("Hashes don't match")
387+ else if ((height > Y(p)))
388+ then throw("The challenge has expired")
389+ else if ((aJ > ae(p)))
390+ then throw("It's still commit stage")
391+ else if (if ((aa(p) != az))
392+ then (aa(p) != bk)
393+ else false)
394+ then throw("Wrong item status for 'reveal' action")
395+ else if ((ag(p, j) != a))
396+ then throw("Can't vote twice")
397+ else if (if ((bc != aA))
398+ then (bc != aB)
399+ else false)
400+ then throw("Bad vote result format")
401+ else WriteSet([DataEntry(z(p, j), bc), DataEntry(A(p), (bi + bg)), DataEntry(B(p), (bj + bh)), DataEntry(t(p), bk), DataEntry(N(p, j), be), DataEntry(l(j), (T(j) + aM))])
465402 }
466403
467404
468405
469-@Callable(aN)
470-func donate (p,bv,bw,bx) = {
471- let j = toBase58String(aN.caller.bytes)
472- let aW = extract(aN.payment)
473- if (isDefined(aW.assetId))
406+@Callable(aP)
407+func finalizevoting (p,j) = {
408+ let bi = ah(p)
409+ let bj = ai(p)
410+ let bl = ag(p, j)
411+ let bm = (j == W(p))
412+ let bn = if ((bi > aK))
413+ then aA
414+ else if ((bj > aK))
415+ then aB
416+ else a
417+ let bo = if (if ((bi == aJ))
418+ then true
419+ else (bj == aJ))
420+ then 0
421+ else 1
422+ let bp = if ((bn == aA))
423+ then bi
424+ else if ((bn == aB))
425+ then bj
426+ else 0
427+ let bq = (aJ - bp)
428+ let br = if ((bn == bl))
429+ then 1
430+ else 0
431+ let bs = if ((bp == 0))
432+ then 0
433+ else (br * (aM + ((bo * ((bq * aM) + aL)) / bp)))
434+ let bt = (((aL * (if (bm)
435+ then 1
436+ else 0)) * (if ((bo == 1))
437+ then 0
438+ else 1)) * (if ((bn == aA))
439+ then 1
440+ else 0))
441+ if ((Y(p) > height))
442+ then throw("The voting hasn't finished yet")
443+ else if ((aj(p, j) == aE))
444+ then throw("Account has already claimed")
445+ else if (if ((bl == a))
446+ then !(bm)
447+ else false)
448+ then throw("Account hasnot voted, hasnot reveal or isnot author")
449+ else if ((bn == a))
450+ then throw("Voting has expired")
451+ else WriteSet([DataEntry(C(p, j), aE), DataEntry(l(j), ((T(j) + bs) + bt))])
452+ }
453+
454+
455+
456+@Callable(aP)
457+func closeexpiredvoting (p,j) = {
458+ let bn = if ((ah(p) > aK))
459+ then aA
460+ else if ((ai(p) > aK))
461+ then aB
462+ else a
463+ let bl = ag(p, j)
464+ let bm = (j == W(p))
465+ let bu = af(p, j)
466+ let bv = (ae(p) == aJ)
467+ let bt = (aL * (if (bm)
468+ then 1
469+ else 0))
470+ let bw = ((aM * (if (bv)
471+ then 1
472+ else 0)) * (if ((bl != a))
473+ then 1
474+ else 0))
475+ let bx = (((2 * aM) * (if (bv)
476+ then 0
477+ else 1)) * (if ((bu != a))
478+ then 1
479+ else 0))
480+ if ((Y(p) > height))
481+ then throw("The voting hasn't finished yet")
482+ else if (if (!(bm))
483+ then (bu == a)
484+ else false)
485+ then throw("Wrong account or item")
486+ else if ((aj(p, j) == aE))
487+ then throw("Account has already claimed")
488+ else if ((bn != a))
489+ then throw("Wrong item status")
490+ else WriteSet([DataEntry(C(p, j), aE), DataEntry(l(j), (((T(j) + bt) + bw) + bx))])
491+ }
492+
493+
494+
495+@Callable(aP)
496+func donate (p,by,bz,be) = {
497+ let j = toBase58String(aP.caller.bytes)
498+ let aY = extract(aP.payment)
499+ if (isDefined(aY.assetId))
474500 then throw("can use waves only at the moment")
475501 else {
476- let K = (am(p, j) + 1)
477- let by = (aj(p) + ((if ((bw == aF))
502+ let K = (ao(p, j) + 1)
503+ let bA = (al(p) + ((if ((bz == aH))
478504 then 1
479- else 0) * aW.amount))
480- let bz = (ai(p) + ((if ((bw == aE))
505+ else 0) * aY.amount))
506+ let bB = (ak(p) + ((if ((bz == aG))
481507 then 1
482- else 0) * aW.amount))
483- if ((Y(p) != ay))
508+ else 0) * aY.amount))
509+ if ((aa(p) != aA))
484510 then throw("The project hasn't accepted by community")
485- else if ((height >= aa(p)))
511+ else if ((height >= ac(p)))
486512 then throw("The time for crowdfunding has expired")
487- else if ((by >= bz))
513+ else if ((bA >= bB))
488514 then throw("Negative fund can't be higher than positive fund")
489- else if (if ((bw != aE))
490- then (bw != aF)
515+ else if (if ((bz != aG))
516+ then (bz != aH)
491517 else false)
492518 then throw("Wrong mode parameter")
493- else if ((U(p) == j))
519+ else if ((W(p) == j))
494520 then throw("Can't donate own project")
495- else if ((aW.amount != aL[(bv - 1)]))
496- then throw(("The payment must be equal to tier amount: " + toString(aL[(bv - 1)])))
497- else WriteSet([DataEntry(H(p, j), K), DataEntry(F(p, j), (ak(p, j) + ((if ((bw == aE))
521+ else if ((aY.amount != aN[(by - 1)]))
522+ then throw(("The payment must be equal to tier amount: " + toString(aN[(by - 1)])))
523+ else WriteSet([DataEntry(H(p, j), K), DataEntry(F(p, j), (am(p, j) + ((if ((bz == aG))
498524 then 1
499- else 0) * aW.amount))), DataEntry(G(p, j), (al(p, j) + ((if ((bw == aF))
525+ else 0) * aY.amount))), DataEntry(G(p, j), (an(p, j) + ((if ((bz == aH))
500526 then 1
501- else 0) * aW.amount))), DataEntry(D(p), bz), DataEntry(E(p), by), DataEntry(J(p, j, toString(K)), bx), DataEntry(L(p, j, toString(K)), bw), DataEntry(M(p, j, toString(K)), bv)])
527+ else 0) * aY.amount))), DataEntry(D(p), bB), DataEntry(E(p), bA), DataEntry(J(p, j, toString(K)), be), DataEntry(L(p, j, toString(K)), bz), DataEntry(M(p, j, toString(K)), by)])
502528 }
503529 }
504530
505531
506532
507-@Callable(aN)
508-func whale (p) = {
509- let aW = extract(aN.payment)
510- if (isDefined(aW.assetId))
533+@Callable(aP)
534+func whale (p,be) = {
535+ let j = toBase58String(aP.caller.bytes)
536+ let aY = extract(aP.payment)
537+ if (isDefined(aY.assetId))
511538 then throw("can use waves only at the moment")
512- else if ((Y(p) != ay))
539+ else if ((aa(p) != aA))
513540 then throw("The project hasn't accepted by community")
514- else if ((aa(p) > height))
541+ else if ((ac(p) > height))
515542 then throw("The time for crowdfunding has not expired yet")
516- else if ((height > ab(p)))
543+ else if ((height > ad(p)))
517544 then throw("The time for grant has expired")
518- else if ((Y(p) == aB))
545+ else if ((aa(p) == aD))
519546 then throw("Investement has already done")
520- else if ((((ai(p) * aM) / 100) > aW.amount))
521- then throw((("Investement must be more than " + toString(aM)) + "% of supportes funds"))
522- else WriteSet([DataEntry(t(p), aB), DataEntry(l(U(p)), (R(U(p)) + ai(p))), DataEntry(N(p), aW.amount)])
547+ else if ((((ak(p) * aO) / 100) > aY.amount))
548+ then throw((("Investement must be more than " + toString(aO)) + "% of supportes funds"))
549+ else WriteSet([DataEntry(t(p), aD), DataEntry(O(p, j), be), DataEntry(l(W(p)), (T(W(p)) + ak(p))), DataEntry(P(p), aY.amount)])
523550 }
524551
525552
526553
527-@Callable(aN)
554+@Callable(aP)
528555 func claimwinnings (p,j) = {
529- let aZ = Y(p)
530- let bA = if ((aZ == aB))
556+ let bb = aa(p)
557+ let bC = if ((bb == aD))
531558 then 1
532559 else 0
533- let bB = if ((aZ != aB))
560+ let bD = if ((bb != aD))
534561 then 1
535562 else 0
536- let bC = ai(p)
537- let bD = aj(p)
538- let bE = (((bA * (ak(p, j) * 100)) / (if ((0 >= bC))
563+ let bE = ak(p)
564+ let bF = al(p)
565+ let bG = (((bC * (am(p, j) * 100)) / (if ((0 >= bE))
539566 then 1
540- else bC)) + ((bB * (al(p, j) * 100)) / (if ((0 >= bD))
567+ else bE)) + ((bD * (an(p, j) * 100)) / (if ((0 >= bF))
541568 then 1
542- else bD)))
543- let bF = ((bD * aM) / 100)
544- let bG = ((bA * ((bE * bD) / 100)) + (bB * ((bE * (if ((bC > bF))
545- then bF
546- else bC)) / 100)))
547- let bH = (bA * ((bE * aq(p)) / 100))
548- let bI = (((if ((U(p) == j))
569+ else bF)))
570+ let bH = ((bF * aO) / 100)
571+ let bI = ((bC * ((bG * bF) / 100)) + (bD * ((bG * (if ((bE > bH))
572+ then bH
573+ else bE)) / 100)))
574+ let bJ = (bC * ((bG * as(p)) / 100))
575+ let bK = (((if ((W(p) == j))
549576 then 1
550- else 0) * bC) * (if ((aZ != aB))
577+ else 0) * bE) * (if ((bb != aD))
551578 then 1
552579 else 0))
553- if ((aZ == az))
580+ if ((bb == aB))
554581 then throw("The project hasn't accepted by community")
555- else if (if ((aZ != aB))
556- then (ab(p) >= height)
582+ else if (if ((bb != aD))
583+ then (ad(p) >= height)
557584 else false)
558585 then throw("The time for grant has not expired yet")
559- else if ((0 >= (bC + bD)))
586+ else if ((0 >= (bE + bF)))
560587 then throw("The campaign wasn't active")
561- else WriteSet([DataEntry(l(j), (((R(j) + bG) + bH) + bI)), DataEntry(t(p), if ((bI > 0))
562- then aA
563- else aZ), DataEntry(C(p, j), aD)])
588+ else WriteSet([DataEntry(l(j), (((T(j) + bI) + bJ) + bK)), DataEntry(t(p), if ((bK > 0))
589+ then aC
590+ else bb), DataEntry(C(p, j), aF)])
564591 }
565592
566593
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "none"
55
66 func b (c) = {
77 let d = {
88 let e = getInteger(this, c)
99 if ($isInstanceOf(e, "Int"))
1010 then {
1111 let f = e
1212 f
1313 }
1414 else 0
1515 }
1616 d
1717 }
1818
1919
2020 func g (c) = {
2121 let h = {
2222 let e = getString(this, c)
2323 if ($isInstanceOf(e, "String"))
2424 then {
2525 let f = e
2626 f
2727 }
2828 else a
2929 }
3030 h
3131 }
3232
3333
3434 func i (j) = ("wl_ref_" + j)
3535
3636
3737 func k (j) = ("wl_sts_" + j)
3838
3939
4040 func l (j) = ("balance_" + j)
4141
4242
4343 func m (j) = ("wl_bio_" + j)
4444
4545
4646 func n (j) = ("wl_blk_" + j)
4747
4848
4949 func o (p) = ("author_" + p)
5050
5151
5252 func q (p) = ("block_" + p)
5353
5454
5555 func r (p) = ("expiration_block_" + p)
5656
5757
5858 func s (p) = ("bank_" + p)
5959
6060
6161 func t (p) = ("status_" + p)
6262
6363
6464 func u (p) = ("datajson_" + p)
6565
6666
6767 func v (p) = ("expiration_one_" + p)
6868
6969
7070 func w (p) = ("expiration_two_" + p)
7171
7272
7373 func x (p) = ("ncommits_" + p)
7474
7575
7676 func y (p,j) = ((("commit_" + p) + "_") + j)
7777
7878
7979 func z (p,j) = ((("reveal_" + p) + "_") + j)
8080
8181
8282 func A (p) = ("cnt_yes_" + p)
8383
8484
8585 func B (p) = ("cnt_no_" + p)
8686
8787
8888 func C (p,j) = ((("final_" + p) + "_") + j)
8989
9090
9191 func D (p) = ("positive_fund_" + p)
9292
9393
9494 func E (p) = ("negative_fund_" + p)
9595
9696
9797 func F (p,j) = ((D(p) + "_") + j)
9898
9999
100100 func G (p,j) = ((E(p) + "_") + j)
101101
102102
103103 func H (p,j) = ((("reviews_cnt_" + p) + "_") + j)
104104
105105
106106 func I (p,j) = ((("review_" + p) + "_") + j)
107107
108108
109109 func J (p,j,K) = ((I(p, j) + "_text_id:") + K)
110110
111111
112112 func L (p,j,K) = ((I(p, j) + "_mode_id:") + K)
113113
114114
115115 func M (p,j,K) = ((I(p, j) + "_tier_id:") + K)
116116
117117
118-func N (p) = ("buyout_amount_" + p)
118+func N (p,j) = (I(p, j) + "_votereview")
119119
120120
121-func O (p,j) = ((("winnings_" + p) + "_") + j)
121+func O (p,j) = (I(p, j) + "_whalereview")
122122
123123
124-func P (j) = g(i(j))
124+func P (p) = ("buyout_amount_" + p)
125125
126126
127-func Q (j) = g(k(j))
127+func Q (p,j) = ((("winnings_" + p) + "_") + j)
128128
129129
130-func R (j) = b(l(j))
130+func R (j) = g(i(j))
131131
132132
133-func S (j) = g(m(j))
133+func S (j) = g(k(j))
134134
135135
136-func T (j) = g(n(j))
136+func T (j) = b(l(j))
137137
138138
139-func U (p) = g(o(p))
139+func U (j) = g(m(j))
140140
141141
142-func V (p) = b(q(p))
142+func V (j) = g(n(j))
143143
144144
145-func W (p) = b(r(p))
145+func W (p) = g(o(p))
146146
147147
148-func X (p) = b(s(p))
148+func X (p) = b(q(p))
149149
150150
151-func Y (p) = g(t(p))
151+func Y (p) = b(r(p))
152152
153153
154-func Z (p) = g(u(p))
154+func Z (p) = b(s(p))
155155
156156
157-func aa (p) = b(v(p))
157+func aa (p) = g(t(p))
158158
159159
160-func ab (p) = b(w(p))
160+func ab (p) = g(u(p))
161161
162162
163-func ac (p) = b(x(p))
163+func ac (p) = b(v(p))
164164
165165
166-func ad (p,j) = g(y(p, j))
166+func ad (p) = b(w(p))
167167
168168
169-func ae (p,j) = g(z(p, j))
169+func ae (p) = b(x(p))
170170
171171
172-func af (p) = b(A(p))
172+func af (p,j) = g(y(p, j))
173173
174174
175-func ag (p) = b(B(p))
175+func ag (p,j) = g(z(p, j))
176176
177177
178-func ah (p,j) = g(C(p, j))
178+func ah (p) = b(A(p))
179179
180180
181-func ai (p) = b(D(p))
181+func ai (p) = b(B(p))
182182
183183
184-func aj (p) = b(E(p))
184+func aj (p,j) = g(C(p, j))
185185
186186
187-func ak (p,j) = b(F(p, j))
187+func ak (p) = b(D(p))
188188
189189
190-func al (p,j) = b(G(p, j))
190+func al (p) = b(E(p))
191191
192192
193-func am (p,j) = b(H(p, j))
193+func am (p,j) = b(F(p, j))
194194
195195
196-func an (p,j,K) = g(J(p, j, K))
196+func an (p,j) = b(G(p, j))
197197
198198
199-func ao (p,j,K) = g(L(p, j, K))
199+func ao (p,j) = b(H(p, j))
200200
201201
202-func ap (p,j,K) = b(M(p, j, K))
202+func ap (p,j,K) = g(J(p, j, K))
203203
204204
205-func aq (p) = b(N(p))
205+func aq (p,j,K) = g(L(p, j, K))
206206
207207
208-func ar (p,j) = b(O(p, j))
208+func ar (p,j,K) = b(M(p, j, K))
209209
210210
211-let as = "registered"
211+func as (p) = b(P(p))
212212
213-let at = "invited"
214213
215-let au = "whale"
214+func at (p,j) = b(Q(p, j))
216215
217-let av = "new"
218216
219-let aw = "voting_commit"
217+let au = "registered"
220218
221-let ax = "voting_reveal"
219+let av = "invited"
222220
223-let ay = "featured"
221+let aw = "whale"
224222
225-let az = "delisted"
223+let ax = "new"
226224
227-let aA = "cashout"
225+let ay = "voting_commit"
228226
229-let aB = "buyout"
227+let az = "voting_reveal"
230228
231-let aC = "finished"
229+let aA = "featured"
232230
233-let aD = "claimed"
231+let aB = "delisted"
234232
235-let aE = "positive"
233+let aC = "cashout"
236234
237-let aF = "negative"
235+let aD = "buyout"
238236
239-let aG = "3NBB3iv7YDRsD8ZM2Pw2V5eTcsfqh3j2mvF"
237+let aE = "finished"
240238
241-let aH = 3
239+let aF = "claimed"
242240
243-let aI = 2
241+let aG = "positive"
244242
245-let aJ = (500000000 / 1000)
243+let aH = "negative"
246244
247-let aK = (150000000 / 1000)
245+let aI = "3NBB3iv7YDRsD8ZM2Pw2V5eTcsfqh3j2mvF"
248246
249-let aL = [10, 50, 250, 1250, 6250]
247+let aJ = 3
250248
251-let aM = 150
249+let aK = 2
252250
253-@Callable(aN)
254-func inviteuser (aO,aP) = {
255- let j = toBase58String(aN.caller.bytes)
256- if ((P(aO) != a))
251+let aL = (500000000 / 1000)
252+
253+let aM = (150000000 / 1000)
254+
255+let aN = [10, 50, 250, 1250, 6250]
256+
257+let aO = 150
258+
259+@Callable(aP)
260+func inviteuser (aQ,aR) = {
261+ let j = toBase58String(aP.caller.bytes)
262+ if ((R(aQ) != a))
257263 then throw("User has already been invited")
258- else if (if ((k(j) != as))
259- then (j != aG)
264+ else if (if ((k(j) != au))
265+ then (j != aI)
260266 else false)
261267 then throw("Your account should be whitelisted")
262- else WriteSet([DataEntry(i(aO), j), DataEntry(m(aO), aP), DataEntry(k(aO), at)])
268+ else WriteSet([DataEntry(i(aQ), j), DataEntry(m(aQ), aR), DataEntry(k(aQ), av)])
263269 }
264270
265271
266272
267-@Callable(aN)
268-func signup (aP,aQ) = {
269- let j = toBase58String(aN.caller.bytes)
270- if (if ((Q(j) != at))
271- then (aG != j)
273+@Callable(aP)
274+func signup (aR,aS) = {
275+ let j = toBase58String(aP.caller.bytes)
276+ if (if ((S(j) != av))
277+ then (aI != j)
272278 else false)
273279 then throw("Referral invite needed")
274- else WriteSet([DataEntry(m(j), aP), DataEntry(n(j), height), DataEntry(k(j), if ((aQ == au))
275- then au
276- else as)])
280+ else WriteSet([DataEntry(m(j), aR), DataEntry(n(j), height), DataEntry(k(j), if ((aS == aw))
281+ then aw
282+ else au)])
277283 }
278284
279285
280286
281-@Callable(aN)
282-func withdraw () = {
283- let aR = toBase58String(aN.caller.bytes)
284- let aS = R(aR)
285- if ((0 >= aS))
286- then throw("Not enough balance")
287- else ScriptResult(WriteSet([DataEntry(l(aR), 0)]), TransferSet([ScriptTransfer(aN.caller, aS, unit)]))
287+@Callable(aP)
288+func userupdate (aR,aS) = {
289+ let j = toBase58String(aP.caller.bytes)
290+ WriteSet([DataEntry(m(j), aR), DataEntry(k(j), if ((aS == aw))
291+ then aw
292+ else au)])
288293 }
289294
290295
291296
292-@Callable(aN)
293-func additem (p,aT,aU,aV,aP) = {
294- let j = toBase58String(aN.caller.bytes)
295- let aW = extract(aN.payment)
296- if (isDefined(aW.assetId))
297- then throw("can use waves only at the moment")
298- else if ((aW.amount != aJ))
299- then throw("Please pay exact amount for the listing")
300- else if (if (if ((aT > 2))
301- then (aU > 3)
302- else false)
303- then (aV > 4)
304- else false)
305- then throw("Incorrect time parameters")
306- else if ((U(p) != a))
307- then throw("Item already exist")
308- else WriteSet([DataEntry(o(p), j), DataEntry(q(p), height), DataEntry(r(p), (height + aT)), DataEntry(s(p), aJ), DataEntry(t(p), av), DataEntry(u(p), aP), DataEntry(v(p), (height + aU)), DataEntry(w(p), (height + aV))])
297+@Callable(aP)
298+func projupdate (p,aR) = {
299+ let j = toBase58String(aP.caller.bytes)
300+ if ((W(p) != j))
301+ then throw("You're not author")
302+ else WriteSet([DataEntry(u(p), aR)])
309303 }
310304
311305
312306
313-@Callable(aN)
314-func votecommit (p,aX) = {
315- let j = toBase58String(aN.caller.bytes)
316- let aY = ac(p)
317- let aZ = Y(p)
318- let aW = extract(aN.payment)
319- if (isDefined(aW.assetId))
320- then throw("can use waves only at the moment")
321- else if ((aW.amount != (2 * aK)))
322- then throw("Not enough funds to vote for a new item")
323- else if ((height > W(p)))
324- then throw("The voting has expired")
325- else if ((U(p) == j))
326- then throw("Cannot vote for own proposal")
327- else if (if ((aZ != av))
328- then (aZ != aw)
329- else false)
330- then throw("Wrong item status for 'commit' action")
331- else if ((aY >= aH))
332- then throw("No more voters for this item")
333- else if ((ad(p, j) != a))
334- then throw("Can't vote twice")
335- else WriteSet([DataEntry(t(p), if (((aY + 1) == aH))
336- then ax
337- else aw), DataEntry(y(p, j), aX), DataEntry(x(p), (aY + 1))])
307+@Callable(aP)
308+func withdraw () = {
309+ let aT = toBase58String(aP.caller.bytes)
310+ let aU = T(aT)
311+ if ((0 >= aU))
312+ then throw("Not enough balance")
313+ else ScriptResult(WriteSet([DataEntry(l(aT), 0)]), TransferSet([ScriptTransfer(aP.caller, aU, unit)]))
338314 }
339315
340316
341317
342-@Callable(aN)
343-func votereveal (p,ba,bb) = {
344- let bc = toBase58String(sha256(toBytes((ba + bb))))
345- let j = toBase58String(aN.caller.bytes)
346- let bd = if ((ba == ay))
347- then 1
348- else 0
349- let be = if ((ba == az))
350- then 1
351- else 0
352- let bf = af(p)
353- let bg = ag(p)
354- let bh = if ((bf >= aI))
355- then ay
356- else if ((bg >= aI))
357- then az
358- else ax
359- if ((ad(p, j) != bc))
360- then throw("Hashes don't match")
361- else if ((height > W(p)))
362- then throw("The challenge has expired")
363- else if ((aH > ac(p)))
364- then throw("It's still commit stage")
365- else if (if ((Y(p) != ax))
366- then (Y(p) != bh)
367- else false)
368- then throw("Wrong item status for 'reveal' action")
369- else if ((ae(p, j) != a))
370- then throw("Can't vote twice")
371- else if (if ((ba != ay))
372- then (ba != az)
373- else false)
374- then throw("Bad vote result format")
375- else WriteSet([DataEntry(z(p, j), ba), DataEntry(A(p), (bf + bd)), DataEntry(B(p), (bg + be)), DataEntry(t(p), bh), DataEntry(l(j), (R(j) + aK))])
318+@Callable(aP)
319+func additem (p,aV,aW,aX,aR) = {
320+ let j = toBase58String(aP.caller.bytes)
321+ let aY = extract(aP.payment)
322+ if (isDefined(aY.assetId))
323+ then throw("can use waves only at the moment")
324+ else if ((aY.amount != aL))
325+ then throw("Please pay exact amount for the listing")
326+ else if (if (if ((aV > 2))
327+ then (aW > 3)
328+ else false)
329+ then (aX > 4)
330+ else false)
331+ then throw("Incorrect time parameters")
332+ else if ((W(p) != a))
333+ then throw("Item already exist")
334+ else WriteSet([DataEntry(o(p), j), DataEntry(q(p), height), DataEntry(r(p), (height + aV)), DataEntry(s(p), aL), DataEntry(t(p), ax), DataEntry(u(p), aR), DataEntry(v(p), (height + aW)), DataEntry(w(p), (height + aX))])
376335 }
377336
378337
379338
380-@Callable(aN)
381-func finalizevoting (p,j) = {
382- let bf = af(p)
383- let bg = ag(p)
384- let bi = ae(p, j)
385- let bj = (j == U(p))
386- let bk = if ((bf > aI))
387- then ay
388- else if ((bg > aI))
389- then az
390- else a
391- let bl = if (if ((bf == aH))
392- then true
393- else (bg == aH))
394- then 0
395- else 1
396- let bm = if ((bk == ay))
397- then bf
398- else if ((bk == az))
399- then bg
400- else 0
401- let bn = (aH - bm)
402- let bo = if ((bk == bi))
403- then 1
404- else 0
405- let bp = if ((bm == 0))
406- then 0
407- else (bo * (aK + ((bl * ((bn * aK) + aJ)) / bm)))
408- let bq = (((aJ * (if (bj)
409- then 1
410- else 0)) * (if ((bl == 1))
411- then 0
412- else 1)) * (if ((bk == ay))
413- then 1
414- else 0))
415- if ((W(p) > height))
416- then throw("The voting hasn't finished yet")
417- else if ((ah(p, j) == aC))
418- then throw("Account has already claimed")
419- else if (if ((bi == a))
420- then !(bj)
421- else false)
422- then throw("Account hasnot voted, hasnot reveal or isnot author")
423- else if ((bk == a))
424- then throw("Voting has expired")
425- else WriteSet([DataEntry(C(p, j), aC), DataEntry(l(j), ((R(j) + bp) + bq))])
339+@Callable(aP)
340+func votecommit (p,aZ) = {
341+ let j = toBase58String(aP.caller.bytes)
342+ let ba = ae(p)
343+ let bb = aa(p)
344+ let aY = extract(aP.payment)
345+ if (isDefined(aY.assetId))
346+ then throw("can use waves only at the moment")
347+ else if ((aY.amount != (2 * aM)))
348+ then throw("Not enough funds to vote for a new item")
349+ else if ((height > Y(p)))
350+ then throw("The voting has expired")
351+ else if ((W(p) == j))
352+ then throw("Cannot vote for own proposal")
353+ else if (if ((bb != ax))
354+ then (bb != ay)
355+ else false)
356+ then throw("Wrong item status for 'commit' action")
357+ else if ((ba >= aJ))
358+ then throw("No more voters for this item")
359+ else if ((af(p, j) != a))
360+ then throw("Can't vote twice")
361+ else WriteSet([DataEntry(t(p), if (((ba + 1) == aJ))
362+ then az
363+ else ay), DataEntry(y(p, j), aZ), DataEntry(x(p), (ba + 1))])
426364 }
427365
428366
429367
430-@Callable(aN)
431-func closeexpiredvoting (p,j) = {
432- let bk = if ((af(p) > aI))
433- then ay
434- else if ((ag(p) > aI))
435- then az
436- else a
437- let bi = ae(p, j)
438- let bj = (j == U(p))
439- let br = ad(p, j)
440- let bs = (ac(p) == aH)
441- let bq = (aJ * (if (bj)
368+@Callable(aP)
369+func votereveal (p,bc,bd,be) = {
370+ let bf = toBase58String(sha256(toBytes((bc + bd))))
371+ let j = toBase58String(aP.caller.bytes)
372+ let bg = if ((bc == aA))
442373 then 1
443- else 0))
444- let bt = ((aK * (if (bs)
374+ else 0
375+ let bh = if ((bc == aB))
445376 then 1
446- else 0)) * (if ((bi != a))
447- then 1
448- else 0))
449- let bu = (((2 * aK) * (if (bs)
450- then 0
451- else 1)) * (if ((br != a))
452- then 1
453- else 0))
454- if ((W(p) > height))
455- then throw("The voting hasn't finished yet")
456- else if (if (!(bj))
457- then (br == a)
458- else false)
459- then throw("Wrong account or item")
460- else if ((ah(p, j) == aC))
461- then throw("Account has already claimed")
462- else if ((bk != a))
463- then throw("Wrong item status")
464- else WriteSet([DataEntry(C(p, j), aC), DataEntry(l(j), (((R(j) + bq) + bt) + bu))])
377+ else 0
378+ let bi = ah(p)
379+ let bj = ai(p)
380+ let bk = if ((bi >= aK))
381+ then aA
382+ else if ((bj >= aK))
383+ then aB
384+ else az
385+ if ((af(p, j) != bf))
386+ then throw("Hashes don't match")
387+ else if ((height > Y(p)))
388+ then throw("The challenge has expired")
389+ else if ((aJ > ae(p)))
390+ then throw("It's still commit stage")
391+ else if (if ((aa(p) != az))
392+ then (aa(p) != bk)
393+ else false)
394+ then throw("Wrong item status for 'reveal' action")
395+ else if ((ag(p, j) != a))
396+ then throw("Can't vote twice")
397+ else if (if ((bc != aA))
398+ then (bc != aB)
399+ else false)
400+ then throw("Bad vote result format")
401+ else WriteSet([DataEntry(z(p, j), bc), DataEntry(A(p), (bi + bg)), DataEntry(B(p), (bj + bh)), DataEntry(t(p), bk), DataEntry(N(p, j), be), DataEntry(l(j), (T(j) + aM))])
465402 }
466403
467404
468405
469-@Callable(aN)
470-func donate (p,bv,bw,bx) = {
471- let j = toBase58String(aN.caller.bytes)
472- let aW = extract(aN.payment)
473- if (isDefined(aW.assetId))
406+@Callable(aP)
407+func finalizevoting (p,j) = {
408+ let bi = ah(p)
409+ let bj = ai(p)
410+ let bl = ag(p, j)
411+ let bm = (j == W(p))
412+ let bn = if ((bi > aK))
413+ then aA
414+ else if ((bj > aK))
415+ then aB
416+ else a
417+ let bo = if (if ((bi == aJ))
418+ then true
419+ else (bj == aJ))
420+ then 0
421+ else 1
422+ let bp = if ((bn == aA))
423+ then bi
424+ else if ((bn == aB))
425+ then bj
426+ else 0
427+ let bq = (aJ - bp)
428+ let br = if ((bn == bl))
429+ then 1
430+ else 0
431+ let bs = if ((bp == 0))
432+ then 0
433+ else (br * (aM + ((bo * ((bq * aM) + aL)) / bp)))
434+ let bt = (((aL * (if (bm)
435+ then 1
436+ else 0)) * (if ((bo == 1))
437+ then 0
438+ else 1)) * (if ((bn == aA))
439+ then 1
440+ else 0))
441+ if ((Y(p) > height))
442+ then throw("The voting hasn't finished yet")
443+ else if ((aj(p, j) == aE))
444+ then throw("Account has already claimed")
445+ else if (if ((bl == a))
446+ then !(bm)
447+ else false)
448+ then throw("Account hasnot voted, hasnot reveal or isnot author")
449+ else if ((bn == a))
450+ then throw("Voting has expired")
451+ else WriteSet([DataEntry(C(p, j), aE), DataEntry(l(j), ((T(j) + bs) + bt))])
452+ }
453+
454+
455+
456+@Callable(aP)
457+func closeexpiredvoting (p,j) = {
458+ let bn = if ((ah(p) > aK))
459+ then aA
460+ else if ((ai(p) > aK))
461+ then aB
462+ else a
463+ let bl = ag(p, j)
464+ let bm = (j == W(p))
465+ let bu = af(p, j)
466+ let bv = (ae(p) == aJ)
467+ let bt = (aL * (if (bm)
468+ then 1
469+ else 0))
470+ let bw = ((aM * (if (bv)
471+ then 1
472+ else 0)) * (if ((bl != a))
473+ then 1
474+ else 0))
475+ let bx = (((2 * aM) * (if (bv)
476+ then 0
477+ else 1)) * (if ((bu != a))
478+ then 1
479+ else 0))
480+ if ((Y(p) > height))
481+ then throw("The voting hasn't finished yet")
482+ else if (if (!(bm))
483+ then (bu == a)
484+ else false)
485+ then throw("Wrong account or item")
486+ else if ((aj(p, j) == aE))
487+ then throw("Account has already claimed")
488+ else if ((bn != a))
489+ then throw("Wrong item status")
490+ else WriteSet([DataEntry(C(p, j), aE), DataEntry(l(j), (((T(j) + bt) + bw) + bx))])
491+ }
492+
493+
494+
495+@Callable(aP)
496+func donate (p,by,bz,be) = {
497+ let j = toBase58String(aP.caller.bytes)
498+ let aY = extract(aP.payment)
499+ if (isDefined(aY.assetId))
474500 then throw("can use waves only at the moment")
475501 else {
476- let K = (am(p, j) + 1)
477- let by = (aj(p) + ((if ((bw == aF))
502+ let K = (ao(p, j) + 1)
503+ let bA = (al(p) + ((if ((bz == aH))
478504 then 1
479- else 0) * aW.amount))
480- let bz = (ai(p) + ((if ((bw == aE))
505+ else 0) * aY.amount))
506+ let bB = (ak(p) + ((if ((bz == aG))
481507 then 1
482- else 0) * aW.amount))
483- if ((Y(p) != ay))
508+ else 0) * aY.amount))
509+ if ((aa(p) != aA))
484510 then throw("The project hasn't accepted by community")
485- else if ((height >= aa(p)))
511+ else if ((height >= ac(p)))
486512 then throw("The time for crowdfunding has expired")
487- else if ((by >= bz))
513+ else if ((bA >= bB))
488514 then throw("Negative fund can't be higher than positive fund")
489- else if (if ((bw != aE))
490- then (bw != aF)
515+ else if (if ((bz != aG))
516+ then (bz != aH)
491517 else false)
492518 then throw("Wrong mode parameter")
493- else if ((U(p) == j))
519+ else if ((W(p) == j))
494520 then throw("Can't donate own project")
495- else if ((aW.amount != aL[(bv - 1)]))
496- then throw(("The payment must be equal to tier amount: " + toString(aL[(bv - 1)])))
497- else WriteSet([DataEntry(H(p, j), K), DataEntry(F(p, j), (ak(p, j) + ((if ((bw == aE))
521+ else if ((aY.amount != aN[(by - 1)]))
522+ then throw(("The payment must be equal to tier amount: " + toString(aN[(by - 1)])))
523+ else WriteSet([DataEntry(H(p, j), K), DataEntry(F(p, j), (am(p, j) + ((if ((bz == aG))
498524 then 1
499- else 0) * aW.amount))), DataEntry(G(p, j), (al(p, j) + ((if ((bw == aF))
525+ else 0) * aY.amount))), DataEntry(G(p, j), (an(p, j) + ((if ((bz == aH))
500526 then 1
501- else 0) * aW.amount))), DataEntry(D(p), bz), DataEntry(E(p), by), DataEntry(J(p, j, toString(K)), bx), DataEntry(L(p, j, toString(K)), bw), DataEntry(M(p, j, toString(K)), bv)])
527+ else 0) * aY.amount))), DataEntry(D(p), bB), DataEntry(E(p), bA), DataEntry(J(p, j, toString(K)), be), DataEntry(L(p, j, toString(K)), bz), DataEntry(M(p, j, toString(K)), by)])
502528 }
503529 }
504530
505531
506532
507-@Callable(aN)
508-func whale (p) = {
509- let aW = extract(aN.payment)
510- if (isDefined(aW.assetId))
533+@Callable(aP)
534+func whale (p,be) = {
535+ let j = toBase58String(aP.caller.bytes)
536+ let aY = extract(aP.payment)
537+ if (isDefined(aY.assetId))
511538 then throw("can use waves only at the moment")
512- else if ((Y(p) != ay))
539+ else if ((aa(p) != aA))
513540 then throw("The project hasn't accepted by community")
514- else if ((aa(p) > height))
541+ else if ((ac(p) > height))
515542 then throw("The time for crowdfunding has not expired yet")
516- else if ((height > ab(p)))
543+ else if ((height > ad(p)))
517544 then throw("The time for grant has expired")
518- else if ((Y(p) == aB))
545+ else if ((aa(p) == aD))
519546 then throw("Investement has already done")
520- else if ((((ai(p) * aM) / 100) > aW.amount))
521- then throw((("Investement must be more than " + toString(aM)) + "% of supportes funds"))
522- else WriteSet([DataEntry(t(p), aB), DataEntry(l(U(p)), (R(U(p)) + ai(p))), DataEntry(N(p), aW.amount)])
547+ else if ((((ak(p) * aO) / 100) > aY.amount))
548+ then throw((("Investement must be more than " + toString(aO)) + "% of supportes funds"))
549+ else WriteSet([DataEntry(t(p), aD), DataEntry(O(p, j), be), DataEntry(l(W(p)), (T(W(p)) + ak(p))), DataEntry(P(p), aY.amount)])
523550 }
524551
525552
526553
527-@Callable(aN)
554+@Callable(aP)
528555 func claimwinnings (p,j) = {
529- let aZ = Y(p)
530- let bA = if ((aZ == aB))
556+ let bb = aa(p)
557+ let bC = if ((bb == aD))
531558 then 1
532559 else 0
533- let bB = if ((aZ != aB))
560+ let bD = if ((bb != aD))
534561 then 1
535562 else 0
536- let bC = ai(p)
537- let bD = aj(p)
538- let bE = (((bA * (ak(p, j) * 100)) / (if ((0 >= bC))
563+ let bE = ak(p)
564+ let bF = al(p)
565+ let bG = (((bC * (am(p, j) * 100)) / (if ((0 >= bE))
539566 then 1
540- else bC)) + ((bB * (al(p, j) * 100)) / (if ((0 >= bD))
567+ else bE)) + ((bD * (an(p, j) * 100)) / (if ((0 >= bF))
541568 then 1
542- else bD)))
543- let bF = ((bD * aM) / 100)
544- let bG = ((bA * ((bE * bD) / 100)) + (bB * ((bE * (if ((bC > bF))
545- then bF
546- else bC)) / 100)))
547- let bH = (bA * ((bE * aq(p)) / 100))
548- let bI = (((if ((U(p) == j))
569+ else bF)))
570+ let bH = ((bF * aO) / 100)
571+ let bI = ((bC * ((bG * bF) / 100)) + (bD * ((bG * (if ((bE > bH))
572+ then bH
573+ else bE)) / 100)))
574+ let bJ = (bC * ((bG * as(p)) / 100))
575+ let bK = (((if ((W(p) == j))
549576 then 1
550- else 0) * bC) * (if ((aZ != aB))
577+ else 0) * bE) * (if ((bb != aD))
551578 then 1
552579 else 0))
553- if ((aZ == az))
580+ if ((bb == aB))
554581 then throw("The project hasn't accepted by community")
555- else if (if ((aZ != aB))
556- then (ab(p) >= height)
582+ else if (if ((bb != aD))
583+ then (ad(p) >= height)
557584 else false)
558585 then throw("The time for grant has not expired yet")
559- else if ((0 >= (bC + bD)))
586+ else if ((0 >= (bE + bF)))
560587 then throw("The campaign wasn't active")
561- else WriteSet([DataEntry(l(j), (((R(j) + bG) + bH) + bI)), DataEntry(t(p), if ((bI > 0))
562- then aA
563- else aZ), DataEntry(C(p, j), aD)])
588+ else WriteSet([DataEntry(l(j), (((T(j) + bI) + bJ) + bK)), DataEntry(t(p), if ((bK > 0))
589+ then aC
590+ else bb), DataEntry(C(p, j), aF)])
564591 }
565592
566593

github/deemru/w8io/3ef1775 
384.35 ms