tx · 7WuRXBvzJwPisSr7kXETGkqtbnPX2LbPLEFiUGWQR1of

3N5mwuqT6dXpbqwT5VKDXzGJJ6c14rKqxS7:  -0.01400000 Waves

2019.09.05 21:47 [663113] smart account 3N5mwuqT6dXpbqwT5VKDXzGJJ6c14rKqxS7 > SELF 0.00000000 Waves

{ "type": 13, "id": "7WuRXBvzJwPisSr7kXETGkqtbnPX2LbPLEFiUGWQR1of", "fee": 1400000, "feeAssetId": null, "timestamp": 1567709237036, "version": 1, "sender": "3N5mwuqT6dXpbqwT5VKDXzGJJ6c14rKqxS7", "senderPublicKey": "Gxi9GKByT2CYHqPr6ZTohMDmHRGAgE8uBM6R4QXfvtxK", "proofs": [ "5S6TTk3XZ3RVGfJ8ehtPUeBbneoU9wHRaeFh2ampqztg6MWCMsRzTV2M6tpH4xnGhMxwprvD4FNqtgzziubZSH5" ], "script": "base64:AAIDAAAAAAAAAAAAAAAPAAAAAAdSVU5OSU5HAgAAAAdSVU5OSU5HAAAAAAZDTE9TRUQCAAAABkNMT1NFRAAAAAAIQ0FOQ0VMRUQCAAAACENBTkNFTEVEAAAAAAlEQVBQT1dORVICAAAAIzNQNE5aUjZja0U4YUxDN0JvZ3I1TlhCelNpNnAxM0RRZzY3AAAAAAxPUkFDTEVXQUxMRVQCAAAAIzNQUFRyVG8zQXpSNTZON0FyemJVM0JwcTl6WU1nY2YzOU1rAAAAAA1XTFRCVVJOV0FMTEVUAgAAACMzUE12d1pmVGNWSGVmaGlLUGJ0YlY5SFBBYVVGNUtFUmpnaQAAAAAOV0FWRVNLSVRXQUxMRVQCAAAAIzNQREVFTVJVM3RCSmZmYWc3c1JQbmp3RVE4R1pHaWtVV0JpAAAAABFEQVBQQVVUSE9STldBTExFVAIAAAAjM1AySHZVRWZQUE1wOVl4eFBmZHVEVEx2bTlDa0F6TG5URW8AAAAABVdBVkVTAgAAAAVXQVZFUwAAAAAETk9ORQIAAAAETk9ORQAAAAADRkVFAAAAAAAADbugAAAAAANXTFQBAAAAIKiYa37aOZz6l7d4FzL2+P2am5Uz+13GJWQozlXTer+HAQAAAAtnZXROdW1CeUtleQAAAAEAAAADa2V5BAAAAANudW0EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAFAAAAA251bQEAAAALZ2V0U3RyQnlLZXkAAAABAAAAA2tleQQAAAADc3RyBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBQAAAAROT05FBQAAAANzdHIBAAAAGmdldEV4dFdBVkVTVVNEQ3VycmVuY3lSYXRlAAAAAAQAAAANb3JhY2xlQWRkcmVzcwkBAAAAB2V4dHJhY3QAAAABCQEAAAARYWRkcmVzc0Zyb21TdHJpbmcAAAABBQAAAAxPUkFDTEVXQUxMRVQEAAAAFFdBVkVTVVNEQ3VycmVuY3lS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", "chainId": 84, "height": 663113, "spentComplexity": 0 } View: original | compacted Prev: 3XoVZ8MtkJErTNwkhHJuv77QgWTAsYo2sDNqZ8N5r75E Next: 4ZW4decPtHH24tmgt9KJDR8fdVnRYLZ77HdTbfhU6gnh Diff:
OldNewDifferences
77
88 let c = "CANCELED"
99
10-let d = "3N5mwuqT6dXpbqwT5VKDXzGJJ6c14rKqxS7"
10+let d = "3P4NZR6ckE8aLC7Bogr5NXBzSi6p13DQg67"
1111
12-let e = "3NAcoeWdUTWn8csXJPG47v1Fjtjcfqxb5tu"
12+let e = "3PPTrTo3AzR56N7ArzbU3Bpq9zYMgcf39Mk"
1313
14-let f = "3MpCbDDjkSrfS1XkPpm71iZj5DQ1RpBRRht"
14+let f = "3PMvwZfTcVHefhiKPbtbV9HPAaUF5KERjgi"
1515
16-let g = "3MqPpbWPRsZFoT9X74qWocU4BpypGEPhiCn"
16+let g = "3PDEEMRU3tBJffag7sRPnjwEQ8GZGikUWBi"
1717
18-let h = "3N1xQeQcsrY8Urm4RdrmL2dfoZAP4ULpH1S"
18+let h = "3P2HvUEfPPMp9YxxPfduDTLvm9CkAzLnTEo"
1919
2020 let i = "WAVES"
2121
2323
2424 let k = 900000
2525
26-let l = base58'7KAXNTswj6947a6cVpGhVrh1utWpLcjwf8AFpWCtuMT7'
26+let l = base58'CM8J4Z9HW3MdKgTxrpf3WYauXfjdu1zZKg19AGTicEYe'
2727
2828 func m (n) = {
2929 let o = {
5454
5555
5656 func t () = {
57- let u = m("contest_currentnumber")
58- r((("contest_" + toString(u)) + "_status"))
59- }
60-
61-
62-func v (w) = {
63- let u = m("contest_currentnumber")
64- r((((("bet_" + toString(u)) + "_") + toString(w)) + "_owner"))
65- }
66-
67-
68-func x () = {
69- let y = extract(addressFromString(e))
70- let z = {
71- let p = getInteger(y, "waves_usd_2")
57+ let u = extract(addressFromString(e))
58+ let v = {
59+ let p = getInteger(u, "waves_usd_2")
7260 if ($isInstanceOf(p, "Int"))
7361 then {
7462 let q = p
7664 }
7765 else 0
7866 }
79- z
67+ v
8068 }
8169
8270
83-@Callable(A)
84-func setContestStatus (B,C) = {
85- let D = toBase58String(A.caller.bytes)
86- if ((D != d))
71+@Callable(w)
72+func setContestStatus (x,y) = {
73+ let z = toBase58String(w.caller.bytes)
74+ if ((z != d))
8775 then throw("Only dAPP Owner can set Contest Status.")
88- else if (if ((C != c))
89- then (C != b)
76+ else if (if ((y != c))
77+ then (y != b)
9078 else false)
91- then throw(("Invalid status: " + C))
92- else WriteSet([DataEntry((("contest_" + toString(B)) + "_status"), C)])
79+ then throw(("Invalid status: " + y))
80+ else WriteSet([DataEntry((("contest_" + toString(x)) + "_status"), y)])
9381 }
9482
9583
9684
97-@Callable(A)
85+@Callable(w)
9886 func setContestConfiguration () = {
99- let D = toBase58String(A.caller.bytes)
100- let u = m("contest_currentnumber")
101- let E = r((("contest_" + toString(u)) + "_status"))
102- let F = (u + 1)
103- let G = wavesBalance(this)
104- let H = (((G / 25) / 5000000) * 100000)
105- if ((D != d))
106- then throw(((("Only dAPP Owner can Configure Contest. Caller account: " + D) + " dapp owner: ") + d))
107- else if ((E == a))
108- then throw(("You cannot configure a new Contest while old Contest status is: " + E))
109- else if ((100000000 > G))
87+ let z = toBase58String(w.caller.bytes)
88+ let A = m("contest_currentnumber")
89+ let B = r((("contest_" + toString(A)) + "_status"))
90+ let C = (A + 1)
91+ let D = wavesBalance(this)
92+ let E = (((D / 25) / 5000000) * 100000)
93+ if ((z != d))
94+ then throw(((("Only dAPP Owner can Configure Contest. Caller account: " + z) + " dapp owner: ") + d))
95+ else if ((B == a))
96+ then throw(("You cannot configure a new Contest while old Contest status is: " + B))
97+ else if ((100000000 > D))
11098 then throw("Balance too low, cannot start a contest.")
11199 else {
112- let I = (height + (6 * 1440))
113- WriteSet([DataEntry("contest_currentnumber", F), DataEntry((("contest_" + toString(F)) + "_finishheight"), I), DataEntry((("contest_" + toString(F)) + "_status"), a), DataEntry((("contest_" + toString(F)) + "_betcounter"), 0), DataEntry((("contest_" + toString(F)) + "_betcost"), H)])
100+ let F = (height + (6 * 1440))
101+ WriteSet([DataEntry("contest_currentnumber", C), DataEntry((("contest_" + toString(C)) + "_finishheight"), F), DataEntry((("contest_" + toString(C)) + "_status"), a), DataEntry((("contest_" + toString(C)) + "_betcounter"), 0), DataEntry((("contest_" + toString(C)) + "_betcost"), E)])
114102 }
115103 }
116104
117105
118106
119-@Callable(A)
120-func bet (J) = {
121- let D = toBase58String(A.caller.bytes)
122- let K = extract(A.payment)
123- let u = m("contest_currentnumber")
124- let L = m((("contest_" + toString(u)) + "_startheight"))
125- let I = m((("contest_" + toString(u)) + "_finishheight"))
126- let E = r((("contest_" + toString(u)) + "_status"))
127- let M = m((("contest_" + toString(u)) + "_betcost"))
128- let C = r((("contest_" + toString(u)) + "_status"))
129- let N = r(((("bet_" + toString(u)) + "_") + toString(J)))
130- if ((height > (I - (2 * 1440))))
107+@Callable(w)
108+func bet (G) = {
109+ let z = toBase58String(w.caller.bytes)
110+ let H = extract(w.payment)
111+ let A = m("contest_currentnumber")
112+ let I = m((("contest_" + toString(A)) + "_startheight"))
113+ let F = m((("contest_" + toString(A)) + "_finishheight"))
114+ let B = r((("contest_" + toString(A)) + "_status"))
115+ let J = m((("contest_" + toString(A)) + "_betcost"))
116+ let y = r((("contest_" + toString(A)) + "_status"))
117+ let K = m((((("contest_" + toString(A)) + "_") + z) + "_bets"))
118+ let L = r(((("bet_" + toString(A)) + "_") + toString(G)))
119+ if ((height > (F - (2 * 1440))))
131120 then throw("You cannot bet anymore at this height.")
132- else if ((E != a))
133- then throw(("Invalid status: you cannot bet now, contest status is: " + E))
134- else if (if ((K.assetId != l))
121+ else if ((B != a))
122+ then throw(("Invalid status: you cannot bet now, contest status is: " + B))
123+ else if (if ((H.assetId != l))
135124 then true
136- else (K.amount != M))
137- then throw(((("You must pay at least: " + toString(M)) + " WLT to bet. You paid: ") + toString(K.amount)))
138- else if (if ((N != j))
139- then (N != D)
125+ else (H.amount != J))
126+ then throw(((("You must pay at least: " + toString(J)) + " WLT to bet. You paid: ") + toString(H.amount)))
127+ else if (if ((L != j))
128+ then (L != z)
140129 else false)
141- then throw((("Another user: " + N) + " did bet already on this rate."))
142- else WriteSet([DataEntry(((("bet_" + toString(u)) + "_") + toString(J)), D)])
130+ then throw((("Another user: " + L) + " did bet already on this rate."))
131+ else if ((K > 5))
132+ then throw("You can bet at most on 5 rates.")
133+ else WriteSet([DataEntry(((("bet_" + toString(A)) + "_") + toString(G)), z), DataEntry((((("contest_" + toString(A)) + "_") + z) + "_bets"), (K + 1))])
143134 }
144135
145136
146137
147-@Callable(A)
138+@Callable(w)
148139 func closecontest () = {
149- let O = x()
150- let u = m("contest_currentnumber")
151- let P = r(((("bet_" + toString(u)) + "_") + toString(O)))
152- let I = m((("contest_" + toString(u)) + "_finishheight"))
153- let D = toBase58String(A.caller.bytes)
154- let G = wavesBalance(this)
155- let E = r((("contest_" + toString(u)) + "_status"))
156- let Q = ((assetBalance(this, l) * 85) / 100)
157- if ((D != d))
140+ let M = t()
141+ let A = m("contest_currentnumber")
142+ let N = r(((("bet_" + toString(A)) + "_") + toString(M)))
143+ let F = m((("contest_" + toString(A)) + "_finishheight"))
144+ let z = toBase58String(w.caller.bytes)
145+ let D = wavesBalance(this)
146+ let B = r((("contest_" + toString(A)) + "_status"))
147+ let O = ((assetBalance(this, l) * 85) / 100)
148+ if ((z != d))
158149 then throw("Only dAPP Owner can Close Contest.")
159- else if (if ((I > height))
160- then (D != d)
161- else false)
162- then throw(((("account: " + D) + ": Cannot close the contest before height:") + toString(I)))
163- else if ((E != a))
164- then throw(("Cannot close a contest in status: " + E))
165- else if ((P != j))
150+ else if ((F > height))
151+ then throw(((("account: " + z) + ": Cannot close the contest before height:") + toString(F)))
152+ else if ((B != a))
153+ then throw(("Cannot close a contest in status: " + B))
154+ else if ((N != j))
166155 then {
167- let R = ((assetBalance(this, l) * 5) / 100)
168- let S = ((wavesBalance(this) * 99) / 100)
169- let T = TransferSet([ScriptTransfer(extract(addressFromString(P)), S, unit), ScriptTransfer(extract(addressFromString(e)), R, l), ScriptTransfer(extract(addressFromString(g)), R, l), ScriptTransfer(extract(addressFromString(h)), R, l), ScriptTransfer(extract(addressFromString(f)), Q, l)])
170- ScriptResult(WriteSet([DataEntry((("contest_" + toString(u)) + "_status"), b), DataEntry((("contest_" + toString(u)) + "_winner"), P), DataEntry((("contest_" + toString(u)) + "_currencyrate"), O), DataEntry((("contest_" + toString(u)) + "_prize"), S), DataEntry((("contest_" + toString(u)) + "_wltburned"), Q)]), T)
156+ let P = ((assetBalance(this, l) * 5) / 100)
157+ let Q = ((wavesBalance(this) * 99) / 100)
158+ let R = TransferSet([ScriptTransfer(extract(addressFromString(N)), Q, unit), ScriptTransfer(extract(addressFromString(e)), P, l), ScriptTransfer(extract(addressFromString(g)), P, l), ScriptTransfer(extract(addressFromString(h)), P, l), ScriptTransfer(extract(addressFromString(f)), O, l)])
159+ ScriptResult(WriteSet([DataEntry((("contest_" + toString(A)) + "_status"), b), DataEntry((("contest_" + toString(A)) + "_winner"), N), DataEntry((("contest_" + toString(A)) + "_currencyrate"), M), DataEntry((("contest_" + toString(A)) + "_prize"), Q), DataEntry((("contest_" + toString(A)) + "_wltburned"), O)]), R)
171160 }
172- else WriteSet([DataEntry((("contest_" + toString(u)) + "_status"), b), DataEntry((("contest_" + toString(u)) + "_winner"), P), DataEntry((("contest_" + toString(u)) + "_currencyrate"), O), DataEntry((("contest_" + toString(u)) + "_prize"), 0), DataEntry((("contest_" + toString(u)) + "_wltburned"), Q)])
161+ else WriteSet([DataEntry((("contest_" + toString(A)) + "_status"), b), DataEntry((("contest_" + toString(A)) + "_winner"), N), DataEntry((("contest_" + toString(A)) + "_currencyrate"), M), DataEntry((("contest_" + toString(A)) + "_prize"), 0), DataEntry((("contest_" + toString(A)) + "_wltburned"), O)])
173162 }
174163
175164
176-@Verifier(U)
177-func V () = {
178- let p = U
165+@Verifier(S)
166+func T () = {
167+ let p = S
179168 if (if ($isInstanceOf(p, "SetScriptTransaction"))
180169 then true
181170 else $isInstanceOf(p, "DataTransaction"))
182- then sigVerify(U.bodyBytes, U.proofs[0], U.senderPublicKey)
171+ then sigVerify(S.bodyBytes, S.proofs[0], S.senderPublicKey)
183172 else if ($isInstanceOf(p, "InvokeScriptTransaction"))
184173 then true
185174 else true
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "RUNNING"
55
66 let b = "CLOSED"
77
88 let c = "CANCELED"
99
10-let d = "3N5mwuqT6dXpbqwT5VKDXzGJJ6c14rKqxS7"
10+let d = "3P4NZR6ckE8aLC7Bogr5NXBzSi6p13DQg67"
1111
12-let e = "3NAcoeWdUTWn8csXJPG47v1Fjtjcfqxb5tu"
12+let e = "3PPTrTo3AzR56N7ArzbU3Bpq9zYMgcf39Mk"
1313
14-let f = "3MpCbDDjkSrfS1XkPpm71iZj5DQ1RpBRRht"
14+let f = "3PMvwZfTcVHefhiKPbtbV9HPAaUF5KERjgi"
1515
16-let g = "3MqPpbWPRsZFoT9X74qWocU4BpypGEPhiCn"
16+let g = "3PDEEMRU3tBJffag7sRPnjwEQ8GZGikUWBi"
1717
18-let h = "3N1xQeQcsrY8Urm4RdrmL2dfoZAP4ULpH1S"
18+let h = "3P2HvUEfPPMp9YxxPfduDTLvm9CkAzLnTEo"
1919
2020 let i = "WAVES"
2121
2222 let j = "NONE"
2323
2424 let k = 900000
2525
26-let l = base58'7KAXNTswj6947a6cVpGhVrh1utWpLcjwf8AFpWCtuMT7'
26+let l = base58'CM8J4Z9HW3MdKgTxrpf3WYauXfjdu1zZKg19AGTicEYe'
2727
2828 func m (n) = {
2929 let o = {
3030 let p = getInteger(this, n)
3131 if ($isInstanceOf(p, "Int"))
3232 then {
3333 let q = p
3434 q
3535 }
3636 else 0
3737 }
3838 o
3939 }
4040
4141
4242 func r (n) = {
4343 let s = {
4444 let p = getString(this, n)
4545 if ($isInstanceOf(p, "String"))
4646 then {
4747 let q = p
4848 q
4949 }
5050 else j
5151 }
5252 s
5353 }
5454
5555
5656 func t () = {
57- let u = m("contest_currentnumber")
58- r((("contest_" + toString(u)) + "_status"))
59- }
60-
61-
62-func v (w) = {
63- let u = m("contest_currentnumber")
64- r((((("bet_" + toString(u)) + "_") + toString(w)) + "_owner"))
65- }
66-
67-
68-func x () = {
69- let y = extract(addressFromString(e))
70- let z = {
71- let p = getInteger(y, "waves_usd_2")
57+ let u = extract(addressFromString(e))
58+ let v = {
59+ let p = getInteger(u, "waves_usd_2")
7260 if ($isInstanceOf(p, "Int"))
7361 then {
7462 let q = p
7563 q
7664 }
7765 else 0
7866 }
79- z
67+ v
8068 }
8169
8270
83-@Callable(A)
84-func setContestStatus (B,C) = {
85- let D = toBase58String(A.caller.bytes)
86- if ((D != d))
71+@Callable(w)
72+func setContestStatus (x,y) = {
73+ let z = toBase58String(w.caller.bytes)
74+ if ((z != d))
8775 then throw("Only dAPP Owner can set Contest Status.")
88- else if (if ((C != c))
89- then (C != b)
76+ else if (if ((y != c))
77+ then (y != b)
9078 else false)
91- then throw(("Invalid status: " + C))
92- else WriteSet([DataEntry((("contest_" + toString(B)) + "_status"), C)])
79+ then throw(("Invalid status: " + y))
80+ else WriteSet([DataEntry((("contest_" + toString(x)) + "_status"), y)])
9381 }
9482
9583
9684
97-@Callable(A)
85+@Callable(w)
9886 func setContestConfiguration () = {
99- let D = toBase58String(A.caller.bytes)
100- let u = m("contest_currentnumber")
101- let E = r((("contest_" + toString(u)) + "_status"))
102- let F = (u + 1)
103- let G = wavesBalance(this)
104- let H = (((G / 25) / 5000000) * 100000)
105- if ((D != d))
106- then throw(((("Only dAPP Owner can Configure Contest. Caller account: " + D) + " dapp owner: ") + d))
107- else if ((E == a))
108- then throw(("You cannot configure a new Contest while old Contest status is: " + E))
109- else if ((100000000 > G))
87+ let z = toBase58String(w.caller.bytes)
88+ let A = m("contest_currentnumber")
89+ let B = r((("contest_" + toString(A)) + "_status"))
90+ let C = (A + 1)
91+ let D = wavesBalance(this)
92+ let E = (((D / 25) / 5000000) * 100000)
93+ if ((z != d))
94+ then throw(((("Only dAPP Owner can Configure Contest. Caller account: " + z) + " dapp owner: ") + d))
95+ else if ((B == a))
96+ then throw(("You cannot configure a new Contest while old Contest status is: " + B))
97+ else if ((100000000 > D))
11098 then throw("Balance too low, cannot start a contest.")
11199 else {
112- let I = (height + (6 * 1440))
113- WriteSet([DataEntry("contest_currentnumber", F), DataEntry((("contest_" + toString(F)) + "_finishheight"), I), DataEntry((("contest_" + toString(F)) + "_status"), a), DataEntry((("contest_" + toString(F)) + "_betcounter"), 0), DataEntry((("contest_" + toString(F)) + "_betcost"), H)])
100+ let F = (height + (6 * 1440))
101+ WriteSet([DataEntry("contest_currentnumber", C), DataEntry((("contest_" + toString(C)) + "_finishheight"), F), DataEntry((("contest_" + toString(C)) + "_status"), a), DataEntry((("contest_" + toString(C)) + "_betcounter"), 0), DataEntry((("contest_" + toString(C)) + "_betcost"), E)])
114102 }
115103 }
116104
117105
118106
119-@Callable(A)
120-func bet (J) = {
121- let D = toBase58String(A.caller.bytes)
122- let K = extract(A.payment)
123- let u = m("contest_currentnumber")
124- let L = m((("contest_" + toString(u)) + "_startheight"))
125- let I = m((("contest_" + toString(u)) + "_finishheight"))
126- let E = r((("contest_" + toString(u)) + "_status"))
127- let M = m((("contest_" + toString(u)) + "_betcost"))
128- let C = r((("contest_" + toString(u)) + "_status"))
129- let N = r(((("bet_" + toString(u)) + "_") + toString(J)))
130- if ((height > (I - (2 * 1440))))
107+@Callable(w)
108+func bet (G) = {
109+ let z = toBase58String(w.caller.bytes)
110+ let H = extract(w.payment)
111+ let A = m("contest_currentnumber")
112+ let I = m((("contest_" + toString(A)) + "_startheight"))
113+ let F = m((("contest_" + toString(A)) + "_finishheight"))
114+ let B = r((("contest_" + toString(A)) + "_status"))
115+ let J = m((("contest_" + toString(A)) + "_betcost"))
116+ let y = r((("contest_" + toString(A)) + "_status"))
117+ let K = m((((("contest_" + toString(A)) + "_") + z) + "_bets"))
118+ let L = r(((("bet_" + toString(A)) + "_") + toString(G)))
119+ if ((height > (F - (2 * 1440))))
131120 then throw("You cannot bet anymore at this height.")
132- else if ((E != a))
133- then throw(("Invalid status: you cannot bet now, contest status is: " + E))
134- else if (if ((K.assetId != l))
121+ else if ((B != a))
122+ then throw(("Invalid status: you cannot bet now, contest status is: " + B))
123+ else if (if ((H.assetId != l))
135124 then true
136- else (K.amount != M))
137- then throw(((("You must pay at least: " + toString(M)) + " WLT to bet. You paid: ") + toString(K.amount)))
138- else if (if ((N != j))
139- then (N != D)
125+ else (H.amount != J))
126+ then throw(((("You must pay at least: " + toString(J)) + " WLT to bet. You paid: ") + toString(H.amount)))
127+ else if (if ((L != j))
128+ then (L != z)
140129 else false)
141- then throw((("Another user: " + N) + " did bet already on this rate."))
142- else WriteSet([DataEntry(((("bet_" + toString(u)) + "_") + toString(J)), D)])
130+ then throw((("Another user: " + L) + " did bet already on this rate."))
131+ else if ((K > 5))
132+ then throw("You can bet at most on 5 rates.")
133+ else WriteSet([DataEntry(((("bet_" + toString(A)) + "_") + toString(G)), z), DataEntry((((("contest_" + toString(A)) + "_") + z) + "_bets"), (K + 1))])
143134 }
144135
145136
146137
147-@Callable(A)
138+@Callable(w)
148139 func closecontest () = {
149- let O = x()
150- let u = m("contest_currentnumber")
151- let P = r(((("bet_" + toString(u)) + "_") + toString(O)))
152- let I = m((("contest_" + toString(u)) + "_finishheight"))
153- let D = toBase58String(A.caller.bytes)
154- let G = wavesBalance(this)
155- let E = r((("contest_" + toString(u)) + "_status"))
156- let Q = ((assetBalance(this, l) * 85) / 100)
157- if ((D != d))
140+ let M = t()
141+ let A = m("contest_currentnumber")
142+ let N = r(((("bet_" + toString(A)) + "_") + toString(M)))
143+ let F = m((("contest_" + toString(A)) + "_finishheight"))
144+ let z = toBase58String(w.caller.bytes)
145+ let D = wavesBalance(this)
146+ let B = r((("contest_" + toString(A)) + "_status"))
147+ let O = ((assetBalance(this, l) * 85) / 100)
148+ if ((z != d))
158149 then throw("Only dAPP Owner can Close Contest.")
159- else if (if ((I > height))
160- then (D != d)
161- else false)
162- then throw(((("account: " + D) + ": Cannot close the contest before height:") + toString(I)))
163- else if ((E != a))
164- then throw(("Cannot close a contest in status: " + E))
165- else if ((P != j))
150+ else if ((F > height))
151+ then throw(((("account: " + z) + ": Cannot close the contest before height:") + toString(F)))
152+ else if ((B != a))
153+ then throw(("Cannot close a contest in status: " + B))
154+ else if ((N != j))
166155 then {
167- let R = ((assetBalance(this, l) * 5) / 100)
168- let S = ((wavesBalance(this) * 99) / 100)
169- let T = TransferSet([ScriptTransfer(extract(addressFromString(P)), S, unit), ScriptTransfer(extract(addressFromString(e)), R, l), ScriptTransfer(extract(addressFromString(g)), R, l), ScriptTransfer(extract(addressFromString(h)), R, l), ScriptTransfer(extract(addressFromString(f)), Q, l)])
170- ScriptResult(WriteSet([DataEntry((("contest_" + toString(u)) + "_status"), b), DataEntry((("contest_" + toString(u)) + "_winner"), P), DataEntry((("contest_" + toString(u)) + "_currencyrate"), O), DataEntry((("contest_" + toString(u)) + "_prize"), S), DataEntry((("contest_" + toString(u)) + "_wltburned"), Q)]), T)
156+ let P = ((assetBalance(this, l) * 5) / 100)
157+ let Q = ((wavesBalance(this) * 99) / 100)
158+ let R = TransferSet([ScriptTransfer(extract(addressFromString(N)), Q, unit), ScriptTransfer(extract(addressFromString(e)), P, l), ScriptTransfer(extract(addressFromString(g)), P, l), ScriptTransfer(extract(addressFromString(h)), P, l), ScriptTransfer(extract(addressFromString(f)), O, l)])
159+ ScriptResult(WriteSet([DataEntry((("contest_" + toString(A)) + "_status"), b), DataEntry((("contest_" + toString(A)) + "_winner"), N), DataEntry((("contest_" + toString(A)) + "_currencyrate"), M), DataEntry((("contest_" + toString(A)) + "_prize"), Q), DataEntry((("contest_" + toString(A)) + "_wltburned"), O)]), R)
171160 }
172- else WriteSet([DataEntry((("contest_" + toString(u)) + "_status"), b), DataEntry((("contest_" + toString(u)) + "_winner"), P), DataEntry((("contest_" + toString(u)) + "_currencyrate"), O), DataEntry((("contest_" + toString(u)) + "_prize"), 0), DataEntry((("contest_" + toString(u)) + "_wltburned"), Q)])
161+ else WriteSet([DataEntry((("contest_" + toString(A)) + "_status"), b), DataEntry((("contest_" + toString(A)) + "_winner"), N), DataEntry((("contest_" + toString(A)) + "_currencyrate"), M), DataEntry((("contest_" + toString(A)) + "_prize"), 0), DataEntry((("contest_" + toString(A)) + "_wltburned"), O)])
173162 }
174163
175164
176-@Verifier(U)
177-func V () = {
178- let p = U
165+@Verifier(S)
166+func T () = {
167+ let p = S
179168 if (if ($isInstanceOf(p, "SetScriptTransaction"))
180169 then true
181170 else $isInstanceOf(p, "DataTransaction"))
182- then sigVerify(U.bodyBytes, U.proofs[0], U.senderPublicKey)
171+ then sigVerify(S.bodyBytes, S.proofs[0], S.senderPublicKey)
183172 else if ($isInstanceOf(p, "InvokeScriptTransaction"))
184173 then true
185174 else true
186175 }
187176

github/deemru/w8io/169f3d6 
85.06 ms