Updated on 2026-08-14
This commit is contained in:
commit
50c0a4c43e
5 changed files with 35 additions and 1 deletions
|
|
@ -8,6 +8,7 @@ import android.nfc.NfcAdapter
|
|||
import android.nfc.Tag
|
||||
import android.nfc.tech.IsoDep
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
|
|
@ -231,6 +232,8 @@ class IdFragment : BaseFragment(), NfcAdapter.ReaderCallback,
|
|||
mpSecondScanSound.start()
|
||||
}
|
||||
} else {
|
||||
Log.d(this.javaClass.simpleName,
|
||||
"Error while reading ID card: ${cardProtocol.error.localizedMessage}")
|
||||
// remove last UIDs because of error and no card read
|
||||
FirebaseCrashlytics.getInstance().recordException(cardProtocol.error)
|
||||
rlProgressBar?.post {
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import android.os.Bundle
|
|||
import android.os.Parcelable
|
||||
import android.text.Editable
|
||||
import android.text.TextWatcher
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import android.widget.EditText
|
||||
import android.widget.RadioButton
|
||||
|
|
@ -22,7 +23,6 @@ import com.tangem.wallet.ethID.EthIdEngine
|
|||
import kotlinx.android.parcel.Parcelize
|
||||
import kotlinx.android.synthetic.main.fragment_issue_new_id.*
|
||||
import java.io.ByteArrayOutputStream
|
||||
import java.lang.Exception
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
|
||||
|
|
@ -54,6 +54,8 @@ class IssueNewIdFragment : BaseFragment(), NavigationResultListener {
|
|||
try {
|
||||
processData()
|
||||
} catch (exception: Exception) {
|
||||
Log.e(this.javaClass.simpleName,
|
||||
"Exception while processing data: ${exception.localizedMessage}")
|
||||
Toast.makeText(context, "Check for correctness of data", Toast.LENGTH_LONG).show()
|
||||
return@setOnClickListener
|
||||
}
|
||||
|
|
@ -123,6 +125,9 @@ class IssueNewIdFragment : BaseFragment(), NavigationResultListener {
|
|||
val inputs = "$name $lastName;$birthDate${gender.toString()}"
|
||||
val info = inputs.toByteArray() + photoInBytes!!
|
||||
ctx.card.idHash = Util.calculateSHA256(info)
|
||||
|
||||
Log.d(this.javaClass.simpleName,
|
||||
"ID info provided: $inputs,\n photo of size ${photoInBytes?.size}")
|
||||
}
|
||||
|
||||
private fun convertDate(inputDate: CharSequence): String {
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import android.nfc.NfcAdapter
|
|||
import android.nfc.Tag
|
||||
import android.nfc.tech.IsoDep
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
import com.google.firebase.crashlytics.FirebaseCrashlytics
|
||||
|
|
@ -114,6 +115,10 @@ class ValidateIdFragment : BaseFragment(), NavigationResultListener,
|
|||
val data = Bundle()
|
||||
ctx.saveToBundle(data)
|
||||
data.putByteArray(Constant.EXTRA_TX, tx)
|
||||
|
||||
Log.d(this.javaClass.simpleName,
|
||||
"Transaction is ready to be sent.")
|
||||
|
||||
navigateForResult(
|
||||
Constant.REQUEST_CODE_SEND_TRANSACTION_,
|
||||
R.id.action_validateIdFragment_to_writeIdFragment,
|
||||
|
|
@ -161,6 +166,8 @@ class ValidateIdFragment : BaseFragment(), NavigationResultListener,
|
|||
}
|
||||
|
||||
PINStorage.setPIN2(PINStorage.getDefaultPIN2())
|
||||
Log.d(this.javaClass.simpleName,
|
||||
"Ready to sing transaction, launching OneTouchSignTask")
|
||||
signTransactionTask = OneTouchSignTask(NfcReader((activity as MainActivity).nfcManager, isoDep),
|
||||
App.localStorage, App.pinStorage, this@ValidateIdFragment, transaction)
|
||||
signTransactionTask?.start()
|
||||
|
|
@ -216,6 +223,8 @@ class ValidateIdFragment : BaseFragment(), NavigationResultListener,
|
|||
|
||||
mpFinishSignSound.start()
|
||||
} else {
|
||||
Log.d(this.javaClass.simpleName,
|
||||
"Error while signing with ID Issuer card: ${cardProtocol.error.localizedMessage}")
|
||||
FirebaseCrashlytics.getInstance().recordException(cardProtocol.error)
|
||||
lastReadSuccess = false
|
||||
if (cardProtocol.error.javaClass == CardProtocol.TangemException_InvalidPIN::class.java) {
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import android.nfc.NfcAdapter
|
|||
import android.nfc.Tag
|
||||
import android.nfc.tech.IsoDep
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
import com.google.firebase.crashlytics.FirebaseCrashlytics
|
||||
|
|
@ -186,6 +187,8 @@ class WriteIdFragment : BaseFragment(), NavigationResultListener,
|
|||
)
|
||||
|
||||
} else {
|
||||
Log.d(this.javaClass.simpleName,
|
||||
"Error while writing on ID card: ${cardProtocol.error}")
|
||||
lastReadSuccess = false
|
||||
FirebaseCrashlytics.getInstance().recordException(cardProtocol.error)
|
||||
if (cardProtocol.error.javaClass == CardProtocol.TangemException_InvalidPIN::class.java) {
|
||||
|
|
|
|||
|
|
@ -277,6 +277,9 @@ public class EthIdEngine extends CoinEngine {
|
|||
@Override
|
||||
public SignTask.TransactionToSign constructTransaction(Amount amountValue, Amount feeValue, boolean IncFee, String targetAddress) {
|
||||
|
||||
Log.d(this.getClass().getSimpleName(),
|
||||
"Constructing transaction for signature");
|
||||
|
||||
final EthTransaction tx = constructIdTxForSign(coinData.getApprovalAddressNonce());
|
||||
|
||||
return new SignTask.TransactionToSign() {
|
||||
|
|
@ -309,6 +312,9 @@ public class EthIdEngine extends CoinEngine {
|
|||
|
||||
@Override
|
||||
public byte[] onSignCompleted(byte[] signFromCard) throws Exception {
|
||||
Log.d(this.getClass().getSimpleName(),
|
||||
"Transaction has been signed, now preparing transaction to send");
|
||||
|
||||
byte[] for_hash = tx.getRawHash();
|
||||
BigInteger r = new BigInteger(1, Arrays.copyOfRange(signFromCard, 0, 32));
|
||||
BigInteger s = new BigInteger(1, Arrays.copyOfRange(signFromCard, 32, 64));
|
||||
|
|
@ -330,6 +336,8 @@ public class EthIdEngine extends CoinEngine {
|
|||
Log.e(this.getClass().getSimpleName(), " V: " + String.valueOf(v));
|
||||
|
||||
byte[] txForSend = tx.getEncoded();
|
||||
Log.d(this.getClass().getSimpleName(),
|
||||
"Tx is ready to be sent");
|
||||
notifyOnNeedSendTransaction(txForSend);
|
||||
return txForSend;
|
||||
}
|
||||
|
|
@ -434,9 +442,13 @@ public class EthIdEngine extends CoinEngine {
|
|||
if (method.equals(ServerApiInfura.INFURA_ETH_SEND_RAW_TRANSACTION)) {
|
||||
if (infuraResponse.getResult() == null || infuraResponse.getResult().isEmpty()) {
|
||||
ctx.setError("Rejected by node: " + infuraResponse.getError());
|
||||
Log.d(this.getClass().getSimpleName(),
|
||||
"Rejected by node:" + infuraResponse.getError());
|
||||
blockchainRequestsCallbacks.onComplete(false);
|
||||
} else {
|
||||
ctx.setError(null);
|
||||
Log.d(this.getClass().getSimpleName(),
|
||||
"Transaction has been sent successfully");
|
||||
blockchainRequestsCallbacks.onComplete(true);
|
||||
}
|
||||
}
|
||||
|
|
@ -444,6 +456,8 @@ public class EthIdEngine extends CoinEngine {
|
|||
|
||||
@Override
|
||||
public void onFail(String method, String message) {
|
||||
Log.d(this.getClass().getSimpleName(),
|
||||
"requestSendTransaction failed with message: " + message);
|
||||
if (method.equals(ServerApiInfura.INFURA_ETH_SEND_RAW_TRANSACTION)) {
|
||||
ctx.setError(message);
|
||||
blockchainRequestsCallbacks.onComplete(false);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue