Updated on 2026-08-14
This commit is contained in:
parent
1c45b2980f
commit
9ac6554dec
4 changed files with 27 additions and 45 deletions
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue