tx · 9zyoZV4p2Zr3MGLcHxtstmu74XuMaaVpxxTzSVyzc19Q

3Mu9qAjmg8fVTxxpwPZnBAH948ujt4m6Xvk:  -0.01000000 Waves

2021.10.15 00:54 [1746508] smart account 3Mu9qAjmg8fVTxxpwPZnBAH948ujt4m6Xvk > SELF 0.00000000 Waves

{ "type": 13, "id": "9zyoZV4p2Zr3MGLcHxtstmu74XuMaaVpxxTzSVyzc19Q", "fee": 1000000, "feeAssetId": null, "timestamp": 1634248506195, "version": 2, "chainId": 84, "sender": "3Mu9qAjmg8fVTxxpwPZnBAH948ujt4m6Xvk", "senderPublicKey": "8v9pmcXqHz9DTc5k1Z8duTYyDwykFxN3EzdZ9WAn3KXJ", "proofs": [ "2VjP83t8Cu6kugmkJRwzx4Hb4CFhhzifjfgcPfiXWTAXkKe1QNABhcYy9YRotLvnuQcUWzTS1orAdh5Yb5BccaqV" ], "script": "base64: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", "height": 1746508, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Dxmmapjih7X6uXGeptDJPXbQAP5KbF5nViKqnTLqRAXk Next: J7AfqSYcbRhSbR7ip51YqxyajwJKRiQxaA5XQtE9PLCE Diff:
OldNewDifferences
44 let gameNumberKey = "$GAME_NUMBER"
55
66 let lastPlayKey = "$LAST_PLAY"
7+
8+let testKey = "$TEST"
79
810 let WON = 1
911
6870 else false)
6971 then {
7072 let str = ((((((((((toString(WON) + "_WON_") + transactionId) + "_") + gameKey) + "_") + toString(guessStart)) + "-") + toString(guessEnd)) + "_") + toString(rand))
71- let writeLastPlay = WriteSet([DataEntry(lastPlayKey, rand), DataEntry(gameKey, str), DataEntry(gameNumberKey, (gameId + 1))])
73+ let payoutRate = (payoutcalc(((guessEnd - guessStart) + 1)) / 100)
74+ let writeLastPlay = WriteSet([DataEntry(lastPlayKey, rand), DataEntry(gameKey, str), DataEntry(gameNumberKey, (gameId + 1)), DataEntry(testKey, ((toString(payoutRate) + "_") + toString((payment.amount * payoutRate))))])
7275 ScriptResult(writeLastPlay, TransferSet([ScriptTransfer(i.caller, ((payment.amount * payoutcalc(((guessEnd - guessStart) + 1))) / 100), unit)]))
7376 }
7477 else {
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let gameNumberKey = "$GAME_NUMBER"
55
66 let lastPlayKey = "$LAST_PLAY"
7+
8+let testKey = "$TEST"
79
810 let WON = 1
911
1012 let LOSE = 2
1113
1214 func payoutcalc (number) = {
1315 let house = 6
1416 let base = 10000
1517 ((base * ((100 - 6) / 100)) / number)
1618 }
1719
1820
1921 func randomizer (i) = {
2022 let lastPlay = match getBinary(this, lastPlayKey) {
2123 case s: ByteVector =>
2224 s
2325 case _: Unit =>
2426 base58'2ee4oFDYriWJ9EMeR'
2527 case _ =>
2628 throw("Match error")
2729 }
2830 let rand = (((((lastPlay + i.transactionId) + i.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height))
2931 sha256(rand)
3032 }
3133
3234
3335 func startLotto (i,guessStart,guessEnd) = {
3436 let playLimit = (wavesBalance(this) / 100)
3537 let payment = extract(i.payment)
3638 if (!(isDefined(i.payment)))
3739 then throw("Should be with Payment in Waves")
3840 else if (isDefined(payment.assetId))
3941 then throw("Payment should be in Waves")
4042 else if ((payment.amount > playLimit))
4143 then throw(("Payment should be less than " + toString(playLimit)))
4244 else if ((0 > guessStart))
4345 then throw("guessStart and guessEnd Must be in between 0-99")
4446 else if ((guessEnd > 99))
4547 then throw("guessStart and guessEnd Must be in between 0-99")
4648 else if ((guessStart > guessEnd))
4749 then throw("guessStart and guessEnd Must be in between 0-99")
4850 else if ((5 > ((guessEnd - guessStart) + 1)))
4951 then throw("guessStart and guessEnd Must be at least 5 apart")
5052 else if ((((guessEnd - guessStart) + 1) > 95))
5153 then throw("guessStart and guessEnd Must not be at least 95 apart")
5254 else {
5355 let callerAddress = toBase58String(i.caller.bytes)
5456 let transactionId = toBase58String(i.transactionId)
5557 let randhash = randomizer(i)
5658 let rand = (toInt(randhash) % 100)
5759 let gameId = match getInteger(this, gameNumberKey) {
5860 case a: Int =>
5961 a
6062 case _: Unit =>
6163 1
6264 case _ =>
6365 throw("Match error")
6466 }
6567 let gameKey = ((callerAddress + "_") + toString(gameId))
6668 if (if (((guessEnd + 1) > rand))
6769 then (rand > (guessStart - 1))
6870 else false)
6971 then {
7072 let str = ((((((((((toString(WON) + "_WON_") + transactionId) + "_") + gameKey) + "_") + toString(guessStart)) + "-") + toString(guessEnd)) + "_") + toString(rand))
71- let writeLastPlay = WriteSet([DataEntry(lastPlayKey, rand), DataEntry(gameKey, str), DataEntry(gameNumberKey, (gameId + 1))])
73+ let payoutRate = (payoutcalc(((guessEnd - guessStart) + 1)) / 100)
74+ let writeLastPlay = WriteSet([DataEntry(lastPlayKey, rand), DataEntry(gameKey, str), DataEntry(gameNumberKey, (gameId + 1)), DataEntry(testKey, ((toString(payoutRate) + "_") + toString((payment.amount * payoutRate))))])
7275 ScriptResult(writeLastPlay, TransferSet([ScriptTransfer(i.caller, ((payment.amount * payoutcalc(((guessEnd - guessStart) + 1))) / 100), unit)]))
7376 }
7477 else {
7578 let str = ((((((((((toString(WON) + "_LOSE_") + transactionId) + "_") + gameKey) + "_") + toString(guessStart)) + "-") + toString(guessEnd)) + "_") + toString(rand))
7679 let writeLastPlay = WriteSet([DataEntry(lastPlayKey, rand), DataEntry(gameKey, str), DataEntry(gameNumberKey, (gameId + 1))])
7780 ScriptResult(writeLastPlay, TransferSet(nil))
7881 }
7982 }
8083 }
8184
8285
8386 @Callable(i)
8487 func zero2hero (guessStart,guessEnd) = startLotto(i, guessStart, guessEnd)
8588
8689

github/deemru/w8io/873ac7e 
26.64 ms