tx · 2PiRHBTCmdHJ1e6Jqb2cY7AAoZo1TcrkLEN9G8miWtV8

3N7Wiiso7vo69pqWfLtpzT3tbzMUGahqpgo:  -0.01400000 Waves

2019.08.18 13:06 [636434] smart account 3N7Wiiso7vo69pqWfLtpzT3tbzMUGahqpgo > SELF 0.00000000 Waves

{ "type": 13, "id": "2PiRHBTCmdHJ1e6Jqb2cY7AAoZo1TcrkLEN9G8miWtV8", "fee": 1400000, "feeAssetId": null, "timestamp": 1566122772250, "version": 1, "sender": "3N7Wiiso7vo69pqWfLtpzT3tbzMUGahqpgo", "senderPublicKey": "5GQSFwNMkJFTT3FeLT3KENqoSr42yiJP3Av5qAYq1F7f", "proofs": [ "21iQqyuQh6H2ccCYsZyt9d87gtgDDMgAuNjfVWy44NN1ntpCvfRi7Taig5imvVNjnEJ2cx3nzRMK8HKToVuHGaGX" ], "script": "base64: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AAANY29udGVzdE51bWJlcgIAAAAHX3N0YXR1cwUAAAANY29udGVzdFN0YXR1cwUAAAADbmlsAAAAAWkBAAAAF3NldENvbnRlc3RDb25maWd1cmF0aW9uAAAAAAQAAAAHYWNjb3VudAkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAABFjb250ZXN0Q3Vyck51bWJlcgkBAAAAC2dldE51bUJ5S2V5AAAAAQIAAAAVY29udGVzdF9jdXJyZW50bnVtYmVyBAAAABFjb250ZXN0Q3VyclN0YXR1cwkBAAAAC2dldFN0ckJ5S2V5AAAAAQkAASwAAAACCQABLAAAAAICAAAACGNvbnRlc3RfCQABpAAAAAEFAAAAEWNvbnRlc3RDdXJyTnVtYmVyAgAAAAdfc3RhdHVzBAAAABBjb250ZXN0TmV3TnVtYmVyCQAAZAAAAAIFAAAAEWNvbnRlc3RDdXJyTnVtYmVyAAAAAAAAAAABAwkBAAAAAiE9AAAAAgUAAAAHYWNjb3VudAUAAAAJREFQUE9XTkVSCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAN09ubHkgZEFQUCBPd25lciBjYW4gQ29uZmlndXJlIENvbnRlc3QuIENhbGxlciBhY2NvdW50OiAFAAAAB2FjY291bnQCAAAADSBkYXBwIG93bmVyOiAFAAAACURBUFBPV05FUgMJAAAAAAAAAgUAAAARY29udGVzdEN1cnJTdGF0dXMFAAAAB1JVTk5JTkcJAAACAAAAAQkAASwAAAACAgAAAEBZb3UgY2Fubm90IGNvbmZpZ3VyZSBhIG5ldyBDb250ZXN0IHdoaWxlIG9sZCBDb250ZXN0IHN0YXR1cyBpczogBQAAABFjb250ZXN0Q3VyclN0YXR1cwQAAAATY29udGVzdEZpbmlzaEhlaWdodAkAAGQAAAACBQAAAAZoZWlnaHQJAABoAAAAAgAAAAAAAAAABwAAAAAAAAAFoAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAVY29udGVzdF9jdXJyZW50bnVtYmVyBQAAABBjb250ZXN0TmV3TnVtYmVyCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIY29udGVzdF8JAAGkAAAAAQUAAAAQY29udGVzdE5ld051bWJlcgIAAAANX2ZpbmlzaGhlaWdodAUAAAATY29udGVzdEZpbmlzaEhlaWdodAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAACGNvbnRlc3RfCQABpAAAAAEFAAAAEGNvbnRlc3ROZXdOdW1iZXICAAAAB19zdGF0dXMFAAAAB1JVTk5JTkcJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhjb250ZXN0XwkAAaQAAAABBQAAABBjb250ZXN0TmV3TnVtYmVyAgAAAAxfdm90ZWNvdW50ZXIAAAAAAAAAAAAFAAAAA25pbAAAAAFpAQAAAANiZXQAAAABAAAADWN1cnJlbmN5VmFsdWUEAAAAB2FjY291bnQJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAADcG10CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQEAAAAEWNvbnRlc3RDdXJyTnVtYmVyCQEAAAALZ2V0TnVtQnlLZXkAAAABAgAAABVjb250ZXN0X2N1cnJlbnRudW1iZXIEAAAAEmNvbnRlc3RTdGFydEhlaWdodAkBAAAAC2dldE51bUJ5S2V5AAAAAQkAASwAAAACCQABLAAAAAICAAAACGNvbnRlc3RfCQABpAAAAAEFAAAAEWNvbnRlc3RDdXJyTnVtYmVyAgAAAAxfc3RhcnRoZWlnaHQEAAAAE2NvbnRlc3RGaW5pc2hIZWlnaHQJAQAAAAtnZXROdW1CeUtleQAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAhjb250ZXN0XwkAAaQAAAABBQAAABFjb250ZXN0Q3Vyck51bWJlcgIAAAANX2ZpbmlzaGhlaWdodAQAAAASY29udGVzdFZvdGVDb3VudGVyCQEAAAALZ2V0TnVtQnlLZXkAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAIY29udGVzdF8JAAGkAAAAAQUAAAARY29udGVzdEN1cnJOdW1iZXICAAAADF92b3RlY291bnRlcgQAAAARY29udGVzdEN1cnJTdGF0dXMJ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", "chainId": 84, "height": 636434, "spentComplexity": 0 } View: original | compacted Prev: 3dmBW2d2WEy4Tz7oDLuBjg9eSkSGTL27U5xa29pZL65w Next: HRNsgHZU8NC3zVxG6riA8KcdVKuKAf9WpbpN649kizQb Diff:
OldNewDifferences
9191
9292
9393 @Callable(y)
94-func setContestConfiguration (C,D) = {
94+func setContestConfiguration () = {
9595 let B = toBase58String(y.caller.bytes)
9696 let s = k("contest_currentnumber")
97- let E = p((("contest_" + toString(s)) + "_status"))
98- let F = (s + 1)
97+ let C = p((("contest_" + toString(s)) + "_status"))
98+ let D = (s + 1)
9999 if ((B != c))
100100 then throw(((("Only dAPP Owner can Configure Contest. Caller account: " + B) + " dapp owner: ") + c))
101- else if ((height >= D))
102- then throw(("Start Height must be greater than current Blockchain height: " + toString(height)))
103- else if ((E == a))
104- then throw(("You cannot configure a new Contest while old Contest status is: " + E))
105- else if ((C != g))
106- then throw((("dAPP does not support currency: " + C) + " yet."))
107- else {
108- let G = (D + (7 * 1440))
109- WriteSet([DataEntry("contest_currentnumber", F), DataEntry((("contest_" + toString(F)) + "_currency"), C), DataEntry((("contest_" + toString(F)) + "_startheight"), D), DataEntry((("contest_" + toString(F)) + "_finishheight"), G), DataEntry((("contest_" + toString(F)) + "_status"), a), DataEntry((("contest_" + toString(F)) + "_votecounter"), 0)])
110- }
101+ else if ((C == a))
102+ then throw(("You cannot configure a new Contest while old Contest status is: " + C))
103+ 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)])
106+ }
111107 }
112108
113109
114110
115111 @Callable(y)
116-func bet (H) = {
112+func bet (F) = {
117113 let B = toBase58String(y.caller.bytes)
118- let I = extract(y.payment)
114+ let G = extract(y.payment)
119115 let s = k("contest_currentnumber")
120- let D = k((("contest_" + toString(s)) + "_startheight"))
121- let G = k((("contest_" + toString(s)) + "_finishheight"))
122- let J = k((("contest_" + toString(s)) + "_votecounter"))
123- let E = p((("contest_" + toString(s)) + "_status"))
124- let K = (J + 1)
116+ let H = k((("contest_" + toString(s)) + "_startheight"))
117+ let E = k((("contest_" + toString(s)) + "_finishheight"))
118+ let I = k((("contest_" + toString(s)) + "_votecounter"))
119+ let C = p((("contest_" + toString(s)) + "_status"))
120+ let J = (I + 1)
125121 let A = p((("contest_" + toString(s)) + "_status"))
126- let L = k(((("bet_" + toString(s)) + "_") + H))
127- let M = t(L)
128- if ((height > (G - (2 * 1440))))
122+ let K = k(((("bet_" + toString(s)) + "_") + F))
123+ let L = t(K)
124+ if ((height > (E - (2 * 1440))))
129125 then throw("You cannot bet anymore at this height.")
130- else if ((E != a))
126+ else if ((C != a))
131127 then throw("Invalid status: you cannot bet now.")
132- else if (if ((I.assetId != j))
128+ else if (if ((G.assetId != j))
133129 then true
134- else (I.amount != 500000))
130+ else (G.amount != 500000))
135131 then throw("You must pay 5 WLT to bet.")
136- else if (if ((M != h))
137- then (M != B)
132+ else if (if ((L != h))
133+ then (L != B)
138134 else false)
139- then throw(((((("Another user: " + M) + " did bet already on rate: ") + H) + " betID:") + toString(L)))
140- else WriteSet([DataEntry((((("bet_" + toString(s)) + "_") + toString(K)) + "_owner"), B), DataEntry(((("bet_" + toString(s)) + "_") + H), K), DataEntry((("contest_" + toString(s)) + "_votecounter"), K)])
135+ then throw(((((("Another user: " + L) + " did bet already on rate: ") + F) + " betID:") + toString(K)))
136+ else WriteSet([DataEntry((((("bet_" + toString(s)) + "_") + toString(J)) + "_owner"), B), DataEntry(((("bet_" + toString(s)) + "_") + F), J), DataEntry((("contest_" + toString(s)) + "_votecounter"), J)])
141137 }
142138
143139
144140
145141 @Callable(y)
146142 func closecontest () = {
147- let N = v()
143+ let M = v()
148144 let s = k("contest_currentnumber")
149- let O = k(((("bet_" + toString(s)) + "_") + toString(N)))
150- let P = t(O)
151- let Q = k((("contest_" + toString(s)) + "_finishheight"))
145+ let N = k(((("bet_" + toString(s)) + "_") + toString(M)))
146+ let O = t(N)
147+ let P = k((("contest_" + toString(s)) + "_finishheight"))
152148 let B = toBase58String(y.caller.bytes)
153- let R = wavesBalance(this)
154- let E = p((("contest_" + toString(s)) + "_status"))
155- let S = 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)])
156- if ((Q > height))
157- then throw(("Cannot close the contest before height:" + toString(Q)))
158- else if ((E != a))
159- then throw(("Cannot close a contest in status: " + E))
160- else if ((P != h))
149+ let Q = wavesBalance(this)
150+ let C = p((("contest_" + toString(s)) + "_status"))
151+ let R = 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 ((P > height))
153+ then throw(("Cannot close the contest before height:" + toString(P)))
154+ else if ((C != a))
155+ then throw(("Cannot close a contest in status: " + C))
156+ else if ((O != h))
161157 then {
162- let T = ((assetBalance(this, j) * 5) / 100)
163- let U = ((assetBalance(this, j) * 90) / 100)
164- let V = TransferSet([ScriptTransfer(extract(addressFromString(P)), (wavesBalance(this) - i), unit), ScriptTransfer(extract(addressFromString(d)), T, j), ScriptTransfer(extract(addressFromString(f)), T, j), ScriptTransfer(extract(addressFromString(e)), U, j)])
165- 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)]), V)
158+ let S = ((assetBalance(this, j) * 5) / 100)
159+ let T = ((assetBalance(this, j) * 90) / 100)
160+ let U = TransferSet([ScriptTransfer(extract(addressFromString(O)), (wavesBalance(this) - i), unit), ScriptTransfer(extract(addressFromString(d)), S, j), ScriptTransfer(extract(addressFromString(f)), S, j), ScriptTransfer(extract(addressFromString(e)), T, j)])
161+ 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)]), U)
166162 }
167- 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)])
163+ 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)])
168164 }
169165
170166
171-@Verifier(W)
172-func X () = {
173- let n = W
167+@Verifier(V)
168+func W () = {
169+ let n = V
174170 if (if ($isInstanceOf(n, "SetScriptTransaction"))
175171 then true
176172 else $isInstanceOf(n, "DataTransaction"))
177- then sigVerify(W.bodyBytes, W.proofs[0], W.senderPublicKey)
173+ then sigVerify(V.bodyBytes, V.proofs[0], V.senderPublicKey)
178174 else if ($isInstanceOf(n, "InvokeScriptTransaction"))
179175 then true
180176 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)
94-func setContestConfiguration (C,D) = {
94+func setContestConfiguration () = {
9595 let B = toBase58String(y.caller.bytes)
9696 let s = k("contest_currentnumber")
97- let E = p((("contest_" + toString(s)) + "_status"))
98- let F = (s + 1)
97+ let C = p((("contest_" + toString(s)) + "_status"))
98+ let D = (s + 1)
9999 if ((B != c))
100100 then throw(((("Only dAPP Owner can Configure Contest. Caller account: " + B) + " dapp owner: ") + c))
101- else if ((height >= D))
102- then throw(("Start Height must be greater than current Blockchain height: " + toString(height)))
103- else if ((E == a))
104- then throw(("You cannot configure a new Contest while old Contest status is: " + E))
105- else if ((C != g))
106- then throw((("dAPP does not support currency: " + C) + " yet."))
107- else {
108- let G = (D + (7 * 1440))
109- WriteSet([DataEntry("contest_currentnumber", F), DataEntry((("contest_" + toString(F)) + "_currency"), C), DataEntry((("contest_" + toString(F)) + "_startheight"), D), DataEntry((("contest_" + toString(F)) + "_finishheight"), G), DataEntry((("contest_" + toString(F)) + "_status"), a), DataEntry((("contest_" + toString(F)) + "_votecounter"), 0)])
110- }
101+ else if ((C == a))
102+ then throw(("You cannot configure a new Contest while old Contest status is: " + C))
103+ 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)])
106+ }
111107 }
112108
113109
114110
115111 @Callable(y)
116-func bet (H) = {
112+func bet (F) = {
117113 let B = toBase58String(y.caller.bytes)
118- let I = extract(y.payment)
114+ let G = extract(y.payment)
119115 let s = k("contest_currentnumber")
120- let D = k((("contest_" + toString(s)) + "_startheight"))
121- let G = k((("contest_" + toString(s)) + "_finishheight"))
122- let J = k((("contest_" + toString(s)) + "_votecounter"))
123- let E = p((("contest_" + toString(s)) + "_status"))
124- let K = (J + 1)
116+ let H = k((("contest_" + toString(s)) + "_startheight"))
117+ let E = k((("contest_" + toString(s)) + "_finishheight"))
118+ let I = k((("contest_" + toString(s)) + "_votecounter"))
119+ let C = p((("contest_" + toString(s)) + "_status"))
120+ let J = (I + 1)
125121 let A = p((("contest_" + toString(s)) + "_status"))
126- let L = k(((("bet_" + toString(s)) + "_") + H))
127- let M = t(L)
128- if ((height > (G - (2 * 1440))))
122+ let K = k(((("bet_" + toString(s)) + "_") + F))
123+ let L = t(K)
124+ if ((height > (E - (2 * 1440))))
129125 then throw("You cannot bet anymore at this height.")
130- else if ((E != a))
126+ else if ((C != a))
131127 then throw("Invalid status: you cannot bet now.")
132- else if (if ((I.assetId != j))
128+ else if (if ((G.assetId != j))
133129 then true
134- else (I.amount != 500000))
130+ else (G.amount != 500000))
135131 then throw("You must pay 5 WLT to bet.")
136- else if (if ((M != h))
137- then (M != B)
132+ else if (if ((L != h))
133+ then (L != B)
138134 else false)
139- then throw(((((("Another user: " + M) + " did bet already on rate: ") + H) + " betID:") + toString(L)))
140- else WriteSet([DataEntry((((("bet_" + toString(s)) + "_") + toString(K)) + "_owner"), B), DataEntry(((("bet_" + toString(s)) + "_") + H), K), DataEntry((("contest_" + toString(s)) + "_votecounter"), K)])
135+ then throw(((((("Another user: " + L) + " did bet already on rate: ") + F) + " betID:") + toString(K)))
136+ else WriteSet([DataEntry((((("bet_" + toString(s)) + "_") + toString(J)) + "_owner"), B), DataEntry(((("bet_" + toString(s)) + "_") + F), J), DataEntry((("contest_" + toString(s)) + "_votecounter"), J)])
141137 }
142138
143139
144140
145141 @Callable(y)
146142 func closecontest () = {
147- let N = v()
143+ let M = v()
148144 let s = k("contest_currentnumber")
149- let O = k(((("bet_" + toString(s)) + "_") + toString(N)))
150- let P = t(O)
151- let Q = k((("contest_" + toString(s)) + "_finishheight"))
145+ let N = k(((("bet_" + toString(s)) + "_") + toString(M)))
146+ let O = t(N)
147+ let P = k((("contest_" + toString(s)) + "_finishheight"))
152148 let B = toBase58String(y.caller.bytes)
153- let R = wavesBalance(this)
154- let E = p((("contest_" + toString(s)) + "_status"))
155- let S = 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)])
156- if ((Q > height))
157- then throw(("Cannot close the contest before height:" + toString(Q)))
158- else if ((E != a))
159- then throw(("Cannot close a contest in status: " + E))
160- else if ((P != h))
149+ let Q = wavesBalance(this)
150+ let C = p((("contest_" + toString(s)) + "_status"))
151+ let R = 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 ((P > height))
153+ then throw(("Cannot close the contest before height:" + toString(P)))
154+ else if ((C != a))
155+ then throw(("Cannot close a contest in status: " + C))
156+ else if ((O != h))
161157 then {
162- let T = ((assetBalance(this, j) * 5) / 100)
163- let U = ((assetBalance(this, j) * 90) / 100)
164- let V = TransferSet([ScriptTransfer(extract(addressFromString(P)), (wavesBalance(this) - i), unit), ScriptTransfer(extract(addressFromString(d)), T, j), ScriptTransfer(extract(addressFromString(f)), T, j), ScriptTransfer(extract(addressFromString(e)), U, j)])
165- 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)]), V)
158+ let S = ((assetBalance(this, j) * 5) / 100)
159+ let T = ((assetBalance(this, j) * 90) / 100)
160+ let U = TransferSet([ScriptTransfer(extract(addressFromString(O)), (wavesBalance(this) - i), unit), ScriptTransfer(extract(addressFromString(d)), S, j), ScriptTransfer(extract(addressFromString(f)), S, j), ScriptTransfer(extract(addressFromString(e)), T, j)])
161+ 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)]), U)
166162 }
167- 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)])
163+ 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)])
168164 }
169165
170166
171-@Verifier(W)
172-func X () = {
173- let n = W
167+@Verifier(V)
168+func W () = {
169+ let n = V
174170 if (if ($isInstanceOf(n, "SetScriptTransaction"))
175171 then true
176172 else $isInstanceOf(n, "DataTransaction"))
177- then sigVerify(W.bodyBytes, W.proofs[0], W.senderPublicKey)
173+ then sigVerify(V.bodyBytes, V.proofs[0], V.senderPublicKey)
178174 else if ($isInstanceOf(n, "InvokeScriptTransaction"))
179175 then true
180176 else true
181177 }
182178

github/deemru/w8io/873ac7e 
174.95 ms