Updated on 2026-08-14

This commit is contained in:
Tangem 2020-04-08 18:45:57 +03:00
commit 76929656e2
9 changed files with 44 additions and 43 deletions

View file

@ -20,7 +20,7 @@ public enum Blockchain {
Rootstock("RSK", "RBTC", 1.0, R.drawable.tangem2, "RSK"),
RootstockToken("RskToken", "RBTC", 1.0, R.drawable.tangem2, "RSK"),
Cardano("CARDANO", "ADA", 1000000.0, R.drawable.tangem2, "Cardano"),
Ripple ("XRP", "XRP", 1000000.0, R.drawable.ic_logo_xrp, "XRP"),
Ripple("XRP", "XRP", 1000000.0, R.drawable.ic_logo_xrp, "XRP"),
Binance("BINANCE", "BNB", 100000000.0, R.drawable.ic_logo_binance, "Binance"),
BinanceTestNet("BINANCE/test", "BNB", 100000000.0, R.drawable.ic_logo_binance, "Binance Testnet"),
Matic("MATIC", "MTX", 1.0, R.drawable.tangem2, "Matic"),
@ -89,37 +89,18 @@ public enum Blockchain {
return mImageResource;
}
public int getImageResource(android.content.Context context, String name) {
if (name==null || name.isEmpty())
return getImageResource();
name = name.toLowerCase();
int resourceId = context.getResources().getIdentifier(name + "_token", "drawable", context.getPackageName());
if (resourceId <= 0)
return R.drawable.ic_logo_ethereum;
return resourceId;
}
public static int getLogoImageResource(String blockchainID, String symbolName) {
switch (blockchainID) {
case "BTC":
return R.drawable.ic_logo_bitcoin;
case "Token":
public int getLogoImageResource(String symbolName) {
switch (this) {
case Token:
if (symbolName.equals("SEED"))
return R.drawable.ic_logo_seed;
else
return R.drawable.ic_logo_ethereum;
case "ETH":
return R.drawable.ic_logo_ethereum;
case "XLM":
return R.drawable.ic_logo_stellar;
break;
case RootstockToken:
if (symbolName.equals("RIF"))
return R.drawable.ic_logo_rif;
}
return R.drawable.tangem2;
return getImageResource();
}
}

View file

@ -281,7 +281,7 @@ class VerifyCardFragment : BaseFragment(), NavigationResultListener, NfcAdapter.
tvInputs.text = engine!!.unspentInputsDescription
ivBlockchain.setImageResource(Blockchain.getLogoImageResource(ctx.card!!.blockchainID, ctx.card!!.tokenSymbol))
ivBlockchain.setImageResource(ctx.blockchain.getLogoImageResource(ctx.card!!.tokenSymbol))
var s = ""
for (signingM in ctx.card!!.allowedSigningMethod) {

View file

@ -15,7 +15,7 @@ public class BtcData extends CoinData {
super();
}
private Long balanceConfirmed, balanceUnconfirmed;
protected Long balanceConfirmed, balanceUnconfirmed;
private boolean useBlockcypher = false;

View file

@ -0,0 +1,16 @@
package com.tangem.wallet.ducatus;
import com.tangem.wallet.CoinEngine;
import com.tangem.wallet.btc.BtcData;
import java.math.BigDecimal;
public class DucatusData extends BtcData {
public CoinEngine.InternalAmount getBalanceInInternalUnits() {
if (balanceConfirmed != null) {
return new CoinEngine.InternalAmount(BigDecimal.valueOf(balanceConfirmed), "Satoshi");
} else {
return null;
}
}
}

View file

@ -46,15 +46,15 @@ import io.reactivex.observers.DisposableSingleObserver;
public class DucatusEngine extends BtcEngine {
private static final String TAG = DucatusEngine.class.getSimpleName();
public BtcData coinData = null;
public DucatusData coinData = null;
public DucatusEngine(TangemContext context) throws Exception {
super(context);
this.ctx = context;
if (context.getCoinData() == null) {
coinData = new BtcData();
coinData = new DucatusData();
context.setCoinData(coinData);
} else if (context.getCoinData() instanceof BtcData) {
coinData = (BtcData) context.getCoinData();
} else if (context.getCoinData() instanceof DucatusData) {
coinData = (DucatusData) context.getCoinData();
} else {
throw new Exception("Invalid type of Blockchain data for DucatusEngine");
}
@ -380,7 +380,7 @@ public class DucatusEngine extends BtcEngine {
@Override
public CoinData createCoinData() {
return new BtcData();
return new DucatusData();
}
@Override

View file

@ -7,14 +7,11 @@ import com.tangem.tangem_card.reader.CardProtocol.TangemException
import com.tangem.tangem_card.tasks.SignTask
import com.tangem.tangem_card.util.Util
import com.tangem.wallet.*
import com.tangem.wallet.binance.client.domain.Account
import com.tangem.wallet.flowDemo.proto.Observation
import com.tangem.wallet.flowDemo.proto.ObserveServiceGrpc
import io.grpc.ManagedChannelBuilder
import io.reactivex.Observable
import io.reactivex.Single
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.functions.Function
import io.reactivex.observers.DisposableSingleObserver
import io.reactivex.schedulers.Schedulers
import java.util.concurrent.TimeUnit
@ -247,4 +244,8 @@ class FlowDemoEngine : CoinEngine {
override fun createCoinData(): CoinData {
return FlowDemoData()
}
override fun isNftToken(): Boolean {
return true
}
}

View file

@ -109,8 +109,8 @@ public class XlmAssetEngine extends CoinEngine {
@Override
public boolean isBalanceNotZero() {
if (coinData == null) return false;
return (coinData.getXlmBalance() != null && coinData.getXlmBalance().notZero() &&
coinData.getAssetBalance() != null && coinData.getAssetBalance().notZero());
return (coinData.getXlmBalance() != null && coinData.getXlmBalance().notZero()) ||
(coinData.getAssetBalance() != null && coinData.getAssetBalance().notZero());
}
@Override
@ -128,6 +128,8 @@ public class XlmAssetEngine extends CoinEngine {
ctx.setMessage(R.string.general_wallet_empty);
} else if (awaitingConfirmation()) {
ctx.setMessage(R.string.loaded_wallet_message_wait);
} else if (coinData.getXlmBalance() == null || coinData.getXlmBalance().isZero()) {
ctx.setMessage(ctx.getString(R.string.confirm_transaction_error_not_enough_xlm_for_fee));
} else {
return true;
}
@ -259,7 +261,7 @@ public class XlmAssetEngine extends CoinEngine {
balanceValidator.setScore(100);
balanceValidator.setFirstLine(R.string.balance_validator_first_line_verified_balance);
balanceValidator.setSecondLine(R.string.balance_validator_second_line_confirmed_in_blockchain);
if (coinData.getXlmBalance().isZero()) {
if (!isBalanceNotZero()) {
balanceValidator.setFirstLine(R.string.balance_validator_first_line_empty_wallet);
balanceValidator.setSecondLine(R.string.empty_string);
}

View file

@ -210,6 +210,7 @@
<string name="confirm_transaction_error_cannot_calculate_fee">Cannot calculate fee! Wrong data received from the node</string>
<string name="confirm_transaction_error_incoming_transaction_unconfirmed">Please wait for confirmation of incoming transaction</string>
<string name="confirm_transaction_error_not_enough_eth_for_fee">Not enough ETH funds for fee</string>
<string name="confirm_transaction_error_not_enough_xlm_for_fee">Not enough XLM funds for fee</string>
<string name="confirm_transaction_error_not_enough_rbtc_for_fee">Not enough RBTC funds for fee</string>
<string name="confirm_transaction_error_not_enough_xlm_for_create">Target account is not created! Send 1+ XLM to create it</string>
<string name="confirm_transaction_error_pin_2_is_required">PIN2 is required to sign the payment</string>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB