From 1d0e1c276ee4530a818a95f7044d0a09c4b41493 Mon Sep 17 00:00:00 2001 From: Tangem Date: Sun, 7 Oct 2018 16:47:44 +0300 Subject: [PATCH] Updated on 2026-08-14 --- app/build.gradle | 2 +- .../tangem/data/network/ServerApiHelper.java | 1 - .../activity/SendTransactionActivity.kt | 53 +++++++++++++++---- .../presentation/fragment/LoadedWallet.kt | 9 ++-- 4 files changed, 48 insertions(+), 17 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 1fe2b689f2..a5d0b7aa22 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,7 +15,7 @@ android { applicationId "com.tangem.wallet" minSdkVersion 21 targetSdkVersion 27 - versionCode 85 + versionCode 86 versionName "0.89.2." + generateVersionName() testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } 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 8cf46df584..f4f3e8d00e 100644 --- a/app/src/main/java/com/tangem/data/network/ServerApiHelper.java +++ b/app/src/main/java/com/tangem/data/network/ServerApiHelper.java @@ -260,7 +260,6 @@ public class ServerApiHelper { } public void requestArtwork(String artworkId, Date updateDate, TangemCard card) { - HttpLoggingInterceptor logging = new HttpLoggingInterceptor(); logging.setLevel(HttpLoggingInterceptor.Level.BODY); diff --git a/app/src/main/java/com/tangem/presentation/activity/SendTransactionActivity.kt b/app/src/main/java/com/tangem/presentation/activity/SendTransactionActivity.kt index 840245a068..3e736a21f2 100644 --- a/app/src/main/java/com/tangem/presentation/activity/SendTransactionActivity.kt +++ b/app/src/main/java/com/tangem/presentation/activity/SendTransactionActivity.kt @@ -11,7 +11,6 @@ import android.widget.Toast import com.tangem.data.network.ServerApiHelper import com.tangem.data.network.model.InfuraResponse import com.tangem.data.network.request.ElectrumRequest -import com.tangem.data.network.task.send_transaction.ConnectTask import com.tangem.domain.cardReader.NfcManager import com.tangem.domain.wallet.Blockchain import com.tangem.domain.wallet.CoinEngineFactory @@ -61,18 +60,50 @@ class SendTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback requestInfura(ServerApiHelper.INFURA_ETH_SEND_RAW_TRANSACTION, "") } else if (card!!.blockchain == Blockchain.Bitcoin || card!!.blockchain == Blockchain.BitcoinTestNet) { - val nodeAddress = engine!!.getNode(card) - val nodePort = engine.getNodePort(card) - val connectTask = ConnectTask(this@SendTransactionActivity, nodeAddress, nodePort, 3) - connectTask.execute(ElectrumRequest.broadcast(card!!.wallet, tx)) +// val nodeAddress = engine!!.getNode(card) +// val nodePort = engine.getNodePort(card) +// val connectTask = ConnectTask(this@SendTransactionActivity, nodeAddress, nodePort, 3) +// connectTask.execute(ElectrumRequest.broadcast(card!!.wallet, tx)) + + requestElectrum(card!!, ElectrumRequest.broadcast(card!!.wallet, tx)) } else if (card!!.blockchain == Blockchain.BitcoinCash || card!!.blockchain == Blockchain.BitcoinCashTestNet) { - val nodeAddress = engine!!.getNode(card) - val nodePort = engine.getNodePort(card) - val connectTask = ConnectTask(this@SendTransactionActivity, nodeAddress, nodePort, 3) - connectTask.execute(ElectrumRequest.broadcast(card!!.wallet, tx)) +// val nodeAddress = engine!!.getNode(card) +// val nodePort = engine.getNodePort(card) +// val connectTask = ConnectTask(this@SendTransactionActivity, nodeAddress, nodePort, 3) +// connectTask.execute(ElectrumRequest.broadcast(card!!.wallet, tx)) + requestElectrum(card!!, ElectrumRequest.broadcast(card!!.wallet, tx)) + } + // request electrum listener + serverApiHelper!!.setElectrumRequestData { + if (it.isMethod(ElectrumRequest.METHOD_SendTransaction)) { + try { + var hashTX = it.resultString + + try { + LastSignStorage.setLastMessage(card!!.wallet, hashTX) + if (hashTX.startsWith("0x") || hashTX.startsWith("0X")) { + hashTX = hashTX.substring(2) + } + val bigInt = BigInteger(hashTX, 16) //TODO: очень плохой способ + LastSignStorage.setTxWasSend(card!!.wallet) + LastSignStorage.setLastMessage(card!!.wallet, "") + Log.e("TX_RESULT", hashTX) + finishWithSuccess() + } catch (e: Exception) { + e.printStackTrace() +// finishWithError(hashTX) + requestElectrum(card!!, ElectrumRequest.broadcast(card!!.wallet, tx)) + } + + } catch (e: JSONException) { + e.printStackTrace() +// finishWithError(e.toString()) + requestElectrum(card!!, ElectrumRequest.broadcast(card!!.wallet, tx)) + } + } } // request eth sendRawTransaction @@ -150,6 +181,10 @@ class SendTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback serverApiHelper!!.infura(method, 67, card!!.wallet, contract, tx) } + private fun requestElectrum(card: TangemCard, electrumRequest: ElectrumRequest) { + serverApiHelper!!.electrumRequestData(card, electrumRequest) + } + fun finishWithError(message: String) { val intent = Intent() intent.putExtra("message", String.format(getString(R.string.try_again_failed_to_send_transaction), message)) 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 e86aecc573..70ea2df1b8 100644 --- a/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt +++ b/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt @@ -236,7 +236,7 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific if (it.isMethod(ElectrumRequest.METHOD_ListUnspent)) { try { - val mWalletAddress = it.params.getString(0) + val walletAddress = it.params.getString(0) val jsUnspentArray = it.resultArray try { card!!.unspentTransactions.clear() @@ -250,7 +250,6 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific } } catch (e: JSONException) { e.printStackTrace() - engine.switchNode(card) } for (i in 0 until jsUnspentArray.length()) { @@ -265,13 +264,12 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific // updateWalletInfoTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ElectrumRequest.getHeader(mWalletAddress, height.toString()), ElectrumRequest.getTransaction(mWalletAddress, hash)) - requestElectrum(card!!, ElectrumRequest.getHeader(mWalletAddress, height.toString())) - requestElectrum(card!!, ElectrumRequest.getTransaction(mWalletAddress, hash)) + requestElectrum(card!!, ElectrumRequest.getHeader(walletAddress, height.toString())) + requestElectrum(card!!, ElectrumRequest.getTransaction(walletAddress, hash)) } } } catch (e: JSONException) { e.printStackTrace() - engine.switchNode(card) } } @@ -348,7 +346,6 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific updateViews() val result = it.results!![0] if (result.error != null) { -// Log.e(TAG, "Can't verify card: ${result.error}") card!!.isOnlineVerified = false return@setCardVerifyAndGetInfoListener }