tx · 2DWcmwM6WGVFHZd4Z5gVSEoZuZyg9JWCUynbMoXW8wMv

3N7Wiiso7vo69pqWfLtpzT3tbzMUGahqpgo:  -0.01400000 Waves

2019.08.19 17:39 [638167] smart account 3N7Wiiso7vo69pqWfLtpzT3tbzMUGahqpgo > SELF 0.00000000 Waves

{ "type": 13, "id": "2DWcmwM6WGVFHZd4Z5gVSEoZuZyg9JWCUynbMoXW8wMv", "fee": 1400000, "feeAssetId": null, "timestamp": 1566225635809, "version": 1, "sender": "3N7Wiiso7vo69pqWfLtpzT3tbzMUGahqpgo", "senderPublicKey": "5GQSFwNMkJFTT3FeLT3KENqoSr42yiJP3Av5qAYq1F7f", "proofs": [ "iEe7vbp4hLkujfm5qPJ1XaQkmPqKZzH5Nbxb9yAuXsa2wwek7BdjLmbwg677ubcFPGahZ6YKdvLSypczGupFyrg" ], "script": "base64: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RW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAARiZXRfCQABpAAAAAEFAAAAEWNvbnRlc3RDdXJyTnVtYmVyAgAAAAFfCQABpAAAAAEFAAAADWN1cnJlbmN5VmFsdWUFAAAACXRoaXNCZXRJZAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAACGNvbnRlc3RfCQABpAAAAAEFAAAAEWNvbnRlc3RDdXJyTnVtYmVyAgAAAAtfYmV0Y291bnRlcgUAAAAJdGhpc0JldElkBQAAAANuaWwAAAABaQEAAAAMY2xvc2Vjb250ZXN0AAAAAAQAAAAMY3VycmVuY3lSYXRlCQEAAAAaZ2V0RXh0V0FWRVNVU0RDdXJyZW5jeVJhdGUAAAAABAAAABFjb250ZXN0Q3Vyck51bWJlcgkBAAAAC2dldE51bUJ5S2V5AAAAAQIAAAAVY29udGVzdF9jdXJyZW50bnVtYmVyBAAAAA93aW5uaW5nQmV0QmV0SWQJAQAAAAtnZXROdW1CeUtleQAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABGJldF8JAAGkAAAAAQUAAAARY29udGVzdEN1cnJOdW1iZXICAAAAAV8JAAGkAAAAAQUAAAAMY3VycmVuY3lSYXRlBAAAABF3aW5uaW5nQmV0QWNjb3VudAkBAAAADWdldEJldEFjY291bnQAAAABBQAAAA93aW5uaW5nQmV0QmV0SWQEAAAAE2NvbnRlc3RGaW5pc2hIZWlnaHQJAQAAAAtnZXROdW1CeUtleQAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAhjb250ZXN0XwkAAaQAAAABBQAAABFjb250ZXN0Q3Vyck51bWJlcgIAAAANX2ZpbmlzaGhlaWdodAQAAAAHYWNjb3VudAkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAdiYWxhbmNlCQEAAAAMd2F2ZXNCYWxhbmNlAAAAAQUAAAAEdGhpcwQAAAARY29udGVzdEN1cnJTdGF0dXMJAQAAAAtnZXRTdHJCeUtleQAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAhjb250ZXN0XwkAAaQAAAABBQAAABFjb250ZXN0Q3Vyck51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", "chainId": 84, "height": 638167, "spentComplexity": 0 } View: original | compacted Prev: B4E5bmUvmKAT6jWKzcbrN45XdcmDYQQR6cybQiHXAFYf Next: mAptgyzAfN8Z9oQRqpJTK8ExFKvXW9GzG8usmdagT1n Diff:
OldNewDifferences
9595 else if ((contestCurrStatus == RUNNING))
9696 then throw(("You cannot configure a new Contest while old Contest status is: " + contestCurrStatus))
9797 else {
98- let contestFinishHeight = (height + (7 * 1440))
98+ let contestFinishHeight = (height + (6 * 1440))
9999 WriteSet([DataEntry("contest_currentnumber", contestNewNumber), DataEntry((("contest_" + toString(contestNewNumber)) + "_finishheight"), contestFinishHeight), DataEntry((("contest_" + toString(contestNewNumber)) + "_status"), RUNNING), DataEntry((("contest_" + toString(contestNewNumber)) + "_betcounter"), 0), DataEntry((("contest_" + toString(contestNewNumber)) + "_betcost"), contestBetCost)])
100100 }
101101 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let RUNNING = "RUNNING"
55
66 let CLOSED = "CLOSED"
77
88 let CANCELED = "CANCELED"
99
1010 let DAPPOWNER = "3N7Wiiso7vo69pqWfLtpzT3tbzMUGahqpgo"
1111
1212 let ORACLEWALLET = "3NAcoeWdUTWn8csXJPG47v1Fjtjcfqxb5tu"
1313
1414 let WLTBURNWALLET = "3MpCbDDjkSrfS1XkPpm71iZj5DQ1RpBRRht"
1515
1616 let WAVESKITWALLET = "3MqPpbWPRsZFoT9X74qWocU4BpypGEPhiCn"
1717
1818 let WAVES = "WAVES"
1919
2020 let NONE = "NONE"
2121
2222 let FEE = 900000
2323
2424 let WLT = base58'7KAXNTswj6947a6cVpGhVrh1utWpLcjwf8AFpWCtuMT7'
2525
2626 func getNumByKey (key) = {
2727 let num = match getInteger(this, key) {
2828 case a: Int =>
2929 a
3030 case _ =>
3131 0
3232 }
3333 num
3434 }
3535
3636
3737 func getStrByKey (key) = {
3838 let str = match getString(this, key) {
3939 case a: String =>
4040 a
4141 case _ =>
4242 NONE
4343 }
4444 str
4545 }
4646
4747
4848 func getContestStatus () = {
4949 let contestCurrNumber = getNumByKey("contest_currentnumber")
5050 getStrByKey((("contest_" + toString(contestCurrNumber)) + "_status"))
5151 }
5252
5353
5454 func getBetAccount (betId) = {
5555 let contestCurrNumber = getNumByKey("contest_currentnumber")
5656 getStrByKey((((("bet_" + toString(contestCurrNumber)) + "_") + toString(betId)) + "_owner"))
5757 }
5858
5959
6060 func getExtWAVESUSDCurrencyRate () = {
6161 let oracleAddress = extract(addressFromString(ORACLEWALLET))
6262 let WAVESUSDCurrencyRate = match getInteger(oracleAddress, "waves_usd_2") {
6363 case a: Int =>
6464 a
6565 case _ =>
6666 0
6767 }
6868 WAVESUSDCurrencyRate
6969 }
7070
7171
7272 @Callable(i)
7373 func setContestStatus (contestNumber,contestStatus) = {
7474 let account = toBase58String(i.caller.bytes)
7575 if ((account != DAPPOWNER))
7676 then throw("Only dAPP Owner can set Contest Status.")
7777 else if (if ((contestStatus != CANCELED))
7878 then (contestStatus != CLOSED)
7979 else false)
8080 then throw(("Invalid status: " + contestStatus))
8181 else WriteSet([DataEntry((("contest_" + toString(contestNumber)) + "_status"), contestStatus)])
8282 }
8383
8484
8585
8686 @Callable(i)
8787 func setContestConfiguration () = {
8888 let account = toBase58String(i.caller.bytes)
8989 let contestCurrNumber = getNumByKey("contest_currentnumber")
9090 let contestCurrStatus = getStrByKey((("contest_" + toString(contestCurrNumber)) + "_status"))
9191 let contestNewNumber = (contestCurrNumber + 1)
9292 let contestBetCost = (((wavesBalance(this) / 25) / 5000000) * 100000)
9393 if ((account != DAPPOWNER))
9494 then throw(((("Only dAPP Owner can Configure Contest. Caller account: " + account) + " dapp owner: ") + DAPPOWNER))
9595 else if ((contestCurrStatus == RUNNING))
9696 then throw(("You cannot configure a new Contest while old Contest status is: " + contestCurrStatus))
9797 else {
98- let contestFinishHeight = (height + (7 * 1440))
98+ let contestFinishHeight = (height + (6 * 1440))
9999 WriteSet([DataEntry("contest_currentnumber", contestNewNumber), DataEntry((("contest_" + toString(contestNewNumber)) + "_finishheight"), contestFinishHeight), DataEntry((("contest_" + toString(contestNewNumber)) + "_status"), RUNNING), DataEntry((("contest_" + toString(contestNewNumber)) + "_betcounter"), 0), DataEntry((("contest_" + toString(contestNewNumber)) + "_betcost"), contestBetCost)])
100100 }
101101 }
102102
103103
104104
105105 @Callable(i)
106106 func bet (currencyValue) = {
107107 let account = toBase58String(i.caller.bytes)
108108 let pmt = extract(i.payment)
109109 let contestCurrNumber = getNumByKey("contest_currentnumber")
110110 let contestStartHeight = getNumByKey((("contest_" + toString(contestCurrNumber)) + "_startheight"))
111111 let contestFinishHeight = getNumByKey((("contest_" + toString(contestCurrNumber)) + "_finishheight"))
112112 let contestBetCounter = getNumByKey((("contest_" + toString(contestCurrNumber)) + "_betcounter"))
113113 let contestCurrStatus = getStrByKey((("contest_" + toString(contestCurrNumber)) + "_status"))
114114 let contestCurrBetCost = getNumByKey((("contest_" + toString(contestCurrNumber)) + "_betcost"))
115115 let thisBetId = (contestBetCounter + 1)
116116 let contestStatus = getStrByKey((("contest_" + toString(contestCurrNumber)) + "_status"))
117117 let existingBetBetId = getNumByKey(((("bet_" + toString(contestCurrNumber)) + "_") + toString(currencyValue)))
118118 let existingBetAccount = getBetAccount(existingBetBetId)
119119 if ((height > (contestFinishHeight - (2 * 1440))))
120120 then throw("You cannot bet anymore at this height.")
121121 else if ((contestCurrStatus != RUNNING))
122122 then throw(("Invalid status: you cannot bet now, contest status is: " + contestCurrStatus))
123123 else if (if ((pmt.assetId != WLT))
124124 then true
125125 else (pmt.amount != contestCurrBetCost))
126126 then throw(((("You must pay at least: " + toString(contestCurrBetCost)) + " WLT to bet. You paid: ") + toString(pmt.amount)))
127127 else if (if ((existingBetAccount != NONE))
128128 then (existingBetAccount != account)
129129 else false)
130130 then throw(((((("Another user: " + existingBetAccount) + " did bet already on rate: ") + toString(currencyValue)) + " betID:") + toString(existingBetBetId)))
131131 else WriteSet([DataEntry((((("bet_" + toString(contestCurrNumber)) + "_") + toString(thisBetId)) + "_owner"), account), DataEntry(((("bet_" + toString(contestCurrNumber)) + "_") + toString(currencyValue)), thisBetId), DataEntry((("contest_" + toString(contestCurrNumber)) + "_betcounter"), thisBetId)])
132132 }
133133
134134
135135
136136 @Callable(i)
137137 func closecontest () = {
138138 let currencyRate = getExtWAVESUSDCurrencyRate()
139139 let contestCurrNumber = getNumByKey("contest_currentnumber")
140140 let winningBetBetId = getNumByKey(((("bet_" + toString(contestCurrNumber)) + "_") + toString(currencyRate)))
141141 let winningBetAccount = getBetAccount(winningBetBetId)
142142 let contestFinishHeight = getNumByKey((("contest_" + toString(contestCurrNumber)) + "_finishheight"))
143143 let account = toBase58String(i.caller.bytes)
144144 let balance = wavesBalance(this)
145145 let contestCurrStatus = getStrByKey((("contest_" + toString(contestCurrNumber)) + "_status"))
146146 let writeStatistics = WriteSet([DataEntry((("contest_" + toString(contestCurrNumber)) + "_status"), CLOSED), DataEntry((("contest_" + toString(contestCurrNumber)) + "_winner"), winningBetAccount), DataEntry((("contest_" + toString(contestCurrNumber)) + "_currencyrate"), currencyRate), DataEntry((("contest_" + toString(contestCurrNumber)) + "_height"), height)])
147147 if (if ((contestFinishHeight > height))
148148 then (account != DAPPOWNER)
149149 else false)
150150 then throw(((("account: " + account) + ": Cannot close the contest before height:") + toString(contestFinishHeight)))
151151 else if ((contestCurrStatus != RUNNING))
152152 then throw(("Cannot close a contest in status: " + contestCurrStatus))
153153 else if ((winningBetAccount != NONE))
154154 then {
155155 let WLTShareRevenue = ((assetBalance(this, WLT) * 5) / 100)
156156 let WLTShareBurn = ((assetBalance(this, WLT) * 90) / 100)
157157 let winTransfer = TransferSet([ScriptTransfer(extract(addressFromString(winningBetAccount)), (((wavesBalance(this) * 99) / 100) - FEE), unit), ScriptTransfer(extract(addressFromString(ORACLEWALLET)), WLTShareRevenue, WLT), ScriptTransfer(extract(addressFromString(WAVESKITWALLET)), WLTShareRevenue, WLT), ScriptTransfer(extract(addressFromString(WLTBURNWALLET)), WLTShareBurn, WLT)])
158158 ScriptResult(WriteSet([DataEntry((("contest_" + toString(contestCurrNumber)) + "_status"), CLOSED), DataEntry((("contest_" + toString(contestCurrNumber)) + "_winner"), winningBetAccount), DataEntry((("contest_" + toString(contestCurrNumber)) + "_currencyrate"), currencyRate), DataEntry((("contest_" + toString(contestCurrNumber)) + "_height"), height)]), winTransfer)
159159 }
160160 else WriteSet([DataEntry((("contest_" + toString(contestCurrNumber)) + "_status"), CLOSED), DataEntry((("contest_" + toString(contestCurrNumber)) + "_winner"), winningBetAccount), DataEntry((("contest_" + toString(contestCurrNumber)) + "_currencyrate"), currencyRate), DataEntry((("contest_" + toString(contestCurrNumber)) + "_height"), height)])
161161 }
162162
163163
164164 @Verifier(tx)
165165 func verify () = match tx {
166166 case _: SetScriptTransaction|DataTransaction =>
167167 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
168168 case _: InvokeScriptTransaction =>
169169 true
170170 case _ =>
171171 true
172172 }
173173

github/deemru/w8io/873ac7e 
77.53 ms