tx · DtZRPoBriWFhvwoTuA4eKuCeozeAAcGvMe65sUfVTK8A

3N3mV2Baor8EY7CYQ7QgAm3tL8KruH1VpKA:  -0.01000000 Waves

2021.07.24 11:28 [1627479] smart account 3N3mV2Baor8EY7CYQ7QgAm3tL8KruH1VpKA > SELF 0.00000000 Waves

{ "type": 13, "id": "DtZRPoBriWFhvwoTuA4eKuCeozeAAcGvMe65sUfVTK8A", "fee": 1000000, "feeAssetId": null, "timestamp": 1627115310845, "version": 2, "chainId": 84, "sender": "3N3mV2Baor8EY7CYQ7QgAm3tL8KruH1VpKA", "senderPublicKey": "4P5V3b5K49wXNGa4M6SwDgHAMBa582FxTsF5qjWePQo3", "proofs": [ "4Q8pFtG99sZTVQM26M3xnFBj7QAMRBJuBrkGJXpwkrEB1EVjZ9zeTJGY3BWa3Ksi7He8CvG4hRuaqiboyZrGs2oQ" ], "script": "base64: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YW1lBQAAAARjYXJkBwkAAAIAAAABAgAAAEJBIGNsYXNzZSBlbnZpYWRhIG7Do28gZXhpc3RlIG5vIGdhbWUhIFBvciBmYXZvciBjb250YXRlIG8gc3Vwb3J0ZSEDCQAAZgAAAAIAAAAAAAAAAAAJAAPwAAAAAgUAAAAKY3VycmVudEtleQUAAAAGdW5kZWFkCQAAAgAAAAECAAAAYUUgbmVjZXNzw6FyaW8gdGVyIG8gdG9rZW4gZG8gZGVjayBlbSBzdWEgY2FydGVpcmEhIFBhcmEgYWRxdWlyaXIsIHJlYWxpemUgYSBjb21wcmEgZW0gU3dhcCBEZWNrcy4DAwkAAAAAAAACBQAAAA5jYXJkSW5UaGVBcmVuYQIAAAAABgkAAAAAAAACBQAAABBwbGF5ZXJJblRoZUFyZW5hAgAAAAAJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAQcGxheWVySW5UaGVBcmVuYQUAAAAPY3VycmVudEtleUJ5dGVzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAADmNhcmRJblRoZUFyZW5hBQAAAAhjYXJkTmFtZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAOYXJlbmFDYXJkU2NvcmUFAAAAEGN1cnJlbnRDYXJkU2NvcmUFAAAAA25pbAMJAAAAAAAAAgUAAAARY3VycmVudENhcmRTdGF0dXMCAAAABFVzZWQJAAACAAAAAQIAAABfRXN0YSBjYXJ0YSBqw6EgZm9pIHV0aWxpemFkYSEgVXRpbGl6ZSB0b2RhcyBhcyBjYXJ0YXMgZG8gZGVjayBwYXJhIGVzdGEgc2VyIGxpYmVyYWRhIG5vdmFtZW50ZSEEAAAABndpbm5lcgMJAABmAAAAAgUAAAAQY3VycmVudENhcmRTY29yZQUAAAAOYXJlbmFDYXJkU2NvcmUFAAAAD2N1cnJlbnRLZXlCeXRlcwUAAAAQcGxheWVySW5UaGVBcmVuYQQAAAALd2lubmluZ0NhcmQDCQAAZgAAAAIFAAAAEGN1cnJlbnRDYXJkU2NvcmUFAAAADmFyZW5hQ2FyZFNjb3JlBQAAAAhjYXJkTmFtZQUAAAAOY2FyZEluVGhlQXJlbmEEAAAAHHBvaW50c1JlbWFpbmluZ09uV2lubmluZ0NhcmQDCQAAZgAAAAIFAAAAEGN1cnJlbnRDYXJkU2NvcmUFAAAADmFyZW5hQ2FyZFNjb3JlCQAAZQAAAAIFAAAAEGN1cnJlbnRDYXJkU2NvcmUFAAAADmFyZW5hQ2FyZFNjb3JlCQAAZQAAAAIFAAAADmFyZW5hQ2FyZFNjb3JlBQAAABBjdXJyZW50Q2FyZFNjb3JlCQAAAgAAAAEFAAAADHN0YXR1c0NhcmQwMQAAAADUXURD", "height": 1627479, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AUeDdNTZqdL75ToF4nMmz5beJxqhToBUJmUtvzMQZd9e Next: 7HpxAGREUvFhNrtykXTYf2zCt5QrcYYJtuj7uZwsSogH Diff:
OldNewDifferences
4545 case _ =>
4646 0
4747 }
48+ let statusCard01 = match getString(this, ((("status_" + class) + "_01_") + currentKeyBytes)) {
49+ case t: String =>
50+ t
51+ case _ =>
52+ ""
53+ }
4854 if (if (!(containsElement(classGame, class)))
4955 then !(containsElement(cardsGame, card))
5056 else false)
6773 let pointsRemainingOnWinningCard = if ((currentCardScore > arenaCardScore))
6874 then (currentCardScore - arenaCardScore)
6975 else (arenaCardScore - currentCardScore)
70-[StringEntry("playerIntTheArena", winner), StringEntry("cardInTheArena", cardName), IntegerEntry("arenaCardScore", pointsRemainingOnWinningCard), StringEntry(("status_" + cardNameCurrentPlayer), "Used"), StringEntry(((("history_" + transactionId) + "_") + currentKeyBytes), ((((((("usedCard:" + cardName) + "/ winner:") + winner) + "/ winningCard:") + winningCard) + "/ pointsRemainingOnWinningCard:") + toString(pointsRemainingOnWinningCard))), StringEntry("Resultado da Partida: ", ((((((("usedCard:" + cardName) + "/ winner:") + winner) + "/ winningCard:") + winningCard) + "/ pointsRemainingOnWinningCard:") + toString(pointsRemainingOnWinningCard)))]
76+ throw(statusCard01)
7177 }
7278 }
7379
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44
55
66 @Callable(inv)
77 func play (card,class) = {
88 let transactionId = toBase58String(inv.transactionId)
99 let currentKey = inv.caller
1010 let btcAmount = value(inv.payments[0].amount)
1111 let currentKeyBytes = toBase58String(inv.caller.bytes)
1212 let cardName = ((class + "_") + card)
1313 let cardNameCurrentPlayer = ((((class + "_") + card) + "_") + currentKeyBytes)
1414 let undead = base58'3btiz2mNkbcFhcAww6Zn6WaRtDY3mLHf2dbJHNNbdUFk'
1515 let cardsGame = ["Undead_01", "Undead_02", "Undead_03", "Undead_04", "Undead_05", "Undead_07", "Undead_08", "Undead_09", "Undead_10"]
1616 let classGame = ["Undead"]
1717 let assetsGame = ["3btiz2mNkbcFhcAww6Zn6WaRtDY3mLHf2dbJHNNbdUFk"]
1818 let currentCardStatus = match getString(this, ("status_" + cardNameCurrentPlayer)) {
1919 case t: String =>
2020 t
2121 case _ =>
2222 ""
2323 }
2424 let currentCardScore = match getInteger(this, cardName) {
2525 case t: Int =>
2626 t
2727 case _ =>
2828 0
2929 }
3030 let playerInTheArena = match getString(this, "playerInTheArena") {
3131 case t: String =>
3232 t
3333 case _ =>
3434 ""
3535 }
3636 let cardInTheArena = match getString(this, "cardInTheArena") {
3737 case t: String =>
3838 t
3939 case _ =>
4040 ""
4141 }
4242 let arenaCardScore = match getInteger(this, "arenaCardScore") {
4343 case t: Int =>
4444 t
4545 case _ =>
4646 0
4747 }
48+ let statusCard01 = match getString(this, ((("status_" + class) + "_01_") + currentKeyBytes)) {
49+ case t: String =>
50+ t
51+ case _ =>
52+ ""
53+ }
4854 if (if (!(containsElement(classGame, class)))
4955 then !(containsElement(cardsGame, card))
5056 else false)
5157 then throw("A classe enviada não existe no game! Por favor contate o suporte!")
5258 else if ((0 > assetBalance(currentKey, undead)))
5359 then throw("E necessário ter o token do deck em sua carteira! Para adquirir, realize a compra em Swap Decks.")
5460 else if (if ((cardInTheArena == ""))
5561 then true
5662 else (playerInTheArena == ""))
5763 then [StringEntry("playerInTheArena", currentKeyBytes), StringEntry("cardInTheArena", cardName), IntegerEntry("arenaCardScore", currentCardScore)]
5864 else if ((currentCardStatus == "Used"))
5965 then throw("Esta carta já foi utilizada! Utilize todas as cartas do deck para esta ser liberada novamente!")
6066 else {
6167 let winner = if ((currentCardScore > arenaCardScore))
6268 then currentKeyBytes
6369 else playerInTheArena
6470 let winningCard = if ((currentCardScore > arenaCardScore))
6571 then cardName
6672 else cardInTheArena
6773 let pointsRemainingOnWinningCard = if ((currentCardScore > arenaCardScore))
6874 then (currentCardScore - arenaCardScore)
6975 else (arenaCardScore - currentCardScore)
70-[StringEntry("playerIntTheArena", winner), StringEntry("cardInTheArena", cardName), IntegerEntry("arenaCardScore", pointsRemainingOnWinningCard), StringEntry(("status_" + cardNameCurrentPlayer), "Used"), StringEntry(((("history_" + transactionId) + "_") + currentKeyBytes), ((((((("usedCard:" + cardName) + "/ winner:") + winner) + "/ winningCard:") + winningCard) + "/ pointsRemainingOnWinningCard:") + toString(pointsRemainingOnWinningCard))), StringEntry("Resultado da Partida: ", ((((((("usedCard:" + cardName) + "/ winner:") + winner) + "/ winningCard:") + winningCard) + "/ pointsRemainingOnWinningCard:") + toString(pointsRemainingOnWinningCard)))]
76+ throw(statusCard01)
7177 }
7278 }
7379
7480

github/deemru/w8io/169f3d6 
50.39 ms