Updated on 2026-08-14

This commit is contained in:
Tangem 2018-08-08 17:33:08 +03:00
parent 57a20d3cfc
commit 56fc4cad76
27 changed files with 470 additions and 478 deletions

View file

@ -8,7 +8,8 @@ import java.util.ArrayList;
import java.util.List;
public class VerificationServerTask extends AsyncTask<VerificationServerProtocol.Request, Void, List<VerificationServerProtocol.Request>> {
public static final String hostURL = "https://tangem-webapp.appspot.com";
// public static final String hostURL = "https://tangem-webapp.appspot.com";
public static final String hostURL = "https://verify.tangem.com";
public VerificationServerTask() {

View file

@ -40,11 +40,11 @@ public class ETHRequestTask extends InfuraTask {
BigInteger d = l.divide(new BigInteger("1000000000000000000", 10));
Long balance = d.longValue();
loadedWallet.getMCard().setBalanceConfirmed(balance);
loadedWallet.getMCard().setBalanceUnconfirmed(0L);
if (loadedWallet.getMCard().getBlockchain() != Blockchain.Token)
loadedWallet.getMCard().setDecimalBalance(l.toString(10));
loadedWallet.getMCard().setDecimalBalanceAlter(l.toString(10));
loadedWallet.getCard().setBalanceConfirmed(balance);
loadedWallet.getCard().setBalanceUnconfirmed(0L);
if (loadedWallet.getCard().getBlockchain() != Blockchain.Token)
loadedWallet.getCard().setDecimalBalance(l.toString(10));
loadedWallet.getCard().setDecimalBalanceAlter(l.toString(10));
} catch (JSONException e) {
e.printStackTrace();
@ -57,16 +57,16 @@ public class ETHRequestTask extends InfuraTask {
Long balance = l.longValue();
if (l.compareTo(BigInteger.ZERO) == 0) {
loadedWallet.getMCard().setBlockchainID(Blockchain.Ethereum.getID());
loadedWallet.getMCard().addTokenToBlockchainName();
loadedWallet.getCard().setBlockchainID(Blockchain.Ethereum.getID());
loadedWallet.getCard().addTokenToBlockchainName();
loadedWallet.getSrlLoadedWallet().setRefreshing(false);
loadedWallet.refresh();
return;
}
loadedWallet.getMCard().setBalanceConfirmed(balance);
loadedWallet.getMCard().setBalanceUnconfirmed(0L);
loadedWallet.getMCard().setDecimalBalance(l.toString(10));
loadedWallet.getCard().setBalanceConfirmed(balance);
loadedWallet.getCard().setBalanceUnconfirmed(0L);
loadedWallet.getCard().setDecimalBalance(l.toString(10));
} catch (JSONException e) {
e.printStackTrace();
@ -77,7 +77,7 @@ public class ETHRequestTask extends InfuraTask {
nonce = nonce.substring(2);
BigInteger count = new BigInteger(nonce, 16);
loadedWallet.getMCard().SetConfirmTXCount(count);
loadedWallet.getCard().SetConfirmTXCount(count);
} catch (JSONException e) {
e.printStackTrace();
}
@ -92,7 +92,7 @@ public class ETHRequestTask extends InfuraTask {
JSONObject msg = request.getAnswer();
JSONObject err = msg.getJSONObject("error");
hashTX = err.getString("message");
LastSignStorage.setLastMessage(loadedWallet.getMCard().getWallet(), hashTX);
LastSignStorage.setLastMessage(loadedWallet.getCard().getWallet(), hashTX);
return;
}
@ -100,14 +100,14 @@ public class ETHRequestTask extends InfuraTask {
hashTX = hashTX.substring(2);
}
BigInteger bigInt = new BigInteger(hashTX, 16); //TODO: очень плохой способ
LastSignStorage.setTxWasSend(loadedWallet.getMCard().getWallet());
LastSignStorage.setLastMessage(loadedWallet.getMCard().getWallet(), "");
LastSignStorage.setTxWasSend(loadedWallet.getCard().getWallet());
LastSignStorage.setLastMessage(loadedWallet.getCard().getWallet(), "");
Log.e("TX_RESULT", hashTX);
BigInteger nonce = loadedWallet.getMCard().GetConfirmTXCount();
BigInteger nonce = loadedWallet.getCard().GetConfirmTXCount();
nonce.add(BigInteger.valueOf(1));
loadedWallet.getMCard().SetConfirmTXCount(nonce);
loadedWallet.getCard().SetConfirmTXCount(nonce);
Log.e("TX_RESULT", hashTX);
} catch (Exception e) {

View file

@ -39,7 +39,7 @@ public class RateInfoTask extends ExchangeTask {
String usd = obj.getString("price_usd");
Float rate = Float.valueOf(usd);
loadedWallet.getMCard().setRate(rate);
loadedWallet.getCard().setRate(rate);
loadedWallet.updateViews();
stop = true;
}
@ -48,7 +48,7 @@ public class RateInfoTask extends ExchangeTask {
String usd = obj.getString("price_usd");
Float rate = Float.valueOf(usd);
loadedWallet.getMCard().setRateAlter(rate);
loadedWallet.getCard().setRateAlter(rate);
loadedWallet.updateViews();
stopAlter = true;
}

View file

@ -59,8 +59,8 @@ public class UpdateWalletInfoTask extends ElectrumTask {
// loadedWallet.updateTasks.remove(this);
try {
CoinEngine engine = CoinEngineFactory.Create(
loadedWallet.getMCard().getBlockchain());
CoinEngine engine = CoinEngineFactory.create(
loadedWallet.getCard().getBlockchain());
for (ElectrumRequest request : requests) {
try {
@ -70,12 +70,12 @@ public class UpdateWalletInfoTask extends ElectrumTask {
String mWalletAddress = request.getParams().getString(0);
Long confBalance = request.getResult().getLong("confirmed");
Long unconf = request.getResult().getLong("unconfirmed");
loadedWallet.getMCard().setBalanceRecieved(true);
loadedWallet.getCard().setBalanceReceived(true);
if (sharedCounter != null) {
boolean notEqualBalance = sharedCounter.UpdatePayload(new BigDecimal(String.valueOf(confBalance)));
if (notEqualBalance)
loadedWallet.getMCard().setIsBalanceEqual(false);
loadedWallet.getCard().setIsBalanceEqual(false);
int counter = sharedCounter.requestCounter.incrementAndGet();
if (counter != 1) {
continue;
@ -83,22 +83,22 @@ public class UpdateWalletInfoTask extends ElectrumTask {
}
loadedWallet.getMCard().setBalanceConfirmed(confBalance);
loadedWallet.getMCard().setBalanceUnconfirmed(unconf);
loadedWallet.getMCard().setDecimalBalance(String.valueOf(confBalance));
loadedWallet.getCard().setBalanceConfirmed(confBalance);
loadedWallet.getCard().setBalanceUnconfirmed(unconf);
loadedWallet.getCard().setDecimalBalance(String.valueOf(confBalance));
loadedWallet.getMCard().setValidationNodeDescription(getValidationNodeDescription());
loadedWallet.getCard().setValidationNodeDescription(getValidationNodeDescription());
} catch (JSONException e) {
if (sharedCounter != null) {
int errCounter = sharedCounter.errorRequest.incrementAndGet();
loadedWallet.getMCard().incFailedBalanceRequestCounter();
loadedWallet.getCard().incFailedBalanceRequestCounter();
if (errCounter >= sharedCounter.allRequest) {
e.printStackTrace();
engine.SwitchNode(loadedWallet.getMCard());
engine.switchNode(loadedWallet.getCard());
}
} else {
e.printStackTrace();
engine.SwitchNode(loadedWallet.getMCard());
engine.switchNode(loadedWallet.getCard());
}
}
} else if (request.isMethod(ElectrumRequest.METHOD_SendTransaction)) {
@ -106,22 +106,22 @@ public class UpdateWalletInfoTask extends ElectrumTask {
String hashTX = request.getResultString();
try {
LastSignStorage.setLastMessage(loadedWallet.getMCard().getWallet(), hashTX);
LastSignStorage.setLastMessage(loadedWallet.getCard().getWallet(), hashTX);
if (hashTX.startsWith("0x") || hashTX.startsWith("0X")) {
hashTX = hashTX.substring(2);
}
BigInteger bigInt = new BigInteger(hashTX, 16); //TODO: очень плохой способ
LastSignStorage.setTxWasSend(loadedWallet.getMCard().getWallet());
LastSignStorage.setLastMessage(loadedWallet.getMCard().getWallet(), "");
LastSignStorage.setTxWasSend(loadedWallet.getCard().getWallet());
LastSignStorage.setLastMessage(loadedWallet.getCard().getWallet(), "");
// Log.e("TX_RESULT", hashTX);
} catch (Exception e) {
engine.SwitchNode(loadedWallet.getMCard());
engine.switchNode(loadedWallet.getCard());
}
} catch (JSONException e) {
e.printStackTrace();
engine.SwitchNode(loadedWallet.getMCard());
engine.switchNode(loadedWallet.getCard());
}
} else if (request.isMethod(ElectrumRequest.METHOD_ListUnspent)) {
try {
@ -129,18 +129,18 @@ public class UpdateWalletInfoTask extends ElectrumTask {
JSONArray jsUnspentArray = request.getResultArray();
try {
loadedWallet.getMCard().getUnspentTransactions().clear();
loadedWallet.getCard().getUnspentTransactions().clear();
for (int i = 0; i < jsUnspentArray.length(); i++) {
JSONObject jsUnspent = jsUnspentArray.getJSONObject(i);
TangemCard.UnspentTransaction trUnspent = new TangemCard.UnspentTransaction();
trUnspent.txID = jsUnspent.getString("tx_hash");
trUnspent.Amount = jsUnspent.getInt("value");
trUnspent.Height = jsUnspent.getInt("height");
loadedWallet.getMCard().getUnspentTransactions().add(trUnspent);
loadedWallet.getCard().getUnspentTransactions().add(trUnspent);
}
} catch (JSONException e) {
e.printStackTrace();
engine.SwitchNode(loadedWallet.getMCard());
engine.switchNode(loadedWallet.getCard());
}
for (int i = 0; i < jsUnspentArray.length(); i++) {
@ -148,8 +148,8 @@ public class UpdateWalletInfoTask extends ElectrumTask {
Integer height = jsUnspent.getInt("height");
String hash = jsUnspent.getString("tx_hash");
if (height != -1) {
String nodeAddress = engine.GetNextNode(loadedWallet.getMCard());
int nodePort = engine.GetNextNodePort(loadedWallet.getMCard());
String nodeAddress = engine.getNextNode(loadedWallet.getCard());
int nodePort = engine.getNextNodePort(loadedWallet.getCard());
UpdateWalletInfoTask updateWalletInfoTask = new UpdateWalletInfoTask(loadedWallet, nodeAddress, nodePort);
// loadedWallet.updateTasks.add(updateWalletInfoTask);
@ -160,7 +160,7 @@ public class UpdateWalletInfoTask extends ElectrumTask {
}
} catch (JSONException e) {
e.printStackTrace();
engine.SwitchNode(loadedWallet.getMCard());
engine.switchNode(loadedWallet.getCard());
}
} else if (request.isMethod(ElectrumRequest.METHOD_GetHistory)) {
try {
@ -168,17 +168,17 @@ public class UpdateWalletInfoTask extends ElectrumTask {
JSONArray jsHistoryArray = request.getResultArray();
try {
loadedWallet.getMCard().getHistoryTransactions().clear();
loadedWallet.getCard().getHistoryTransactions().clear();
for (int i = 0; i < jsHistoryArray.length(); i++) {
JSONObject jsUnspent = jsHistoryArray.getJSONObject(i);
TangemCard.HistoryTransaction trHistory = new TangemCard.HistoryTransaction();
trHistory.txID = jsUnspent.getString("tx_hash");
trHistory.Height = jsUnspent.getInt("height");
loadedWallet.getMCard().getHistoryTransactions().add(trHistory);
loadedWallet.getCard().getHistoryTransactions().add(trHistory);
}
} catch (JSONException e) {
e.printStackTrace();
engine.SwitchNode(loadedWallet.getMCard());
engine.switchNode(loadedWallet.getCard());
}
for (int i = 0; i < jsHistoryArray.length(); i++) {
@ -187,8 +187,8 @@ public class UpdateWalletInfoTask extends ElectrumTask {
String hash = jsUnspent.getString("tx_hash");
if (height != -1) {
String nodeAddress = engine.GetNode(loadedWallet.getMCard());
int nodePort = engine.GetNodePort(loadedWallet.getMCard());
String nodeAddress = engine.getNode(loadedWallet.getCard());
int nodePort = engine.getNodePort(loadedWallet.getCard());
UpdateWalletInfoTask updateWalletInfoTask = new UpdateWalletInfoTask(loadedWallet, nodeAddress, nodePort);
// loadedWallet.updateTasks.add(updateWalletInfoTask);
@ -199,25 +199,25 @@ public class UpdateWalletInfoTask extends ElectrumTask {
}
} catch (JSONException e) {
e.printStackTrace();
engine.SwitchNode(loadedWallet.getMCard());
engine.switchNode(loadedWallet.getCard());
}
} else if (request.isMethod(ElectrumRequest.METHOD_GetHeader)) {
try {
JSONObject jsHeader = request.getResult();
try {
loadedWallet.getMCard().getHaedersInfo();
loadedWallet.getMCard().UpdateHeaderInfo(new TangemCard.HeaderInfo(
loadedWallet.getCard().getHaedersInfo();
loadedWallet.getCard().UpdateHeaderInfo(new TangemCard.HeaderInfo(
jsHeader.getInt("block_height"),
jsHeader.getInt("timestamp")));
} catch (JSONException e) {
e.printStackTrace();
engine.SwitchNode(loadedWallet.getMCard());
engine.switchNode(loadedWallet.getCard());
}
} catch (JSONException e) {
e.printStackTrace();
engine.SwitchNode(loadedWallet.getMCard());
engine.switchNode(loadedWallet.getCard());
}
} else if (request.isMethod(ElectrumRequest.METHOD_GetTransaction)) {
@ -226,14 +226,14 @@ public class UpdateWalletInfoTask extends ElectrumTask {
String txHash = request.TxHash;
String raw = request.getResultString();
List<TangemCard.UnspentTransaction> listTx = loadedWallet.getMCard().getUnspentTransactions();
List<TangemCard.UnspentTransaction> listTx = loadedWallet.getCard().getUnspentTransactions();
for (TangemCard.UnspentTransaction tx : listTx) {
if (tx.txID.equals(txHash)) {
tx.Raw = raw;
}
}
List<TangemCard.HistoryTransaction> listHTx = loadedWallet.getMCard().getHistoryTransactions();
List<TangemCard.HistoryTransaction> listHTx = loadedWallet.getCard().getHistoryTransactions();
for (TangemCard.HistoryTransaction tx : listHTx) {
if (tx.txID.equals(txHash)) {
tx.Raw = raw;
@ -260,28 +260,26 @@ public class UpdateWalletInfoTask extends ElectrumTask {
} catch (JSONException e) {
e.printStackTrace();
engine.SwitchNode(loadedWallet.getMCard());
engine.switchNode(loadedWallet.getCard());
}
}
loadedWallet.updateViews();
} else {
if (sharedCounter != null) {
int errCounter = sharedCounter.errorRequest.incrementAndGet();
loadedWallet.getMCard().incFailedBalanceRequestCounter();
loadedWallet.getCard().incFailedBalanceRequestCounter();
if (errCounter >= sharedCounter.allRequest) {
engine.SwitchNode(loadedWallet.getMCard());
engine.switchNode(loadedWallet.getCard());
}
} else {
engine.SwitchNode(loadedWallet.getMCard());
engine.switchNode(loadedWallet.getCard());
}
}
} catch (JSONException e) {
if (sharedCounter != null) {
int errCounter = sharedCounter.errorRequest.incrementAndGet();
loadedWallet.getMCard().incFailedBalanceRequestCounter();
loadedWallet.getCard().incFailedBalanceRequestCounter();
if (errCounter >= sharedCounter.allRequest) {
e.printStackTrace();
}
@ -300,7 +298,6 @@ public class UpdateWalletInfoTask extends ElectrumTask {
reference.get().getSrlLoadedWallet().setRefreshing(false);
}
}
}
}

View file

@ -29,16 +29,16 @@ public class ConnectTask extends ElectrumTask {
remaining_attempts--;
CoinEngine engine = CoinEngineFactory.Create(mCard.getBlockchain());
CoinEngine engine = CoinEngineFactory.create(mCard.getBlockchain());
if (mCard.getBlockchain() == Blockchain.Bitcoin || mCard.getBlockchain() == Blockchain.BitcoinTestNet) {
String nodeAddress = engine.GetNode(mCard);
int nodePort = engine.GetNodePort(mCard);
String nodeAddress = engine.getNode(mCard);
int nodePort = engine.getNodePort(mCard);
ConnectTask connectTask = new ConnectTask(reference.get(), nodeAddress, nodePort, remaining_attempts);
connectTask.execute(ElectrumRequest.Broadcast(mCard.getWallet(), tx));
} else if (mCard.getBlockchain() == Blockchain.BitcoinCash || mCard.getBlockchain() == Blockchain.BitcoinCashTestNet) {
String nodeAddress = engine.GetNode(mCard);
int nodePort = engine.GetNodePort(mCard);
String nodeAddress = engine.getNode(mCard);
int nodePort = engine.getNodePort(mCard);
ConnectTask connectTask = new ConnectTask(reference.get(), nodeAddress, nodePort, remaining_attempts);
connectTask.execute(ElectrumRequest.Broadcast(mCard.getWallet(), tx));
}
@ -71,7 +71,7 @@ public class ConnectTask extends ElectrumTask {
super.onPostExecute(requests);
SendTransactionActivity sendTransactionActivity = reference.get();
CoinEngine engine = CoinEngineFactory.Create(Blockchain.Bitcoin);
CoinEngine engine = CoinEngineFactory.create(Blockchain.Bitcoin);
for (ElectrumRequest request : requests) {
try {
@ -91,26 +91,26 @@ public class ConnectTask extends ElectrumTask {
Log.e("TX_RESULT", hashTX);
sendTransactionActivity.finishWithSuccess();
} catch (Exception e) {
engine.SwitchNode(null);
engine.switchNode(null);
// sendTransactionActivity.finishWithError(hashTX);
CreateChildTask(sendTransactionActivity.getCard(), request.TX, hashTX);
}
} catch (JSONException e) {
e.printStackTrace();
engine.SwitchNode(null);
engine.switchNode(null);
// sendTransactionActivity.finishWithError(e.toString());
CreateChildTask(sendTransactionActivity.getCard(), request.TX, e.toString());
}
}
} else {
engine.SwitchNode(null);
engine.switchNode(null);
// sendTransactionActivity.finishWithError(request.error);
CreateChildTask(sendTransactionActivity.getCard(), request.TX, request.error);
}
} catch (JSONException e) {
e.printStackTrace();
engine.SwitchNode(null);
engine.switchNode(null);
// sendTransactionActivity.finishWithError(e.toString());
CreateChildTask(sendTransactionActivity.getCard(), request.TX, e.toString());
}