tx · FiuE8vuQG88rJKD28mPPhkbjtk2aZ2a2yPLz36wNemKu

3N7Wiiso7vo69pqWfLtpzT3tbzMUGahqpgo:  -0.01400000 Waves

2019.08.19 16:21 [638084] smart account 3N7Wiiso7vo69pqWfLtpzT3tbzMUGahqpgo > SELF 0.00000000 Waves

{ "type": 13, "id": "FiuE8vuQG88rJKD28mPPhkbjtk2aZ2a2yPLz36wNemKu", "fee": 1400000, "feeAssetId": null, "timestamp": 1566220871634, "version": 1, "sender": "3N7Wiiso7vo69pqWfLtpzT3tbzMUGahqpgo", "senderPublicKey": "5GQSFwNMkJFTT3FeLT3KENqoSr42yiJP3Av5qAYq1F7f", "proofs": [ "4SLpJzcHMocMcneoYGxce1ne5tBNNeX6pFWiyQjz64PLS4pGicqovk5uVeEXG79H32SaNNqWgrJumfQBKZ2QHkBn" ], "script": "base64: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c0JldElkBQAAAANuaWwAAAABaQEAAAAMY2xvc2Vjb250ZXN0AAAAAAQAAAAMY3VycmVuY3lSYXRlCQEAAAAaZ2V0RXh0V0FWRVNVU0RDdXJyZW5jeVJhdGUAAAAABAAAABFjb250ZXN0Q3Vyck51bWJlcgkBAAAAC2dldE51bUJ5S2V5AAAAAQIAAAAVY29udGVzdF9jdXJyZW50bnVtYmVyBAAAAA93aW5uaW5nQmV0QmV0SWQJAQAAAAtnZXROdW1CeUtleQAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABGJldF8JAAGkAAAAAQUAAAARY29udGVzdEN1cnJOdW1iZXICAAAAAV8JAAGkAAAAAQUAAAAMY3VycmVuY3lSYXRlBAAAABF3aW5uaW5nQmV0QWNjb3VudAkBAAAADWdldEJldEFjY291bnQAAAABBQAAAA93aW5uaW5nQmV0QmV0SWQEAAAAE2NvbnRlc3RGaW5pc2hIZWlnaHQJAQAAAAtnZXROdW1CeUtleQAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAhjb250ZXN0XwkAAaQAAAABBQAAABFjb250ZXN0Q3Vyck51bWJlcgIAAAANX2ZpbmlzaGhlaWdodAQAAAAHYWNjb3VudAkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAdiYWxhbmNlCQEAAAAMd2F2ZXNCYWxhbmNlAAAAAQUAAAAEdGhpcwQAAAARY29udGVzdEN1cnJTdGF0dXMJAQAAAAtnZXRTdHJCeUtleQAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAhjb250ZXN0XwkAAaQAAAABBQAAABFjb250ZXN0Q3Vyck51bWJlcgIAAAAHX3N0YXR1cwQAAAAPd3JpdGVTdGF0aXN0aWNzCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIY29udGVzdF8JAAGkAAAAAQUAAAARY29udGVzdEN1cnJOdW1iZXICAAAAB19zdGF0dXMFAAAABkNMT1NFRAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAACGNvbnRlc3RfCQABpAAAAAEF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", "chainId": 84, "height": 638084, "spentComplexity": 0 } View: original | compacted Prev: SajmKTGnsFPfVJtPMkrQtMFRQgUGTwFp4H8VW3wXoX7 Next: 3vg2DMZDQ2qio3TDfMBZzpRrjubkMLsLvNUFZaqqjPap Diff:
OldNewDifferences
9696 let s = k("contest_currentnumber")
9797 let C = p((("contest_" + toString(s)) + "_status"))
9898 let D = (s + 1)
99+ let E = (((wavesBalance(this) * 99) / 100) / 25)
99100 if ((B != c))
100101 then throw(((("Only dAPP Owner can Configure Contest. Caller account: " + B) + " dapp owner: ") + c))
101102 else if ((C == a))
102103 then throw(("You cannot configure a new Contest while old Contest status is: " + C))
103104 else {
104- let E = (height + (7 * 1440))
105- WriteSet([DataEntry("contest_currentnumber", D), DataEntry((("contest_" + toString(D)) + "_finishheight"), E), DataEntry((("contest_" + toString(D)) + "_status"), a), DataEntry((("contest_" + toString(D)) + "_votecounter"), 0)])
105+ let F = (height + (7 * 1440))
106+ WriteSet([DataEntry("contest_currentnumber", D), DataEntry((("contest_" + toString(D)) + "_finishheight"), F), DataEntry((("contest_" + toString(D)) + "_status"), a), DataEntry((("contest_" + toString(D)) + "_betcounter"), 0), DataEntry((("contest_" + toString(D)) + "_betcost"), 0)])
106107 }
107108 }
108109
109110
110111
111112 @Callable(y)
112-func bet (F) = {
113+func bet (G) = {
113114 let B = toBase58String(y.caller.bytes)
114- let G = extract(y.payment)
115+ let H = extract(y.payment)
115116 let s = k("contest_currentnumber")
116- let H = k((("contest_" + toString(s)) + "_startheight"))
117- let E = k((("contest_" + toString(s)) + "_finishheight"))
118- let I = k((("contest_" + toString(s)) + "_votecounter"))
117+ let I = k((("contest_" + toString(s)) + "_startheight"))
118+ let F = k((("contest_" + toString(s)) + "_finishheight"))
119+ let J = k((("contest_" + toString(s)) + "_betcounter"))
119120 let C = p((("contest_" + toString(s)) + "_status"))
120- let J = (I + 1)
121+ let K = (J + 1)
121122 let A = p((("contest_" + toString(s)) + "_status"))
122- let K = k(((("bet_" + toString(s)) + "_") + toString(F)))
123- let L = t(K)
124- if ((height > (E - (2 * 1440))))
123+ let L = k(((("bet_" + toString(s)) + "_") + toString(G)))
124+ let M = t(L)
125+ if ((height > (F - (2 * 1440))))
125126 then throw("You cannot bet anymore at this height.")
126127 else if ((C != a))
127128 then throw(("Invalid status: you cannot bet now, contest status is: " + C))
128- else if (if ((G.assetId != j))
129+ else if (if ((H.assetId != j))
129130 then true
130- else (G.amount != 500000))
131- then throw(("You must pay 5 WLT to bet. You paid: " + toString(G.amount)))
132- else if (if ((L != h))
133- then (L != B)
131+ else (H.amount != 500000))
132+ then throw(("You must pay 5 WLT to bet. You paid: " + toString(H.amount)))
133+ else if (if ((M != h))
134+ then (M != B)
134135 else false)
135- then throw(((((("Another user: " + L) + " did bet already on rate: ") + toString(F)) + " betID:") + toString(K)))
136- else WriteSet([DataEntry((((("bet_" + toString(s)) + "_") + toString(J)) + "_owner"), B), DataEntry(((("bet_" + toString(s)) + "_") + toString(F)), J), DataEntry((("contest_" + toString(s)) + "_votecounter"), J)])
136+ then throw(((((("Another user: " + M) + " did bet already on rate: ") + toString(G)) + " betID:") + toString(L)))
137+ else WriteSet([DataEntry((((("bet_" + toString(s)) + "_") + toString(K)) + "_owner"), B), DataEntry(((("bet_" + toString(s)) + "_") + toString(G)), K), DataEntry((("contest_" + toString(s)) + "_betcounter"), K)])
137138 }
138139
139140
140141
141142 @Callable(y)
142143 func closecontest () = {
143- let M = v()
144+ let N = v()
144145 let s = k("contest_currentnumber")
145- let N = k(((("bet_" + toString(s)) + "_") + toString(M)))
146- let O = t(N)
147- let E = k((("contest_" + toString(s)) + "_finishheight"))
146+ let O = k(((("bet_" + toString(s)) + "_") + toString(N)))
147+ let P = t(O)
148+ let F = k((("contest_" + toString(s)) + "_finishheight"))
148149 let B = toBase58String(y.caller.bytes)
149- let P = wavesBalance(this)
150+ let Q = wavesBalance(this)
150151 let C = p((("contest_" + toString(s)) + "_status"))
151- let Q = WriteSet([DataEntry((("contest_" + toString(s)) + "_status"), b), DataEntry((("contest_" + toString(s)) + "_winner"), O), DataEntry((("contest_" + toString(s)) + "_currencyrate"), M), DataEntry((("contest_" + toString(s)) + "_height"), height)])
152- if (if ((E > height))
152+ let R = WriteSet([DataEntry((("contest_" + toString(s)) + "_status"), b), DataEntry((("contest_" + toString(s)) + "_winner"), P), DataEntry((("contest_" + toString(s)) + "_currencyrate"), N), DataEntry((("contest_" + toString(s)) + "_height"), height)])
153+ if (if ((F > height))
153154 then (B != c)
154155 else false)
155- then throw(((("account: " + B) + ": Cannot close the contest before height:") + toString(E)))
156+ then throw(((("account: " + B) + ": Cannot close the contest before height:") + toString(F)))
156157 else if ((C != a))
157158 then throw(("Cannot close a contest in status: " + C))
158- else if ((O != h))
159+ else if ((P != h))
159160 then {
160- let R = ((assetBalance(this, j) * 5) / 100)
161- let S = ((assetBalance(this, j) * 90) / 100)
162- let T = TransferSet([ScriptTransfer(extract(addressFromString(O)), (((wavesBalance(this) * 99) / 100) - i), unit), ScriptTransfer(extract(addressFromString(d)), R, j), ScriptTransfer(extract(addressFromString(f)), R, j), ScriptTransfer(extract(addressFromString(e)), S, j)])
163- ScriptResult(WriteSet([DataEntry((("contest_" + toString(s)) + "_status"), b), DataEntry((("contest_" + toString(s)) + "_winner"), O), DataEntry((("contest_" + toString(s)) + "_currencyrate"), M), DataEntry((("contest_" + toString(s)) + "_height"), height)]), T)
161+ let S = ((assetBalance(this, j) * 5) / 100)
162+ let T = ((assetBalance(this, j) * 90) / 100)
163+ let U = TransferSet([ScriptTransfer(extract(addressFromString(P)), (((wavesBalance(this) * 99) / 100) - i), unit), ScriptTransfer(extract(addressFromString(d)), S, j), ScriptTransfer(extract(addressFromString(f)), S, j), ScriptTransfer(extract(addressFromString(e)), T, j)])
164+ ScriptResult(WriteSet([DataEntry((("contest_" + toString(s)) + "_status"), b), DataEntry((("contest_" + toString(s)) + "_winner"), P), DataEntry((("contest_" + toString(s)) + "_currencyrate"), N), DataEntry((("contest_" + toString(s)) + "_height"), height)]), U)
164165 }
165- else WriteSet([DataEntry((("contest_" + toString(s)) + "_status"), b), DataEntry((("contest_" + toString(s)) + "_winner"), O), DataEntry((("contest_" + toString(s)) + "_currencyrate"), M), DataEntry((("contest_" + toString(s)) + "_height"), height)])
166+ else WriteSet([DataEntry((("contest_" + toString(s)) + "_status"), b), DataEntry((("contest_" + toString(s)) + "_winner"), P), DataEntry((("contest_" + toString(s)) + "_currencyrate"), N), DataEntry((("contest_" + toString(s)) + "_height"), height)])
166167 }
167168
168169
169-@Verifier(U)
170-func V () = {
171- let n = U
170+@Verifier(V)
171+func W () = {
172+ let n = V
172173 if (if ($isInstanceOf(n, "SetScriptTransaction"))
173174 then true
174175 else $isInstanceOf(n, "DataTransaction"))
175- then sigVerify(U.bodyBytes, U.proofs[0], U.senderPublicKey)
176+ then sigVerify(V.bodyBytes, V.proofs[0], V.senderPublicKey)
176177 else if ($isInstanceOf(n, "InvokeScriptTransaction"))
177178 then true
178179 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 = "3N7Wiiso7vo69pqWfLtpzT3tbzMUGahqpgo"
99
1010 let d = "3NAcoeWdUTWn8csXJPG47v1Fjtjcfqxb5tu"
1111
1212 let e = "3MpCbDDjkSrfS1XkPpm71iZj5DQ1RpBRRht"
1313
1414 let f = "3MqPpbWPRsZFoT9X74qWocU4BpypGEPhiCn"
1515
1616 let g = "WAVES"
1717
1818 let h = "NONE"
1919
2020 let i = 900000
2121
2222 let j = base58'7KAXNTswj6947a6cVpGhVrh1utWpLcjwf8AFpWCtuMT7'
2323
2424 func k (l) = {
2525 let m = {
2626 let n = getInteger(this, l)
2727 if ($isInstanceOf(n, "Int"))
2828 then {
2929 let o = n
3030 o
3131 }
3232 else 0
3333 }
3434 m
3535 }
3636
3737
3838 func p (l) = {
3939 let q = {
4040 let n = getString(this, l)
4141 if ($isInstanceOf(n, "String"))
4242 then {
4343 let o = n
4444 o
4545 }
4646 else h
4747 }
4848 q
4949 }
5050
5151
5252 func r () = {
5353 let s = k("contest_currentnumber")
5454 p((("contest_" + toString(s)) + "_status"))
5555 }
5656
5757
5858 func t (u) = {
5959 let s = k("contest_currentnumber")
6060 p((((("bet_" + toString(s)) + "_") + toString(u)) + "_owner"))
6161 }
6262
6363
6464 func v () = {
6565 let w = extract(addressFromString(d))
6666 let x = {
6767 let n = getInteger(w, "waves_usd_2")
6868 if ($isInstanceOf(n, "Int"))
6969 then {
7070 let o = n
7171 o
7272 }
7373 else 0
7474 }
7575 x
7676 }
7777
7878
7979 @Callable(y)
8080 func setContestStatus (z,A) = {
8181 let B = toBase58String(y.caller.bytes)
8282 if ((B != c))
8383 then throw("Only dAPP Owner can set Contest Status.")
8484 else if (if ((A != a))
8585 then (A != b)
8686 else false)
8787 then throw(("Invalid status: " + A))
8888 else WriteSet([DataEntry((("contest_" + toString(z)) + "_status"), A)])
8989 }
9090
9191
9292
9393 @Callable(y)
9494 func setContestConfiguration () = {
9595 let B = toBase58String(y.caller.bytes)
9696 let s = k("contest_currentnumber")
9797 let C = p((("contest_" + toString(s)) + "_status"))
9898 let D = (s + 1)
99+ let E = (((wavesBalance(this) * 99) / 100) / 25)
99100 if ((B != c))
100101 then throw(((("Only dAPP Owner can Configure Contest. Caller account: " + B) + " dapp owner: ") + c))
101102 else if ((C == a))
102103 then throw(("You cannot configure a new Contest while old Contest status is: " + C))
103104 else {
104- let E = (height + (7 * 1440))
105- WriteSet([DataEntry("contest_currentnumber", D), DataEntry((("contest_" + toString(D)) + "_finishheight"), E), DataEntry((("contest_" + toString(D)) + "_status"), a), DataEntry((("contest_" + toString(D)) + "_votecounter"), 0)])
105+ let F = (height + (7 * 1440))
106+ WriteSet([DataEntry("contest_currentnumber", D), DataEntry((("contest_" + toString(D)) + "_finishheight"), F), DataEntry((("contest_" + toString(D)) + "_status"), a), DataEntry((("contest_" + toString(D)) + "_betcounter"), 0), DataEntry((("contest_" + toString(D)) + "_betcost"), 0)])
106107 }
107108 }
108109
109110
110111
111112 @Callable(y)
112-func bet (F) = {
113+func bet (G) = {
113114 let B = toBase58String(y.caller.bytes)
114- let G = extract(y.payment)
115+ let H = extract(y.payment)
115116 let s = k("contest_currentnumber")
116- let H = k((("contest_" + toString(s)) + "_startheight"))
117- let E = k((("contest_" + toString(s)) + "_finishheight"))
118- let I = k((("contest_" + toString(s)) + "_votecounter"))
117+ let I = k((("contest_" + toString(s)) + "_startheight"))
118+ let F = k((("contest_" + toString(s)) + "_finishheight"))
119+ let J = k((("contest_" + toString(s)) + "_betcounter"))
119120 let C = p((("contest_" + toString(s)) + "_status"))
120- let J = (I + 1)
121+ let K = (J + 1)
121122 let A = p((("contest_" + toString(s)) + "_status"))
122- let K = k(((("bet_" + toString(s)) + "_") + toString(F)))
123- let L = t(K)
124- if ((height > (E - (2 * 1440))))
123+ let L = k(((("bet_" + toString(s)) + "_") + toString(G)))
124+ let M = t(L)
125+ if ((height > (F - (2 * 1440))))
125126 then throw("You cannot bet anymore at this height.")
126127 else if ((C != a))
127128 then throw(("Invalid status: you cannot bet now, contest status is: " + C))
128- else if (if ((G.assetId != j))
129+ else if (if ((H.assetId != j))
129130 then true
130- else (G.amount != 500000))
131- then throw(("You must pay 5 WLT to bet. You paid: " + toString(G.amount)))
132- else if (if ((L != h))
133- then (L != B)
131+ else (H.amount != 500000))
132+ then throw(("You must pay 5 WLT to bet. You paid: " + toString(H.amount)))
133+ else if (if ((M != h))
134+ then (M != B)
134135 else false)
135- then throw(((((("Another user: " + L) + " did bet already on rate: ") + toString(F)) + " betID:") + toString(K)))
136- else WriteSet([DataEntry((((("bet_" + toString(s)) + "_") + toString(J)) + "_owner"), B), DataEntry(((("bet_" + toString(s)) + "_") + toString(F)), J), DataEntry((("contest_" + toString(s)) + "_votecounter"), J)])
136+ then throw(((((("Another user: " + M) + " did bet already on rate: ") + toString(G)) + " betID:") + toString(L)))
137+ else WriteSet([DataEntry((((("bet_" + toString(s)) + "_") + toString(K)) + "_owner"), B), DataEntry(((("bet_" + toString(s)) + "_") + toString(G)), K), DataEntry((("contest_" + toString(s)) + "_betcounter"), K)])
137138 }
138139
139140
140141
141142 @Callable(y)
142143 func closecontest () = {
143- let M = v()
144+ let N = v()
144145 let s = k("contest_currentnumber")
145- let N = k(((("bet_" + toString(s)) + "_") + toString(M)))
146- let O = t(N)
147- let E = k((("contest_" + toString(s)) + "_finishheight"))
146+ let O = k(((("bet_" + toString(s)) + "_") + toString(N)))
147+ let P = t(O)
148+ let F = k((("contest_" + toString(s)) + "_finishheight"))
148149 let B = toBase58String(y.caller.bytes)
149- let P = wavesBalance(this)
150+ let Q = wavesBalance(this)
150151 let C = p((("contest_" + toString(s)) + "_status"))
151- let Q = WriteSet([DataEntry((("contest_" + toString(s)) + "_status"), b), DataEntry((("contest_" + toString(s)) + "_winner"), O), DataEntry((("contest_" + toString(s)) + "_currencyrate"), M), DataEntry((("contest_" + toString(s)) + "_height"), height)])
152- if (if ((E > height))
152+ let R = WriteSet([DataEntry((("contest_" + toString(s)) + "_status"), b), DataEntry((("contest_" + toString(s)) + "_winner"), P), DataEntry((("contest_" + toString(s)) + "_currencyrate"), N), DataEntry((("contest_" + toString(s)) + "_height"), height)])
153+ if (if ((F > height))
153154 then (B != c)
154155 else false)
155- then throw(((("account: " + B) + ": Cannot close the contest before height:") + toString(E)))
156+ then throw(((("account: " + B) + ": Cannot close the contest before height:") + toString(F)))
156157 else if ((C != a))
157158 then throw(("Cannot close a contest in status: " + C))
158- else if ((O != h))
159+ else if ((P != h))
159160 then {
160- let R = ((assetBalance(this, j) * 5) / 100)
161- let S = ((assetBalance(this, j) * 90) / 100)
162- let T = TransferSet([ScriptTransfer(extract(addressFromString(O)), (((wavesBalance(this) * 99) / 100) - i), unit), ScriptTransfer(extract(addressFromString(d)), R, j), ScriptTransfer(extract(addressFromString(f)), R, j), ScriptTransfer(extract(addressFromString(e)), S, j)])
163- ScriptResult(WriteSet([DataEntry((("contest_" + toString(s)) + "_status"), b), DataEntry((("contest_" + toString(s)) + "_winner"), O), DataEntry((("contest_" + toString(s)) + "_currencyrate"), M), DataEntry((("contest_" + toString(s)) + "_height"), height)]), T)
161+ let S = ((assetBalance(this, j) * 5) / 100)
162+ let T = ((assetBalance(this, j) * 90) / 100)
163+ let U = TransferSet([ScriptTransfer(extract(addressFromString(P)), (((wavesBalance(this) * 99) / 100) - i), unit), ScriptTransfer(extract(addressFromString(d)), S, j), ScriptTransfer(extract(addressFromString(f)), S, j), ScriptTransfer(extract(addressFromString(e)), T, j)])
164+ ScriptResult(WriteSet([DataEntry((("contest_" + toString(s)) + "_status"), b), DataEntry((("contest_" + toString(s)) + "_winner"), P), DataEntry((("contest_" + toString(s)) + "_currencyrate"), N), DataEntry((("contest_" + toString(s)) + "_height"), height)]), U)
164165 }
165- else WriteSet([DataEntry((("contest_" + toString(s)) + "_status"), b), DataEntry((("contest_" + toString(s)) + "_winner"), O), DataEntry((("contest_" + toString(s)) + "_currencyrate"), M), DataEntry((("contest_" + toString(s)) + "_height"), height)])
166+ else WriteSet([DataEntry((("contest_" + toString(s)) + "_status"), b), DataEntry((("contest_" + toString(s)) + "_winner"), P), DataEntry((("contest_" + toString(s)) + "_currencyrate"), N), DataEntry((("contest_" + toString(s)) + "_height"), height)])
166167 }
167168
168169
169-@Verifier(U)
170-func V () = {
171- let n = U
170+@Verifier(V)
171+func W () = {
172+ let n = V
172173 if (if ($isInstanceOf(n, "SetScriptTransaction"))
173174 then true
174175 else $isInstanceOf(n, "DataTransaction"))
175- then sigVerify(U.bodyBytes, U.proofs[0], U.senderPublicKey)
176+ then sigVerify(V.bodyBytes, V.proofs[0], V.senderPublicKey)
176177 else if ($isInstanceOf(n, "InvokeScriptTransaction"))
177178 then true
178179 else true
179180 }
180181

github/deemru/w8io/026f985 
64.74 ms