Updated on 2026-08-14

This commit is contained in:
Tangem 2018-08-15 18:52:55 +03:00
parent 1c45b2980f
commit 9ac6554dec
4 changed files with 27 additions and 45 deletions

View file

@ -54,9 +54,8 @@ public class ElectrumTask extends AsyncTask<ElectrumRequest, Integer, List<Elect
result.add(requests[i]);
}
try {
InetAddress serverAddress = InetAddress.getByName(Host);
Log.v(logTag, "Connecting..."+Host);
Log.v(logTag, "Connecting..." + Host);
// Socket socket = new Socket(serverAddress, Port);
Socket socket = new Socket();
socket.setSoTimeout(5000);
@ -102,8 +101,8 @@ public class ElectrumTask extends AsyncTask<ElectrumRequest, Integer, List<Elect
out.flush();
request.answerData = in.readLine();
request.Host=Host;
request.Port=Port;
request.Host = Host;
request.Port = Port;
if (request.answerData != null) {
Log.v(logTag, ">> " + request.answerData);
} else {
@ -116,7 +115,7 @@ public class ElectrumTask extends AsyncTask<ElectrumRequest, Integer, List<Elect
}
public String getValidationNodeDescription() {
return "Electrum, "+Host+":"+String.valueOf(Port);
return "Electrum, " + Host + ":" + String.valueOf(Port);
}

View file

@ -59,9 +59,7 @@ public class UpdateWalletInfoTask extends ElectrumTask {
// loadedWallet.updateTasks.remove(this);
try {
CoinEngine engine = CoinEngineFactory.create(
loadedWallet.getCard().getBlockchain());
CoinEngine engine = CoinEngineFactory.create(loadedWallet.getCard().getBlockchain());
for (ElectrumRequest request : requests) {
try {
if (request.error == null) {
@ -73,7 +71,7 @@ public class UpdateWalletInfoTask extends ElectrumTask {
loadedWallet.getCard().setBalanceReceived(true);
if (sharedCounter != null) {
boolean notEqualBalance = sharedCounter.UpdatePayload(new BigDecimal(String.valueOf(confBalance)));
boolean notEqualBalance = sharedCounter.updatePayload(new BigDecimal(String.valueOf(confBalance)));
if (notEqualBalance)
loadedWallet.getCard().setIsBalanceEqual(false);
int counter = sharedCounter.requestCounter.incrementAndGet();
@ -82,7 +80,6 @@ public class UpdateWalletInfoTask extends ElectrumTask {
}
}
loadedWallet.getCard().setBalanceConfirmed(confBalance);
loadedWallet.getCard().setBalanceUnconfirmed(unconf);
loadedWallet.getCard().setDecimalBalance(String.valueOf(confBalance));
@ -206,13 +203,10 @@ public class UpdateWalletInfoTask extends ElectrumTask {
JSONObject jsHeader = request.getResult();
try {
loadedWallet.getCard().getHaedersInfo();
loadedWallet.getCard().UpdateHeaderInfo(new TangemCard.HeaderInfo(
jsHeader.getInt("block_height"),
jsHeader.getInt("timestamp")));
loadedWallet.getCard().UpdateHeaderInfo(new TangemCard.HeaderInfo(jsHeader.getInt("block_height"), jsHeader.getInt("timestamp")));
} catch (JSONException e) {
e.printStackTrace();
engine.switchNode(loadedWallet.getCard());
}
} catch (JSONException e) {
@ -228,9 +222,8 @@ public class UpdateWalletInfoTask extends ElectrumTask {
List<TangemCard.UnspentTransaction> listTx = loadedWallet.getCard().getUnspentTransactions();
for (TangemCard.UnspentTransaction tx : listTx) {
if (tx.txID.equals(txHash)) {
if (tx.txID.equals(txHash))
tx.Raw = raw;
}
}
List<TangemCard.HistoryTransaction> listHTx = loadedWallet.getCard().getHistoryTransactions();
@ -239,14 +232,12 @@ public class UpdateWalletInfoTask extends ElectrumTask {
tx.Raw = raw;
try {
ArrayList<byte[]> prevHashes = BTCUtils.getPrevTX(raw);
boolean isOur = false;
for (byte[] hash : prevHashes) {
String checkID = BTCUtils.toHex(hash);
for (TangemCard.HistoryTransaction txForCheck : listHTx) {
if (txForCheck.txID == checkID) {
if (txForCheck.txID.equals(checkID))
isOur = true;
}
}
}

View file

@ -7,24 +7,26 @@ import java.util.concurrent.atomic.AtomicInteger;
* Created by Ilia on 12.04.2018.
*/
public class SharedData
{
public class SharedData {
public static int COUNT_REQUEST = 3;
public AtomicInteger requestCounter;
public int allRequest;
public AtomicInteger errorRequest;
public BigDecimal payload;
public synchronized boolean UpdatePayload(BigDecimal value)
{
if(payload == null || payload.compareTo(value)!=0)
{
public SharedData(int requestCount) {
payload = BigDecimal.ZERO;
allRequest = requestCount;
errorRequest = new AtomicInteger(0);
requestCounter = new AtomicInteger(0);
}
public synchronized boolean updatePayload(BigDecimal value) {
if (payload == null || payload.compareTo(value) != 0) {
boolean isChange = true;
if(payload == null || payload == BigDecimal.ZERO)
if (payload == null || payload == BigDecimal.ZERO)
isChange = false;
if(value!=BigDecimal.ZERO)
if (value != BigDecimal.ZERO)
payload = value;
else
isChange = false;
@ -35,16 +37,8 @@ public class SharedData
return false;
}
public void SetErrorRequest(int val)
{
errorRequest = new AtomicInteger(val);
public void setErrorRequest(int val) {
errorRequest = new AtomicInteger(val);
}
public SharedData(int requstCount)
{
payload = BigDecimal.ZERO;
allRequest = requstCount;
errorRequest = new AtomicInteger(0);
requestCounter = new AtomicInteger(0);
}
}

View file

@ -171,7 +171,7 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific
val visibleFlag = engine?.inOutPutVisible() ?: true
try {
ivQR.setImageBitmap(UtilHelper.generateQrCode(engine!!.getShareWalletUri(card).toString()))
ivQR.setImageBitmap(UtilHelper.generateQrCode(engine.getShareWalletUri(card).toString()))
} catch (e: WriterException) {
e.printStackTrace()
}
@ -193,7 +193,7 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific
srlLoadedWallet!!.setOnRefreshListener { this.refresh() }
btnLookup.setOnClickListener {
val engineClick = CoinEngineFactory.create(card!!.blockchain)
val browserIntent = Intent(Intent.ACTION_VIEW, engineClick!!.getShareWalletUriExplorer(card))
val browserIntent = Intent(Intent.ACTION_VIEW, engineClick.getShareWalletUriExplorer(card))
startActivity(browserIntent)
}
btnCopy.setOnClickListener { doShareWallet(false) }
@ -221,7 +221,7 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific
btnExtract.setOnClickListener {
if (!card!!.hasBalanceInfo()) {
showSingleToast(R.string.cannot_obtain_data_from_blockchain)
} else if (!engine!!.isBalanceNotZero(card))
} else if (!engine.isBalanceNotZero(card))
showSingleToast(R.string.wallet_empty)
else if (!engine.isBalanceAlterNotZero(card))
showSingleToast(R.string.not_enough_funds)
@ -436,8 +436,8 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific
val data = SharedData(SharedData.COUNT_REQUEST)
card!!.resetFailedBalanceRequestCounter()
card!!.setIsBalanceEqual(true)
for (i in 0 until data.allRequest) {
for (i in 0 until data.allRequest) {
val nodeAddress = engine!!.getNextNode(card)
val nodePort = engine.getNextNodePort(card)
@ -455,7 +455,6 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific
val rate = ExchangeRequest.GetRate(card!!.wallet, "bitcoin", "bitcoin")
taskRate.execute(rate)
} else if (card!!.blockchain == Blockchain.BitcoinCash || card!!.blockchain == Blockchain.BitcoinCashTestNet) {
card!!.resetFailedBalanceRequestCounter()
val data = SharedData(SharedData.COUNT_REQUEST)
@ -481,7 +480,6 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific
val rate = ExchangeRequest.GetRate(card!!.wallet, "bitcoin-cash", "bitcoin-cash")
taskRate.execute(rate)
} else if (card!!.blockchain == Blockchain.Ethereum || card!!.blockchain == Blockchain.EthereumTestNet) {
val updateETH = ETHRequestTask(this@LoadedWallet, card!!.blockchain)
val reqETH = InfuraRequest.GetBalance(card!!.wallet)