tx · 6pczZxYRahQXyoDHAsn8MAcpCGYxrF7wTUSeJXovjerv

3N6hQF6HBBQ5JCKB8Xs17Q61wkG3VrLvbGd:  -0.10030000 Waves

2021.12.03 05:17 [1817488] smart account 3N6hQF6HBBQ5JCKB8Xs17Q61wkG3VrLvbGd > SELF 0.00000000 Waves

{ "type": 13, "id": "6pczZxYRahQXyoDHAsn8MAcpCGYxrF7wTUSeJXovjerv", "fee": 10030000, "feeAssetId": null, "timestamp": 1638497902620, "version": 2, "chainId": 84, "sender": "3N6hQF6HBBQ5JCKB8Xs17Q61wkG3VrLvbGd", "senderPublicKey": "7Hi4o6vBstRs79NMVMjEove52dmP87RAcvNDAXN8C4Wi", "proofs": [ "2zvpsQPjzCqZrgWf4j2Rxgwkn8TEvLdFZ2ayu8vjVhRuX4zdrs6Kq69jwf3xdfbKvT3iK3BVMLdbCoSPN15ED6xm" ], "script": "base64:AAIFAAAAAAAABJMIAhIAEgMKAQESAwoBARoPCgJhMRIJc2VwYXJhdG9yGhAKAmEyEgpnZXROZXdEZWNrGhQKAmEzEg5nZXRTaXhOZXdEZWNrcxoNCgJhNBIHZ2V0RGVjaxoKCgJhNRIEZGVjaxoVCgJhNhIPZ2V0UmFuZG9tTnVtYmVyGgsKAmE3EgVzYWx0MRoLCgJhOBIFc2FsdDIaEgoCYTkSDGFuc3dlcnNDb3VudBoKCgJiMRIEaGFzaBoLCgJiMhIFaW5kZXgaCgoCYjMSBHJhbmQaHQoCYjQSF2dldFByZXZpb3VzUmFuZG9tTnVtYmVyGg0KAmI1EgdhZGRyZXNzGg0KAmI2EgckbWF0Y2gwGhEKAmI3EgtnZXRQYXltZW50cxoJCgJiOBIDcG10GgoKAmI5EgRwbXQyGhIKAmMxEgxnZXRDYXJkVmFsdWUaEAoCYzISCnN0cmluZ0NhcmQaFAoCYzMSDmlzUGxheWVyV2lubmVyGhAKAmM0EgpjYXJkUGxheWVyGhAKAmM1EgpjYXJkQ2FzaW5vGhYKAmM2EhBnZXRBdmFpbGFibGVEZWNrGgoKAmM3EgR0aGlzGhMKAmM4Eg1hdmFpbGFibGVQcm9wGhAKAmM5EgpzdHJpbmdEZWNrGisKAmQxEiVnZXRQbGF5ZXJDYXJkQW5kUG9zaXRpb25BbmRVcGRhdGVEZWNrGgsKAmQyEgVtZUtleRoTCgJkMxINY2FsbGVyQWRkcmVzcxoNCgJkNBIHYXZEZWNrMhoSCgJkNRIMY2FyZFBvc2l0aW9uGgoKAmQ2EgRjYXJkGg0KAmQ3EgdhdkRlY2szGhUKAmQ4Eg9nZXRDdXJyZW50Um91bmQaEQoCZDkSC2N1c3RvbVJvdW5kGhIKAmUxEgxjdXJyZW50Um91bmQaEQoCZTISCyR0MDMyOTgzMzI0GgsKAmUzEgVyb3VuZBoMCgJlNBIGYXZEZWNrGhEKAmU1EgskdDAzODA0MzkxMRoYCgJlNhISY2FyZFBvc2l0aW9uUGxheWVyGg0KAmU3EgdhdkRlY2sxGhEKAmU4EgskdDAzOTE2NDAzNRoYCgJlORISY2FyZFBvc2l0aW9uQ2FzaW5vGhIKAmYxEgxjdXJyZW50RHJhd3MaEAoCZjISCnJvdW5kVG9Vc2UaDwoCZjMSCWJldEFtb3VudBoR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", "height": 1817488, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CidM7rFsnzzgXsPWFgTryr6VwMGBqtDhPTvy8iwvhyr Next: 3PUdTEN6Vzg4KtYyUqpLu7DJDXZsY5a545Q3F1hbj34o Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let casino = "3MtaCL4v1bjTabUqs7oU4ofS8fbai34WM1i"
5-
6-let WAVES = 1000000000
7-
8-let maxBet = (100 * WAVES)
9-
104 let separator = ","
115
126 func getNewDeck () = ["01C", "02C", "03C", "04C", "05C", "06C", "07C", "08C", "09C", "10C", "11C", "12C", "13C", "01D", "02D", "03D", "04D", "05D", "06D", "07D", "08D", "09D", "10D", "11D", "12D", "13D", "01H", "02H", "03H", "04H", "05H", "06H", "07H", "08H", "09H", "10H", "11H", "12H", "13H", "01S", "02S", "03S", "04S", "05S", "06S", "07S", "08S", "09S", "10S", "11S", "12S", "13S"]
9589
9690 func getCurrentRound (customRound,callerAddress) = if ((customRound == 0))
9791 then {
98- let currentRound = match getInteger(this, (callerAddress + "_round")) {
92+ let currentRound = match getInteger(c7, (callerAddress + "_round")) {
9993 case a: Int =>
10094 a
10195 case _ =>
112106 let $t032983324 = getPayments(i)
113107 let p = $t032983324._1
114108 let t = $t032983324._2
115- let currentRound = match getInteger(this, (callerAddress + "_round")) {
109+ let currentRound = match getInteger(c7, (callerAddress + "_round")) {
116110 case a: Int =>
117111 (a + 1)
118112 case _ =>
119113 1
120114 }
121115 let round = ((callerAddress + "_") + toString(currentRound))
122- if (isDefined(getBoolean(this, (round + "_stop"))))
116+ if (isDefined(getBoolean(c7, (round + "_stop"))))
123117 then throw("This round is already played")
124- else if (isDefined(getString(this, round)))
118+ else if (isDefined(getString(c7, round)))
125119 then throw("You cannot bet on this game")
126120 else {
127121 let availableProp = (round + "_deck")
128- let avDeck = getAvailableDeck(this, availableProp)
122+ let avDeck = getAvailableDeck(c7, availableProp)
129123 let $t038043911 = getPlayerCardAndPositionAndUpdateDeck(round, round, avDeck)
130124 let cardPlayer = $t038043911._1
131125 let cardPositionPlayer = $t038043911._2
134128 let cardCasino = $t039164035._1
135129 let cardPositionCasino = $t039164035._2
136130 let avDeck2 = $t039164035._3
137- if ((1 == 1))
131+ if ((getCardValue(cardPlayer) == getCardValue(cardCasino)))
138132 then {
139133 let currentDraws = 1
140134 if ((t != 0))
141- then [StringEntry(availableProp, makeString(avDeck2, separator)), IntegerEntry((callerAddress + "_round"), currentRound), BooleanEntry(round, true), IntegerEntry((round + "_LastRandonNumber"), cardPositionCasino), StringEntry((round + "_playerCard"), cardPlayer), StringEntry((round + "_casinoCard"), cardCasino), IntegerEntry((round + "_drawSequence"), currentDraws), IntegerEntry((round + "_betAmount"), p), StringEntry((round + "_debug"), (((((toString(p) + "-") + toString(t)) + " ScriptTransfer(i.caller, (t * 10)=") + toString(((t * 10) + t))) + ", unit)")), ScriptTransfer(i.caller, ((t * 10) + t), unit)]
135+ then [StringEntry(availableProp, makeString(avDeck2, separator)), IntegerEntry((callerAddress + "_round"), currentRound), BooleanEntry(round, true), IntegerEntry((round + "_LastRandonNumber"), cardPositionCasino), StringEntry((round + "_playerCard"), cardPlayer), StringEntry((round + "_casinoCard"), cardCasino), IntegerEntry((round + "_drawSequence"), currentDraws), IntegerEntry((round + "_betAmount"), p), ScriptTransfer(i.caller, ((t * 10) + t), unit)]
142136 else [StringEntry(availableProp, makeString(avDeck2, separator)), IntegerEntry((callerAddress + "_round"), currentRound), BooleanEntry(round, true), IntegerEntry((round + "_LastRandonNumber"), cardPositionCasino), StringEntry((round + "_playerCard"), cardPlayer), StringEntry((round + "_casinoCard"), cardCasino), IntegerEntry((round + "_drawSequence"), currentDraws), IntegerEntry((round + "_betAmount"), p)]
143137 }
144138 else if (isPlayerWinner(cardPlayer, cardCasino))
145- then [StringEntry(availableProp, makeString(avDeck2, separator)), BooleanEntry(round, true), IntegerEntry((callerAddress + "_round"), currentRound), IntegerEntry((round + "_LastRandonNumber"), cardPositionCasino), StringEntry((round + "_playerCard"), cardPlayer), StringEntry((round + "_casinoCard"), cardCasino), IntegerEntry((round + "_betAmount"), p), StringEntry((round + "_debug"), (((((toString(p) + "-") + toString(t)) + " ScriptTransfer(i.caller, p=") + toString(p)) + ", unit)")), ScriptTransfer(i.caller, p, unit), BooleanEntry((round + "_stop"), true)]
139+ then [StringEntry(availableProp, makeString(avDeck2, separator)), BooleanEntry(round, true), IntegerEntry((callerAddress + "_round"), currentRound), IntegerEntry((round + "_LastRandonNumber"), cardPositionCasino), StringEntry((round + "_playerCard"), cardPlayer), StringEntry((round + "_casinoCard"), cardCasino), IntegerEntry((round + "_betAmount"), p), ScriptTransfer(i.caller, p, unit), BooleanEntry((round + "_stop"), true)]
146140 else [StringEntry(availableProp, makeString(avDeck2, separator)), BooleanEntry(round, true), IntegerEntry((callerAddress + "_round"), currentRound), IntegerEntry((round + "_LastRandonNumber"), cardPositionCasino), StringEntry((round + "_playerCard"), cardPlayer), StringEntry((round + "_casinoCard"), cardCasino), IntegerEntry((round + "_betAmount"), p), BooleanEntry((round + "_stop"), true)]
147141 }
148142 }
154148 let callerAddress = toBase58String(i.caller.bytes)
155149 let roundToUse = getCurrentRound(customRound, callerAddress)
156150 let round = ((callerAddress + "_") + toString(roundToUse))
157- if (!(isDefined(getBoolean(this, round))))
151+ if (!(isDefined(getBoolean(c7, round))))
158152 then throw("This round is not played")
159- else if (isDefined(getBoolean(this, (round + "_stop"))))
153+ else if (isDefined(getBoolean(c7, (round + "_stop"))))
160154 then throw("This round is already played")
161- else if (!(isDefined(getInteger(this, (round + "_drawSequence")))))
155+ else if (!(isDefined(getInteger(c7, (round + "_drawSequence")))))
162156 then throw("This game is not on war")
163157 else {
164- let betAmount = match getInteger(this, (round + "_betAmount")) {
158+ let betAmount = match getInteger(c7, (round + "_betAmount")) {
165159 case a: Int =>
166160 a
167161 case _ =>
168162 throw("Unable to find original bet amount")
169163 }
170-[StringEntry(((round + toString(betAmount)) + " _debug"), (("ScriptTransfer(i.caller, betAmount / 2=" + toString((betAmount / 2))) + ", unit)")), ScriptTransfer(i.caller, (betAmount / 2), unit), BooleanEntry((round + "_stop"), true)]
164+[ScriptTransfer(i.caller, (betAmount / 2), unit), BooleanEntry((round + "_stop"), true)]
171165 }
172166 }
173167
178172 let callerAddress = toBase58String(i.caller.bytes)
179173 let roundToUse = getCurrentRound(customRound, callerAddress)
180174 let round = ((callerAddress + "_") + toString(roundToUse))
181- if (!(isDefined(getBoolean(this, round))))
175+ if (!(isDefined(getBoolean(c7, round))))
182176 then throw("This round is not played")
183- else if (isDefined(getBoolean(this, (round + "_stop"))))
177+ else if (isDefined(getBoolean(c7, (round + "_stop"))))
184178 then throw("This round is already played")
185- else if (!(isDefined(getInteger(this, (round + "_drawSequence")))))
179+ else if (!(isDefined(getInteger(c7, (round + "_drawSequence")))))
186180 then throw("This game is not on war")
187181 else {
188- let betAmount = match getInteger(this, (round + "_betAmount")) {
182+ let betAmount = match getInteger(c7, (round + "_betAmount")) {
189183 case a: Int =>
190184 a
191185 case _ =>
192186 throw("Unable to find original bet amount")
193187 }
194- let $t085598585 = getPayments(i)
195- let p = $t085598585._1
196- let t = $t085598585._2
188+ let $t086108636 = getPayments(i)
189+ let p = $t086108636._1
190+ let t = $t086108636._2
197191 if ((p != betAmount))
198192 then throw((((("original bet amount (" + toString(betAmount)) + ") different to the current payment (") + toString(p)) + ")"))
199193 else {
200194 let availableProp = (round + "_deck")
201- let avDeck = getAvailableDeck(this, availableProp)
202- let $t088758975 = getPlayerCardAndPositionAndUpdateDeck(round, round, avDeck)
203- let burned1 = $t088758975._1
204- let burnedPos1 = $t088758975._2
205- let burnedDeck1 = $t088758975._3
206- let $t089889101 = getPlayerCardAndPositionAndUpdateDeck((round + burned1), round, burnedDeck1)
207- let burned2 = $t089889101._1
208- let burnedPos2 = $t089889101._2
209- let burnedDeck2 = $t089889101._3
210- let $t091149227 = getPlayerCardAndPositionAndUpdateDeck((round + burned2), round, burnedDeck2)
211- let burned3 = $t091149227._1
212- let burnedPos3 = $t091149227._2
213- let burnedDeck3 = $t091149227._3
214- let $t092409360 = getPlayerCardAndPositionAndUpdateDeck((round + burned3), round, burnedDeck3)
215- let cardPlayer = $t092409360._1
216- let cardPositionPlayer = $t092409360._2
217- let avDeck1 = $t092409360._3
218- let $t093739492 = getPlayerCardAndPositionAndUpdateDeck((round + cardPlayer), round, avDeck1)
219- let cardCasino = $t093739492._1
220- let cardPositionCasino = $t093739492._2
221- let avDeck2 = $t093739492._3
222- if (((cardPositionCasino % 2) == 0))
195+ let avDeck = getAvailableDeck(c7, availableProp)
196+ let $t089269026 = getPlayerCardAndPositionAndUpdateDeck(round, round, avDeck)
197+ let burned1 = $t089269026._1
198+ let burnedPos1 = $t089269026._2
199+ let burnedDeck1 = $t089269026._3
200+ let $t090399152 = getPlayerCardAndPositionAndUpdateDeck((round + burned1), round, burnedDeck1)
201+ let burned2 = $t090399152._1
202+ let burnedPos2 = $t090399152._2
203+ let burnedDeck2 = $t090399152._3
204+ let $t091659278 = getPlayerCardAndPositionAndUpdateDeck((round + burned2), round, burnedDeck2)
205+ let burned3 = $t091659278._1
206+ let burnedPos3 = $t091659278._2
207+ let burnedDeck3 = $t091659278._3
208+ let $t092919411 = getPlayerCardAndPositionAndUpdateDeck((round + burned3), round, burnedDeck3)
209+ let cardPlayer = $t092919411._1
210+ let cardPositionPlayer = $t092919411._2
211+ let avDeck1 = $t092919411._3
212+ let $t094249543 = getPlayerCardAndPositionAndUpdateDeck((round + cardPlayer), round, avDeck1)
213+ let cardCasino = $t094249543._1
214+ let cardPositionCasino = $t094249543._2
215+ let avDeck2 = $t094249543._3
216+ if ((getCardValue(cardPlayer) == getCardValue(cardCasino)))
223217 then {
224- let currentDraws = match getInteger(this, (round + "_drawSequence")) {
218+ let currentDraws = match getInteger(c7, (round + "_drawSequence")) {
225219 case a: Int =>
226220 (a + 1)
227221 case _ =>
230224 [StringEntry(availableProp, makeString(avDeck2, separator)), IntegerEntry((round + "_LastRandonNumber"), cardPositionCasino), StringEntry((round + "_playerCard"), cardPlayer), StringEntry((round + "_casinoCard"), cardCasino), IntegerEntry((round + "_drawSequence"), currentDraws), IntegerEntry((round + "_betAmount"), p)]
231225 }
232226 else if (isPlayerWinner(cardPlayer, cardCasino))
233- then [StringEntry(availableProp, makeString(avDeck2, separator)), IntegerEntry((round + "_LastRandonNumber"), cardPositionCasino), StringEntry((round + "_playerCard"), cardPlayer), StringEntry((round + "_casinoCard"), cardCasino), IntegerEntry((round + "_betAmount"), p), StringEntry((round + "_debug"), (((((toString(p) + "-") + toString(t)) + " ScriptTransfer(i.caller, p=") + toString(p)) + ", unit)")), ScriptTransfer(i.caller, p, unit), BooleanEntry((round + "_stop"), true)]
227+ then [StringEntry(availableProp, makeString(avDeck2, separator)), IntegerEntry((round + "_LastRandonNumber"), cardPositionCasino), StringEntry((round + "_playerCard"), cardPlayer), StringEntry((round + "_casinoCard"), cardCasino), IntegerEntry((round + "_betAmount"), p), ScriptTransfer(i.caller, p, unit), BooleanEntry((round + "_stop"), true)]
234228 else [StringEntry(availableProp, makeString(avDeck2, separator)), StringEntry((round + "_round"), round), IntegerEntry((round + "_LastRandonNumber"), cardPositionCasino), StringEntry((round + "_playerCard"), cardPlayer), StringEntry((round + "_casinoCard"), cardCasino), IntegerEntry((round + "_betAmount"), p), BooleanEntry((round + "_stop"), true)]
235229 }
236230 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let casino = "3MtaCL4v1bjTabUqs7oU4ofS8fbai34WM1i"
5-
6-let WAVES = 1000000000
7-
8-let maxBet = (100 * WAVES)
9-
104 let separator = ","
115
126 func getNewDeck () = ["01C", "02C", "03C", "04C", "05C", "06C", "07C", "08C", "09C", "10C", "11C", "12C", "13C", "01D", "02D", "03D", "04D", "05D", "06D", "07D", "08D", "09D", "10D", "11D", "12D", "13D", "01H", "02H", "03H", "04H", "05H", "06H", "07H", "08H", "09H", "10H", "11H", "12H", "13H", "01S", "02S", "03S", "04S", "05S", "06S", "07S", "08S", "09S", "10S", "11S", "12S", "13S"]
137
148
159 func getSixNewDecks () = (((((getNewDeck() ++ getNewDeck()) ++ getNewDeck()) ++ getNewDeck()) ++ getNewDeck()) ++ getNewDeck())
1610
1711
1812 func getDeck (deck) = if ((0 >= size(deck)))
1913 then getSixNewDecks()
2014 else deck
2115
2216
2317 func getRandomNumber (salt1,salt2,answersCount) = {
2418 let hash = sha256(toBytes((salt1 + salt2)))
2519 let index = toInt(hash)
2620 let rand = (index % answersCount)
2721 if ((0 > rand))
2822 then ((-1 * rand) + 1)
2923 else (rand + 1)
3024 }
3125
3226
3327 func getPreviousRandomNumber (address) = match getInteger(this, (address + "_LastRandonNumber")) {
3428 case n: Int =>
3529 toString(n)
3630 case _ =>
3731 address
3832 }
3933
4034
4135 func getPayments (i) = if ((size(i.payments) == 0))
4236 then throw("Payment must be attached")
4337 else if ((size(i.payments) == 1))
4438 then {
4539 let pmt = i.payments[0]
4640 if (isDefined(pmt.assetId))
4741 then throw("This function accepts WAVES tokens only (0)")
4842 else $Tuple2(pmt.amount, 0)
4943 }
5044 else {
5145 let pmt = i.payments[0]
5246 if (isDefined(pmt.assetId))
5347 then throw("This function accepts WAVES tokens only (10)")
5448 else {
5549 let pmt2 = i.payments[1]
5650 if (isDefined(pmt2.assetId))
5751 then throw("This function accepts WAVES tokens only (11)")
5852 else $Tuple2(pmt.amount, pmt2.amount)
5953 }
6054 }
6155
6256
6357 func getCardValue (stringCard) = {
6458 let p = parseIntValue(take(stringCard, 2))
6559 if ((p == 1))
6660 then 20
6761 else p
6862 }
6963
7064
7165 func isPlayerWinner (cardPlayer,cardCasino) = {
7266 let p = getCardValue(cardPlayer)
7367 let o = getCardValue(cardCasino)
7468 (p > o)
7569 }
7670
7771
7872 func getAvailableDeck (this,availableProp) = if (isDefined(getString(this, availableProp)))
7973 then {
8074 let stringDeck = getStringValue(this, availableProp)
8175 let deck = split(stringDeck, separator)
8276 getDeck(deck)
8377 }
8478 else getSixNewDecks()
8579
8680
8781 func getPlayerCardAndPositionAndUpdateDeck (meKey,callerAddress,deck) = {
8882 let avDeck2 = getDeck(deck)
8983 let cardPosition = getRandomNumber(((meKey + makeString(avDeck2, separator)) + callerAddress), getPreviousRandomNumber(callerAddress), size(avDeck2))
9084 let card = avDeck2[(cardPosition % size(avDeck2))]
9185 let avDeck3 = removeByIndex(avDeck2, (cardPosition % size(avDeck2)))
9286 $Tuple3(card, cardPosition, avDeck3)
9387 }
9488
9589
9690 func getCurrentRound (customRound,callerAddress) = if ((customRound == 0))
9791 then {
98- let currentRound = match getInteger(this, (callerAddress + "_round")) {
92+ let currentRound = match getInteger(c7, (callerAddress + "_round")) {
9993 case a: Int =>
10094 a
10195 case _ =>
10296 throw("Unable to find the round")
10397 }
10498 currentRound
10599 }
106100 else customRound
107101
108102
109103 @Callable(i)
110104 func bet () = {
111105 let callerAddress = toBase58String(i.caller.bytes)
112106 let $t032983324 = getPayments(i)
113107 let p = $t032983324._1
114108 let t = $t032983324._2
115- let currentRound = match getInteger(this, (callerAddress + "_round")) {
109+ let currentRound = match getInteger(c7, (callerAddress + "_round")) {
116110 case a: Int =>
117111 (a + 1)
118112 case _ =>
119113 1
120114 }
121115 let round = ((callerAddress + "_") + toString(currentRound))
122- if (isDefined(getBoolean(this, (round + "_stop"))))
116+ if (isDefined(getBoolean(c7, (round + "_stop"))))
123117 then throw("This round is already played")
124- else if (isDefined(getString(this, round)))
118+ else if (isDefined(getString(c7, round)))
125119 then throw("You cannot bet on this game")
126120 else {
127121 let availableProp = (round + "_deck")
128- let avDeck = getAvailableDeck(this, availableProp)
122+ let avDeck = getAvailableDeck(c7, availableProp)
129123 let $t038043911 = getPlayerCardAndPositionAndUpdateDeck(round, round, avDeck)
130124 let cardPlayer = $t038043911._1
131125 let cardPositionPlayer = $t038043911._2
132126 let avDeck1 = $t038043911._3
133127 let $t039164035 = getPlayerCardAndPositionAndUpdateDeck((round + cardPlayer), round, avDeck1)
134128 let cardCasino = $t039164035._1
135129 let cardPositionCasino = $t039164035._2
136130 let avDeck2 = $t039164035._3
137- if ((1 == 1))
131+ if ((getCardValue(cardPlayer) == getCardValue(cardCasino)))
138132 then {
139133 let currentDraws = 1
140134 if ((t != 0))
141- then [StringEntry(availableProp, makeString(avDeck2, separator)), IntegerEntry((callerAddress + "_round"), currentRound), BooleanEntry(round, true), IntegerEntry((round + "_LastRandonNumber"), cardPositionCasino), StringEntry((round + "_playerCard"), cardPlayer), StringEntry((round + "_casinoCard"), cardCasino), IntegerEntry((round + "_drawSequence"), currentDraws), IntegerEntry((round + "_betAmount"), p), StringEntry((round + "_debug"), (((((toString(p) + "-") + toString(t)) + " ScriptTransfer(i.caller, (t * 10)=") + toString(((t * 10) + t))) + ", unit)")), ScriptTransfer(i.caller, ((t * 10) + t), unit)]
135+ then [StringEntry(availableProp, makeString(avDeck2, separator)), IntegerEntry((callerAddress + "_round"), currentRound), BooleanEntry(round, true), IntegerEntry((round + "_LastRandonNumber"), cardPositionCasino), StringEntry((round + "_playerCard"), cardPlayer), StringEntry((round + "_casinoCard"), cardCasino), IntegerEntry((round + "_drawSequence"), currentDraws), IntegerEntry((round + "_betAmount"), p), ScriptTransfer(i.caller, ((t * 10) + t), unit)]
142136 else [StringEntry(availableProp, makeString(avDeck2, separator)), IntegerEntry((callerAddress + "_round"), currentRound), BooleanEntry(round, true), IntegerEntry((round + "_LastRandonNumber"), cardPositionCasino), StringEntry((round + "_playerCard"), cardPlayer), StringEntry((round + "_casinoCard"), cardCasino), IntegerEntry((round + "_drawSequence"), currentDraws), IntegerEntry((round + "_betAmount"), p)]
143137 }
144138 else if (isPlayerWinner(cardPlayer, cardCasino))
145- then [StringEntry(availableProp, makeString(avDeck2, separator)), BooleanEntry(round, true), IntegerEntry((callerAddress + "_round"), currentRound), IntegerEntry((round + "_LastRandonNumber"), cardPositionCasino), StringEntry((round + "_playerCard"), cardPlayer), StringEntry((round + "_casinoCard"), cardCasino), IntegerEntry((round + "_betAmount"), p), StringEntry((round + "_debug"), (((((toString(p) + "-") + toString(t)) + " ScriptTransfer(i.caller, p=") + toString(p)) + ", unit)")), ScriptTransfer(i.caller, p, unit), BooleanEntry((round + "_stop"), true)]
139+ then [StringEntry(availableProp, makeString(avDeck2, separator)), BooleanEntry(round, true), IntegerEntry((callerAddress + "_round"), currentRound), IntegerEntry((round + "_LastRandonNumber"), cardPositionCasino), StringEntry((round + "_playerCard"), cardPlayer), StringEntry((round + "_casinoCard"), cardCasino), IntegerEntry((round + "_betAmount"), p), ScriptTransfer(i.caller, p, unit), BooleanEntry((round + "_stop"), true)]
146140 else [StringEntry(availableProp, makeString(avDeck2, separator)), BooleanEntry(round, true), IntegerEntry((callerAddress + "_round"), currentRound), IntegerEntry((round + "_LastRandonNumber"), cardPositionCasino), StringEntry((round + "_playerCard"), cardPlayer), StringEntry((round + "_casinoCard"), cardCasino), IntegerEntry((round + "_betAmount"), p), BooleanEntry((round + "_stop"), true)]
147141 }
148142 }
149143
150144
151145
152146 @Callable(i)
153147 func surrender (customRound) = {
154148 let callerAddress = toBase58String(i.caller.bytes)
155149 let roundToUse = getCurrentRound(customRound, callerAddress)
156150 let round = ((callerAddress + "_") + toString(roundToUse))
157- if (!(isDefined(getBoolean(this, round))))
151+ if (!(isDefined(getBoolean(c7, round))))
158152 then throw("This round is not played")
159- else if (isDefined(getBoolean(this, (round + "_stop"))))
153+ else if (isDefined(getBoolean(c7, (round + "_stop"))))
160154 then throw("This round is already played")
161- else if (!(isDefined(getInteger(this, (round + "_drawSequence")))))
155+ else if (!(isDefined(getInteger(c7, (round + "_drawSequence")))))
162156 then throw("This game is not on war")
163157 else {
164- let betAmount = match getInteger(this, (round + "_betAmount")) {
158+ let betAmount = match getInteger(c7, (round + "_betAmount")) {
165159 case a: Int =>
166160 a
167161 case _ =>
168162 throw("Unable to find original bet amount")
169163 }
170-[StringEntry(((round + toString(betAmount)) + " _debug"), (("ScriptTransfer(i.caller, betAmount / 2=" + toString((betAmount / 2))) + ", unit)")), ScriptTransfer(i.caller, (betAmount / 2), unit), BooleanEntry((round + "_stop"), true)]
164+[ScriptTransfer(i.caller, (betAmount / 2), unit), BooleanEntry((round + "_stop"), true)]
171165 }
172166 }
173167
174168
175169
176170 @Callable(i)
177171 func goToWar (customRound) = {
178172 let callerAddress = toBase58String(i.caller.bytes)
179173 let roundToUse = getCurrentRound(customRound, callerAddress)
180174 let round = ((callerAddress + "_") + toString(roundToUse))
181- if (!(isDefined(getBoolean(this, round))))
175+ if (!(isDefined(getBoolean(c7, round))))
182176 then throw("This round is not played")
183- else if (isDefined(getBoolean(this, (round + "_stop"))))
177+ else if (isDefined(getBoolean(c7, (round + "_stop"))))
184178 then throw("This round is already played")
185- else if (!(isDefined(getInteger(this, (round + "_drawSequence")))))
179+ else if (!(isDefined(getInteger(c7, (round + "_drawSequence")))))
186180 then throw("This game is not on war")
187181 else {
188- let betAmount = match getInteger(this, (round + "_betAmount")) {
182+ let betAmount = match getInteger(c7, (round + "_betAmount")) {
189183 case a: Int =>
190184 a
191185 case _ =>
192186 throw("Unable to find original bet amount")
193187 }
194- let $t085598585 = getPayments(i)
195- let p = $t085598585._1
196- let t = $t085598585._2
188+ let $t086108636 = getPayments(i)
189+ let p = $t086108636._1
190+ let t = $t086108636._2
197191 if ((p != betAmount))
198192 then throw((((("original bet amount (" + toString(betAmount)) + ") different to the current payment (") + toString(p)) + ")"))
199193 else {
200194 let availableProp = (round + "_deck")
201- let avDeck = getAvailableDeck(this, availableProp)
202- let $t088758975 = getPlayerCardAndPositionAndUpdateDeck(round, round, avDeck)
203- let burned1 = $t088758975._1
204- let burnedPos1 = $t088758975._2
205- let burnedDeck1 = $t088758975._3
206- let $t089889101 = getPlayerCardAndPositionAndUpdateDeck((round + burned1), round, burnedDeck1)
207- let burned2 = $t089889101._1
208- let burnedPos2 = $t089889101._2
209- let burnedDeck2 = $t089889101._3
210- let $t091149227 = getPlayerCardAndPositionAndUpdateDeck((round + burned2), round, burnedDeck2)
211- let burned3 = $t091149227._1
212- let burnedPos3 = $t091149227._2
213- let burnedDeck3 = $t091149227._3
214- let $t092409360 = getPlayerCardAndPositionAndUpdateDeck((round + burned3), round, burnedDeck3)
215- let cardPlayer = $t092409360._1
216- let cardPositionPlayer = $t092409360._2
217- let avDeck1 = $t092409360._3
218- let $t093739492 = getPlayerCardAndPositionAndUpdateDeck((round + cardPlayer), round, avDeck1)
219- let cardCasino = $t093739492._1
220- let cardPositionCasino = $t093739492._2
221- let avDeck2 = $t093739492._3
222- if (((cardPositionCasino % 2) == 0))
195+ let avDeck = getAvailableDeck(c7, availableProp)
196+ let $t089269026 = getPlayerCardAndPositionAndUpdateDeck(round, round, avDeck)
197+ let burned1 = $t089269026._1
198+ let burnedPos1 = $t089269026._2
199+ let burnedDeck1 = $t089269026._3
200+ let $t090399152 = getPlayerCardAndPositionAndUpdateDeck((round + burned1), round, burnedDeck1)
201+ let burned2 = $t090399152._1
202+ let burnedPos2 = $t090399152._2
203+ let burnedDeck2 = $t090399152._3
204+ let $t091659278 = getPlayerCardAndPositionAndUpdateDeck((round + burned2), round, burnedDeck2)
205+ let burned3 = $t091659278._1
206+ let burnedPos3 = $t091659278._2
207+ let burnedDeck3 = $t091659278._3
208+ let $t092919411 = getPlayerCardAndPositionAndUpdateDeck((round + burned3), round, burnedDeck3)
209+ let cardPlayer = $t092919411._1
210+ let cardPositionPlayer = $t092919411._2
211+ let avDeck1 = $t092919411._3
212+ let $t094249543 = getPlayerCardAndPositionAndUpdateDeck((round + cardPlayer), round, avDeck1)
213+ let cardCasino = $t094249543._1
214+ let cardPositionCasino = $t094249543._2
215+ let avDeck2 = $t094249543._3
216+ if ((getCardValue(cardPlayer) == getCardValue(cardCasino)))
223217 then {
224- let currentDraws = match getInteger(this, (round + "_drawSequence")) {
218+ let currentDraws = match getInteger(c7, (round + "_drawSequence")) {
225219 case a: Int =>
226220 (a + 1)
227221 case _ =>
228222 0
229223 }
230224 [StringEntry(availableProp, makeString(avDeck2, separator)), IntegerEntry((round + "_LastRandonNumber"), cardPositionCasino), StringEntry((round + "_playerCard"), cardPlayer), StringEntry((round + "_casinoCard"), cardCasino), IntegerEntry((round + "_drawSequence"), currentDraws), IntegerEntry((round + "_betAmount"), p)]
231225 }
232226 else if (isPlayerWinner(cardPlayer, cardCasino))
233- then [StringEntry(availableProp, makeString(avDeck2, separator)), IntegerEntry((round + "_LastRandonNumber"), cardPositionCasino), StringEntry((round + "_playerCard"), cardPlayer), StringEntry((round + "_casinoCard"), cardCasino), IntegerEntry((round + "_betAmount"), p), StringEntry((round + "_debug"), (((((toString(p) + "-") + toString(t)) + " ScriptTransfer(i.caller, p=") + toString(p)) + ", unit)")), ScriptTransfer(i.caller, p, unit), BooleanEntry((round + "_stop"), true)]
227+ then [StringEntry(availableProp, makeString(avDeck2, separator)), IntegerEntry((round + "_LastRandonNumber"), cardPositionCasino), StringEntry((round + "_playerCard"), cardPlayer), StringEntry((round + "_casinoCard"), cardCasino), IntegerEntry((round + "_betAmount"), p), ScriptTransfer(i.caller, p, unit), BooleanEntry((round + "_stop"), true)]
234228 else [StringEntry(availableProp, makeString(avDeck2, separator)), StringEntry((round + "_round"), round), IntegerEntry((round + "_LastRandonNumber"), cardPositionCasino), StringEntry((round + "_playerCard"), cardPlayer), StringEntry((round + "_casinoCard"), cardCasino), IntegerEntry((round + "_betAmount"), p), BooleanEntry((round + "_stop"), true)]
235229 }
236230 }
237231 }
238232
239233
240234 @Verifier(tx)
241235 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
242236

github/deemru/w8io/169f3d6 
73.92 ms