tx · 5jxQ5S6YKk4gWSMpx5JcbrYur5nVYfuSSmb6h6CVi3aW

3N5mwuqT6dXpbqwT5VKDXzGJJ6c14rKqxS7:  -0.01400000 Waves

2019.11.08 10:14 [755659] smart account 3N5mwuqT6dXpbqwT5VKDXzGJJ6c14rKqxS7 > SELF 0.00000000 Waves

{ "type": 13, "id": "5jxQ5S6YKk4gWSMpx5JcbrYur5nVYfuSSmb6h6CVi3aW", "fee": 1400000, "feeAssetId": null, "timestamp": 1573197248741, "version": 1, "sender": "3N5mwuqT6dXpbqwT5VKDXzGJJ6c14rKqxS7", "senderPublicKey": "Gxi9GKByT2CYHqPr6ZTohMDmHRGAgE8uBM6R4QXfvtxK", "proofs": [ "cJMs28J3JB6LvsdTqVGY7iWRACP5Ms5UyFaxwbxDCPQLvbFZGXdYLMUSRQf9frhxeGLsceFfegwjzLtTJ2ktzcN" ], "script": "base64:AAIDAAAAAAAAABMIARIDCgEIEgMKAQESAwoBARIAAAAADgAAAAAHUlVOTklORwIAAAAHUlVOTklORwAAAAAGQ0xPU0VEAgAAAAZDTE9TRUQAAAAACENBTkNFTEVEAgAAAAhDQU5DRUxFRAAAAAAJREFQUE9XTkVSAgAAACMzTjVtd3VxVDZkWHBicXdUNVZLRFh6R0pKNmMxNHJLcXhTNwAAAAAMT1JBQ0xFV0FMTEVUAgAAACMzTkFjb2VXZFVUV244Y3NYSlBHNDd2MUZqdGpjZnF4YjV0dQAAAAAOV0FWRVNLSVRXQUxMRVQCAAAAIzNNcVBwYldQUnNaRm9UOVg3NHFXb2NVNEJweXBHRVBoaUNuAAAAAApCVVJOV0FMTEVUAgAAACMzTXBDYkREamtTcmZTMVhrUHBtNzFpWmo1RFExUnBCUlJodAAAAAAFV0FWRVMCAAAABVdBVkVTAAAAAAROT05FAgAAAAROT05FAAAAAANGRUUAAAAAAAANu6AAAAAAA1dMVAEAAAAgXc1YMiAxtU0669iAvoWYChIkz8rePUfYvMDdGTUOq6oBAAAAC2dldE51bUJ5S2V5AAAAAQAAAANrZXkEAAAAA251bQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAUAAAADbnVtAQAAAAtnZXRTdHJCeUtleQAAAAEAAAADa2V5BAAAAANzdHIEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEFAAAABE5PTkUFAAAAA3N0cgEAAAAaZ2V0RXh0V0FWRVNVU0RDdXJyZW5jeVJhdGUAAAAABAAAAA1vcmFjbGVBZGRyZXNzCQEAAAAHZXh0cmFjdAAAAAEJAQAAABFhZGRyZXNzRnJvbVN0cmluZwAAAAEFAAAADE9SQUNMRVdBTExFVAQAAAAUV0FWRVNVU0RDdXJyZW5jeVJhdGUEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAANb3JhY2xlQWRkcmVzcwIAAAALd2F2ZXNfdXNkXzIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAUAAAAUV0FWRVNVU0RDdXJyZW5jeVJhdGUAAAAEAAAAAWkBAAAAEHNldENvbnRlc3RTdGF0dXMAAAABAAAADWNvbnRlc3RTdGF0dXMEAAAAB2FjY291bnQJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAARY29udGVzdEN1cnJOdW1iZXIJAQAAAAtnZXROdW1CeUtleQAAAAECAAAAFWNvbnRlc3RfY3VycmVudG51bWJlcgMJAQAAAAIhPQAAAAIFAAAAB2FjY291bnQFAAAACURBUFBPV05FUgkAAAIAAAABAgAAACdPbmx5IGRBUFAgT3duZXIgY2FuIHNldCBDb250ZXN0IFN0YXR1cy4DAwkBAAAAAiE9AAAAAgUAAAANY29udGVzdFN0YXR1cwUAAAAIQ0FOQ0VMRUQJAQAAAAIhPQAAAAIFAAAADWNvbnRlc3RTdGF0dXMFAAAABkNMT1NFRAcJAAACAAAAAQkAASwAAAACAgAAABBJbnZhbGlkIHN0YXR1czogBQAAAA1jb250ZXN0U3RhdHVzCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIY29udGVzdF8JAAGkAAAAAQUAAAARY29udGVzdEN1cnJOdW1iZXICAAAAB19zdGF0dXMFAAAADWNvbnRlc3RTdGF0dXMFAAAAA25pbAAAAAFpAQAAABdzZXRDb250ZXN0Q29uZmlndXJhdGlvbgAAAAEAAAAOY29udGVzdEJldENvc3QEAAAAB2FjY291bnQJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAARY29udGVzdEN1cnJOdW1iZXIJAQAAAAtnZXROdW1CeUtleQAAAAECAAAAFWNvbnRlc3RfY3VycmVudG51bWJlcgQAAAARY29udGVzdEN1cnJTdGF0dXMJAQAAAAtnZXRTdHJCeUtleQAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAhjb250ZXN0XwkAAaQAAAABBQAAABFjb250ZXN0Q3Vyck51bWJlcgIAAAAHX3N0YXR1cwQAAAAQY29udGVzdE5ld051bWJlcgkAAGQAAAACBQAAABFjb250ZXN0Q3Vyck51bWJlcgAAAAAAAAAAAQQAAAAHYmFsYW5jZQkBAAAADHdhdmVzQmFsYW5jZQAAAAEFAAAABHRoaXMDCQEAAAACIT0AAAACBQAAAAdhY2NvdW50BQAAAAlEQVBQT1dORVIJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAA3T25seSBkQVBQIE93bmVyIGNhbiBDb25maWd1cmUgQ29udGVzdC4gQ2FsbGVyIGFjY291bnQ6IAUAAAAHYWNjb3VudAIAAAANIGRhcHAgb3duZXI6IAUAAAAJREFQUE9XTkVSAwkAAAAAAAACBQAAABFjb250ZXN0Q3VyclN0YXR1cwUAAAAHUlVOTklORwkAAAIAAAABCQABLAAAAAICAAAAQFlvdSBjYW5ub3QgY29uZmlndXJlIGEgbmV3IENvbnRlc3Qgd2hpbGUgb2xkIENvbnRlc3Qgc3RhdHVzIGlzOiAFAAAAEWNvbnRlc3RDdXJyU3RhdHVzBAAAABNjb250ZXN0RmluaXNoSGVpZ2h0CQAAZAAAAAIFAAAABmhlaWdodAkAAGgAAAACAAAAAAAAAAAGAAAAAAAAAAWgCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAABVjb250ZXN0X2N1cnJlbnRudW1iZXIFAAAAEGNvbnRlc3ROZXdOdW1iZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhjb250ZXN0XwkAAaQAAAABBQAAABBjb250ZXN0TmV3TnVtYmVyAgAAAA1fZmluaXNoaGVpZ2h0BQAAABNjb250ZXN0RmluaXNoSGVpZ2h0CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIY29udGVzdF8JAAGkAAAAAQUAAAAQY29udGVzdE5ld051bWJlcgIAAAAHX3N0YXR1cwUAAAAHUlVOTklORwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAACGNvbnRlc3RfCQABpAAAAAEFAAAAEGNvbnRlc3ROZXdOdW1iZXICAAAAC19iZXRjb3VudGVyAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIY29udGVzdF8JAAGkAAAAAQUAAAAQY29udGVzdE5ld051bWJlcgIAAAAIX2JldGNvc3QFAAAADmNvbnRlc3RCZXRDb3N0BQAAAANuaWwAAAABaQEAAAADYmV0AAAAAQAAAA1jdXJyZW5jeVZhbHVlBAAAAAdhY2NvdW50CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50BAAAABFjb250ZXN0Q3Vyck51bWJlcgkBAAAAC2dldE51bUJ5S2V5AAAAAQIAAAAVY29udGVzdF9jdXJyZW50bnVtYmVyBAAAABJjb250ZXN0U3RhcnRIZWlnaHQJAQAAAAtnZXROdW1CeUtleQAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAhjb250ZXN0XwkAAaQAAAABBQAAABFjb250ZXN0Q3Vyck51bWJlcgIAAAAMX3N0YXJ0aGVpZ2h0BAAAABNjb250ZXN0RmluaXNoSGVpZ2h0CQEAAAALZ2V0TnVtQnlLZXkAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAIY29udGVzdF8JAAGkAAAAAQUAAAARY29udGVzdEN1cnJOdW1iZXICAAAADV9maW5pc2hoZWlnaHQEAAAAEWNvbnRlc3RDdXJyU3RhdHVzCQEAAAALZ2V0U3RyQnlLZXkAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAIY29udGVzdF8JAAGkAAAAAQUAAAARY29udGVzdEN1cnJOdW1iZXICAAAAB19zdGF0dXMEAAAAEmNvbnRlc3RDdXJyQmV0Q29zdAkBAAAAC2dldE51bUJ5S2V5AAAAAQkAASwAAAACCQABLAAAAAICAAAACGNvbnRlc3RfCQABpAAAAAEFAAAAEWNvbnRlc3RDdXJyTnVtYmVyAgAAAAhfYmV0Y29zdAQAAAANY29udGVzdFN0YXR1cwkBAAAAC2dldFN0ckJ5S2V5AAAAAQkAASwAAAACCQAB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ZW5jeVJhdGUAAAAABAAAABFjb250ZXN0Q3Vyck51bWJlcgkBAAAAC2dldE51bUJ5S2V5AAAAAQIAAAAVY29udGVzdF9jdXJyZW50bnVtYmVyBAAAABF3aW5uaW5nQmV0QWNjb3VudAkBAAAAC2dldFN0ckJ5S2V5AAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAEYmV0XwkAAaQAAAABBQAAABFjb250ZXN0Q3Vyck51bWJlcgIAAAABXwkAAaQAAAABBQAAAAxjdXJyZW5jeVJhdGUEAAAAE2NvbnRlc3RGaW5pc2hIZWlnaHQJAQAAAAtnZXROdW1CeUtleQAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAhjb250ZXN0XwkAAaQAAAABBQAAABFjb250ZXN0Q3Vyck51bWJlcgIAAAANX2ZpbmlzaGhlaWdodAQAAAAHYWNjb3VudAkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAdiYWxhbmNlCQEAAAAMd2F2ZXNCYWxhbmNlAAAAAQUAAAAEdGhpcwQAAAARY29udGVzdEN1cnJTdGF0dXMJAQAAAAtnZXRTdHJCeUtleQAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAhjb250ZXN0XwkAAaQAAAABBQAAABFjb250ZXN0Q3Vyck51bWJlcgIAAAAHX3N0YXR1cwQAAAAUY29udGVzdEN1cnJCZXRzVG90YWwJAQAAAAtnZXROdW1CeUtleQAAAAEJAAEsAAAAAgkAASwAAAACAgAAAARiZXRfCQABpAAAAAEFAAAAEWNvbnRlc3RDdXJyTnVtYmVyAgAAAApfYmV0c3RvdGFsAwkBAAAAAiE9AAAAAgUAAAAHYWNjb3VudAUAAAAJREFQUE9XTkVSCQAAAgAAAAECAAAAIk9ubHkgZEFQUCBPd25lciBjYW4gQ2xvc2UgQ29udGVzdC4DCQAAZgAAAAIFAAAAE2NvbnRlc3RGaW5pc2hIZWlnaHQFAAAABmhlaWdodAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAlhY2NvdW50OiAFAAAAB2FjY291bnQCAAAAKTogQ2Fubm90IGNsb3NlIHRoZSBjb250ZXN0IGJlZm9yZSBoZWlnaHQ6CQABpAAA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", "chainId": 84, "height": 755659, "spentComplexity": 0 } View: original | compacted Prev: HP7c3desixu5kFrADLqx9M4E97BSogC5yW7i4PfAomn7 Next: 8RCmo8kXqDN2wjZaG16ySPH9xGo2ANMTE5YhrH6L5tzS Diff:
OldNewDifferences
1212 let ORACLEWALLET = "3NAcoeWdUTWn8csXJPG47v1Fjtjcfqxb5tu"
1313
1414 let WAVESKITWALLET = "3MqPpbWPRsZFoT9X74qWocU4BpypGEPhiCn"
15+
16+let BURNWALLET = "3MpCbDDjkSrfS1XkPpm71iZj5DQ1RpBRRht"
1517
1618 let WAVES = "WAVES"
1719
101103 let contestStatus = getStrByKey((("contest_" + toString(contestCurrNumber)) + "_status"))
102104 let accountBetsNumber = getNumByKey((((("contest_" + toString(contestCurrNumber)) + "_") + account) + "_bets"))
103105 let existingBetAccount = getStrByKey(((("bet_" + toString(contestCurrNumber)) + "_") + toString(currencyValue)))
106+ let contestCurrBetsTotal = getNumByKey((("bet_" + toString(contestCurrNumber)) + "_betstotal"))
104107 if ((height > (contestFinishHeight - (2 * 1440))))
105108 then throw("You cannot bet anymore at this height.")
106109 else if ((contestCurrStatus != RUNNING))
115118 then throw((("Another user: " + existingBetAccount) + " did bet already on this rate."))
116119 else if ((accountBetsNumber >= 1))
117120 then throw("You can do at most 1 bet.")
118- else WriteSet([DataEntry(((("bet_" + toString(contestCurrNumber)) + "_") + toString(currencyValue)), account), DataEntry((((("contest_" + toString(contestCurrNumber)) + "_") + account) + "_bets"), (accountBetsNumber + 1))])
121+ else WriteSet([DataEntry(((("bet_" + toString(contestCurrNumber)) + "_") + toString(currencyValue)), account), DataEntry((((("contest_" + toString(contestCurrNumber)) + "_") + account) + "_bets"), (accountBetsNumber + 1)), DataEntry((("contest_" + toString(contestCurrNumber)) + "_betstotal"), (contestCurrBetsTotal + pmt.amount))])
119122 }
120123
121124
129132 let account = toBase58String(i.caller.bytes)
130133 let balance = wavesBalance(this)
131134 let contestCurrStatus = getStrByKey((("contest_" + toString(contestCurrNumber)) + "_status"))
135+ let contestCurrBetsTotal = getNumByKey((("bet_" + toString(contestCurrNumber)) + "_betstotal"))
132136 if ((account != DAPPOWNER))
133137 then throw("Only dAPP Owner can Close Contest.")
134138 else if ((contestFinishHeight > height))
140144 let WLTOracleShareRevenue = ((assetBalance(this, WLT) * 1) / 100)
141145 let WLTWavesKitShareRevenue = ((assetBalance(this, WLT) * 4) / 100)
142146 let WLTPrize = ((assetBalance(this, WLT) * 95) / 100)
143- let winTransfer = TransferSet([ScriptTransfer(extract(addressFromString(winningBetAccount)), WLTPrize, WLT), ScriptTransfer(extract(addressFromString(ORACLEWALLET)), WLTOracleShareRevenue, WLT), ScriptTransfer(extract(addressFromString(WAVESKITWALLET)), WLTWavesKitShareRevenue, WLT)])
147+ let winTransfer = TransferSet([ScriptTransfer(extract(addressFromString(winningBetAccount)), WLTPrize, WLT), ScriptTransfer(extract(addressFromString(ORACLEWALLET)), WLTOracleShareRevenue, WLT), ScriptTransfer(extract(addressFromString(WAVESKITWALLET)), WLTWavesKitShareRevenue, WLT), ScriptTransfer(extract(addressFromString(BURNWALLET)), contestCurrBetsTotal, WLT)])
144148 ScriptResult(WriteSet([DataEntry((("contest_" + toString(contestCurrNumber)) + "_status"), CLOSED), DataEntry((("contest_" + toString(contestCurrNumber)) + "_winner"), winningBetAccount), DataEntry((("contest_" + toString(contestCurrNumber)) + "_rateheight"), height), DataEntry((("contest_" + toString(contestCurrNumber)) + "_currencyrate"), currencyRate), DataEntry((("contest_" + toString(contestCurrNumber)) + "_prize"), WLTPrize)]), winTransfer)
145149 }
146150 else WriteSet([DataEntry((("contest_" + toString(contestCurrNumber)) + "_status"), CLOSED), DataEntry((("contest_" + toString(contestCurrNumber)) + "_winner"), winningBetAccount), DataEntry((("contest_" + toString(contestCurrNumber)) + "_currencyrate"), currencyRate), DataEntry((("contest_" + toString(contestCurrNumber)) + "_prize"), 0)])
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 = "3N5mwuqT6dXpbqwT5VKDXzGJJ6c14rKqxS7"
1111
1212 let ORACLEWALLET = "3NAcoeWdUTWn8csXJPG47v1Fjtjcfqxb5tu"
1313
1414 let WAVESKITWALLET = "3MqPpbWPRsZFoT9X74qWocU4BpypGEPhiCn"
15+
16+let BURNWALLET = "3MpCbDDjkSrfS1XkPpm71iZj5DQ1RpBRRht"
1517
1618 let WAVES = "WAVES"
1719
1820 let NONE = "NONE"
1921
2022 let FEE = 900000
2123
2224 let WLT = base58'7KAXNTswj6947a6cVpGhVrh1utWpLcjwf8AFpWCtuMT7'
2325
2426 func getNumByKey (key) = {
2527 let num = match getInteger(this, key) {
2628 case a: Int =>
2729 a
2830 case _ =>
2931 0
3032 }
3133 num
3234 }
3335
3436
3537 func getStrByKey (key) = {
3638 let str = match getString(this, key) {
3739 case a: String =>
3840 a
3941 case _ =>
4042 NONE
4143 }
4244 str
4345 }
4446
4547
4648 func getExtWAVESUSDCurrencyRate () = {
4749 let oracleAddress = extract(addressFromString(ORACLEWALLET))
4850 let WAVESUSDCurrencyRate = match getInteger(oracleAddress, "waves_usd_2") {
4951 case a: Int =>
5052 a
5153 case _ =>
5254 0
5355 }
5456 WAVESUSDCurrencyRate
5557 }
5658
5759
5860 @Callable(i)
5961 func setContestStatus (contestStatus) = {
6062 let account = toBase58String(i.caller.bytes)
6163 let contestCurrNumber = getNumByKey("contest_currentnumber")
6264 if ((account != DAPPOWNER))
6365 then throw("Only dAPP Owner can set Contest Status.")
6466 else if (if ((contestStatus != CANCELED))
6567 then (contestStatus != CLOSED)
6668 else false)
6769 then throw(("Invalid status: " + contestStatus))
6870 else WriteSet([DataEntry((("contest_" + toString(contestCurrNumber)) + "_status"), contestStatus)])
6971 }
7072
7173
7274
7375 @Callable(i)
7476 func setContestConfiguration (contestBetCost) = {
7577 let account = toBase58String(i.caller.bytes)
7678 let contestCurrNumber = getNumByKey("contest_currentnumber")
7779 let contestCurrStatus = getStrByKey((("contest_" + toString(contestCurrNumber)) + "_status"))
7880 let contestNewNumber = (contestCurrNumber + 1)
7981 let balance = wavesBalance(this)
8082 if ((account != DAPPOWNER))
8183 then throw(((("Only dAPP Owner can Configure Contest. Caller account: " + account) + " dapp owner: ") + DAPPOWNER))
8284 else if ((contestCurrStatus == RUNNING))
8385 then throw(("You cannot configure a new Contest while old Contest status is: " + contestCurrStatus))
8486 else {
8587 let contestFinishHeight = (height + (6 * 1440))
8688 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)])
8789 }
8890 }
8991
9092
9193
9294 @Callable(i)
9395 func bet (currencyValue) = {
9496 let account = toBase58String(i.caller.bytes)
9597 let pmt = extract(i.payment)
9698 let contestCurrNumber = getNumByKey("contest_currentnumber")
9799 let contestStartHeight = getNumByKey((("contest_" + toString(contestCurrNumber)) + "_startheight"))
98100 let contestFinishHeight = getNumByKey((("contest_" + toString(contestCurrNumber)) + "_finishheight"))
99101 let contestCurrStatus = getStrByKey((("contest_" + toString(contestCurrNumber)) + "_status"))
100102 let contestCurrBetCost = getNumByKey((("contest_" + toString(contestCurrNumber)) + "_betcost"))
101103 let contestStatus = getStrByKey((("contest_" + toString(contestCurrNumber)) + "_status"))
102104 let accountBetsNumber = getNumByKey((((("contest_" + toString(contestCurrNumber)) + "_") + account) + "_bets"))
103105 let existingBetAccount = getStrByKey(((("bet_" + toString(contestCurrNumber)) + "_") + toString(currencyValue)))
106+ let contestCurrBetsTotal = getNumByKey((("bet_" + toString(contestCurrNumber)) + "_betstotal"))
104107 if ((height > (contestFinishHeight - (2 * 1440))))
105108 then throw("You cannot bet anymore at this height.")
106109 else if ((contestCurrStatus != RUNNING))
107110 then throw(("Invalid status: you cannot bet now, contest status is: " + contestCurrStatus))
108111 else if (if ((pmt.assetId != WLT))
109112 then true
110113 else (pmt.amount != contestCurrBetCost))
111114 then throw(((("You must pay at least: " + toString(contestCurrBetCost)) + " WLT to bet. You paid: ") + toString(pmt.amount)))
112115 else if (if ((existingBetAccount != NONE))
113116 then (existingBetAccount != account)
114117 else false)
115118 then throw((("Another user: " + existingBetAccount) + " did bet already on this rate."))
116119 else if ((accountBetsNumber >= 1))
117120 then throw("You can do at most 1 bet.")
118- else WriteSet([DataEntry(((("bet_" + toString(contestCurrNumber)) + "_") + toString(currencyValue)), account), DataEntry((((("contest_" + toString(contestCurrNumber)) + "_") + account) + "_bets"), (accountBetsNumber + 1))])
121+ else WriteSet([DataEntry(((("bet_" + toString(contestCurrNumber)) + "_") + toString(currencyValue)), account), DataEntry((((("contest_" + toString(contestCurrNumber)) + "_") + account) + "_bets"), (accountBetsNumber + 1)), DataEntry((("contest_" + toString(contestCurrNumber)) + "_betstotal"), (contestCurrBetsTotal + pmt.amount))])
119122 }
120123
121124
122125
123126 @Callable(i)
124127 func closecontest () = {
125128 let currencyRate = getExtWAVESUSDCurrencyRate()
126129 let contestCurrNumber = getNumByKey("contest_currentnumber")
127130 let winningBetAccount = getStrByKey(((("bet_" + toString(contestCurrNumber)) + "_") + toString(currencyRate)))
128131 let contestFinishHeight = getNumByKey((("contest_" + toString(contestCurrNumber)) + "_finishheight"))
129132 let account = toBase58String(i.caller.bytes)
130133 let balance = wavesBalance(this)
131134 let contestCurrStatus = getStrByKey((("contest_" + toString(contestCurrNumber)) + "_status"))
135+ let contestCurrBetsTotal = getNumByKey((("bet_" + toString(contestCurrNumber)) + "_betstotal"))
132136 if ((account != DAPPOWNER))
133137 then throw("Only dAPP Owner can Close Contest.")
134138 else if ((contestFinishHeight > height))
135139 then throw(((("account: " + account) + ": Cannot close the contest before height:") + toString(contestFinishHeight)))
136140 else if ((contestCurrStatus != RUNNING))
137141 then throw(("Cannot close a contest in status: " + contestCurrStatus))
138142 else if ((winningBetAccount != NONE))
139143 then {
140144 let WLTOracleShareRevenue = ((assetBalance(this, WLT) * 1) / 100)
141145 let WLTWavesKitShareRevenue = ((assetBalance(this, WLT) * 4) / 100)
142146 let WLTPrize = ((assetBalance(this, WLT) * 95) / 100)
143- let winTransfer = TransferSet([ScriptTransfer(extract(addressFromString(winningBetAccount)), WLTPrize, WLT), ScriptTransfer(extract(addressFromString(ORACLEWALLET)), WLTOracleShareRevenue, WLT), ScriptTransfer(extract(addressFromString(WAVESKITWALLET)), WLTWavesKitShareRevenue, WLT)])
147+ let winTransfer = TransferSet([ScriptTransfer(extract(addressFromString(winningBetAccount)), WLTPrize, WLT), ScriptTransfer(extract(addressFromString(ORACLEWALLET)), WLTOracleShareRevenue, WLT), ScriptTransfer(extract(addressFromString(WAVESKITWALLET)), WLTWavesKitShareRevenue, WLT), ScriptTransfer(extract(addressFromString(BURNWALLET)), contestCurrBetsTotal, WLT)])
144148 ScriptResult(WriteSet([DataEntry((("contest_" + toString(contestCurrNumber)) + "_status"), CLOSED), DataEntry((("contest_" + toString(contestCurrNumber)) + "_winner"), winningBetAccount), DataEntry((("contest_" + toString(contestCurrNumber)) + "_rateheight"), height), DataEntry((("contest_" + toString(contestCurrNumber)) + "_currencyrate"), currencyRate), DataEntry((("contest_" + toString(contestCurrNumber)) + "_prize"), WLTPrize)]), winTransfer)
145149 }
146150 else WriteSet([DataEntry((("contest_" + toString(contestCurrNumber)) + "_status"), CLOSED), DataEntry((("contest_" + toString(contestCurrNumber)) + "_winner"), winningBetAccount), DataEntry((("contest_" + toString(contestCurrNumber)) + "_currencyrate"), currencyRate), DataEntry((("contest_" + toString(contestCurrNumber)) + "_prize"), 0)])
147151 }
148152
149153
150154 @Verifier(tx)
151155 func verify () = match tx {
152156 case _: SetScriptTransaction|DataTransaction =>
153157 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
154158 case _: InvokeScriptTransaction =>
155159 true
156160 case _ =>
157161 true
158162 }
159163

github/deemru/w8io/6500d08 
53.82 ms