tx · FjAZtjo5hbAxmxCFrmMYHJUkpsrRagTYRFPqsunjKUQq

3MxViMkYCH3bTRfyFjMsoiwynP21hpaTjz2:  -0.01500000 Waves

2019.10.12 13:53 [716580] smart account 3MxViMkYCH3bTRfyFjMsoiwynP21hpaTjz2 > SELF 0.00000000 Waves

{ "type": 13, "id": "FjAZtjo5hbAxmxCFrmMYHJUkpsrRagTYRFPqsunjKUQq", "fee": 1500000, "feeAssetId": null, "timestamp": 1570877413699, "version": 1, "sender": "3MxViMkYCH3bTRfyFjMsoiwynP21hpaTjz2", "senderPublicKey": "2ituwW7DSRsLP3Vcbnpr98QUQMGFRWKmyYPFqsUKRDoP", "proofs": [ "4j3TYq77zcuPiaEoQJJsnZLewuK2WQuqQqXMFaDZnuSxNxEkdwcmeHgRdwCv4FHHNh29vGjVxuEmz2xZ48ogvAoW" ], "script": null, "chainId": 84, "height": 716580, "spentComplexity": 0 } View: original | compacted Prev: F6QZPidfZBC3soxbem9gm9zLozFTPosS2WBwo4kTer9x Next: none Full:
OldNewDifferences
1-{-# STDLIB_VERSION 3 #-}
2-{-# SCRIPT_TYPE ACCOUNT #-}
3-{-# CONTENT_TYPE DAPP #-}
4-let a = 1440
5-
6-let b = unit
7-
8-let c = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
9-
10-let d = base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU'
11-
12-let e = base58'Ft8X1v1LTa1ABafufpaCWyVj8KkaxUWE6xBhW6sNFJck'
13-
14-let f = "Opened"
15-
16-let g = "Suggested"
17-
18-let h = "Canceled"
19-
20-let i = "InProgress"
21-
22-let j = "WaitForConfirmation"
23-
24-let k = "Completed"
25-
26-let l = "Dispute"
27-
28-let m = "DisputeResolved"
29-
30-let n = "CL"
31-
32-let o = "FL"
33-
34-let p = base58'FneCJqM5BP2eAuyteMiuEEHYALrE4axhEfcpHVGbdr5s'
35-
36-let q = base58'6QAMdssb1GJjpQVQQcnx8fKU8WhtcF9ZsQhifdThAEK8'
37-
38-let r = base58'2ituwW7DSRsLP3Vcbnpr98QUQMGFRWKmyYPFqsUKRDoP'
39-
40-let s = base58'ANsPQocEESyLb3yQqk2pwCdoK7PJQxLoZVpYvsm3SxUG'
41-
42-let t = base58'13VixwQin1MzZCyY69NSWMSBNEV27Rzc159o7uZXR9VS'
43-
44-func u (v) = (v + "_AuctionData")
45-
46-
47-func w (x) = {
48- let y = getInteger(this, x)
49- let z = y
50- if ($isInstanceOf(z, "Int"))
51- then {
52- let A = z
53- A
54- }
55- else 0
56- }
57-
58-
59-func B (C) = if ((C == "WAVES"))
60- then b
61- else if ((C == "BTC"))
62- then c
63- else if ((C == "EUR"))
64- then d
65- else if ((C == "USD"))
66- then e
67- else throw("Incorrect Asset Id")
68-
69-
70-func D (E,F,G) = ((E - F) > G)
71-
72-
73-func H (I,J) = if ((I > J))
74- then throw("Bid amount must be lower or equal than auctionPrice")
75- else I
76-
77-
78-func K (L,J) = {
79- let M = getInteger(this, (L + "_Freezed"))
80- let N = {
81- let z = M
82- if ($isInstanceOf(z, "Int"))
83- then {
84- let A = z
85- A
86- }
87- else 0
88- }
89- (N + J)
90- }
91-
92-
93-func O (L,J) = {
94- let M = getInteger(this, (L + "_Freezed"))
95- let N = {
96- let z = M
97- if ($isInstanceOf(z, "Int"))
98- then {
99- let A = z
100- A
101- }
102- else 0
103- }
104- let A = (N - J)
105- if ((A >= 0))
106- then A
107- else throw("Freezed amount couldn't be less than 0")
108- }
109-
110-
111-func P (Q) = {
112- let P = getString(this, (Q + "_Freelancer"))
113- let z = P
114- if ($isInstanceOf(z, "String"))
115- then {
116- let A = z
117- Q
118- }
119- else throw("Only registered users can make bets")
120- }
121-
122-
123-func R (S) = if ((S > 0))
124- then S
125- else throw("Amount must be higher then 0")
126-
127-
128-func T (v) = {
129- let U = getString(this, (v + "_State"))
130- let z = U
131- if ($isInstanceOf(z, "String"))
132- then {
133- let A = z
134- A
135- }
136- else throw("Auction State was not found")
137- }
138-
139-
140-func V (v) = {
141- let W = getString(this, (v + "_AuctionClient"))
142- let X = {
143- let z = W
144- if ($isInstanceOf(z, "String"))
145- then {
146- let A = z
147- A
148- }
149- else throw("Auction Client was not found")
150- }
151- fromBase58String(X)
152- }
153-
154-
155-func Y (v) = {
156- let Z = getInteger(this, (v + "_AuctionStart"))
157- let z = Z
158- if ($isInstanceOf(z, "Int"))
159- then {
160- let A = z
161- A
162- }
163- else throw("Auction Start time was not found")
164- }
165-
166-
167-func aa (v) = {
168- let ab = getInteger(this, (v + "_AuctionDuration"))
169- let z = ab
170- if ($isInstanceOf(z, "Int"))
171- then {
172- let A = z
173- A
174- }
175- else throw("Auction duration time was not found")
176- }
177-
178-
179-func ac (v) = {
180- let ad = getInteger(this, (v + "_JobPerformance"))
181- let z = ad
182- if ($isInstanceOf(z, "Int"))
183- then {
184- let A = z
185- A
186- }
187- else throw("Auction job performance time was not found")
188- }
189-
190-
191-func ae (v) = {
192- let af = getString(this, (v + "_AssetName"))
193- let z = af
194- if ($isInstanceOf(z, "String"))
195- then {
196- let A = z
197- A
198- }
199- else throw("Auction asset name was not found")
200- }
201-
202-
203-func ag (v) = {
204- let ah = getInteger(this, (v + "_Price"))
205- let z = ah
206- if ($isInstanceOf(z, "Int"))
207- then {
208- let A = z
209- A
210- }
211- else throw("Auction price was not found")
212- }
213-
214-
215-func ai (v) = {
216- let W = getString(this, (v + "_HiredFreelancer"))
217- let A = {
218- let z = W
219- if ($isInstanceOf(z, "String"))
220- then {
221- let A = z
222- A
223- }
224- else throw("Auction Client was not found")
225- }
226- fromBase58String(A)
227- }
228-
229-
230-@Callable(aj)
231-func freelancerSignUp (ak) = {
232- let al = toBase58String(aj.callerPublicKey)
233- let am = getString(this, (al + "_Freelancer"))
234- if (isDefined(am))
235- then throw("User already registered")
236- else WriteSet([DataEntry((al + "_Freelancer"), ak), DataEntry((al + "_PendingEarnings"), 0), DataEntry((al + "_PaidEarnings"), 0), DataEntry((al + "_TotalEarnings"), 0), DataEntry((al + "_JobsPending"), 0), DataEntry((al + "_JobsCompleted"), 0), DataEntry((al + "_JobsTotal"), 0)])
237- }
238-
239-
240-
241-@Callable(aj)
242-func clientSignUp (ak) = {
243- let al = toBase58String(aj.callerPublicKey)
244- let am = getString(this, (al + "_Client"))
245- if (isDefined(am))
246- then throw("User already registered")
247- else WriteSet([DataEntry((al + "_Client"), ak), DataEntry((al + "_JobsCreated"), 0), DataEntry((al + "_JobsOnGoing"), 0), DataEntry((al + "_JobInDispute"), 0)])
248- }
249-
250-
251-
252-@Callable(aj)
253-func createAuction (an,ao,ap) = {
254- let v = toBase58String(aj.transactionId)
255- let aq = toBase58String(aj.callerPublicKey)
256- let ar = extract(aj.payment)
257- let S = ar.amount
258- let J = R(S)
259- let as = height
260- let at = (ao * a)
261- let au = (an * a)
262- let L = if (!(isDefined(ar.assetId)))
263- then "WAVES"
264- else if ((ar.assetId == c))
265- then "BTC"
266- else if ((ar.assetId == d))
267- then "EUR"
268- else if ((ar.assetId == e))
269- then "USD"
270- else throw("AssetId is incorrect")
271- let av = w((aq + "_JobsCreated"))
272- let aw = K(L, J)
273- WriteSet([DataEntry((v + "_State"), f), DataEntry((v + "_Info"), ap), DataEntry((v + "_AuctionClient"), aq), DataEntry((v + "_AuctionStart"), as), DataEntry((v + "_AuctionDuration"), at), DataEntry((v + "_JobPerformance"), au), DataEntry((v + "_AssetName"), L), DataEntry((v + "_Price"), J), DataEntry((L + "_Freezed"), aw), DataEntry((aq + "_JobsCreated"), (av + 1))])
274- }
275-
276-
277-
278-@Callable(aj)
279-func makeBid (v,I) = {
280- let Q = toBase58String(aj.callerPublicKey)
281- let ax = height
282- let ay = T(v)
283- let aq = V(v)
284- let as = Y(v)
285- let az = aa(v)
286- let aA = ac(v)
287- let C = ae(v)
288- let J = ag(v)
289- let aB = B(C)
290- let aC = P(Q)
291- let aD = ((J * 3) / 100)
292- let aw = O(C, J)
293- let aE = H(I, J)
294- let aF = D(ax, as, az)
295- if (aF)
296- then if ((ay == f))
297- then ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((C + "_Freezed"), aw)]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), (J - aD), aB)]))
298- else if ((ay == g))
299- then {
300- let aG = {
301- let aH = getString(this, (v + "_LowestBidderPub"))
302- let z = aH
303- if ($isInstanceOf(z, "String"))
304- then {
305- let A = z
306- A
307- }
308- else throw("Auction lowest bidder was not found")
309- }
310- let aI = {
311- let aJ = getInteger(this, ((v + "_Bid_") + aG))
312- let z = aJ
313- if ($isInstanceOf(z, "Int"))
314- then {
315- let A = z
316- A
317- }
318- else throw("Auction lowest bid was not found")
319- }
320- let aK = ((J - aI) - aD)
321- ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), aG), DataEntry((v + "_Price"), aI)]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), aK, aB)]))
322- }
323- else throw("Incorrect auction state")
324- else if ((ay == f))
325- then WriteSet([DataEntry(((v + "_Bid_") + aC), aE), DataEntry((v + "_State"), g), DataEntry((v + "_LowestBidderPub"), Q)])
326- else if ((ay == g))
327- then {
328- let aL = {
329- let aM = getString(this, (v + "_LowestBidderPub"))
330- let z = aM
331- if ($isInstanceOf(z, "String"))
332- then {
333- let A = z
334- A
335- }
336- else throw("Auction lowest bidder was not found")
337- }
338- let aN = {
339- let aO = getInteger(this, ((v + "_Bid_") + aL))
340- let aP = {
341- let z = aO
342- if ($isInstanceOf(z, "Int"))
343- then {
344- let A = z
345- A
346- }
347- else throw("Auction lowest bid was not found")
348- }
349- if ((aP > aE))
350- then aC
351- else aL
352- }
353- WriteSet([DataEntry((v + "_LowestBidderPub"), aN), DataEntry(((v + "_Bid_") + aC), aE)])
354- }
355- else throw(((((("Incorrect jobId state. Now: " + ay) + ", must be: ") + f) + " or ") + g))
356- }
357-
358-
359-
360-@Callable(aj)
361-func chooseFreelancer (v,aQ) = {
362- let Q = extract(aj.callerPublicKey)
363- let ax = height
364- let ay = T(v)
365- let aq = V(v)
366- let as = Y(v)
367- let az = aa(v)
368- let C = ae(v)
369- let J = ag(v)
370- let aB = B(C)
371- let aR = w((toBase58String(aq) + "_JobsOnGoing"))
372- let aS = w((aQ + "_PendingEarnings"))
373- let aT = w((aQ + "_TotalEarnings"))
374- let aU = {
375- let aV = ((v + "_Bid_") + aQ)
376- let aW = getInteger(this, aV)
377- let z = aW
378- if ($isInstanceOf(z, "Int"))
379- then {
380- let A = z
381- A
382- }
383- else throw("Freelancer's bet was not found")
384- }
385- let aF = D(ax, as, az)
386- if ((Q == aq))
387- then if (aF)
388- then if ((ay == f))
389- then {
390- let aw = O(C, J)
391- let aD = ((J * 3) / 100)
392- ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((C + "_Freezed"), aw)]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), (J - aD), aB)]))
393- }
394- else if ((ay == g))
395- then {
396- let aG = {
397- let aH = getString(this, (v + "_LowestBidderPub"))
398- let z = aH
399- if ($isInstanceOf(z, "String"))
400- then {
401- let A = z
402- A
403- }
404- else throw("Auction lowest bidder was not found")
405- }
406- let aI = {
407- let aJ = getInteger(this, ((v + "_Bid_") + aG))
408- let z = aJ
409- if ($isInstanceOf(z, "Int"))
410- then {
411- let A = z
412- A
413- }
414- else throw("Auction lowest bid was not found")
415- }
416- let aK = (J - aI)
417- let aw = O(C, aK)
418- ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), aG), DataEntry((v + "_Price"), aI), DataEntry((C + "_Freezed"), aw), DataEntry((toBase58String(aq) + "_JobsOnGoing"), (aR + 1)), DataEntry((aQ + "_PendingEarnings"), (aS + aI)), DataEntry((aQ + "_TotalEarnings"), (aT + aI))]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), aK, aB)]))
419- }
420- else throw("Incorrect auction state")
421- else {
422- let aX = {
423- let aC = getInteger(this, ((v + "_Bid_") + aQ))
424- let z = aC
425- if ($isInstanceOf(z, "Int"))
426- then {
427- let A = z
428- aQ
429- }
430- else throw("Error: Incorrect freelancerPub")
431- }
432- let aI = {
433- let aY = getInteger(this, ((v + "_Bid_") + aQ))
434- let z = aY
435- if ($isInstanceOf(z, "Int"))
436- then {
437- let A = z
438- A
439- }
440- else throw("Auction lowest bidder was not found")
441- }
442- let aK = (J - aU)
443- let aw = O(C, aK)
444- ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), aX), DataEntry((v + "_Price"), aI), DataEntry((C + "_Freezed"), aw), DataEntry((toBase58String(aq) + "_JobsOnGoing"), (aR + 1)), DataEntry((aQ + "_PendingEarnings"), (aS + aI)), DataEntry((aQ + "_TotalEarnings"), (aT + aI))]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), (aK + 1), aB)]))
445- }
446- else throw("Only auction customer can choose a freelancer")
447- }
448-
449-
450-
451-@Callable(aj)
452-func increaseExecutionTime (v,aZ) = {
453- let ba = extract(aj.callerPublicKey)
454- let ay = T(v)
455- let aq = V(v)
456- let aA = ac(v)
457- let bb = {
458- let bc = (aZ * a)
459- if ((bc > aA))
460- then bc
461- else throw("New execution time must more than current execution time")
462- }
463- if ((ba == aq))
464- then if (if (if ((ay == f))
465- then true
466- else (ay == g))
467- then true
468- else (ay == i))
469- then WriteSet([DataEntry((v + "_JobPerformance"), bb)])
470- else throw("Incorrect state")
471- else throw("Only Client can increase execution time")
472- }
473-
474-
475-
476-@Callable(aj)
477-func cancelAuction (v) = {
478- let Q = extract(aj.callerPublicKey)
479- let ay = T(v)
480- let aq = V(v)
481- let C = ae(v)
482- let J = ag(v)
483- let aB = B(C)
484- let aD = ((J * 3) / 100)
485- let bd = (J - aD)
486- let aw = O(C, J)
487- if ((Q == aq))
488- then if ((ay == f))
489- then ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((C + "_Freezed"), aw)]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), bd, aB)]))
490- else throw("Auction can be canceled only by auction owner.")
491- else throw("Only Client can cancel auction")
492- }
493-
494-
495-
496-@Callable(aj)
497-func openDispute (v) = {
498- let ba = extract(aj.callerPublicKey)
499- let ay = T(v)
500- let aq = V(v)
501- let be = ai(v)
502- let bf = w((toBase58String(aq) + "_JobsInDispute"))
503- if (if ((ay == i))
504- then true
505- else (ay == j))
506- then if (if ((ba == aq))
507- then true
508- else (ba == be))
509- then WriteSet([DataEntry((v + "_State"), l), DataEntry((v + "_DisputeVotes"), 0), DataEntry((toBase58String(aq) + "_JobsInDispute"), (bf + 1))])
510- else throw("Only Client and Freelancer can open dispute")
511- else throw("Incorrect auction state for dispute opening")
512- }
513-
514-
515-
516-@Callable(aj)
517-func voteDispute (v,bg) = {
518- let Q = extract(aj.callerPublicKey)
519- let ay = T(v)
520- let aq = V(v)
521- let C = ae(v)
522- let J = ag(v)
523- let be = ai(v)
524- let bh = ((J * 3) / 100)
525- let aB = B(C)
526- let bf = w((toBase58String(aq) + "_JobsInDispute"))
527- let aS = w((toBase58String(be) + "_PendingEarnings"))
528- let bi = if (if (if (if (if ((Q == p))
529- then true
530- else (Q == q))
531- then true
532- else (Q == r))
533- then true
534- else (Q == s))
535- then true
536- else (Q == t))
537- then toBase58String(Q)
538- else throw("Only defined ambassadors can vote in disputes")
539- let bj = if (if ((bg == n))
540- then true
541- else (bg == o))
542- then bg
543- else throw(((("Vote is incorrect. Must be: " + n) + " or ") + o))
544- let bk = {
545- let bl = ((v + "_DiputeVote_") + bi)
546- let bm = getString(this, bl)
547- let z = bm
548- if ($isInstanceOf(z, "String"))
549- then {
550- let A = z
551- throw("User already voted")
552- }
553- else bi
554- }
555- let bn = {
556- let bo = getInteger(this, (v + "_DisputeVotes"))
557- let z = bo
558- if ($isInstanceOf(z, "Int"))
559- then {
560- let A = z
561- A
562- }
563- else throw("VotesNumber was not found")
564- }
565- if ((ay == l))
566- then if ((bn == 4))
567- then {
568- let bp = {
569- let bq = getString(this, ((v + "_DiputeVote_") + toBase58String(p)))
570- let br = getString(this, ((v + "_DiputeVote_") + toBase58String(q)))
571- let bs = getString(this, ((v + "_DiputeVote_") + toBase58String(r)))
572- let bt = getString(this, ((v + "_DiputeVote_") + toBase58String(s)))
573- let bu = getString(this, ((v + "_DiputeVote_") + toBase58String(t)))
574- let bv = if ((bq == n))
575- then 1
576- else 0
577- let bw = if ((br == n))
578- then 1
579- else 0
580- let bx = if ((bs == n))
581- then 1
582- else 0
583- let by = if ((bt == n))
584- then 1
585- else 0
586- let bz = if ((bu == n))
587- then 1
588- else 0
589- let bA = if ((bj == n))
590- then 1
591- else 0
592- let bB = (((((bv + bw) + bx) + by) + bz) + bA)
593- if ((bB > 2))
594- then aq
595- else be
596- }
597- let bC = if ((bp == aq))
598- then (J - bh)
599- else (J - (bh * 2))
600- let aw = O(C, J)
601- ScriptResult(WriteSet([DataEntry((v + "_DisputeVotes"), (bn + 1)), DataEntry((v + "_State"), m), DataEntry(((v + "_DiputeVote_") + bk), bj), DataEntry((C + "_Freezed"), aw), DataEntry((toBase58String(aq) + "_JobsInDispute"), (bf - 1)), DataEntry((toBase58String(be) + "_PendingEarnings"), (aS - J))]), TransferSet([ScriptTransfer(addressFromPublicKey(bp), bC, aB)]))
602- }
603- else WriteSet([DataEntry((v + "_DisputeVotes"), (bn + 1)), DataEntry(((v + "_DiputeVote_") + bk), bj)])
604- else throw(("Incorrect state. Must be: " + l))
605- }
606-
607-
608-
609-@Callable(aj)
610-func workHandOver (v) = {
611- let Q = extract(aj.callerPublicKey)
612- let ay = T(v)
613- let aq = V(v)
614- let as = Y(v)
615- let az = aa(v)
616- let aA = ac(v)
617- let be = ai(v)
618- let bf = w((toBase58String(aq) + "_JobsInDispute"))
619- let E = height
620- let bD = if ((Q == be))
621- then Q
622- else throw("Only a freelancer can indicate that the work is done")
623- let bE = ((E - as) > aA)
624- if ((ay == i))
625- then if (bE)
626- then WriteSet([DataEntry((v + "_State"), l), DataEntry((v + "_DisputeVotes"), "0"), DataEntry((toBase58String(aq) + "_JobInDispute"), (bf + 1))])
627- else WriteSet([DataEntry((v + "_State"), j)])
628- else throw("Auction state is incorrect")
629- }
630-
631-
632-
633-@Callable(aj)
634-func acceptWork (v) = {
635- let Q = extract(aj.callerPublicKey)
636- let ay = T(v)
637- let aq = V(v)
638- let as = Y(v)
639- let az = aa(v)
640- let C = ae(v)
641- let J = ag(v)
642- let be = ai(v)
643- let aR = w((toBase58String(aq) + "_JobsOnGoing"))
644- let aS = w((toBase58String(be) + "_PendingEarnings"))
645- let bF = w((toBase58String(be) + "_PaidEarnings"))
646- let aD = ((J * 3) / 100)
647- let bd = (J - aD)
648- let aB = B(C)
649- let aw = O(C, J)
650- let bG = {
651- let bH = getInteger(this, (toBase58String(be) + "_Rating"))
652- let bI = {
653- let z = bH
654- if ($isInstanceOf(z, "Int"))
655- then {
656- let A = z
657- A
658- }
659- else 0
660- }
661- (bI + 1)
662- }
663- if ((Q == aq))
664- then if ((ay == j))
665- then ScriptResult(WriteSet([DataEntry((v + "_State"), k), DataEntry((toBase58String(be) + "_Rating"), bG), DataEntry((C + "_Freezed"), aw), DataEntry((toBase58String(aq) + "_JobsOnGoing"), (aR - 1)), DataEntry((toBase58String(be) + "_PendingEarnings"), (aS - J)), DataEntry((toBase58String(be) + "_PaidEarnings"), (bF + J))]), TransferSet([ScriptTransfer(addressFromPublicKey(be), bd, aB)]))
666- else throw(("Incorrect state. Must be: " + j))
667- else throw("Only auction customer can use this function")
668- }
669-
670-
671-@Verifier(bJ)
672-func bK () = if (sigVerify(bJ.bodyBytes, bJ.proofs[0], bJ.senderPublicKey))
673- then {
674- let z = bJ
675- if ($isInstanceOf(z, "TransferTransaction"))
676- then {
677- let bL = z
678- true
679- }
680- else if ($isInstanceOf(z, "SetScriptTransaction"))
681- then {
682- let bM = z
683- true
684- }
685- else false
686- }
687- else false
688-
1+# no script

github/deemru/w8io/873ac7e 
104.93 ms