diff --git a/app/src/main/java/com/tangem/data/network/Server.java b/app/src/main/java/com/tangem/data/network/Server.java index 7faeceac91..b3888337bf 100644 --- a/app/src/main/java/com/tangem/data/network/Server.java +++ b/app/src/main/java/com/tangem/data/network/Server.java @@ -1,7 +1,5 @@ package com.tangem.data.network; -import static com.tangem.data.network.Server.ApiTangem.URL_TANGEM; - public class Server { /** diff --git a/app/src/main/java/com/tangem/data/network/ServerApiHelper.java b/app/src/main/java/com/tangem/data/network/ServerApiHelper.java index 875333f871..ee6ca12f04 100644 --- a/app/src/main/java/com/tangem/data/network/ServerApiHelper.java +++ b/app/src/main/java/com/tangem/data/network/ServerApiHelper.java @@ -113,9 +113,11 @@ public class ServerApiHelper { * Infura *

* eth_getBalance + * eth_getTransactionCount * eth_gasPrice */ public static final String INFURA_ETH_GET_BALANCE = "eth_getBalance"; + public static final String INFURA_ETH_GET_TRANSACTION_COUNT = "eth_getTransactionCount"; public static final String INFURA_ETH_GAS_PRICE = "eth_gasPrice"; private InfuraBodyListener infuraBodyListener; @@ -138,6 +140,7 @@ public class ServerApiHelper { InfuraBody infuraBody; switch (method) { case INFURA_ETH_GET_BALANCE: + case INFURA_ETH_GET_TRANSACTION_COUNT: infuraBody = new InfuraBody(method, new String[]{wallet, "latest"}, id); break; @@ -246,11 +249,12 @@ public class ServerApiHelper { for (RateInfoResponse rateInfoMode : rateInfoModelList) { if (rateInfoMode.getId().equals(cryptoId)) { rateInfoDataListener.onRateInfoDataData(rateInfoMode); - Log.i("rateInfoData", rateInfoMode.getId()); - Log.i("rateInfoData", rateInfoMode.getPriceUsd()); + Log.i(TAG, "rateInfoData " + cryptoId + " onResponse " + "200"); } } - } + } else + Log.e(TAG, "rateInfoData " + cryptoId + " onResponse " + "Empty"); + }, // handle error Throwable::printStackTrace); @@ -411,7 +415,7 @@ public class ServerApiHelper { call.enqueue(new Callback() { @Override public void onResponse(@NonNull Call call, @NonNull Response response) { - Log.i(TAG, "LastVersion onResponse " + response.code()); + Log.i(TAG, "lastVersion onResponse " + response.code()); if (response.code() == 200) { String stringResponse; try { @@ -425,7 +429,7 @@ public class ServerApiHelper { @Override public void onFailure(@NonNull Call call, @NonNull Throwable t) { - Log.e(TAG, "LastVersion onFailure " + t.getMessage()); + Log.e(TAG, "lastVersion onFailure " + t.getMessage()); } }); diff --git a/app/src/main/java/com/tangem/data/network/task/loaded_wallet/ETHRequestTask.java b/app/src/main/java/com/tangem/data/network/task/loaded_wallet/ETHRequestTask.java index 9d384730d3..1ebcb0ce34 100644 --- a/app/src/main/java/com/tangem/data/network/task/loaded_wallet/ETHRequestTask.java +++ b/app/src/main/java/com/tangem/data/network/task/loaded_wallet/ETHRequestTask.java @@ -77,7 +77,7 @@ public class ETHRequestTask extends InfuraTask { nonce = nonce.substring(2); BigInteger count = new BigInteger(nonce, 16); - loadedWallet.getCard().SetConfirmTXCount(count); + loadedWallet.getCard().setConfirmTXCount(count); } catch (JSONException e) { e.printStackTrace(); } @@ -107,7 +107,7 @@ public class ETHRequestTask extends InfuraTask { BigInteger nonce = loadedWallet.getCard().GetConfirmTXCount(); nonce.add(BigInteger.valueOf(1)); - loadedWallet.getCard().SetConfirmTXCount(nonce); + loadedWallet.getCard().setConfirmTXCount(nonce); Log.e("TX_RESULT", hashTX); } catch (Exception e) { diff --git a/app/src/main/java/com/tangem/data/network/task/send_transaction/ETHRequestTask.java b/app/src/main/java/com/tangem/data/network/task/send_transaction/ETHRequestTask.java index 76789405a9..b1b983f96c 100644 --- a/app/src/main/java/com/tangem/data/network/task/send_transaction/ETHRequestTask.java +++ b/app/src/main/java/com/tangem/data/network/task/send_transaction/ETHRequestTask.java @@ -56,7 +56,7 @@ public class ETHRequestTask extends InfuraTask { LastSignStorage.setLastMessage(sendTransactionActivity.getCard().getWallet(), ""); BigInteger nonce = sendTransactionActivity.getCard().GetConfirmTXCount(); nonce.add(BigInteger.valueOf(1)); - sendTransactionActivity.getCard().SetConfirmTXCount(nonce); + sendTransactionActivity.getCard().setConfirmTXCount(nonce); Log.e("TX_RESULT", hashTX); sendTransactionActivity.finishWithSuccess(); } catch (Exception e) { diff --git a/app/src/main/java/com/tangem/domain/wallet/TangemCard.java b/app/src/main/java/com/tangem/domain/wallet/TangemCard.java index 20049ecdd8..87a6308132 100644 --- a/app/src/main/java/com/tangem/domain/wallet/TangemCard.java +++ b/app/src/main/java/com/tangem/domain/wallet/TangemCard.java @@ -56,7 +56,7 @@ public class TangemCard { return countConfirmTX; } - public void SetConfirmTXCount(BigInteger count) { + public void setConfirmTXCount(BigInteger count) { countConfirmTX = count; } diff --git a/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt b/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt index f39a8395b2..02948b4f80 100644 --- a/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt +++ b/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt @@ -240,11 +240,31 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific // Log.i(TAG, "setRateInfoData $rate") } - // request eth get balance listener + // request eth get balance, eth get transaction count listener serverApiHelper!!.setInfura { method, infuraResponse -> if (method == ServerApiHelper.INFURA_ETH_GET_BALANCE) { + var balanceCap = infuraResponse.result + balanceCap = balanceCap.substring(2) + val l = BigInteger(balanceCap, 16) + val d = l.divide(BigInteger("1000000000000000000", 10)) + val balance = d.toLong() -// Log.i("eth_get_balance", gasPrice) + card!!.setBalanceConfirmed(balance) + card!!.balanceUnconfirmed = 0L + if (card!!.blockchain != Blockchain.Token) + card!!.decimalBalance = l.toString(10) + card!!.decimalBalanceAlter = l.toString(10) + +// Log.i("eth_get_balance", balanceCap) + } + + if (method == ServerApiHelper.INFURA_ETH_GET_TRANSACTION_COUNT) { + var nonce = infuraResponse.result + nonce = nonce.substring(2) + val count = BigInteger(nonce, 16) + card!!.setConfirmTXCount(count) + +// Log.i("eth_getTransactionCount", nonce) } } } @@ -661,37 +681,48 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific // Ethereum else if (card!!.blockchain == Blockchain.Ethereum || card!!.blockchain == Blockchain.EthereumTestNet) { -// requestInfura(ServerApiHelper.INFURA_ETH_GET_BALANCE) + requestInfura(ServerApiHelper.INFURA_ETH_GET_BALANCE) + requestInfura(ServerApiHelper.INFURA_ETH_GET_TRANSACTION_COUNT) - val updateETH = ETHRequestTask(this@LoadedWallet, card!!.blockchain) - val reqETH = InfuraRequest.GetBalance(card!!.wallet) - reqETH.id = 67 - reqETH.setBlockchain(card!!.blockchain) +// val updateETH = ETHRequestTask(this@LoadedWallet, card!!.blockchain) - val reqNonce = InfuraRequest.GetOutTransactionCount(card!!.wallet) - reqNonce.id = 67 - reqNonce.setBlockchain(card!!.blockchain) +// val reqETH = InfuraRequest.GetBalance(card!!.wallet) +// reqETH.id = 67 +// reqETH.setBlockchain(card!!.blockchain) - updateETH.execute(reqETH, reqNonce) +// val reqNonce = InfuraRequest.GetOutTransactionCount(card!!.wallet) +// reqNonce.id = 67 +// reqNonce.setBlockchain(card!!.blockchain) + +// updateETH.execute(reqETH, reqNonce) +// updateETH.execute(reqNonce) requestRateInfo("ethereum") } // Token else if (card!!.blockchain == Blockchain.Token) { + val updateETH = ETHRequestTask(this@LoadedWallet, card!!.blockchain) + val reqETH = InfuraRequest.GetTokenBalance(card!!.wallet, engine!!.getContractAddress(card), engine.getTokenDecimals(card)) reqETH.id = 67 reqETH.setBlockchain(card!!.blockchain) - val reqBalance = InfuraRequest.GetBalance(card!!.wallet) - reqBalance.id = 67 - reqBalance.setBlockchain(card!!.blockchain) + requestInfura(ServerApiHelper.INFURA_ETH_GET_BALANCE) - val reqNonce = InfuraRequest.GetOutTransactionCount(card!!.wallet) - reqNonce.id = 67 - reqNonce.setBlockchain(card!!.blockchain) - updateETH.execute(reqETH, reqNonce, reqBalance) + requestInfura(ServerApiHelper.INFURA_ETH_GET_TRANSACTION_COUNT) + +// val reqBalance = InfuraRequest.GetBalance(card!!.wallet) +// reqBalance.id = 67 +// reqBalance.setBlockchain(card!!.blockchain) + +// val reqNonce = InfuraRequest.GetOutTransactionCount(card!!.wallet) +// reqNonce.id = 67 +// reqNonce.setBlockchain(card!!.blockchain) + +// updateETH.execute(reqETH, reqNonce, reqBalance) + updateETH.execute(reqETH) requestRateInfo("ethereum") }