tx · uM2e7YNeGQZoyK4Hf8XHbNnL3LPWMUhjpVerfGunNjT

3P4NZR6ckE8aLC7Bogr5NXBzSi6p13DQg67:  -0.01400000 Waves

2019.12.24 22:35 [1853888] smart account 3P4NZR6ckE8aLC7Bogr5NXBzSi6p13DQg67 > SELF 0.00000000 Waves

{ "type": 13, "id": "uM2e7YNeGQZoyK4Hf8XHbNnL3LPWMUhjpVerfGunNjT", "fee": 1400000, "feeAssetId": null, "timestamp": 1577216138339, "version": 1, "sender": "3P4NZR6ckE8aLC7Bogr5NXBzSi6p13DQg67", "senderPublicKey": "Gx6Ph96SNt8iLRaGaYT14BgHA8mj5SBfMLaizdDU59gA", "proofs": [ "ThW8xAdcHKTPrKPVso9zsH4Maun7SauVTHCMjvbvxLTL8E2to8JJouzmW28TsNetKCcQSQ3wJT75Jq1uohjHhpV" ], "script": "base64:AAIDAAAAAAAAABMIARIDCgEIEgMKAQESAwoBARIAAAAADgAAAAAHUlVOTklORwIAAAAHUlVOTklORwAAAAAGQ0xPU0VEAgAAAAZDTE9TRUQAAAAACENBTkNFTEVEAgAAAAhDQU5DRUxFRAAAAAAJREFQUE9XTkVSAgAAACMzUDROWlI2Y2tFOGFMQzdCb2dyNU5YQnpTaTZwMTNEUWc2NwAAAAAMT1JBQ0xFV0FMTEVUAgAAACMzUFBUclRvM0F6UjU2TjdBcnpiVTNCcHE5ellNZ2NmMzlNawAAAAAOV0FWRVNLSVRXQUxMRVQCAAAAIzNQREVFTVJVM3RCSmZmYWc3c1JQbmp3RVE4R1pHaWtVV0JpAAAAAApCVVJOV0FMTEVUAgAAACMzUERpdFVrUDU5dk1takpOR2JUY05yTHA2cVVvNEJTb3FTRQAAAAAFV0FWRVMCAAAABVdBVkVTAAAAAAROT05FAgAAAAROT05FAAAAAANGRUUAAAAAAAANu6AAAAAAA1dMVAEAAAAgqJhrfto5nPqXt3gXMvb4/ZqblTP7XcYlZCjOVdN6v4cBAAAAC2dldE51bUJ5S2V5AAAAAQAAAANrZXkEAAAAA251bQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAUAAAADbnVtAQAAAAtnZXRTdHJCeUtleQAAAAEAAAADa2V5BAAAAANzdHIEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEFAAAABE5PTkUFAAAAA3N0cgEAAAAaZ2V0RXh0V0FWRVNVU0RDdXJyZW5jeVJhdGUAAAAABAAAAA1vcmFjbGVBZGRyZXNzCQEAAAAHZXh0cmFjdAAAAAEJAQAAABFhZGRyZXNzRnJvbVN0cmluZwAAAAEFAAAADE9SQUNMRVdBTExFVAQAAAAUV0FWRVNVU0RDdXJyZW5jeVJhdGUEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAANb3JhY2xlQWRkcmVzcwIAAAALd2F2ZXNfdXNkXzIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAUAAAAUV0FWRVNVU0RDdXJyZW5jeVJhdGUAAAAEAAAAAWkBAAAAEHNldENvbnRlc3RTdGF0dXMAAAABAAAADWNvbnRlc3RTdGF0dXMEAAAAB2FjY291bnQJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAARY29udGVzdEN1cnJOdW1iZXIJAQAAAAtnZXROdW1CeUtleQAAAAECAAAAFWNvbnRlc3RfY3VycmVudG51bWJlcgMJAQAAAAIhPQAAAAIFAAAAB2FjY291bnQFAAAACURBUFBPV05FUgkAAAIAAAABAgAAACdPbmx5IGRBUFAgT3duZXIgY2FuIHNldCBDb250ZXN0IFN0YXR1cy4DAwkBAAAAAiE9AAAAAgUAAAANY29udGVzdFN0YXR1cwUAAAAIQ0FOQ0VMRUQJAQAAAAIhPQAAAAIFAAAADWNvbnRlc3RTdGF0dXMFAAAABkNMT1NFRAcJAAACAAAAAQkAASwAAAACAgAAABBJbnZhbGlkIHN0YXR1czogBQAAAA1jb250ZXN0U3RhdHVzCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIY29udGVzdF8JAAGkAAAAAQUAAAARY29udGVzdEN1cnJOdW1iZXICAAAAB19zdGF0dXMFAAAADWNvbnRlc3RTdGF0dXMFAAAAA25pbAAAAAFpAQAAABdzZXRDb250ZXN0Q29uZmlndXJhdGlvbgAAAAEAAAAOY29udGVzdEJldENvc3QEAAAAB2FjY291bnQJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAARY29udGVzdEN1cnJOdW1iZXIJAQAAAAtnZXROdW1CeUtleQAAAAECAAAAFWNvbnRlc3RfY3VycmVudG51bWJlcgQAAAARY29udGVzdEN1cnJTdGF0dXMJAQAAAAtnZXRTdHJCeUtleQAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAhjb250ZXN0XwkAAaQAAAABBQAAABFjb250ZXN0Q3Vyck51bWJlcgIAAAAHX3N0YXR1cwQAAAAQY29udGVzdE5ld051bWJlcgkAAGQAAAACBQAAABFjb250ZXN0Q3Vyck51bWJlcgAAAAAAAAAAAQQAAAAHYmFsYW5jZQkBAAAADHdhdmVzQmFsYW5jZQAAAAEFAAAABHRoaXMDCQEAAAACIT0AAAACBQAAAAdhY2NvdW50BQAAAAlEQVBQT1dORVIJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAA3T25seSBkQVBQIE93bmVyIGNhbiBDb25maWd1cmUgQ29udGVzdC4gQ2FsbGVyIGFjY291bnQ6IAUAAAAHYWNjb3VudAIAAAANIGRhcHAgb3duZXI6IAUAAAAJREFQUE9XTkVSAwkAAAAAAAACBQAAABFjb250ZXN0Q3VyclN0YXR1cwUAAAAHUlVOTklORwkAAAIAAAABCQABLAAAAAICAAAAQFlvdSBjYW5ub3QgY29uZmlndXJlIGEgbmV3IENvbnRlc3Qgd2hpbGUgb2xkIENvbnRlc3Qgc3RhdHVzIGlzOiAFAAAAEWNvbnRlc3RDdXJyU3RhdHVzBAAAABNjb250ZXN0RmluaXNoSGVpZ2h0CQAAZAAAAAIFAAAABmhlaWdodAkAAGgAAAACAAAAAAAAAAAGAAAAAAAAAAWgCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAABVjb250ZXN0X2N1cnJlbnRudW1iZXIFAAAAEGNvbnRlc3ROZXdOdW1iZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhjb250ZXN0XwkAAaQAAAABBQAAABBjb250ZXN0TmV3TnVtYmVyAgAAAA1fZmluaXNoaGVpZ2h0BQAAABNjb250ZXN0RmluaXNoSGVpZ2h0CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIY29udGVzdF8JAAGkAAAAAQUAAAAQY29udGVzdE5ld051bWJlcgIAAAAHX3N0YXR1cwUAAAAHUlVOTklORwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAACGNvbnRlc3RfCQABpAAAAAEFAAAAEGNvbnRlc3ROZXdOdW1iZXICAAAAC19iZXRjb3VudGVyAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIY29udGVzdF8JAAGkAAAAAQUAAAAQY29udGVzdE5ld051bWJlcgIAAAAIX2JldGNvc3QFAAAADmNvbnRlc3RCZXRDb3N0BQAAAANuaWwAAAABaQEAAAADYmV0AAAAAQAAAA1jdXJyZW5jeVZhbHVlBAAAAAdhY2NvdW50CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50BAAAABFjb250ZXN0Q3Vyck51bWJlcgkBAAAAC2dldE51bUJ5S2V5AAAAAQIAAAAVY29udGVzdF9jdXJyZW50bnVtYmVyBAAAABJjb250ZXN0U3RhcnRIZWlnaHQJAQAAAAtnZXROdW1CeUtleQAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAhjb250ZXN0XwkAAaQAAAABBQAAABFjb250ZXN0Q3Vyck51bWJlcgIAAAAMX3N0YXJ0aGVpZ2h0BAAAABNjb250ZXN0RmluaXNoSGVpZ2h0CQEAAAALZ2V0TnVtQnlLZXkAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAIY29udGVzdF8JAAGkAAAAAQUAAAARY29udGVzdEN1cnJOdW1iZXICAAAADV9maW5pc2hoZWlnaHQEAAAAEWNvbnRlc3RDdXJyU3RhdHVzCQEAAAALZ2V0U3RyQnlLZXkAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAIY29udGVzdF8JAAGkAAAAAQUAAAARY29udGVzdEN1cnJOdW1iZXICAAAAB19zdGF0dXMEAAAAEmNvbnRlc3RDdXJyQmV0Q29zdAkBAAAAC2dldE51bUJ5S2V5AAAAAQkAASwAAAACCQABLAAAAAICAAAACGNvbnRlc3RfCQABpAAAAAEFAAAAEWNvbnRlc3RDdXJyTnVtYmVyAgAAAAhfYmV0Y29zdAQAAAANY29udGVzdFN0YXR1cwkBAAAAC2dldFN0ckJ5S2V5AAAAAQkAASwAAAACCQAB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", "chainId": 87, "height": 1853888, "spentComplexity": 0 } View: original | compacted Prev: YDvmFFBbzYWHEUpjzaX98cskqUrYgZwWT3yyaW65ShB Next: none Diff:
OldNewDifferences
99
1010 let DAPPOWNER = "3P4NZR6ckE8aLC7Bogr5NXBzSi6p13DQg67"
1111
12-let ORACLEWALLET = "3P7iPoYFtmxjDV6CJPR5gFWmPAUJSFoDSaZ"
12+let ORACLEWALLET = "3PPTrTo3AzR56N7ArzbU3Bpq9zYMgcf39Mk"
1313
1414 let WAVESKITWALLET = "3PDEEMRU3tBJffag7sRPnjwEQ8GZGikUWBi"
1515
4747
4848 func getExtWAVESUSDCurrencyRate () = {
4949 let oracleAddress = extract(addressFromString(ORACLEWALLET))
50- let WAVESUSDCurrencyRate = match getInteger(oracleAddress, "waves_usd_3") {
50+ let WAVESUSDCurrencyRate = match getInteger(oracleAddress, "waves_usd_2") {
5151 case a: Int =>
5252 a
5353 case _ =>
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 = "3P4NZR6ckE8aLC7Bogr5NXBzSi6p13DQg67"
1111
12-let ORACLEWALLET = "3P7iPoYFtmxjDV6CJPR5gFWmPAUJSFoDSaZ"
12+let ORACLEWALLET = "3PPTrTo3AzR56N7ArzbU3Bpq9zYMgcf39Mk"
1313
1414 let WAVESKITWALLET = "3PDEEMRU3tBJffag7sRPnjwEQ8GZGikUWBi"
1515
1616 let BURNWALLET = "3PDitUkP59vMmjJNGbTcNrLp6qUo4BSoqSE"
1717
1818 let WAVES = "WAVES"
1919
2020 let NONE = "NONE"
2121
2222 let FEE = 900000
2323
2424 let WLT = base58'CM8J4Z9HW3MdKgTxrpf3WYauXfjdu1zZKg19AGTicEYe'
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 getExtWAVESUSDCurrencyRate () = {
4949 let oracleAddress = extract(addressFromString(ORACLEWALLET))
50- let WAVESUSDCurrencyRate = match getInteger(oracleAddress, "waves_usd_3") {
50+ let WAVESUSDCurrencyRate = match getInteger(oracleAddress, "waves_usd_2") {
5151 case a: Int =>
5252 a
5353 case _ =>
5454 0
5555 }
5656 WAVESUSDCurrencyRate
5757 }
5858
5959
6060 @Callable(i)
6161 func setContestStatus (contestStatus) = {
6262 let account = toBase58String(i.caller.bytes)
6363 let contestCurrNumber = getNumByKey("contest_currentnumber")
6464 if ((account != DAPPOWNER))
6565 then throw("Only dAPP Owner can set Contest Status.")
6666 else if (if ((contestStatus != CANCELED))
6767 then (contestStatus != CLOSED)
6868 else false)
6969 then throw(("Invalid status: " + contestStatus))
7070 else WriteSet([DataEntry((("contest_" + toString(contestCurrNumber)) + "_status"), contestStatus)])
7171 }
7272
7373
7474
7575 @Callable(i)
7676 func setContestConfiguration (contestBetCost) = {
7777 let account = toBase58String(i.caller.bytes)
7878 let contestCurrNumber = getNumByKey("contest_currentnumber")
7979 let contestCurrStatus = getStrByKey((("contest_" + toString(contestCurrNumber)) + "_status"))
8080 let contestNewNumber = (contestCurrNumber + 1)
8181 let balance = wavesBalance(this)
8282 if ((account != DAPPOWNER))
8383 then throw(((("Only dAPP Owner can Configure Contest. Caller account: " + account) + " dapp owner: ") + DAPPOWNER))
8484 else if ((contestCurrStatus == RUNNING))
8585 then throw(("You cannot configure a new Contest while old Contest status is: " + contestCurrStatus))
8686 else {
8787 let contestFinishHeight = (height + (6 * 1440))
8888 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)])
8989 }
9090 }
9191
9292
9393
9494 @Callable(i)
9595 func bet (currencyValue) = {
9696 let account = toBase58String(i.caller.bytes)
9797 let pmt = extract(i.payment)
9898 let contestCurrNumber = getNumByKey("contest_currentnumber")
9999 let contestStartHeight = getNumByKey((("contest_" + toString(contestCurrNumber)) + "_startheight"))
100100 let contestFinishHeight = getNumByKey((("contest_" + toString(contestCurrNumber)) + "_finishheight"))
101101 let contestCurrStatus = getStrByKey((("contest_" + toString(contestCurrNumber)) + "_status"))
102102 let contestCurrBetCost = getNumByKey((("contest_" + toString(contestCurrNumber)) + "_betcost"))
103103 let contestStatus = getStrByKey((("contest_" + toString(contestCurrNumber)) + "_status"))
104104 let accountBetsNumber = getNumByKey((((("contest_" + toString(contestCurrNumber)) + "_") + account) + "_bets"))
105105 let existingBetAccount = getStrByKey(((("bet_" + toString(contestCurrNumber)) + "_") + toString(currencyValue)))
106106 let contestCurrBetsTotal = getNumByKey((("contest_" + toString(contestCurrNumber)) + "_betstotal"))
107107 if ((height > (contestFinishHeight - (2 * 1440))))
108108 then throw("You cannot bet anymore at this height.")
109109 else if ((contestCurrStatus != RUNNING))
110110 then throw(("Invalid status: you cannot bet now, contest status is: " + contestCurrStatus))
111111 else if (if ((pmt.assetId != WLT))
112112 then true
113113 else (pmt.amount != contestCurrBetCost))
114114 then throw(((("You must pay: " + toString(contestCurrBetCost)) + " WLT to bet. You paid: ") + toString(pmt.amount)))
115115 else if (if ((existingBetAccount != NONE))
116116 then (existingBetAccount != account)
117117 else false)
118118 then throw((("Another user: " + existingBetAccount) + " did bet already on this rate."))
119119 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))])
120120 }
121121
122122
123123
124124 @Callable(i)
125125 func closecontest () = {
126126 let currencyRate = getExtWAVESUSDCurrencyRate()
127127 let contestCurrNumber = getNumByKey("contest_currentnumber")
128128 let winningBetAccount = getStrByKey(((("bet_" + toString(contestCurrNumber)) + "_") + toString(currencyRate)))
129129 let contestFinishHeight = getNumByKey((("contest_" + toString(contestCurrNumber)) + "_finishheight"))
130130 let account = toBase58String(i.caller.bytes)
131131 let balance = wavesBalance(this)
132132 let contestCurrStatus = getStrByKey((("contest_" + toString(contestCurrNumber)) + "_status"))
133133 let contestCurrBetsTotal = getNumByKey((("contest_" + toString(contestCurrNumber)) + "_betstotal"))
134134 if ((account != DAPPOWNER))
135135 then throw("Only dAPP Owner can Close Contest.")
136136 else if ((contestFinishHeight > height))
137137 then throw(((("account: " + account) + ": Cannot close the contest before height:") + toString(contestFinishHeight)))
138138 else if ((contestCurrStatus != RUNNING))
139139 then throw(("Cannot close a contest in status: " + contestCurrStatus))
140140 else if ((winningBetAccount != NONE))
141141 then {
142142 let WLTbalance = assetBalance(this, WLT)
143143 let WLTPrize = (WLTbalance - contestCurrBetsTotal)
144144 let WLTOracleShareRevenue = ((WLTPrize * 2) / 100)
145145 let WLTWavesKitShareRevenue = ((WLTPrize * 3) / 100)
146146 let WLTWinner = ((WLTPrize * 95) / 100)
147147 let winTransfer = TransferSet([ScriptTransfer(extract(addressFromString(winningBetAccount)), WLTWinner, WLT), ScriptTransfer(extract(addressFromString(WAVESKITWALLET)), WLTWavesKitShareRevenue, WLT), ScriptTransfer(extract(addressFromString(ORACLEWALLET)), WLTOracleShareRevenue, WLT), ScriptTransfer(extract(addressFromString(BURNWALLET)), contestCurrBetsTotal, WLT)])
148148 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)
149149 }
150150 else 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"), 0)]), TransferSet([ScriptTransfer(extract(addressFromString(BURNWALLET)), contestCurrBetsTotal, WLT)]))
151151 }
152152
153153
154154 @Verifier(tx)
155155 func verify () = match tx {
156156 case _: SetScriptTransaction|DataTransaction =>
157157 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
158158 case _: InvokeScriptTransaction =>
159159 true
160160 case _ =>
161161 true
162162 }
163163

github/deemru/w8io/6500d08 
55.02 ms