Updated on 2026-08-14
This commit is contained in:
parent
8683cc5eab
commit
08f641216f
10 changed files with 92 additions and 130 deletions
|
|
@ -59,5 +59,7 @@ dependencies {
|
|||
implementation 'org.bitcoinj:bitcoinj-core:0.14.4'
|
||||
implementation 'me.dm7.barcodescanner:zxing:1.9.8'
|
||||
implementation 'info.hoang8f:android-segmented:1.0.6'
|
||||
implementation 'com.squareup.okhttp3:okhttp:3.7.0'
|
||||
implementation 'io.reactivex.rxjava2:rxjava:2.2.0'
|
||||
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
|
||||
implementation 'io.reactivex.rxjava2:rxkotlin:2.3.0'
|
||||
}
|
||||
|
|
@ -20,8 +20,8 @@ public class ElectrumRequest {
|
|||
public JSONObject jsRequestData;
|
||||
public String answerData;
|
||||
public String error;
|
||||
public String WalletAddress;
|
||||
public String TxHash;
|
||||
public String walletAddress;
|
||||
public String txHash;
|
||||
public String TX;
|
||||
public String Host;
|
||||
public int Port;
|
||||
|
|
@ -71,10 +71,10 @@ public class ElectrumRequest {
|
|||
}
|
||||
}
|
||||
|
||||
public static ElectrumRequest CheckBalance(String wallet) {
|
||||
public static ElectrumRequest checkBalance(String wallet) {
|
||||
ElectrumRequest request = new ElectrumRequest();
|
||||
try {
|
||||
request.WalletAddress=wallet;
|
||||
request.walletAddress = wallet;
|
||||
request.jsRequestData = new JSONObject("{ \"method\":\"" + METHOD_GetBalance + "\", \"params\":[\"" + wallet + "\"] }");
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
|
|
@ -84,24 +84,22 @@ public class ElectrumRequest {
|
|||
}
|
||||
|
||||
|
||||
public static ElectrumRequest GetFee(String wallet) {
|
||||
public static ElectrumRequest getFee(String wallet) {
|
||||
ElectrumRequest request = new ElectrumRequest();
|
||||
try{
|
||||
request.WalletAddress = wallet; //METHOD_GetFee
|
||||
try {
|
||||
request.walletAddress = wallet; //METHOD_GetFee
|
||||
request.jsRequestData = new JSONObject("{ \"method\":\"" + METHOD_GetFee + "\", \"params\":[\"" + 6 + "\"] }");
|
||||
}
|
||||
catch(JSONException e)
|
||||
{
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
request.error = e.toString();
|
||||
}
|
||||
return request;
|
||||
}
|
||||
|
||||
public static ElectrumRequest GetHeader(String wallet, String height) {
|
||||
public static ElectrumRequest getHeader(String wallet, String height) {
|
||||
ElectrumRequest request = new ElectrumRequest();
|
||||
try {
|
||||
request.WalletAddress=wallet;
|
||||
request.walletAddress = wallet;
|
||||
request.jsRequestData = new JSONObject("{ \"method\":\"" + METHOD_GetHeader + "\", \"params\":[\"" + height + "\"] }");
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
|
|
@ -110,10 +108,10 @@ public class ElectrumRequest {
|
|||
return request;
|
||||
}
|
||||
|
||||
public static ElectrumRequest ListUnspent(String wallet) {
|
||||
public static ElectrumRequest listUnspent(String wallet) {
|
||||
ElectrumRequest request = new ElectrumRequest();
|
||||
try {
|
||||
request.WalletAddress=wallet;
|
||||
request.walletAddress = wallet;
|
||||
request.jsRequestData = new JSONObject("{ \"method\":\"" + METHOD_ListUnspent + "\", \"params\":[\"" + wallet + "\"] }");
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
|
|
@ -122,11 +120,11 @@ public class ElectrumRequest {
|
|||
return request;
|
||||
}
|
||||
|
||||
public static ElectrumRequest Broadcast(String wallet, String tx) {
|
||||
public static ElectrumRequest broadcast(String wallet, String tx) {
|
||||
ElectrumRequest request = new ElectrumRequest();
|
||||
try {
|
||||
request.WalletAddress=wallet;
|
||||
request.TX=tx;
|
||||
request.walletAddress = wallet;
|
||||
request.TX = tx;
|
||||
request.jsRequestData = new JSONObject("{ \"method\":\"" + METHOD_SendTransaction + "\", \"params\":[\"" + tx + "\"] }");
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
|
|
@ -135,10 +133,10 @@ public class ElectrumRequest {
|
|||
return request;
|
||||
}
|
||||
|
||||
public static ElectrumRequest ListHistory(String wallet) {
|
||||
public static ElectrumRequest listHistory(String wallet) {
|
||||
ElectrumRequest request = new ElectrumRequest();
|
||||
try {
|
||||
request.WalletAddress=wallet;
|
||||
request.walletAddress = wallet;
|
||||
request.jsRequestData = new JSONObject("{ \"method\":\"" + METHOD_GetHistory + "\", \"params\":[\"" + wallet + "\"] }");
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
|
|
@ -147,11 +145,11 @@ public class ElectrumRequest {
|
|||
return request;
|
||||
}
|
||||
|
||||
public static ElectrumRequest GetTransaction(String wallet, String tx_hash) {
|
||||
public static ElectrumRequest getTransaction(String wallet, String tx_hash) {
|
||||
ElectrumRequest request = new ElectrumRequest();
|
||||
try {
|
||||
request.WalletAddress=wallet;
|
||||
request.TxHash = tx_hash;
|
||||
request.walletAddress = wallet;
|
||||
request.txHash = tx_hash;
|
||||
request.jsRequestData = new JSONObject("{ \"method\":\"" + METHOD_GetTransaction + "\", \"params\":[\"" + tx_hash + "\"] }");
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
|
|
@ -180,5 +178,4 @@ public class ElectrumRequest {
|
|||
return getAnswer().getJSONArray("result");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -15,6 +15,7 @@ import java.net.InetAddress;
|
|||
import java.net.InetSocketAddress;
|
||||
import java.net.Socket;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
|
@ -50,9 +51,10 @@ public class ElectrumTask extends AsyncTask<ElectrumRequest, Integer, List<Elect
|
|||
@Override
|
||||
protected List<ElectrumRequest> doInBackground(ElectrumRequest... requests) {
|
||||
List<ElectrumRequest> result = new ArrayList<>();
|
||||
for (int i = 0; i < requests.length; i++) {
|
||||
result.add(requests[i]);
|
||||
}
|
||||
// for (int i = 0; i < requests.length; i++) {
|
||||
// result.add(requests[i]);
|
||||
// }
|
||||
Collections.addAll(result, requests);
|
||||
try {
|
||||
InetAddress serverAddress = InetAddress.getByName(Host);
|
||||
Log.v(logTag, "Connecting..." + Host);
|
||||
|
|
|
|||
|
|
@ -63,13 +63,13 @@ public class UpdateWalletInfoTask extends ElectrumTask {
|
|||
for (ElectrumRequest request : requests) {
|
||||
try {
|
||||
if (request.error == null) {
|
||||
// get balance
|
||||
if (request.isMethod(ElectrumRequest.METHOD_GetBalance)) {
|
||||
try {
|
||||
String mWalletAddress = request.getParams().getString(0);
|
||||
String walletAddress = request.getParams().getString(0);
|
||||
Long confBalance = request.getResult().getLong("confirmed");
|
||||
Long unconf = request.getResult().getLong("unconfirmed");
|
||||
Long unconfirmedBalance = request.getResult().getLong("unconfirmed");
|
||||
loadedWallet.getCard().setBalanceReceived(true);
|
||||
|
||||
if (sharedCounter != null) {
|
||||
boolean notEqualBalance = sharedCounter.updatePayload(new BigDecimal(String.valueOf(confBalance)));
|
||||
if (notEqualBalance)
|
||||
|
|
@ -79,11 +79,9 @@ public class UpdateWalletInfoTask extends ElectrumTask {
|
|||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
loadedWallet.getCard().setBalanceConfirmed(confBalance);
|
||||
loadedWallet.getCard().setBalanceUnconfirmed(unconf);
|
||||
loadedWallet.getCard().setBalanceUnconfirmed(unconfirmedBalance);
|
||||
loadedWallet.getCard().setDecimalBalance(String.valueOf(confBalance));
|
||||
|
||||
loadedWallet.getCard().setValidationNodeDescription(getValidationNodeDescription());
|
||||
} catch (JSONException e) {
|
||||
if (sharedCounter != null) {
|
||||
|
|
@ -98,32 +96,33 @@ public class UpdateWalletInfoTask extends ElectrumTask {
|
|||
engine.switchNode(loadedWallet.getCard());
|
||||
}
|
||||
}
|
||||
} else if (request.isMethod(ElectrumRequest.METHOD_SendTransaction)) {
|
||||
}
|
||||
|
||||
// send transaction
|
||||
else if (request.isMethod(ElectrumRequest.METHOD_SendTransaction)) {
|
||||
try {
|
||||
String hashTX = request.getResultString();
|
||||
|
||||
try {
|
||||
LastSignStorage.setLastMessage(loadedWallet.getCard().getWallet(), hashTX);
|
||||
if (hashTX.startsWith("0x") || hashTX.startsWith("0X")) {
|
||||
if (hashTX.startsWith("0x") || hashTX.startsWith("0X"))
|
||||
hashTX = hashTX.substring(2);
|
||||
}
|
||||
BigInteger bigInt = new BigInteger(hashTX, 16); //TODO: очень плохой способ
|
||||
LastSignStorage.setTxWasSend(loadedWallet.getCard().getWallet());
|
||||
LastSignStorage.setLastMessage(loadedWallet.getCard().getWallet(), "");
|
||||
// Log.e("TX_RESULT", hashTX);
|
||||
|
||||
} catch (Exception e) {
|
||||
engine.switchNode(loadedWallet.getCard());
|
||||
}
|
||||
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
engine.switchNode(loadedWallet.getCard());
|
||||
}
|
||||
} else if (request.isMethod(ElectrumRequest.METHOD_ListUnspent)) {
|
||||
}
|
||||
|
||||
// list unspent
|
||||
else if (request.isMethod(ElectrumRequest.METHOD_ListUnspent)) {
|
||||
try {
|
||||
String mWalletAddress = request.getParams().getString(0);
|
||||
|
||||
JSONArray jsUnspentArray = request.getResultArray();
|
||||
try {
|
||||
loadedWallet.getCard().getUnspentTransactions().clear();
|
||||
|
|
@ -148,21 +147,20 @@ public class UpdateWalletInfoTask extends ElectrumTask {
|
|||
String nodeAddress = engine.getNextNode(loadedWallet.getCard());
|
||||
int nodePort = engine.getNextNodePort(loadedWallet.getCard());
|
||||
UpdateWalletInfoTask updateWalletInfoTask = new UpdateWalletInfoTask(loadedWallet, nodeAddress, nodePort);
|
||||
|
||||
// loadedWallet.updateTasks.add(updateWalletInfoTask);
|
||||
|
||||
updateWalletInfoTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ElectrumRequest.GetHeader(mWalletAddress, String.valueOf(height)),
|
||||
ElectrumRequest.GetTransaction(mWalletAddress, hash));
|
||||
updateWalletInfoTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ElectrumRequest.getHeader(mWalletAddress, String.valueOf(height)), ElectrumRequest.getTransaction(mWalletAddress, hash));
|
||||
}
|
||||
}
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
engine.switchNode(loadedWallet.getCard());
|
||||
}
|
||||
} else if (request.isMethod(ElectrumRequest.METHOD_GetHistory)) {
|
||||
}
|
||||
|
||||
// get history
|
||||
else if (request.isMethod(ElectrumRequest.METHOD_GetHistory)) {
|
||||
try {
|
||||
String mWalletAddress = request.getParams().getString(0);
|
||||
|
||||
JSONArray jsHistoryArray = request.getResultArray();
|
||||
try {
|
||||
loadedWallet.getCard().getHistoryTransactions().clear();
|
||||
|
|
@ -183,22 +181,21 @@ public class UpdateWalletInfoTask extends ElectrumTask {
|
|||
Integer height = jsUnspent.getInt("height");
|
||||
String hash = jsUnspent.getString("tx_hash");
|
||||
if (height != -1) {
|
||||
|
||||
String nodeAddress = engine.getNode(loadedWallet.getCard());
|
||||
int nodePort = engine.getNodePort(loadedWallet.getCard());
|
||||
UpdateWalletInfoTask updateWalletInfoTask = new UpdateWalletInfoTask(loadedWallet, nodeAddress, nodePort);
|
||||
// loadedWallet.updateTasks.add(updateWalletInfoTask);
|
||||
|
||||
updateWalletInfoTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ElectrumRequest.GetHeader(mWalletAddress, String.valueOf(height)),
|
||||
ElectrumRequest.GetTransaction(mWalletAddress, hash));
|
||||
updateWalletInfoTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ElectrumRequest.getHeader(mWalletAddress, String.valueOf(height)), ElectrumRequest.getTransaction(mWalletAddress, hash));
|
||||
}
|
||||
|
||||
}
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
engine.switchNode(loadedWallet.getCard());
|
||||
}
|
||||
} else if (request.isMethod(ElectrumRequest.METHOD_GetHeader)) {
|
||||
}
|
||||
|
||||
// get header
|
||||
else if (request.isMethod(ElectrumRequest.METHOD_GetHeader)) {
|
||||
try {
|
||||
JSONObject jsHeader = request.getResult();
|
||||
try {
|
||||
|
|
@ -208,24 +205,22 @@ public class UpdateWalletInfoTask extends ElectrumTask {
|
|||
e.printStackTrace();
|
||||
engine.switchNode(loadedWallet.getCard());
|
||||
}
|
||||
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
engine.switchNode(loadedWallet.getCard());
|
||||
|
||||
}
|
||||
} else if (request.isMethod(ElectrumRequest.METHOD_GetTransaction)) {
|
||||
}
|
||||
|
||||
// get transaction
|
||||
else if (request.isMethod(ElectrumRequest.METHOD_GetTransaction)) {
|
||||
try {
|
||||
|
||||
String txHash = request.TxHash;
|
||||
String txHash = request.txHash;
|
||||
String raw = request.getResultString();
|
||||
|
||||
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.getCard().getHistoryTransactions();
|
||||
for (TangemCard.HistoryTransaction tx : listHTx) {
|
||||
if (tx.txID.equals(txHash)) {
|
||||
|
|
@ -240,7 +235,6 @@ public class UpdateWalletInfoTask extends ElectrumTask {
|
|||
isOur = true;
|
||||
}
|
||||
}
|
||||
|
||||
tx.isInput = !isOur;
|
||||
} catch (BitcoinException e) {
|
||||
e.printStackTrace();
|
||||
|
|
@ -248,32 +242,28 @@ public class UpdateWalletInfoTask extends ElectrumTask {
|
|||
// Log.e("TX", raw);
|
||||
}
|
||||
}
|
||||
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
engine.switchNode(loadedWallet.getCard());
|
||||
}
|
||||
}
|
||||
loadedWallet.updateViews();
|
||||
|
||||
} else {
|
||||
if (sharedCounter != null) {
|
||||
int errCounter = sharedCounter.errorRequest.incrementAndGet();
|
||||
loadedWallet.getCard().incFailedBalanceRequestCounter();
|
||||
if (errCounter >= sharedCounter.allRequest) {
|
||||
if (errCounter >= sharedCounter.allRequest)
|
||||
engine.switchNode(loadedWallet.getCard());
|
||||
}
|
||||
} else {
|
||||
} else
|
||||
engine.switchNode(loadedWallet.getCard());
|
||||
}
|
||||
|
||||
}
|
||||
} catch (JSONException e) {
|
||||
if (sharedCounter != null) {
|
||||
int errCounter = sharedCounter.errorRequest.incrementAndGet();
|
||||
loadedWallet.getCard().incFailedBalanceRequestCounter();
|
||||
if (errCounter >= sharedCounter.allRequest) {
|
||||
if (errCounter >= sharedCounter.allRequest)
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
|
@ -284,10 +274,8 @@ public class UpdateWalletInfoTask extends ElectrumTask {
|
|||
|
||||
} catch (NullPointerException e) {
|
||||
e.printStackTrace();
|
||||
|
||||
if (reference.get() != null) {
|
||||
if (reference.get() != null)
|
||||
reference.get().getSrlLoadedWallet().setRefreshing(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -35,12 +35,12 @@ public class ConnectTask extends ElectrumTask {
|
|||
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));
|
||||
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);
|
||||
ConnectTask connectTask = new ConnectTask(reference.get(), nodeAddress, nodePort, remaining_attempts);
|
||||
connectTask.execute(ElectrumRequest.Broadcast(mCard.getWallet(), tx));
|
||||
connectTask.execute(ElectrumRequest.broadcast(mCard.getWallet(), tx));
|
||||
}
|
||||
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ public class SharedData {
|
|||
public AtomicInteger requestCounter;
|
||||
public int allRequest;
|
||||
public AtomicInteger errorRequest;
|
||||
public BigDecimal payload;
|
||||
private BigDecimal payload;
|
||||
|
||||
public SharedData(int requestCount) {
|
||||
payload = BigDecimal.ZERO;
|
||||
|
|
@ -24,9 +24,9 @@ public class SharedData {
|
|||
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.equals(BigDecimal.ZERO))
|
||||
isChange = false;
|
||||
if (value != BigDecimal.ZERO)
|
||||
if (!value.equals(BigDecimal.ZERO))
|
||||
payload = value;
|
||||
else
|
||||
isChange = false;
|
||||
|
|
|
|||
|
|
@ -188,7 +188,7 @@ class ConfirmPaymentActivity : AppCompatActivity(), NfcAdapter.ReaderCallback {
|
|||
val nodeAddress = engineCoin!!.getNextNode(card)
|
||||
val nodePort = engineCoin.getNextNodePort(card)
|
||||
val connectTaskEx = ConnectTask(this@ConfirmPaymentActivity, nodeAddress, nodePort, data)
|
||||
connectTaskEx.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ElectrumRequest.CheckBalance(card!!.wallet))
|
||||
connectTaskEx.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ElectrumRequest.checkBalance(card!!.wallet))
|
||||
}
|
||||
|
||||
var calcSize = 256
|
||||
|
|
|
|||
|
|
@ -46,12 +46,12 @@ class SendTransactionActivity : AppCompatActivity() {
|
|||
val nodeAddress = engine!!.getNode(card)
|
||||
val nodePort = engine.getNodePort(card)
|
||||
val connectTask = ConnectTask(this@SendTransactionActivity, nodeAddress, nodePort, 3)
|
||||
connectTask.execute(ElectrumRequest.Broadcast(card!!.wallet, tx))
|
||||
connectTask.execute(ElectrumRequest.broadcast(card!!.wallet, tx))
|
||||
} else if (card!!.blockchain == Blockchain.BitcoinCash || card!!.blockchain == Blockchain.BitcoinCashTestNet) {
|
||||
val nodeAddress = engine!!.getNode(card)
|
||||
val nodePort = engine.getNodePort(card)
|
||||
val connectTask = ConnectTask(this@SendTransactionActivity, nodeAddress, nodePort, 3)
|
||||
connectTask.execute(ElectrumRequest.Broadcast(card!!.wallet, tx))
|
||||
connectTask.execute(ElectrumRequest.broadcast(card!!.wallet, tx))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -44,9 +44,6 @@ import com.tangem.util.Util
|
|||
import com.tangem.util.UtilHelper
|
||||
import com.tangem.wallet.R
|
||||
import kotlinx.android.synthetic.main.fr_loaded_wallet.*
|
||||
import okhttp3.OkHttpClient
|
||||
import okhttp3.Request
|
||||
import okhttp3.WebSocket
|
||||
import java.util.*
|
||||
|
||||
class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notifications, VolleyHelper.IRequestCardVerify, SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
|
|
@ -573,6 +570,7 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific
|
|||
|
||||
requestVerify()
|
||||
|
||||
// Bitcoin
|
||||
if (card!!.blockchain == Blockchain.Bitcoin || card!!.blockchain == Blockchain.BitcoinTestNet) {
|
||||
val data = SharedData(SharedData.COUNT_REQUEST)
|
||||
card!!.resetFailedBalanceRequestCounter()
|
||||
|
|
@ -582,36 +580,27 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific
|
|||
val nodeAddress = engine!!.getNextNode(card)
|
||||
val nodePort = engine.getNextNodePort(card)
|
||||
|
||||
Log.i(TAG, nodeAddress)
|
||||
Log.i(TAG, nodePort.toString())
|
||||
Log.i(TAG, i.toString())
|
||||
|
||||
// check balance
|
||||
val connectTaskEx = UpdateWalletInfoTask(this@LoadedWallet, nodeAddress, nodePort, data)
|
||||
connectTaskEx.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ElectrumRequest.CheckBalance(card!!.wallet))
|
||||
|
||||
|
||||
|
||||
|
||||
Log.i("effefefe23", nodeAddress)
|
||||
Log.i("effefefe23", nodePort.toString())
|
||||
|
||||
val client = OkHttpClient.Builder().build()
|
||||
val request = Request.Builder()
|
||||
.url("ws://btc.cihar.com:50001")
|
||||
.build()
|
||||
val wsc = WebSocketClass()
|
||||
val ws = client.newWebSocket(request, wsc)
|
||||
|
||||
|
||||
connectTaskEx.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ElectrumRequest.checkBalance(card!!.wallet))
|
||||
|
||||
// list unspent input
|
||||
val updateWalletInfoTask = UpdateWalletInfoTask(this@LoadedWallet, nodeAddress, nodePort, data)
|
||||
updateWalletInfoTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ElectrumRequest.ListUnspent(card!!.wallet))
|
||||
updateWalletInfoTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ElectrumRequest.listUnspent(card!!.wallet))
|
||||
}
|
||||
|
||||
// course request
|
||||
val taskRate = RateInfoTask(this@LoadedWallet)
|
||||
val rate = ExchangeRequest.GetRate(card!!.wallet, "bitcoin", "bitcoin")
|
||||
taskRate.execute(rate)
|
||||
}
|
||||
|
||||
} else if (card!!.blockchain == Blockchain.BitcoinCash || card!!.blockchain == Blockchain.BitcoinCashTestNet) {
|
||||
// BitcoinCash
|
||||
else if (card!!.blockchain == Blockchain.BitcoinCash || card!!.blockchain == Blockchain.BitcoinCashTestNet) {
|
||||
card!!.resetFailedBalanceRequestCounter()
|
||||
val data = SharedData(SharedData.COUNT_REQUEST)
|
||||
card!!.setIsBalanceEqual(true)
|
||||
|
|
@ -621,7 +610,7 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific
|
|||
|
||||
// check balance
|
||||
val connectTaskEx = UpdateWalletInfoTask(this@LoadedWallet, nodeAddress, nodePort, data)
|
||||
connectTaskEx.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ElectrumRequest.CheckBalance(card!!.wallet))
|
||||
connectTaskEx.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ElectrumRequest.checkBalance(card!!.wallet))
|
||||
}
|
||||
|
||||
val nodeAddress = engine!!.getNode(card)
|
||||
|
|
@ -629,14 +618,17 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific
|
|||
|
||||
// list unspent input
|
||||
val updateWalletInfoTask = UpdateWalletInfoTask(this@LoadedWallet, nodeAddress, nodePort, data)
|
||||
updateWalletInfoTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ElectrumRequest.ListUnspent(card!!.wallet))
|
||||
updateWalletInfoTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ElectrumRequest.listUnspent(card!!.wallet))
|
||||
|
||||
// course request
|
||||
val taskRate = RateInfoTask(this@LoadedWallet)
|
||||
val rate = ExchangeRequest.GetRate(card!!.wallet, "bitcoin-cash", "bitcoin-cash")
|
||||
taskRate.execute(rate)
|
||||
|
||||
} else if (card!!.blockchain == Blockchain.Ethereum || card!!.blockchain == Blockchain.EthereumTestNet) {
|
||||
}
|
||||
|
||||
// Ethereum
|
||||
else if (card!!.blockchain == Blockchain.Ethereum || card!!.blockchain == Blockchain.EthereumTestNet) {
|
||||
val updateETH = ETHRequestTask(this@LoadedWallet, card!!.blockchain)
|
||||
val reqETH = InfuraRequest.GetBalance(card!!.wallet)
|
||||
reqETH.id = 67
|
||||
|
|
@ -653,7 +645,10 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific
|
|||
val rate = ExchangeRequest.GetRate(card!!.wallet, "ethereum", "ethereum")
|
||||
taskRate.execute(rate)
|
||||
|
||||
} else if (card!!.blockchain == Blockchain.Token) {
|
||||
}
|
||||
|
||||
// Token
|
||||
else if (card!!.blockchain == Blockchain.Token) {
|
||||
val updateETH = ETHRequestTask(this@LoadedWallet, card!!.blockchain)
|
||||
val reqETH = InfuraRequest.GetTokenBalance(card!!.wallet, engine!!.getContractAddress(card), engine.getTokenDecimals(card))
|
||||
reqETH.id = 67
|
||||
|
|
@ -766,13 +761,13 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific
|
|||
val nodePort = engine.getNodePort(card)
|
||||
|
||||
val connectTask = UpdateWalletInfoTask(this@LoadedWallet, nodeAddress, nodePort)
|
||||
connectTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ElectrumRequest.Broadcast(card!!.wallet, tx))
|
||||
connectTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ElectrumRequest.broadcast(card!!.wallet, tx))
|
||||
} else if (card!!.blockchain == Blockchain.BitcoinCash || card!!.blockchain == Blockchain.BitcoinCashTestNet) {
|
||||
val nodeAddress = engine!!.getNode(card)
|
||||
val nodePort = engine.getNodePort(card)
|
||||
|
||||
val connectTask = UpdateWalletInfoTask(this@LoadedWallet, nodeAddress, nodePort)
|
||||
connectTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ElectrumRequest.Broadcast(card!!.wallet, tx))
|
||||
connectTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ElectrumRequest.broadcast(card!!.wallet, tx))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,22 +0,0 @@
|
|||
package com.tangem.presentation.fragment;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import okhttp3.Response;
|
||||
import okhttp3.WebSocket;
|
||||
import okhttp3.WebSocketListener;
|
||||
|
||||
public class WebSocketClass extends WebSocketListener {
|
||||
@Override
|
||||
public void onOpen(WebSocket webSocket, Response response) {
|
||||
webSocket.send("Hello");
|
||||
Log.i("WS_scsc", "scsc");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMessage(WebSocket webSocket, String text) {
|
||||
Log.i("WS_scsc", text);
|
||||
System.out.print(text);
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue