diff --git a/app/src/main/java/com/tangem/ui/fragment/id/IdFragment.kt b/app/src/main/java/com/tangem/ui/fragment/id/IdFragment.kt
index 61e4e7524a..f37118f1ba 100644
--- a/app/src/main/java/com/tangem/ui/fragment/id/IdFragment.kt
+++ b/app/src/main/java/com/tangem/ui/fragment/id/IdFragment.kt
@@ -341,6 +341,7 @@ class IdFragment : BaseFragment(), NfcAdapter.ReaderCallback,
validator.check(ctx, false)
context?.let { ContextCompat.getColor(it, validator.color) }?.let { tvBalanceLine1?.setTextColor(it) }
tvBalanceLine1?.text = getString(validator.firstLine)
+ tvBalanceLine2?.text = getString(validator.getSecondLine(false)).format(ctx.card.idCardData.trustedAddress)
}
if (ctx.card.hasIDCardData()) {
diff --git a/app/src/main/java/com/tangem/ui/fragment/id/IssueNewIdFragment.kt b/app/src/main/java/com/tangem/ui/fragment/id/IssueNewIdFragment.kt
index 119d692321..8418037d86 100644
--- a/app/src/main/java/com/tangem/ui/fragment/id/IssueNewIdFragment.kt
+++ b/app/src/main/java/com/tangem/ui/fragment/id/IssueNewIdFragment.kt
@@ -119,7 +119,7 @@ class IssueNewIdFragment : BaseFragment(), NavigationResultListener {
photoInBytes,
issuerExpireDate.issueDate,
issuerExpireDate.expireDate,
- (CoinEngineFactory.create(ctx) as? EthIdEngine)?.approvalAddress
+ (CoinEngineFactory.create(ctx) as? EthIdEngine)?.coinData?.approvalAddress
)
val inputs = "$name $lastName;$birthDate${gender.toString()}"
diff --git a/app/src/main/java/com/tangem/wallet/ethID/EthIdData.java b/app/src/main/java/com/tangem/wallet/ethID/EthIdData.java
index 6cdf9fcf0b..d77b1afdf3 100644
--- a/app/src/main/java/com/tangem/wallet/ethID/EthIdData.java
+++ b/app/src/main/java/com/tangem/wallet/ethID/EthIdData.java
@@ -9,6 +9,7 @@ public class EthIdData extends CoinData {
private boolean hasApprovalTx = false;
private Long approvalAddressNonce;
private byte[] CKDpub = null;
+ private String approvalAddress = "0x74bd17417f07ee8cf89a476fc3cc6ef7b7b140a7"; //default approval address for issuance
public boolean isHasApprovalTx() {
return hasApprovalTx;
@@ -34,6 +35,14 @@ public class EthIdData extends CoinData {
this.CKDpub = CKDpub;
}
+ public String getApprovalAddress() {
+ return approvalAddress;
+ }
+
+ public void setApprovalAddress(String approvalAddress) {
+ this.approvalAddress = approvalAddress;
+ }
+
@Override
public void clearInfo() {
super.clearInfo();
@@ -50,6 +59,8 @@ public class EthIdData extends CoinData {
}
if (B.containsKey("CKDpub")) CKDpub = B.getByteArray("CKDpub");
hasApprovalTx = B.getBoolean("HasApprovalTx");
+ if (B.containsKey("ApprovalAddress")) approvalAddress = B.getString("ApprovalAddress");
+
}
@Override
@@ -59,6 +70,7 @@ public class EthIdData extends CoinData {
if (approvalAddressNonce != null) B.putLong("ApprovalAddressNonce", approvalAddressNonce);
if (CKDpub != null) B.putByteArray("CKDpub", CKDpub);
B.putBoolean("HasApprovalTx", hasApprovalTx);
+ if (approvalAddress != null) B.putString("ApprovalAddress", approvalAddress);
} catch (Exception e) {
Log.e("Can't save to bundle ", e.getMessage());
diff --git a/app/src/main/java/com/tangem/wallet/ethID/EthIdEngine.java b/app/src/main/java/com/tangem/wallet/ethID/EthIdEngine.java
index c681805f2a..060eaa2c5d 100644
--- a/app/src/main/java/com/tangem/wallet/ethID/EthIdEngine.java
+++ b/app/src/main/java/com/tangem/wallet/ethID/EthIdEngine.java
@@ -43,8 +43,8 @@ public class EthIdEngine extends CoinEngine {
private static final String TAG = com.tangem.wallet.eth.EthEngine.class.getSimpleName();
public EthIdData coinData = null;
- private byte[] approvalPubKey = Util.hexToBytes("04EAD74FEEE4061044F46B19EB654CEEE981E9318F0C8FE99AF5CDB9D779D2E52BB51EA2D14545E0B323F7A90CF4CC72753C973149009C10DB2D83DCEC28487729"); //TODO
- public String approvalAddress = calculateAddress(approvalPubKey); //TODO
+ //default approval public key for issuance
+ private byte[] approvalPubKey = Util.hexToBytes("04EAD74FEEE4061044F46B19EB654CEEE981E9318F0C8FE99AF5CDB9D779D2E52BB51EA2D14545E0B323F7A90CF4CC72753C973149009C10DB2D83DCEC28487729");
public EthIdEngine(TangemContext ctx) throws Exception {
super(ctx);
@@ -232,12 +232,12 @@ public class EthIdEngine extends CoinEngine {
if (coinData != null && coinData.isHasApprovalTx()) {
balanceValidator.setScore(100);
balanceValidator.setFirstLine(R.string.id_verified);
- balanceValidator.setSecondLine(R.string.balance_validator_second_line_unverified_balance);
+ balanceValidator.setSecondLine(R.string.balance_validator_second_line_issued_by);
return false;
} else {
balanceValidator.setScore(0);
balanceValidator.setFirstLine(R.string.id_not_registered);
- balanceValidator.setSecondLine(R.string.balance_validator_second_line_unverified_balance);
+ balanceValidator.setSecondLine(R.string.empty_string);
return false;
}
}
@@ -389,7 +389,7 @@ public class EthIdEngine extends CoinEngine {
public void onSuccess(BlockcypherTx response) {
Log.i(TAG, "onSuccess: BlockcypherTx");
try {
- String address = approvalAddress;
+ String address = coinData.getApprovalAddress();
if (address.startsWith("0x") || address.startsWith("0X")) {
address = address.substring(2);
}
@@ -484,6 +484,12 @@ public class EthIdEngine extends CoinEngine {
try {
String wallet = calculateAddress(calculateCKDpub(ctx.getCard().getIdHash()));
ctx.getCoinData().setWallet(wallet);
+
+ TangemCard.IDCardData idCardData = ctx.getCard().getIDCardData();
+ if (idCardData != null && idCardData.trustedAddress != null) {
+ String approvalAddress = ctx.getCard().getIDCardData().trustedAddress;
+ coinData.setApprovalAddress(approvalAddress);
+ }
} catch (Exception e) {
ctx.getCoinData().setWallet("ERROR");
throw new CardProtocol.TangemException("Can't define wallet address");
@@ -542,6 +548,6 @@ public class EthIdEngine extends CoinEngine {
};
serverApiInfura.setResponseListener(responseListener);
- serverApiInfura.requestData(ServerApiInfura.INFURA_ETH_GET_PENDING_COUNT, 67, approvalAddress, "", "");
+ serverApiInfura.requestData(ServerApiInfura.INFURA_ETH_GET_PENDING_COUNT, 67, coinData.getApprovalAddress(), "", "");
}
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 3081823d17..a2cd5b4f1e 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -148,6 +148,7 @@
To create account send 1+ XLM to this address
Load 20+ XRP to create account
Authenticity cannot be verified. Swipe down to refresh.
+ Issued by %s
Now touch the card with ID