tx · QwWQ9G7YsaUpm38hQcbf8vUzWN87ZeuyRu4rpQN8kUV

3NB6ViLiZv3r5EdQ2Q8GA8GKpuwmG3zevAt:  -0.05000000 Waves

2019.08.16 22:14 [634048] smart account 3NB6ViLiZv3r5EdQ2Q8GA8GKpuwmG3zevAt > SELF 0.00000000 Waves

{ "type": 13, "id": "QwWQ9G7YsaUpm38hQcbf8vUzWN87ZeuyRu4rpQN8kUV", "fee": 5000000, "feeAssetId": null, "timestamp": 1565982669736, "version": 1, "sender": "3NB6ViLiZv3r5EdQ2Q8GA8GKpuwmG3zevAt", "senderPublicKey": "3ghbp6Z5eXoKniLSE8XPjn5od7gT1K7qhk6zANBhv9C3", "proofs": [ "47RHJWbyH3rYjk5srh5ThXaoXU6SxkaVPc4fLjKwqSSJMDf2PkZuRL2a7fv7X3p2C5insWXaK7guPTGwmC4J1FQr" ], "script": "base64:AAIDAAAAAAAAAAAAAAAlAAAAAA5vd25lclB1YmxpY2tleQEAAAAgJ+LupRtywYm1DtC2wa7+mcHTm1BkasCvRteam1vswWgAAAAADGFsbGljZVB1YmtleQEAAAAgdahQG7OF8VCvnmrXif7UUhoQjaCrm/2hFDfEk/59nDEAAAAACWJvYlB1YmtleQEAAAAgoHwmi+qXZSlN20yTARZQ9O8s6pUs/3qey7EnxhpjMk8AAAAADGNvb3BlclB1YmtleQEAAAAgU/w5K0kRwpKzXSOUcyJ72drbib04bPq1q9XqkXENjioAAAAABE5PTkUCAAAABG5vbmUAAAAABlZPVEVSUwAAAAAAAAAAAwAAAAAGUVVPUlVNAAAAAAAAAAACAAAAAAZWT1RJTkcCAAAABnZvdGluZwAAAAAGUkVWRUFMAgAAAAZyZXZlYWwAAAAACEZFQVRVUkVEAgAAAAhmZWF0dXJlZAAAAAAIREVMSVNURUQCAAAACGRlbGlzdGVkAAAAAAh2ZXJpZmllcgIAAAAjM01zOXNVYjdXM0w1NUxMR3hlSFdpcWdUZmRIOXluMm1heWIAAAAACFZFUklGSUVEAgAAAAh2ZXJpZmllZAAAAAALQkxBQ0tMSVNURUQCAAAACWJsYWNrbGlzdAAAAAASbWF4QXVjdGlvbkR1cmF0aW9uCQAAaAAAAAIAAAAAAAAABaAAAAAAAAAAAB4BAAAADmdldE51bWJlckJ5S2V5AAAAAQAAAANrZXkEAAAAA251bQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAUAAAADbnVtAQAAAAtnZXRTdHJCeUtleQAAAAEAAAADa2V5BAAAAANzdHIEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEFAAAABE5PTkUFAAAAA3N0cgEAAAAPZ2V0S2V5SXRlbVByaWNlAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAABl9wcmljZQEAAAARZ2V0VmFsdWVJdGVtUHJpY2UAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAA9nZXRLZXlJdGVtUHJpY2UAAAABBQAAAARpdGVtAQAAABVnZXRLZXlVc2VySXRlbUNvdW50ZXIAAAACAAAABHVzZXIAAAAEaXRlbQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAEaXRlbQIAAAABXwUAAAAEdXNlcgIAAAAEX2NudAEAAAAXZ2V0VmFsdWVVc2VySXRlbUNvdW50ZXIAAAACAAAABHVzZXIAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFWdldEtleVVzZXJJdGVtQ291bnRlcgAAAAIFAAAABHVzZXIFAAAABGl0ZW0BAAAACmdldEtleUl0ZW0AAAACAAAACHN1cHBsaWVyAAAABXRpdGxlCQABLAAAAAICAAAABWl0ZW1fCQACWAAAAAEJAAH3AAAAAQkAAZsAAAABCQABLAAAAAIFAAAACHN1cHBsaWVyBQAAAAV0aXRsZQEAAAAOZ2V0S2V5SXRlbURhdGEAAAABAAAABGl0ZW0JAAEsAAAAAgUAAAAEaXRlbQIAAAAFX2RhdGEBAAAAEmdldEtleUl0ZW1TdXBwbGllcgAAAAEAAAAEaXRlbQkAASwAAAACBQAAAARpdGVtAgAAAAZfb3duZXIBAAAAFGdldFZhbHVlSXRlbVN1cHBsaWVyAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQUAAAAEaXRlbQEAAAAVZ2V0S2V5QmFsYW5jZVN1cHBsaWVyAAAAAQAAAAdhY2NvdW50CQABLAAAAAIFAAAAB2FjY291bnQCAAAACF9iYWxhbmNlAQAAABdnZXRWYWx1ZUJhbGFuY2VTdXBwbGllcgAAAAEAAAAHYWNjb3VudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFWdldEtleUJhbGFuY2VTdXBwbGllcgAAAAEFAAAAB2FjY291bnQBAAAADGdldEtleUNvbW1pdAAAAAIAAAAEaXRlbQAAAAR1c2VyCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARpdGVtAgAAAAFfBQAAAAR1c2VyAgAAAAdfY29tbWl0AQAAAA5nZXRWYWx1ZUNvbW1pdAAAAAIAAAAEaXRlbQAAAAR1c2VyCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAMZ2V0S2V5Q29tbWl0AAAAAgUAAAAEaXRlbQUAAAAEdXNlcgEAAAASZ2V0S2V5Q29tbWl0c0NvdW50AAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAAB19jb21jbnQBAAAAFGdldFZhbHVlQ29tbWl0c0NvdW50AAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAASZ2V0S2V5Q29tbWl0c0NvdW50AAAAAQUAAAAEaXRlbQEAAAAMZ2V0S2V5UmV2ZWFsAAAAAgAAAARpdGVtAAAABHVzZXIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABGl0ZW0CAAAAAV8FAAAABHVzZXICAAAAB19yZXZlYWwBAAAADmdldFZhbHVlUmV2ZWFsAAAAAgAAAARpdGVtAAAABHVzZXIJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAAAxnZXRLZXlSZXZlYWwAAAACBQAAAARpdGVtBQAAAAR1c2VyAQAAABBnZXRLZXlJdGVtU3RhdHVzAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAAB19zdGF0dXMBAAAAEmdldFZhbHVlSXRlbVN0YXR1cwAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEGdldEtleUl0ZW1TdGF0dXMAAAABBQAAAARpdGVtAQAAAA9nZXRLZXlWb3RlQ291bnQAAAACAAAABGl0ZW0AAAAFdm91dGUJAAEsAAAAAgkAASwAAAACBQAAAARpdGVtAgAAAAVfcmVzOgUAAAAFdm91dGUBAAAAEmdldFZhbHVlVm91dGVDb3VudAAAAAIAAAAEaXRlbQAAAAV2b3V0ZQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAD2dldEtleVZvdGVDb3VudAAAAAIFAAAABGl0ZW0FAAAABXZvdXRlAAAACAAAAAFpAQAAAAxzdGFydEF1Y3Rpb24AAAADAAAACGR1cmF0aW9uAAAACnN0YXJ0UHJpY2UAAAAMcHJpY2VBc3NldElk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IG5vdCBleGlzdAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFWdldEtleVVzZXJJdGVtQ291bnRlcgAAAAIFAAAAC3VzZXJBZGRyZXNzBQAAAARpdGVtCQAAZAAAAAIJAQAAABdnZXRWYWx1ZVVzZXJJdGVtQ291bnRlcgAAAAIFAAAAC3VzZXJBZGRyZXNzBQAAAARpdGVtAAAAAAAAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAVZ2V0S2V5QmFsYW5jZVN1cHBsaWVyAAAAAQUAAAAPc3VwcGxpZXJBZGRyZXNzCQAAZAAAAAIJAQAAABdnZXRWYWx1ZUJhbGFuY2VTdXBwbGllcgAAAAEFAAAAD3N1cHBsaWVyQWRkcmVzcwgFAAAAA3BtdAAAAAZhbW91bnQFAAAAA25pbAAAAAFpAQAAAAdhZGRJdGVtAAAAAwAAAAV0aXRsZQAAAAVwcmljZQAAAARkYXRhBAAAAA9zdXBwbGllckFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAEaXRlbQkBAAAACmdldEtleUl0ZW0AAAACBQAAAA9zdXBwbGllckFkZHJlc3MFAAAABXRpdGxlAwkAAGcAAAACAAAAAAAAAAAABQAAAAVwcmljZQkAAAIAAAABAgAAAC5wdXJjaGFzZSBhbW91bnQgY2Fubm90IGJlIGxlc3MgdGhhbiBpdGVtIHByaWNlAwkBAAAAAiE9AAAAAgkBAAAAFGdldFZhbHVlSXRlbVN1cHBsaWVyAAAAAQUAAAAEaXRlbQUAAAAETk9ORQkAAAIAAAABAgAAABlBbiBpdGVtIGlzIGFsbHJlYWR5IGV4aXN0AwkAAAAAAAACBQAAAA9zdXBwbGllckFkZHJlc3MFAAAAC0JMQUNLTElTVEVECQAAAgAAAAECAAAAJXN1cHBsaWVyJ3MgYWNjb3VudCBoYXMgYmVlbiBibGFja2xpc3QJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABJnZXRLZXlJdGVtU3VwcGxpZXIAAAABBQAAAARpdGVtBQAAAA9zdXBwbGllckFkZHJlc3MJAARM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", "chainId": 84, "height": 634048, "spentComplexity": 0 } View: original | compacted Prev: 7cZihdB6jum9cwmofEsk1q9K5juMWRe9d7QFZ5hhxtYo Next: E9mRHv82fimc1iEFHocqtEv4TAUfM4TPFTV9v65zWmvZ Diff:
OldNewDifferences
134134
135135
136136 @Callable(W)
137+func bid (aa) = {
138+ let ac = extract(W.payment)
139+ let ad = if (isDefined(ac.assetId))
140+ then toBase58String(value(ac.assetId))
141+ else "WAVES"
142+ let ae = toBase58String(W.caller.bytes)
143+ let ab = getIntegerValue(this, aa)
144+ let Y = getIntegerValue(this, (aa + "_startPrice"))
145+ let Z = getStringValue(this, (aa + "_priceAssetId"))
146+ let af = getInteger(this, (aa + "_winAmount"))
147+ let ag = getString(this, (aa + "_winner"))
148+ let ah = if (isDefined(ag))
149+ then (value(ag) == ae)
150+ else false
151+ let ai = (ac.amount + (if (ah)
152+ then value(af)
153+ else 0))
154+ if ((lastBlock.height >= ab))
155+ then throw("Auction already finished")
156+ else if ((Z != ad))
157+ then throw((("Bid must be in asset '" + Z) + "'"))
158+ else if (if (if (isDefined(af))
159+ then (value(af) >= ai)
160+ else false)
161+ then true
162+ else if (!(isDefined(af)))
163+ then (Y >= ai)
164+ else false)
165+ then throw(("Bid must be more then " + toString(if (isDefined(af))
166+ then value(af)
167+ else Y)))
168+ else if (if (ah)
169+ then true
170+ else !(isDefined(ag)))
171+ then WriteSet([DataEntry((aa + "_winner"), ae), DataEntry((aa + "_winAmount"), ai)])
172+ else {
173+ let aj = addressFromStringValue(value(ag))
174+ let ak = if (if ((Z == "WAVES"))
175+ then true
176+ else (Z == ""))
177+ then unit
178+ else fromBase58String(Z)
179+ ScriptResult(WriteSet([DataEntry((aa + "_winner"), ae), DataEntry((aa + "_winAmount"), ai)]), TransferSet([ScriptTransfer(aj, value(af), ak)]))
180+ }
181+ }
182+
183+
184+
185+@Callable(W)
137186 func purchase (x) = {
138187 let ac = extract(W.payment)
139188 if (isDefined(ac.assetId))
140189 then throw("can use Waves only at the moment")
141190 else {
142- let ad = toBase58String(W.caller.bytes)
143- let ae = y(x)
144- let af = H(x)
145- if ((ae > ac.amount))
191+ let al = toBase58String(W.caller.bytes)
192+ let am = y(x)
193+ let an = H(x)
194+ if ((am > ac.amount))
146195 then throw("purchase amount cannot be less than item price")
147- else if ((ac.amount > ae))
196+ else if ((ac.amount > am))
148197 then throw("purchase amount cannot be higher than item price")
149- else if ((af == e))
198+ else if ((an == e))
150199 then throw("supplier is not exist")
151- else WriteSet([DataEntry(z(ad, x), (B(ad, x) + 1)), DataEntry(I(af), (K(af) + ac.amount))])
200+ else WriteSet([DataEntry(z(al, x), (B(al, x) + 1)), DataEntry(I(an), (K(an) + ac.amount))])
152201 }
153202 }
154203
155204
156205
157206 @Callable(W)
158-func addItem (E,ae,ag) = {
159- let af = toBase58String(W.caller.bytes)
160- let x = C(af, E)
161- if ((0 >= ae))
207+func addItem (E,am,ao) = {
208+ let an = toBase58String(W.caller.bytes)
209+ let x = C(an, E)
210+ if ((0 >= am))
162211 then throw("purchase amount cannot be less than item price")
163212 else if ((H(x) != e))
164213 then throw("An item is allready exist")
165- else if ((af == n))
214+ else if ((an == n))
166215 then throw("supplier's account has been blacklist")
167- else WriteSet([DataEntry(G(x), af), DataEntry(w(x), ae), DataEntry(F(x), ag)])
216+ else WriteSet([DataEntry(G(x), an), DataEntry(w(x), am), DataEntry(F(x), ao)])
168217 }
169218
170219
172221 @Callable(W)
173222 func deposit () = {
174223 let ac = extract(W.payment)
175- let af = toBase58String(W.caller.bytes)
176- let ah = K(af)
177- let ai = (ah + ac.amount)
224+ let an = toBase58String(W.caller.bytes)
225+ let ap = K(an)
226+ let aq = (ap + ac.amount)
178227 if (isDefined(ac.assetId))
179228 then throw("can hodl waves only at the moment")
180229 else if ((0 > ac.amount))
181230 then throw("Can not deposit negative amount")
182- else WriteSet([DataEntry(I(af), ai)])
231+ else WriteSet([DataEntry(I(an), aq)])
183232 }
184233
185234
186235
187236 @Callable(W)
188-func withdraw (aj) = {
189- let af = toBase58String(W.caller.bytes)
190- let ah = K(af)
191- let ai = (ah - aj)
192- if ((0 > aj))
237+func withdraw (ar) = {
238+ let an = toBase58String(W.caller.bytes)
239+ let ap = K(an)
240+ let aq = (ap - ar)
241+ if ((0 > ar))
193242 then throw("Can not withdraw negative amount")
194- else if ((0 > ai))
243+ else if ((0 > aq))
195244 then throw("not enough balance")
196- else if ((0 >= ah))
245+ else if ((0 >= ap))
197246 then throw("insufficient balance")
198- else ScriptResult(WriteSet([DataEntry(I(af), ai)]), TransferSet([ScriptTransfer(addressFromStringValue(af), aj, unit)]))
247+ else ScriptResult(WriteSet([DataEntry(I(an), aq)]), TransferSet([ScriptTransfer(addressFromStringValue(an), ar, unit)]))
199248 }
200249
201250
202251
203252 @Callable(W)
204-func voteCommit (x,ak) = {
253+func voteCommit (x,as) = {
205254 let A = toBase58String(W.caller.bytes)
206- let al = O(x)
207- let am = S(x)
208- if ((al >= f))
255+ let at = O(x)
256+ let au = S(x)
257+ if ((at >= f))
209258 then throw("reached max num of vouters")
210259 else if ((M(x, A) != e))
211260 then throw("user has allready participated")
212261 else if ((G(x) == e))
213262 then throw("item dose not exist")
214- else if (if ((am != e))
215- then (am != h)
263+ else if (if ((au != e))
264+ then (au != h)
216265 else false)
217266 then throw("vouting is not posible")
218- else WriteSet([DataEntry(L(x, A), ak), DataEntry(N(x), (al + 1)), DataEntry(R(x), if ((al == f))
267+ else WriteSet([DataEntry(L(x, A), as), DataEntry(N(x), (at + 1)), DataEntry(R(x), if ((at == f))
219268 then i
220269 else h)])
221270 }
223272
224273
225274 @Callable(W)
226-func voteReveal (x,an,ao) = {
275+func voteReveal (x,av,aw) = {
227276 let A = toBase58String(W.caller.bytes)
228- let am = S(x)
229- let ap = V(x, an)
230- if ((toBase58String(sha256(toBytes((an + ao)))) != M(x, A)))
277+ let au = S(x)
278+ let ax = V(x, av)
279+ if ((toBase58String(sha256(toBytes((av + aw)))) != M(x, A)))
231280 then throw("reveal data is not valid")
232281 else if ((f > O(x)))
233282 then throw("max num of hasn't reached yet")
234283 else if ((Q(x, A) != e))
235284 then throw("user has already participated")
236- else if (if ((am != h))
237- then (am != i)
285+ else if (if ((au != h))
286+ then (au != i)
238287 else false)
239288 then throw("wrong status")
240- else if (if ((an != j))
241- then (an != k)
289+ else if (if ((av != j))
290+ then (av != k)
242291 else false)
243292 then throw("wrong vote")
244- else if (if ((am == j))
293+ else if (if ((au == j))
245294 then true
246- else (am == k))
295+ else (au == k))
247296 then throw("vote has finished")
248- else WriteSet([DataEntry(P(x, A), an), DataEntry(T(x, an), ap), DataEntry(R(x), if ((ap >= g))
249- then an
297+ else WriteSet([DataEntry(P(x, A), av), DataEntry(T(x, av), ax), DataEntry(R(x), if ((ax >= g))
298+ then av
250299 else i)])
251300 }
252301
253302
254-@Verifier(aq)
255-func ar () = {
256- let as = sigVerify(aq.bodyBytes, aq.proofs[0], b)
257- let at = sigVerify(aq.bodyBytes, aq.proofs[1], b)
258- let au = sigVerify(aq.bodyBytes, aq.proofs[2], b)
259- let av = sigVerify(aq.bodyBytes, aq.proofs[0], c)
260- let aw = sigVerify(aq.bodyBytes, aq.proofs[1], c)
261- let ax = sigVerify(aq.bodyBytes, aq.proofs[2], c)
262- let ay = sigVerify(aq.bodyBytes, aq.proofs[0], d)
263- let az = sigVerify(aq.bodyBytes, aq.proofs[1], d)
264- let aA = sigVerify(aq.bodyBytes, aq.proofs[2], d)
265- let aB = if (if (if (if (if (if (as)
266- then aw
303+@Verifier(ay)
304+func az () = {
305+ let aA = sigVerify(ay.bodyBytes, ay.proofs[0], b)
306+ let aB = sigVerify(ay.bodyBytes, ay.proofs[1], b)
307+ let aC = sigVerify(ay.bodyBytes, ay.proofs[2], b)
308+ let aD = sigVerify(ay.bodyBytes, ay.proofs[0], c)
309+ let aE = sigVerify(ay.bodyBytes, ay.proofs[1], c)
310+ let aF = sigVerify(ay.bodyBytes, ay.proofs[2], c)
311+ let aG = sigVerify(ay.bodyBytes, ay.proofs[0], d)
312+ let aH = sigVerify(ay.bodyBytes, ay.proofs[1], d)
313+ let aI = sigVerify(ay.bodyBytes, ay.proofs[2], d)
314+ let aJ = if (if (if (if (if (if (aA)
315+ then aE
267316 else false)
268317 then true
269- else if (as)
270- then ax
318+ else if (aA)
319+ then aF
271320 else false)
272321 then true
273- else if (at)
274- then av
322+ else if (aB)
323+ then aD
275324 else false)
276325 then true
277- else if (at)
278- then ax
326+ else if (aB)
327+ then aF
279328 else false)
280329 then true
281- else if (au)
282- then av
330+ else if (aC)
331+ then aD
283332 else false)
284333 then true
285- else if (au)
286- then aw
334+ else if (aC)
335+ then aE
287336 else false
288- let aC = if (if (if (if (if (if (as)
289- then az
337+ let aK = if (if (if (if (if (if (aA)
338+ then aH
290339 else false)
291340 then true
292- else if (as)
293- then aA
341+ else if (aA)
342+ then aI
294343 else false)
295344 then true
296- else if (at)
297- then ay
345+ else if (aB)
346+ then aG
298347 else false)
299348 then true
300- else if (at)
301- then aA
349+ else if (aB)
350+ then aI
302351 else false)
303352 then true
304- else if (au)
305- then ay
353+ else if (aC)
354+ then aG
306355 else false)
307356 then true
308- else if (au)
309- then az
357+ else if (aC)
358+ then aH
310359 else false
311- let aD = if (if (if (if (if (if (ay)
312- then aw
360+ let aL = if (if (if (if (if (if (aG)
361+ then aE
313362 else false)
314363 then true
315- else if (ay)
316- then ax
364+ else if (aG)
365+ then aF
317366 else false)
318367 then true
319- else if (az)
320- then av
368+ else if (aH)
369+ then aD
321370 else false)
322371 then true
323- else if (az)
324- then ax
372+ else if (aH)
373+ then aF
325374 else false)
326375 then true
327- else if (aA)
328- then av
376+ else if (aI)
377+ then aD
329378 else false)
330379 then true
331- else if (aA)
332- then aw
380+ else if (aI)
381+ then aE
333382 else false
334- let s = aq
383+ let s = ay
335384 if ($isInstanceOf(s, "SetScriptTransaction"))
336385 then {
337- let aE = s
338- sigVerify(aq.bodyBytes, aq.proofs[0], a)
386+ let aM = s
387+ sigVerify(ay.bodyBytes, ay.proofs[0], a)
339388 }
340389 else if ($isInstanceOf(s, "DataTransaction"))
341390 then {
342- let aE = s
391+ let aM = s
343392 true
344393 }
345- else if (if (aB)
394+ else if (if (aJ)
346395 then true
347- else aC)
396+ else aK)
348397 then true
349- else aD
398+ else aL
350399 }
351400
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = base58'3ghbp6Z5eXoKniLSE8XPjn5od7gT1K7qhk6zANBhv9C3'
55
66 let b = base58'8vHZLEG3BmzYYVjQyNi1m11kh6FeSoVAKKwtsYXC3bqA'
77
88 let c = base58'BoU2oQn7y52MZgT1Q7vJCJwUxov9tXb2zpC5gmWQbutJ'
99
1010 let d = base58'6equaSt4fnw6gEoLGiL3dTDDGxDc4PY5NyV3gVkEEr1F'
1111
1212 let e = "none"
1313
1414 let f = 3
1515
1616 let g = 2
1717
1818 let h = "voting"
1919
2020 let i = "reveal"
2121
2222 let j = "featured"
2323
2424 let k = "delisted"
2525
2626 let l = "3Ms9sUb7W3L55LLGxeHWiqgTfdH9yn2mayb"
2727
2828 let m = "verified"
2929
3030 let n = "blacklist"
3131
3232 let o = (1440 * 30)
3333
3434 func p (q) = {
3535 let r = {
3636 let s = getInteger(this, q)
3737 if ($isInstanceOf(s, "Int"))
3838 then {
3939 let t = s
4040 t
4141 }
4242 else 0
4343 }
4444 r
4545 }
4646
4747
4848 func u (q) = {
4949 let v = {
5050 let s = getString(this, q)
5151 if ($isInstanceOf(s, "String"))
5252 then {
5353 let t = s
5454 t
5555 }
5656 else e
5757 }
5858 v
5959 }
6060
6161
6262 func w (x) = (x + "_price")
6363
6464
6565 func y (x) = p(w(x))
6666
6767
6868 func z (A,x) = (((x + "_") + A) + "_cnt")
6969
7070
7171 func B (A,x) = p(z(A, x))
7272
7373
7474 func C (D,E) = ("item_" + toBase58String(sha256(toBytes((D + E)))))
7575
7676
7777 func F (x) = (x + "_data")
7878
7979
8080 func G (x) = (x + "_owner")
8181
8282
8383 func H (x) = u(G(x))
8484
8585
8686 func I (J) = (J + "_balance")
8787
8888
8989 func K (J) = p(I(J))
9090
9191
9292 func L (x,A) = (((x + "_") + A) + "_commit")
9393
9494
9595 func M (x,A) = u(L(x, A))
9696
9797
9898 func N (x) = (x + "_comcnt")
9999
100100
101101 func O (x) = p(N(x))
102102
103103
104104 func P (x,A) = (((x + "_") + A) + "_reveal")
105105
106106
107107 func Q (x,A) = u(P(x, A))
108108
109109
110110 func R (x) = (x + "_status")
111111
112112
113113 func S (x) = u(R(x))
114114
115115
116116 func T (x,U) = ((x + "_res:") + U)
117117
118118
119119 func V (x,U) = p(T(x, U))
120120
121121
122122 @Callable(W)
123123 func startAuction (X,Y,Z) = {
124124 let aa = toBase58String(W.transactionId)
125125 let ab = (lastBlock.height + X)
126126 let ac = extract(W.payment)
127127 if ((X > o))
128128 then throw(("Duration is too long. Must be less than " + toString(o)))
129129 else WriteSet([DataEntry(aa, ab), DataEntry((aa + "_organizer"), toBase58String(W.caller.bytes)), DataEntry((aa + "_lot_assetId"), if (isDefined(ac.assetId))
130130 then toBase58String(value(ac.assetId))
131131 else "WAVES"), DataEntry((aa + "_lot_amount"), ac.amount), DataEntry((aa + "_startPrice"), Y), DataEntry((aa + "_priceAssetId"), Z)])
132132 }
133133
134134
135135
136136 @Callable(W)
137+func bid (aa) = {
138+ let ac = extract(W.payment)
139+ let ad = if (isDefined(ac.assetId))
140+ then toBase58String(value(ac.assetId))
141+ else "WAVES"
142+ let ae = toBase58String(W.caller.bytes)
143+ let ab = getIntegerValue(this, aa)
144+ let Y = getIntegerValue(this, (aa + "_startPrice"))
145+ let Z = getStringValue(this, (aa + "_priceAssetId"))
146+ let af = getInteger(this, (aa + "_winAmount"))
147+ let ag = getString(this, (aa + "_winner"))
148+ let ah = if (isDefined(ag))
149+ then (value(ag) == ae)
150+ else false
151+ let ai = (ac.amount + (if (ah)
152+ then value(af)
153+ else 0))
154+ if ((lastBlock.height >= ab))
155+ then throw("Auction already finished")
156+ else if ((Z != ad))
157+ then throw((("Bid must be in asset '" + Z) + "'"))
158+ else if (if (if (isDefined(af))
159+ then (value(af) >= ai)
160+ else false)
161+ then true
162+ else if (!(isDefined(af)))
163+ then (Y >= ai)
164+ else false)
165+ then throw(("Bid must be more then " + toString(if (isDefined(af))
166+ then value(af)
167+ else Y)))
168+ else if (if (ah)
169+ then true
170+ else !(isDefined(ag)))
171+ then WriteSet([DataEntry((aa + "_winner"), ae), DataEntry((aa + "_winAmount"), ai)])
172+ else {
173+ let aj = addressFromStringValue(value(ag))
174+ let ak = if (if ((Z == "WAVES"))
175+ then true
176+ else (Z == ""))
177+ then unit
178+ else fromBase58String(Z)
179+ ScriptResult(WriteSet([DataEntry((aa + "_winner"), ae), DataEntry((aa + "_winAmount"), ai)]), TransferSet([ScriptTransfer(aj, value(af), ak)]))
180+ }
181+ }
182+
183+
184+
185+@Callable(W)
137186 func purchase (x) = {
138187 let ac = extract(W.payment)
139188 if (isDefined(ac.assetId))
140189 then throw("can use Waves only at the moment")
141190 else {
142- let ad = toBase58String(W.caller.bytes)
143- let ae = y(x)
144- let af = H(x)
145- if ((ae > ac.amount))
191+ let al = toBase58String(W.caller.bytes)
192+ let am = y(x)
193+ let an = H(x)
194+ if ((am > ac.amount))
146195 then throw("purchase amount cannot be less than item price")
147- else if ((ac.amount > ae))
196+ else if ((ac.amount > am))
148197 then throw("purchase amount cannot be higher than item price")
149- else if ((af == e))
198+ else if ((an == e))
150199 then throw("supplier is not exist")
151- else WriteSet([DataEntry(z(ad, x), (B(ad, x) + 1)), DataEntry(I(af), (K(af) + ac.amount))])
200+ else WriteSet([DataEntry(z(al, x), (B(al, x) + 1)), DataEntry(I(an), (K(an) + ac.amount))])
152201 }
153202 }
154203
155204
156205
157206 @Callable(W)
158-func addItem (E,ae,ag) = {
159- let af = toBase58String(W.caller.bytes)
160- let x = C(af, E)
161- if ((0 >= ae))
207+func addItem (E,am,ao) = {
208+ let an = toBase58String(W.caller.bytes)
209+ let x = C(an, E)
210+ if ((0 >= am))
162211 then throw("purchase amount cannot be less than item price")
163212 else if ((H(x) != e))
164213 then throw("An item is allready exist")
165- else if ((af == n))
214+ else if ((an == n))
166215 then throw("supplier's account has been blacklist")
167- else WriteSet([DataEntry(G(x), af), DataEntry(w(x), ae), DataEntry(F(x), ag)])
216+ else WriteSet([DataEntry(G(x), an), DataEntry(w(x), am), DataEntry(F(x), ao)])
168217 }
169218
170219
171220
172221 @Callable(W)
173222 func deposit () = {
174223 let ac = extract(W.payment)
175- let af = toBase58String(W.caller.bytes)
176- let ah = K(af)
177- let ai = (ah + ac.amount)
224+ let an = toBase58String(W.caller.bytes)
225+ let ap = K(an)
226+ let aq = (ap + ac.amount)
178227 if (isDefined(ac.assetId))
179228 then throw("can hodl waves only at the moment")
180229 else if ((0 > ac.amount))
181230 then throw("Can not deposit negative amount")
182- else WriteSet([DataEntry(I(af), ai)])
231+ else WriteSet([DataEntry(I(an), aq)])
183232 }
184233
185234
186235
187236 @Callable(W)
188-func withdraw (aj) = {
189- let af = toBase58String(W.caller.bytes)
190- let ah = K(af)
191- let ai = (ah - aj)
192- if ((0 > aj))
237+func withdraw (ar) = {
238+ let an = toBase58String(W.caller.bytes)
239+ let ap = K(an)
240+ let aq = (ap - ar)
241+ if ((0 > ar))
193242 then throw("Can not withdraw negative amount")
194- else if ((0 > ai))
243+ else if ((0 > aq))
195244 then throw("not enough balance")
196- else if ((0 >= ah))
245+ else if ((0 >= ap))
197246 then throw("insufficient balance")
198- else ScriptResult(WriteSet([DataEntry(I(af), ai)]), TransferSet([ScriptTransfer(addressFromStringValue(af), aj, unit)]))
247+ else ScriptResult(WriteSet([DataEntry(I(an), aq)]), TransferSet([ScriptTransfer(addressFromStringValue(an), ar, unit)]))
199248 }
200249
201250
202251
203252 @Callable(W)
204-func voteCommit (x,ak) = {
253+func voteCommit (x,as) = {
205254 let A = toBase58String(W.caller.bytes)
206- let al = O(x)
207- let am = S(x)
208- if ((al >= f))
255+ let at = O(x)
256+ let au = S(x)
257+ if ((at >= f))
209258 then throw("reached max num of vouters")
210259 else if ((M(x, A) != e))
211260 then throw("user has allready participated")
212261 else if ((G(x) == e))
213262 then throw("item dose not exist")
214- else if (if ((am != e))
215- then (am != h)
263+ else if (if ((au != e))
264+ then (au != h)
216265 else false)
217266 then throw("vouting is not posible")
218- else WriteSet([DataEntry(L(x, A), ak), DataEntry(N(x), (al + 1)), DataEntry(R(x), if ((al == f))
267+ else WriteSet([DataEntry(L(x, A), as), DataEntry(N(x), (at + 1)), DataEntry(R(x), if ((at == f))
219268 then i
220269 else h)])
221270 }
222271
223272
224273
225274 @Callable(W)
226-func voteReveal (x,an,ao) = {
275+func voteReveal (x,av,aw) = {
227276 let A = toBase58String(W.caller.bytes)
228- let am = S(x)
229- let ap = V(x, an)
230- if ((toBase58String(sha256(toBytes((an + ao)))) != M(x, A)))
277+ let au = S(x)
278+ let ax = V(x, av)
279+ if ((toBase58String(sha256(toBytes((av + aw)))) != M(x, A)))
231280 then throw("reveal data is not valid")
232281 else if ((f > O(x)))
233282 then throw("max num of hasn't reached yet")
234283 else if ((Q(x, A) != e))
235284 then throw("user has already participated")
236- else if (if ((am != h))
237- then (am != i)
285+ else if (if ((au != h))
286+ then (au != i)
238287 else false)
239288 then throw("wrong status")
240- else if (if ((an != j))
241- then (an != k)
289+ else if (if ((av != j))
290+ then (av != k)
242291 else false)
243292 then throw("wrong vote")
244- else if (if ((am == j))
293+ else if (if ((au == j))
245294 then true
246- else (am == k))
295+ else (au == k))
247296 then throw("vote has finished")
248- else WriteSet([DataEntry(P(x, A), an), DataEntry(T(x, an), ap), DataEntry(R(x), if ((ap >= g))
249- then an
297+ else WriteSet([DataEntry(P(x, A), av), DataEntry(T(x, av), ax), DataEntry(R(x), if ((ax >= g))
298+ then av
250299 else i)])
251300 }
252301
253302
254-@Verifier(aq)
255-func ar () = {
256- let as = sigVerify(aq.bodyBytes, aq.proofs[0], b)
257- let at = sigVerify(aq.bodyBytes, aq.proofs[1], b)
258- let au = sigVerify(aq.bodyBytes, aq.proofs[2], b)
259- let av = sigVerify(aq.bodyBytes, aq.proofs[0], c)
260- let aw = sigVerify(aq.bodyBytes, aq.proofs[1], c)
261- let ax = sigVerify(aq.bodyBytes, aq.proofs[2], c)
262- let ay = sigVerify(aq.bodyBytes, aq.proofs[0], d)
263- let az = sigVerify(aq.bodyBytes, aq.proofs[1], d)
264- let aA = sigVerify(aq.bodyBytes, aq.proofs[2], d)
265- let aB = if (if (if (if (if (if (as)
266- then aw
303+@Verifier(ay)
304+func az () = {
305+ let aA = sigVerify(ay.bodyBytes, ay.proofs[0], b)
306+ let aB = sigVerify(ay.bodyBytes, ay.proofs[1], b)
307+ let aC = sigVerify(ay.bodyBytes, ay.proofs[2], b)
308+ let aD = sigVerify(ay.bodyBytes, ay.proofs[0], c)
309+ let aE = sigVerify(ay.bodyBytes, ay.proofs[1], c)
310+ let aF = sigVerify(ay.bodyBytes, ay.proofs[2], c)
311+ let aG = sigVerify(ay.bodyBytes, ay.proofs[0], d)
312+ let aH = sigVerify(ay.bodyBytes, ay.proofs[1], d)
313+ let aI = sigVerify(ay.bodyBytes, ay.proofs[2], d)
314+ let aJ = if (if (if (if (if (if (aA)
315+ then aE
267316 else false)
268317 then true
269- else if (as)
270- then ax
318+ else if (aA)
319+ then aF
271320 else false)
272321 then true
273- else if (at)
274- then av
322+ else if (aB)
323+ then aD
275324 else false)
276325 then true
277- else if (at)
278- then ax
326+ else if (aB)
327+ then aF
279328 else false)
280329 then true
281- else if (au)
282- then av
330+ else if (aC)
331+ then aD
283332 else false)
284333 then true
285- else if (au)
286- then aw
334+ else if (aC)
335+ then aE
287336 else false
288- let aC = if (if (if (if (if (if (as)
289- then az
337+ let aK = if (if (if (if (if (if (aA)
338+ then aH
290339 else false)
291340 then true
292- else if (as)
293- then aA
341+ else if (aA)
342+ then aI
294343 else false)
295344 then true
296- else if (at)
297- then ay
345+ else if (aB)
346+ then aG
298347 else false)
299348 then true
300- else if (at)
301- then aA
349+ else if (aB)
350+ then aI
302351 else false)
303352 then true
304- else if (au)
305- then ay
353+ else if (aC)
354+ then aG
306355 else false)
307356 then true
308- else if (au)
309- then az
357+ else if (aC)
358+ then aH
310359 else false
311- let aD = if (if (if (if (if (if (ay)
312- then aw
360+ let aL = if (if (if (if (if (if (aG)
361+ then aE
313362 else false)
314363 then true
315- else if (ay)
316- then ax
364+ else if (aG)
365+ then aF
317366 else false)
318367 then true
319- else if (az)
320- then av
368+ else if (aH)
369+ then aD
321370 else false)
322371 then true
323- else if (az)
324- then ax
372+ else if (aH)
373+ then aF
325374 else false)
326375 then true
327- else if (aA)
328- then av
376+ else if (aI)
377+ then aD
329378 else false)
330379 then true
331- else if (aA)
332- then aw
380+ else if (aI)
381+ then aE
333382 else false
334- let s = aq
383+ let s = ay
335384 if ($isInstanceOf(s, "SetScriptTransaction"))
336385 then {
337- let aE = s
338- sigVerify(aq.bodyBytes, aq.proofs[0], a)
386+ let aM = s
387+ sigVerify(ay.bodyBytes, ay.proofs[0], a)
339388 }
340389 else if ($isInstanceOf(s, "DataTransaction"))
341390 then {
342- let aE = s
391+ let aM = s
343392 true
344393 }
345- else if (if (aB)
394+ else if (if (aJ)
346395 then true
347- else aC)
396+ else aK)
348397 then true
349- else aD
398+ else aL
350399 }
351400

github/deemru/w8io/169f3d6 
103.01 ms