Updated on 2026-08-14

This commit is contained in:
Tangem 2020-05-12 12:20:36 +03:00
commit 43731a6a24
472 changed files with 6908 additions and 4331 deletions

2
.gitignore vendored
View file

@ -16,7 +16,7 @@ local.properties
.idea/codeStyles
# LayoutInspector files
.captures
/captures
# OS-specific files
.DS_Store

View file

@ -8,6 +8,7 @@ import android.nfc.NfcAdapter
import android.nfc.Tag
import android.nfc.tech.IsoDep
import android.os.Bundle
import android.util.Log
import android.view.View
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
@ -231,6 +232,8 @@ class IdFragment : BaseFragment(), NfcAdapter.ReaderCallback,
mpSecondScanSound.start()
}
} else {
Log.d(this.javaClass.simpleName,
"Error while reading ID card: ${cardProtocol.error.localizedMessage}")
// remove last UIDs because of error and no card read
FirebaseCrashlytics.getInstance().recordException(cardProtocol.error)
rlProgressBar?.post {
@ -338,6 +341,7 @@ class IdFragment : BaseFragment(), NfcAdapter.ReaderCallback,
validator.check(ctx, false)
context?.let { ContextCompat.getColor(it, validator.color) }?.let { tvBalanceLine1?.setTextColor(it) }
tvBalanceLine1?.text = getString(validator.firstLine)
tvBalanceLine2?.text = getString(validator.getSecondLine(false)).format(ctx.card.idCardData.trustedAddress)
}
if (ctx.card.hasIDCardData()) {

View file

@ -6,6 +6,7 @@ import android.os.Bundle
import android.os.Parcelable
import android.text.Editable
import android.text.TextWatcher
import android.util.Log
import android.view.View
import android.widget.EditText
import android.widget.RadioButton
@ -22,7 +23,6 @@ import com.tangem.wallet.ethID.EthIdEngine
import kotlinx.android.parcel.Parcelize
import kotlinx.android.synthetic.main.fragment_issue_new_id.*
import java.io.ByteArrayOutputStream
import java.lang.Exception
import java.text.SimpleDateFormat
import java.util.*
@ -54,6 +54,8 @@ class IssueNewIdFragment : BaseFragment(), NavigationResultListener {
try {
processData()
} catch (exception: Exception) {
Log.e(this.javaClass.simpleName,
"Exception while processing data: ${exception.localizedMessage}")
Toast.makeText(context, "Check for correctness of data", Toast.LENGTH_LONG).show()
return@setOnClickListener
}
@ -117,12 +119,15 @@ class IssueNewIdFragment : BaseFragment(), NavigationResultListener {
photoInBytes,
issuerExpireDate.issueDate,
issuerExpireDate.expireDate,
(CoinEngineFactory.create(ctx) as? EthIdEngine)?.approvalAddress
(CoinEngineFactory.create(ctx) as? EthIdEngine)?.coinData?.approvalAddress
)
val inputs = "$name $lastName;$birthDate${gender.toString()}"
val info = inputs.toByteArray() + photoInBytes!!
ctx.card.idHash = Util.calculateSHA256(info)
Log.d(this.javaClass.simpleName,
"ID info provided: $inputs,\n photo of size ${photoInBytes?.size}")
}
private fun convertDate(inputDate: CharSequence): String {

View file

@ -8,6 +8,7 @@ import android.nfc.NfcAdapter
import android.nfc.Tag
import android.nfc.tech.IsoDep
import android.os.Bundle
import android.util.Log
import android.view.View
import androidx.activity.OnBackPressedCallback
import com.google.firebase.crashlytics.FirebaseCrashlytics
@ -114,6 +115,10 @@ class ValidateIdFragment : BaseFragment(), NavigationResultListener,
val data = Bundle()
ctx.saveToBundle(data)
data.putByteArray(Constant.EXTRA_TX, tx)
Log.d(this.javaClass.simpleName,
"Transaction is ready to be sent.")
navigateForResult(
Constant.REQUEST_CODE_SEND_TRANSACTION_,
R.id.action_validateIdFragment_to_writeIdFragment,
@ -161,6 +166,8 @@ class ValidateIdFragment : BaseFragment(), NavigationResultListener,
}
PINStorage.setPIN2(PINStorage.getDefaultPIN2())
Log.d(this.javaClass.simpleName,
"Ready to sing transaction, launching OneTouchSignTask")
signTransactionTask = OneTouchSignTask(NfcReader((activity as MainActivity).nfcManager, isoDep),
App.localStorage, App.pinStorage, this@ValidateIdFragment, transaction)
signTransactionTask?.start()
@ -216,6 +223,8 @@ class ValidateIdFragment : BaseFragment(), NavigationResultListener,
mpFinishSignSound.start()
} else {
Log.d(this.javaClass.simpleName,
"Error while signing with ID Issuer card: ${cardProtocol.error.localizedMessage}")
FirebaseCrashlytics.getInstance().recordException(cardProtocol.error)
lastReadSuccess = false
if (cardProtocol.error.javaClass == CardProtocol.TangemException_InvalidPIN::class.java) {

View file

@ -8,6 +8,7 @@ import android.nfc.NfcAdapter
import android.nfc.Tag
import android.nfc.tech.IsoDep
import android.os.Bundle
import android.util.Log
import android.view.View
import androidx.activity.OnBackPressedCallback
import com.google.firebase.crashlytics.FirebaseCrashlytics
@ -186,6 +187,8 @@ class WriteIdFragment : BaseFragment(), NavigationResultListener,
)
} else {
Log.d(this.javaClass.simpleName,
"Error while writing on ID card: ${cardProtocol.error}")
lastReadSuccess = false
FirebaseCrashlytics.getInstance().recordException(cardProtocol.error)
if (cardProtocol.error.javaClass == CardProtocol.TangemException_InvalidPIN::class.java) {

View file

@ -9,6 +9,7 @@ public class EthIdData extends CoinData {
private boolean hasApprovalTx = false;
private Long approvalAddressNonce;
private byte[] CKDpub = null;
private String approvalAddress = null; //default approval address for issuance
public boolean isHasApprovalTx() {
return hasApprovalTx;
@ -34,6 +35,14 @@ public class EthIdData extends CoinData {
this.CKDpub = CKDpub;
}
public String getApprovalAddress() {
return approvalAddress;
}
public void setApprovalAddress(String approvalAddress) {
this.approvalAddress = approvalAddress;
}
@Override
public void clearInfo() {
super.clearInfo();
@ -50,6 +59,8 @@ public class EthIdData extends CoinData {
}
if (B.containsKey("CKDpub")) CKDpub = B.getByteArray("CKDpub");
hasApprovalTx = B.getBoolean("HasApprovalTx");
if (B.containsKey("ApprovalAddress")) approvalAddress = B.getString("ApprovalAddress");
}
@Override
@ -59,6 +70,7 @@ public class EthIdData extends CoinData {
if (approvalAddressNonce != null) B.putLong("ApprovalAddressNonce", approvalAddressNonce);
if (CKDpub != null) B.putByteArray("CKDpub", CKDpub);
B.putBoolean("HasApprovalTx", hasApprovalTx);
if (approvalAddress != null) B.putString("ApprovalAddress", approvalAddress);
} catch (Exception e) {
Log.e("Can't save to bundle ", e.getMessage());

View file

@ -43,8 +43,8 @@ public class EthIdEngine extends CoinEngine {
private static final String TAG = com.tangem.wallet.eth.EthEngine.class.getSimpleName();
public EthIdData coinData = null;
private byte[] approvalPubKey = Util.hexToBytes("04EAD74FEEE4061044F46B19EB654CEEE981E9318F0C8FE99AF5CDB9D779D2E52BB51EA2D14545E0B323F7A90CF4CC72753C973149009C10DB2D83DCEC28487729"); //TODO
public String approvalAddress = calculateAddress(approvalPubKey); //TODO
//default approval public key for issuance
private byte[] approvalPubKey = Util.hexToBytes("04EAD74FEEE4061044F46B19EB654CEEE981E9318F0C8FE99AF5CDB9D779D2E52BB51EA2D14545E0B323F7A90CF4CC72753C973149009C10DB2D83DCEC28487729");
public EthIdEngine(TangemContext ctx) throws Exception {
super(ctx);
@ -56,12 +56,24 @@ public class EthIdEngine extends CoinEngine {
} else {
throw new Exception("Invalid type of Blockchain data for " + this.getClass().getSimpleName());
}
defineApprovalAddress();
}
public EthIdEngine() {
super();
}
private void defineApprovalAddress() {
TangemCard.IDCardData idCardData = ctx.getCard().getIDCardData();
String approvalAddress;
if (idCardData != null && idCardData.trustedAddress != null) {
approvalAddress = ctx.getCard().getIDCardData().trustedAddress;
} else {
approvalAddress = calculateAddress(approvalPubKey);
}
coinData.setApprovalAddress(approvalAddress);
}
private static int getDecimals() {
return 18;
}
@ -232,12 +244,12 @@ public class EthIdEngine extends CoinEngine {
if (coinData != null && coinData.isHasApprovalTx()) {
balanceValidator.setScore(100);
balanceValidator.setFirstLine(R.string.id_verified);
balanceValidator.setSecondLine(R.string.balance_validator_second_line_unverified_balance);
balanceValidator.setSecondLine(R.string.balance_validator_second_line_issued_by);
return false;
} else {
balanceValidator.setScore(0);
balanceValidator.setFirstLine(R.string.id_not_registered);
balanceValidator.setSecondLine(R.string.balance_validator_second_line_unverified_balance);
balanceValidator.setSecondLine(R.string.empty_string);
return false;
}
}
@ -277,6 +289,9 @@ public class EthIdEngine extends CoinEngine {
@Override
public SignTask.TransactionToSign constructTransaction(Amount amountValue, Amount feeValue, boolean IncFee, String targetAddress) {
Log.d(this.getClass().getSimpleName(),
"Constructing transaction for signature");
final EthTransaction tx = constructIdTxForSign(coinData.getApprovalAddressNonce());
return new SignTask.TransactionToSign() {
@ -309,6 +324,9 @@ public class EthIdEngine extends CoinEngine {
@Override
public byte[] onSignCompleted(byte[] signFromCard) throws Exception {
Log.d(this.getClass().getSimpleName(),
"Transaction has been signed, now preparing transaction to send");
byte[] for_hash = tx.getRawHash();
BigInteger r = new BigInteger(1, Arrays.copyOfRange(signFromCard, 0, 32));
BigInteger s = new BigInteger(1, Arrays.copyOfRange(signFromCard, 32, 64));
@ -330,6 +348,8 @@ public class EthIdEngine extends CoinEngine {
Log.e(this.getClass().getSimpleName(), " V: " + String.valueOf(v));
byte[] txForSend = tx.getEncoded();
Log.d(this.getClass().getSimpleName(),
"Tx is ready to be sent");
notifyOnNeedSendTransaction(txForSend);
return txForSend;
}
@ -381,7 +401,7 @@ public class EthIdEngine extends CoinEngine {
public void onSuccess(BlockcypherTx response) {
Log.i(TAG, "onSuccess: BlockcypherTx");
try {
String address = approvalAddress;
String address = coinData.getApprovalAddress();
if (address.startsWith("0x") || address.startsWith("0X")) {
address = address.substring(2);
}
@ -434,9 +454,13 @@ public class EthIdEngine extends CoinEngine {
if (method.equals(ServerApiInfura.INFURA_ETH_SEND_RAW_TRANSACTION)) {
if (infuraResponse.getResult() == null || infuraResponse.getResult().isEmpty()) {
ctx.setError("Rejected by node: " + infuraResponse.getError());
Log.d(this.getClass().getSimpleName(),
"Rejected by node:" + infuraResponse.getError());
blockchainRequestsCallbacks.onComplete(false);
} else {
ctx.setError(null);
Log.d(this.getClass().getSimpleName(),
"Transaction has been sent successfully");
blockchainRequestsCallbacks.onComplete(true);
}
}
@ -444,6 +468,8 @@ public class EthIdEngine extends CoinEngine {
@Override
public void onFail(String method, String message) {
Log.d(this.getClass().getSimpleName(),
"requestSendTransaction failed with message: " + message);
if (method.equals(ServerApiInfura.INFURA_ETH_SEND_RAW_TRANSACTION)) {
ctx.setError(message);
blockchainRequestsCallbacks.onComplete(false);
@ -528,6 +554,6 @@ public class EthIdEngine extends CoinEngine {
};
serverApiInfura.setResponseListener(responseListener);
serverApiInfura.requestData(ServerApiInfura.INFURA_ETH_GET_PENDING_COUNT, 67, approvalAddress, "", "");
serverApiInfura.requestData(ServerApiInfura.INFURA_ETH_GET_PENDING_COUNT, 67, coinData.getApprovalAddress(), "", "");
}
}

View file

@ -24,6 +24,7 @@ import io.reactivex.observers.DisposableSingleObserver
import org.apache.commons.lang3.SerializationUtils
import org.kethereum.extensions.toBytesPadded
import java.math.BigInteger
import java.util.*
class TokenEmvEngine : TokenEngine {
constructor() : super()
@ -40,7 +41,11 @@ class TokenEmvEngine : TokenEngine {
}
override fun getChainIdNum(): Int {
return EthTransaction.ChainEnum.Ropsten.value
if( ctx.card.tokenSymbol=="MyERC" || ctx.card.tokenSymbol.toLowerCase(Locale.getDefault()).startsWith("test")) {
return EthTransaction.ChainEnum.Ropsten.value
}else{
return EthTransaction.ChainEnum.Mainnet.value
}
}
override fun getBalance(): Amount? {
@ -110,7 +115,11 @@ class TokenEmvEngine : TokenEngine {
}
override fun getWalletExplorerUri(): Uri {
return Uri.parse("https://ropsten.etherscan.io/token/" + getContractAddress(ctx.card) + "?a=" + ctx.coinData.wallet)
if( chainIdNum==EthTransaction.ChainEnum.Ropsten.value ) {
return Uri.parse("https://ropsten.etherscan.io/token/" + getContractAddress(ctx.card) + "?a=" + ctx.coinData.wallet)
}else{
return Uri.parse("https://etherscan.io/token/" + getContractAddress(ctx.card) + "?a=" + ctx.coinData.wallet)
}
}
override fun isExtractPossible(): Boolean {
@ -236,7 +245,7 @@ class TokenEmvEngine : TokenEngine {
}
override fun requestBalanceAndUnspentTransactions(blockchainRequestsCallbacks: BlockchainRequestsCallbacks) {
val serverApiInfura = ServerApiInfura(ctx.blockchain)
val serverApiInfura = if( chainIdNum== EthTransaction.ChainEnum.Ropsten.value ) ServerApiInfura(ctx.blockchain) else ServerApiInfura()
val responseListener: ServerApiInfura.ResponseListener = object : ServerApiInfura.ResponseListener {
override fun onSuccess(method: String, infuraResponse: InfuraResponse) {

View file

@ -53,7 +53,7 @@
<string name="dialog_this_card_has_enforced_security_delay">This card has enforced security delay</string>
<string name="dialog_hold_card">Please hold the card firmly\n until the operation is completed…</string>
<string name="dialog_you_may_be_required_to_repeat">You may be required to repeat this operation a few times depending on the NFC performance of your smartphone.\n This is made for safety of your funds.</string>
<string name="alert_unknown_blockchain">This is a genuine Tangem card. Please follow instructions written on the card to install the official app.</string>
<string name="alert_unknown_blockchain">Uh oh!\nYour Tangem card was made to work with a different application. Please see the name and instructions on your card, and install the correct app.</string>
<!-- menu main -->
<string name="main_menu_manage_pin_1">Manage user PIN1…</string>
@ -148,6 +148,7 @@
<string name="balance_validator_second_line_create_account_instruction">To create account send 1+ XLM to this address</string>
<string name="balance_validator_second_line_create_account_xrp">Load 20+ XRP to create account</string>
<string name="balance_validator_second_line_authenticity_not_verified">Authenticity cannot be verified. Swipe down to refresh.</string>
<string name="balance_validator_second_line_issued_by">Issued by %s</string>
<!-- CreateNewWallet, Purge, SignTransaction -->
<string name="now_touch_the_card_with_id">Now touch the card with ID</string>

View file

@ -4,12 +4,12 @@ import android.os.Bundle
import android.text.Editable
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.tangem.SessionError
import com.tangem.TangemSdk
import com.tangem.TangemSdkError
import com.tangem.blockchain.common.*
import com.tangem.blockchain.common.extensions.Result
import com.tangem.blockchain.common.extensions.Signer
import com.tangem.blockchain.common.extensions.SimpleResult
import com.tangem.blockchain.extensions.Result
import com.tangem.blockchain.extensions.Signer
import com.tangem.blockchain.extensions.SimpleResult
import com.tangem.blockchain_demo.databinding.ActivityBlockchainDemoBinding
import com.tangem.commands.Card
import com.tangem.common.CompletionResult
@ -65,7 +65,7 @@ class BlockchainDemoActivity : AppCompatActivity() {
getInfo()
}
is CompletionResult.Failure -> {
if (result.error !is SessionError.UserCancelled) {
if (result.error !is TangemSdkError.UserCancelled) {
handleError(result.error.toString())
}
}
@ -78,18 +78,18 @@ class BlockchainDemoActivity : AppCompatActivity() {
walletManager.update()
withContext(Dispatchers.Main) {
binding.tvBalance.text =
"${walletManager.wallet.balances[AmountType.Coin]?.value
?: "error"} ${walletManager.blockchain.currency}"
val token = walletManager.wallet.balances[AmountType.Token]
"${walletManager.wallet.amounts[AmountType.Coin]?.value?.toPlainString()
?: "error"} ${walletManager.wallet.blockchain.currency}"
val token = walletManager.wallet.amounts[AmountType.Token]
if (token != null) {
binding.tvBalance.text = token.currencySymbol + " " + token.value
binding.tvBalance.text = token.value?.toPlainString() + " " + token.currencySymbol
binding.etSumToSend.text = Editable.Factory.getInstance().newEditable(
token.value.toString()
token.value?.toPlainString() ?: ""
)
} else {
binding.etSumToSend.text =
Editable.Factory.getInstance().newEditable(
walletManager.wallet.balances[AmountType.Coin]?.value.toString()
walletManager.wallet.amounts[AmountType.Coin]?.value?.toPlainString()
)
}
binding.btnCheckFee.isEnabled = true
@ -107,9 +107,9 @@ class BlockchainDemoActivity : AppCompatActivity() {
}
scope.launch {
val feeResult = (walletManager as FeeProvider).getFee(
walletManager.wallet.balances[AmountType.Token]
?: walletManager.wallet.balances[AmountType.Coin]!!,
val feeResult = (walletManager as TransactionSender).getFee(
walletManager.wallet.amounts[AmountType.Token]
?: walletManager.wallet.amounts[AmountType.Coin]!!,
binding.etReceiverAddress.text.toString())
withContext(Dispatchers.Main) {
when (feeResult) {
@ -154,18 +154,21 @@ class BlockchainDemoActivity : AppCompatActivity() {
}
private fun formTransactionData(): TransactionData {
val amount = if (walletManager.wallet.balances[AmountType.Token] != null) {
walletManager.wallet.balances[AmountType.Token]!!
val amount = if (walletManager.wallet.amounts[AmountType.Token] != null) {
walletManager.wallet.amounts[AmountType.Token]!!.copy(
value = binding.etSumToSend.text.toString().toBigDecimal()
)
} else {
walletManager.wallet.balances[AmountType.Coin]!!.copy(
walletManager.wallet.amounts[AmountType.Coin]!!.copy(
value = binding.etSumToSend.text.toString().toBigDecimal() - fee
)
}
return TransactionData(
amount,
walletManager.wallet.balances[AmountType.Coin]!!.copy(value = fee),
walletManager.wallet.balances[AmountType.Coin]!!.address!!,
binding.etReceiverAddress.text.toString()
walletManager.wallet.amounts[AmountType.Coin]!!.copy(value = fee),
walletManager.wallet.amounts[AmountType.Coin]!!.address!!,
binding.etReceiverAddress.text.toString(),
contractAddress = walletManager.wallet.amounts[AmountType.Token]?.address
)
}

View file

@ -1,37 +0,0 @@
package com.tangem.blockchain.binance
import com.tangem.blockchain.binance.client.encoding.Crypto
import com.tangem.common.extensions.calculateRipemd160
import com.tangem.common.extensions.calculateSha256
import com.tangem.common.extensions.toCompressedPublicKey
import org.bitcoinj.core.Bech32
class BinanceAddressFactory {
companion object {
fun makeAddress(walletPublicKey: ByteArray, testNet: Boolean = false): String {
val publicKeyHash = walletPublicKey.toCompressedPublicKey().calculateSha256().calculateRipemd160()
return if (testNet) {
Bech32.encode("tbnb", Crypto.convertBits(publicKeyHash, 0, publicKeyHash.size, 8, 5, false))
} else {
Bech32.encode("bnb", Crypto.convertBits(publicKeyHash, 0, publicKeyHash.size, 8, 5, false))
}
}
}
}
class BinanceAddressValidator {
companion object {
fun validate(address: String, testNet: Boolean = false): Boolean {
return try {
Crypto.decodeAddress(address)
if (testNet) {
address.startsWith("tbnb1")
} else {
address.startsWith("bnb1")
}
} catch (exception: Exception) {
false
}
}
}
}

View file

@ -1,67 +0,0 @@
package com.tangem.blockchain.binance
import com.tangem.blockchain.binance.client.BinanceDexApiClientFactory
import com.tangem.blockchain.binance.client.BinanceDexEnvironment
import com.tangem.blockchain.binance.client.domain.broadcast.TransactionOption
import com.tangem.blockchain.binance.client.domain.broadcast.Transfer
import com.tangem.blockchain.binance.client.encoding.message.MessageType
import com.tangem.blockchain.binance.client.encoding.message.TransactionRequestAssemblerExtSign
import com.tangem.blockchain.binance.client.encoding.message.TransferMessage
import com.tangem.blockchain.common.Blockchain
import com.tangem.blockchain.common.TransactionData
import com.tangem.common.extensions.calculateSha256
import com.tangem.common.extensions.toCompressedPublicKey
import org.bitcoinj.core.ECKey
import org.bitcoinj.core.Utils
import java.math.BigInteger
class BinanceTransactionBuilder(publicKey: ByteArray, isTestNet: Boolean) {
val chainId = if (isTestNet) "Binance-Chain-Nile" else "Binance-Chain-Tigris"
val prefixedPubKey = MessageType.PubKey.typePrefixBytes + 33.toByte() + publicKey.toCompressedPublicKey()
val client = BinanceDexApiClientFactory.newInstance().newRestClient(
if (isTestNet) BinanceDexEnvironment.PROD.baseUrl else BinanceDexEnvironment.TEST_NET.baseUrl
)
var accountNumber: Long? = null
var sequence: Long? = null
var transactionAssembler: TransactionRequestAssemblerExtSign? = null
var transferMessage: TransferMessage? = null
fun buildToSign(transactionData: TransactionData): ByteArray {
val transfer = Transfer()
transfer.coin = transactionData.amount.currencySymbol
transfer.fromAddress = transactionData.sourceAddress
transfer.toAddress = transactionData.destinationAddress
transfer.amount = transactionData.amount.value!!
.setScale(Blockchain.Binance.decimals.toInt()).toPlainString()
val options = TransactionOption.DEFAULT_INSTANCE
val accountData = BinanceAccountData(chainId, accountNumber!!, sequence!!)
transactionAssembler = client.prepareTransfer(transfer, accountData, prefixedPubKey, options, true)
transferMessage = transactionAssembler!!.createTransferMessage(transfer)
return transactionAssembler!!.prepareForSign(transferMessage).calculateSha256()
}
fun buildToSend(signature: ByteArray): ByteArray {
val r = BigInteger(1, signature.copyOfRange(0, 32))
val s = BigInteger(1, signature.copyOfRange(32, 64))
val canonicalS = ECKey.ECDSASignature(r, s).toCanonicalised().s
//bigIntegerToBytes cuts leading zero if present
val canonicalSignature = Utils.bigIntegerToBytes(r, 32) + Utils.bigIntegerToBytes(canonicalS, 32)
val encodedSignature = transactionAssembler!!.encodeSignature(canonicalSignature)
val encodedTransferMessage = transactionAssembler!!.encodeTransferMessage(transferMessage)
return transactionAssembler!!.encodeStdTx(encodedTransferMessage, encodedSignature)
}
}
data class BinanceAccountData(
val chainId: String,
val accountNumber: Long,
val sequence: Long
)

View file

@ -1,71 +0,0 @@
package com.tangem.blockchain.binance
import android.util.Log
import com.tangem.blockchain.binance.network.BinanceInfoResponse
import com.tangem.blockchain.binance.network.BinanceNetworkManager
import com.tangem.blockchain.common.*
import com.tangem.blockchain.common.extensions.Result
import com.tangem.blockchain.common.extensions.SimpleResult
import com.tangem.blockchain.wallets.CurrencyWallet
import com.tangem.common.CompletionResult
class BinanceWalletManager(
private val cardId: String,
walletPublicKey: ByteArray,
override var wallet: CurrencyWallet,
isTestNet: Boolean = false
) : WalletManager,
TransactionSender,
FeeProvider {
override val blockchain = if (isTestNet) Blockchain.BinanceTestnet else Blockchain.Binance
private val address = blockchain.makeAddress(walletPublicKey)
private val transactionBuilder = BinanceTransactionBuilder(walletPublicKey, isTestNet)
private val networkManager = BinanceNetworkManager(isTestNet)
init {
wallet.balances[AmountType.Coin] = Amount(null, blockchain, address)
}
override suspend fun update() {
val result = networkManager.getInfo(address)
when (result) {
is Result.Success -> updateWallet(result.data)
is Result.Failure -> updateError(result.error)
}
}
private fun updateWallet(response: BinanceInfoResponse) {
Log.d(this::class.java.simpleName, "Balance is ${response.balance}")
wallet.balances[AmountType.Coin]?.value = response.balance
transactionBuilder.accountNumber = response.accountNumber
transactionBuilder.sequence = response.sequence
}
private fun updateError(error: Throwable?) {
Log.e(this::class.java.simpleName, error?.message ?: "")
if (error != null) throw error
}
override suspend fun send(transactionData: TransactionData, signer: TransactionSigner): SimpleResult {
val transactionHash = transactionBuilder.buildToSign(transactionData)
when (val signerResponse = signer.sign(arrayOf(transactionHash), cardId)) {
is CompletionResult.Success -> {
val transactionToSend = transactionBuilder.buildToSend(signerResponse.data.signature)
return networkManager.sendTransaction(transactionToSend)
}
is CompletionResult.Failure -> return SimpleResult.Failure(signerResponse.error)
}
}
override suspend fun getFee(amount: Amount, destination: String): Result<List<Amount>> {
when (val result = networkManager.getFee()) {
is Result.Success -> return Result.Success(listOf(Amount(result.data, blockchain)))
is Result.Failure -> return result
}
}
}

View file

@ -1,4 +0,0 @@
package com.tangem.blockchain.binance.client.encoding.message;
public interface BinanceDexTransactionMessage {
}

View file

@ -1,112 +0,0 @@
package com.tangem.blockchain.bitcoin
import android.util.Log
import com.tangem.blockchain.bitcoin.network.BitcoinAddressResponse
import com.tangem.blockchain.bitcoin.network.BitcoinNetworkManager
import com.tangem.blockchain.bitcoin.network.BitcoinNetworkManager.Companion.SATOSHI_IN_BTC
import com.tangem.blockchain.common.*
import com.tangem.blockchain.common.extensions.Result
import com.tangem.blockchain.common.extensions.SimpleResult
import com.tangem.blockchain.wallets.CurrencyWallet
import com.tangem.common.CompletionResult
import com.tangem.common.extensions.toHexString
import java.math.BigDecimal
class BitcoinWalletManager(
private val cardId: String,
private val walletPublicKey: ByteArray,
override var wallet: CurrencyWallet,
isTestNet: Boolean = false
) : WalletManager,
TransactionSender,
FeeProvider {
override val blockchain = if (isTestNet) Blockchain.BitcoinTestnet else Blockchain.Bitcoin
private val address = blockchain.makeAddress(walletPublicKey)
private val transactionBuilder = BitcoinTransactionBuilder(isTestNet)
private val networkManager = BitcoinNetworkManager(isTestNet)
init {
wallet.balances[AmountType.Coin] = Amount(null, blockchain)
}
override suspend fun update() {
val response = networkManager.getInfo(address)
when (response) {
is Result.Success -> updateWallet(response.data)
is Result.Failure -> updateError(response.error)
}
}
private fun updateWallet(response: BitcoinAddressResponse) {
Log.d(this::class.java.simpleName, "Balance is ${response.balance}")
wallet.balances[AmountType.Coin]?.value = response.balance
transactionBuilder.unspentOutputs = response.unspentTransactions
if (response.hasUnconfirmed) {
if (wallet.pendingTransactions.isEmpty()) {
wallet.pendingTransactions.add(TransactionData(
Amount(blockchain.currency, decimals = blockchain.decimals),
null,
"unknown",
wallet.address))
}
} else {
wallet.pendingTransactions.clear()
}
}
private fun updateError(error: Throwable?) {
Log.e(this::class.java.simpleName, error?.message ?: "")
if (error != null) throw error
}
override suspend fun send(transactionData: TransactionData, signer: TransactionSigner): SimpleResult {
val buildTransactionResult = transactionBuilder.buildToSign(transactionData)
when (buildTransactionResult) {
is Result.Failure -> return SimpleResult.Failure(buildTransactionResult.error)
is Result.Success -> {
when (val signerResponse = signer.sign(buildTransactionResult.data.toTypedArray(), cardId)) {
is CompletionResult.Success -> {
val transactionToSend = transactionBuilder.buildToSend(signerResponse.data.signature, walletPublicKey)
return networkManager.sendTransaction(transactionToSend.toHexString())
}
is CompletionResult.Failure -> return SimpleResult.Failure(signerResponse.error)
}
}
}
}
override suspend fun getFee(amount: Amount, destination: String): Result<List<Amount>> {
when (val result = networkManager.getFee()) {
is Result.Failure -> return result
is Result.Success -> {
val sizeResult = transactionBuilder.getEstimateSize(
TransactionData(amount,
Amount(1.toBigDecimal().divide(SATOSHI_IN_BTC), blockchain),
address, destination),
walletPublicKey
)
when (sizeResult) {
is Result.Failure -> return sizeResult
is Result.Success -> {
val transactionSize = sizeResult.data.toBigDecimal()
val minFee = result.data.minimalPerKb.calculateFee(transactionSize)
val normalFee = result.data.normalPerKb.calculateFee(transactionSize)
val priorityFee = result.data.priorityPerKb.calculateFee(transactionSize)
return Result.Success(
listOf(Amount(minFee, blockchain),
Amount(normalFee, blockchain),
Amount(priorityFee, blockchain))
)
}
}
}
}
}
private fun BigDecimal.calculateFee(transactionSize: BigDecimal): BigDecimal {
val bytesInKb = BigDecimal(1024)
return this.divide(bytesInKb).multiply(transactionSize)
.setScale(8, blockchain.roundingMode())
}
}

View file

@ -0,0 +1,45 @@
package com.tangem.blockchain.blockchains.binance
import com.tangem.blockchain.blockchains.binance.client.encoding.Crypto
import com.tangem.blockchain.common.AddressService
import com.tangem.common.extensions.calculateRipemd160
import com.tangem.common.extensions.calculateSha256
import com.tangem.common.extensions.toCompressedPublicKey
import org.bitcoinj.core.Bech32
class BinanceAddressService(private val testNet: Boolean = false) : AddressService {
override fun makeAddress(walletPublicKey: ByteArray): String {
val publicKeyHash = walletPublicKey.toCompressedPublicKey().calculateSha256().calculateRipemd160()
return if (testNet) {
Bech32.encode("tbnb", Crypto.convertBits(publicKeyHash, 0,
publicKeyHash.size, 8, 5, false)
)
} else {
Bech32.encode("bnb", Crypto.convertBits(publicKeyHash, 0,
publicKeyHash.size, 8, 5, false)
)
}
}
override fun validate(address: String): Boolean {
return try {
Crypto.decodeAddress(address)
if (testNet) {
address.startsWith("tbnb1")
} else {
address.startsWith("bnb1")
}
} catch (exception: Exception) {
false
}
}
}
enum class BinanceChain(val value: String) {
Nile("Binance-Chain-Nile"),
Tigris("Binance-Chain-Tigris");
companion object {
fun getChain(testNet: Boolean): BinanceChain = if (testNet) Nile else Tigris
}
}

View file

@ -0,0 +1,72 @@
package com.tangem.blockchain.blockchains.binance
import com.tangem.blockchain.blockchains.binance.client.domain.broadcast.TransactionOption
import com.tangem.blockchain.blockchains.binance.client.domain.broadcast.Transfer
import com.tangem.blockchain.blockchains.binance.client.encoding.message.MessageType
import com.tangem.blockchain.blockchains.binance.client.encoding.message.TransactionRequestAssemblerExtSign
import com.tangem.blockchain.blockchains.binance.client.encoding.message.TransferMessage
import com.tangem.blockchain.common.Blockchain
import com.tangem.blockchain.common.TransactionData
import com.tangem.blockchain.extensions.Result
import com.tangem.blockchain.extensions.isAboveZero
import com.tangem.common.extensions.calculateSha256
import com.tangem.common.extensions.toCompressedPublicKey
import org.bitcoinj.core.ECKey
import org.bitcoinj.core.Utils
import java.math.BigInteger
class BinanceTransactionBuilder(
publicKey: ByteArray, isTestNet: Boolean = false
) {
var accountNumber: Long? = null
var sequence: Long? = null
private val chainId = BinanceChain.getChain(isTestNet).value
private val prefixedPubKey = MessageType.PubKey.typePrefixBytes + 33.toByte() + publicKey.toCompressedPublicKey()
private var transactionAssembler: TransactionRequestAssemblerExtSign? = null
private var transferMessage: TransferMessage? = null
fun buildToSign(transactionData: TransactionData): Result<ByteArray> {
if (!transactionData.amount.isAboveZero()) return Result.Failure(Exception("Transaction amount is not defined"))
val accountNumber = accountNumber ?: return Result.Failure(Exception("No account number"))
val sequence = sequence ?: return Result.Failure(Exception("No sequence"))
val transfer = Transfer()
transfer.coin = transactionData.amount.currencySymbol
transfer.fromAddress = transactionData.sourceAddress
transfer.toAddress = transactionData.destinationAddress
transfer.amount = transactionData.amount.value!!
.setScale(Blockchain.Binance.decimals()).toPlainString()
val options = TransactionOption.DEFAULT_INSTANCE
val accountData = BinanceAccountData(chainId, accountNumber, sequence)
transactionAssembler = TransactionRequestAssemblerExtSign(accountData, prefixedPubKey, options)
transferMessage = transactionAssembler!!.createTransferMessage(transfer)
return Result.Success(transactionAssembler!!.prepareForSign(transferMessage).calculateSha256())
}
fun buildToSend(signature: ByteArray): ByteArray {
val r = BigInteger(1, signature.copyOfRange(0, 32))
val s = BigInteger(1, signature.copyOfRange(32, 64))
val canonicalS = ECKey.ECDSASignature(r, s).toCanonicalised().s
//bigIntegerToBytes cuts leading zero if present
val canonicalSignature = Utils.bigIntegerToBytes(r, 32) + Utils.bigIntegerToBytes(canonicalS, 32)
val encodedSignature = transactionAssembler!!.encodeSignature(canonicalSignature)
val encodedTransferMessage = transactionAssembler!!.encodeTransferMessage(transferMessage)
return transactionAssembler!!.encodeStdTx(encodedTransferMessage, encodedSignature)
}
}
data class BinanceAccountData(
val chainId: String,
val accountNumber: Long,
val sequence: Long
)

View file

@ -0,0 +1,65 @@
package com.tangem.blockchain.blockchains.binance
import android.util.Log
import com.tangem.blockchain.blockchains.binance.network.BinanceInfoResponse
import com.tangem.blockchain.blockchains.binance.network.BinanceNetworkManager
import com.tangem.blockchain.common.*
import com.tangem.blockchain.extensions.Result
import com.tangem.blockchain.extensions.SimpleResult
import com.tangem.common.CompletionResult
class BinanceWalletManager(
cardId: String,
wallet: Wallet,
private val transactionBuilder: BinanceTransactionBuilder,
private val networkManager: BinanceNetworkManager
) : WalletManager(cardId, wallet), TransactionSender {
private val blockchain = wallet.blockchain
override suspend fun update() {
val result = networkManager.getInfo(wallet.address)
when (result) {
is Result.Success -> updateWallet(result.data)
is Result.Failure -> updateError(result.error)
}
}
private fun updateWallet(response: BinanceInfoResponse) {
Log.d(this::class.java.simpleName, "Balance is ${response.balance}")
wallet.amounts[AmountType.Coin]?.value = response.balance
transactionBuilder.accountNumber = response.accountNumber
transactionBuilder.sequence = response.sequence
}
private fun updateError(error: Throwable?) {
Log.e(this::class.java.simpleName, error?.message ?: "")
if (error != null) throw error
}
override suspend fun send(transactionData: TransactionData, signer: TransactionSigner): SimpleResult {
val buildTransactionResult = transactionBuilder.buildToSign(transactionData)
when (buildTransactionResult) {
is Result.Failure -> return SimpleResult.Failure(buildTransactionResult.error)
is Result.Success -> {
when (val signerResponse = signer.sign(arrayOf(buildTransactionResult.data), cardId)) {
is CompletionResult.Success -> {
val transactionToSend = transactionBuilder.buildToSend(signerResponse.data.signature)
return networkManager.sendTransaction(transactionToSend)
}
is CompletionResult.Failure -> return SimpleResult.Failure(signerResponse.error)
}
}
}
}
override suspend fun getFee(amount: Amount, destination: String): Result<List<Amount>> {
when (val result = networkManager.getFee()) {
is Result.Success -> return Result.Success(listOf(Amount(result.data, blockchain)))
is Result.Failure -> return result
}
}
}

View file

@ -1,13 +1,31 @@
package com.tangem.blockchain.binance.client;
package com.tangem.blockchain.blockchains.binance.client;
import com.tangem.blockchain.blockchains.binance.client.domain.Account;
import com.tangem.blockchain.blockchains.binance.client.domain.AccountSequence;
import com.tangem.blockchain.blockchains.binance.client.domain.Candlestick;
import com.tangem.blockchain.blockchains.binance.client.domain.Infos;
import com.tangem.blockchain.blockchains.binance.client.domain.Market;
import com.tangem.blockchain.blockchains.binance.client.domain.Order;
import com.tangem.blockchain.blockchains.binance.client.domain.OrderBook;
import com.tangem.blockchain.blockchains.binance.client.domain.OrderList;
import com.tangem.blockchain.blockchains.binance.client.domain.Peer;
import com.tangem.blockchain.blockchains.binance.client.domain.TickerStatistics;
import com.tangem.blockchain.blockchains.binance.client.domain.Time;
import com.tangem.blockchain.blockchains.binance.client.domain.Token;
import com.tangem.blockchain.blockchains.binance.client.domain.TradePage;
import com.tangem.blockchain.blockchains.binance.client.domain.TransactionMetadata;
import com.tangem.blockchain.blockchains.binance.client.domain.TransactionPage;
import com.tangem.blockchain.blockchains.binance.client.domain.Validators;
import java.util.List;
import com.tangem.blockchain.binance.client.domain.*;
import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.http.*;
import java.util.List;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;
public interface BinanceDexApi {
@GET("/api/v1/time")

View file

@ -1,10 +1,26 @@
package com.tangem.blockchain.binance.client;
package com.tangem.blockchain.blockchains.binance.client;
import com.tangem.blockchain.binance.client.domain.*;
import com.tangem.blockchain.binance.client.domain.request.ClosedOrdersRequest;
import com.tangem.blockchain.binance.client.domain.request.OpenOrdersRequest;
import com.tangem.blockchain.binance.client.domain.request.TradesRequest;
import com.tangem.blockchain.binance.client.domain.request.TransactionsRequest;
import com.tangem.blockchain.blockchains.binance.client.domain.Account;
import com.tangem.blockchain.blockchains.binance.client.domain.AccountSequence;
import com.tangem.blockchain.blockchains.binance.client.domain.Candlestick;
import com.tangem.blockchain.blockchains.binance.client.domain.CandlestickInterval;
import com.tangem.blockchain.blockchains.binance.client.domain.Infos;
import com.tangem.blockchain.blockchains.binance.client.domain.Market;
import com.tangem.blockchain.blockchains.binance.client.domain.Order;
import com.tangem.blockchain.blockchains.binance.client.domain.OrderBook;
import com.tangem.blockchain.blockchains.binance.client.domain.OrderList;
import com.tangem.blockchain.blockchains.binance.client.domain.Peer;
import com.tangem.blockchain.blockchains.binance.client.domain.TickerStatistics;
import com.tangem.blockchain.blockchains.binance.client.domain.Time;
import com.tangem.blockchain.blockchains.binance.client.domain.Token;
import com.tangem.blockchain.blockchains.binance.client.domain.TradePage;
import com.tangem.blockchain.blockchains.binance.client.domain.TransactionMetadata;
import com.tangem.blockchain.blockchains.binance.client.domain.TransactionPage;
import com.tangem.blockchain.blockchains.binance.client.domain.Validators;
import com.tangem.blockchain.blockchains.binance.client.domain.request.ClosedOrdersRequest;
import com.tangem.blockchain.blockchains.binance.client.domain.request.OpenOrdersRequest;
import com.tangem.blockchain.blockchains.binance.client.domain.request.TradesRequest;
import com.tangem.blockchain.blockchains.binance.client.domain.request.TransactionsRequest;
import java.util.List;

View file

@ -1,4 +1,4 @@
package com.tangem.blockchain.binance.client;
package com.tangem.blockchain.blockchains.binance.client;
/**
* BinanceDexApiCallback is a functional interface used together with the BinanceApiAsyncClient to provide a non-blocking REST client.

View file

@ -1,4 +1,4 @@
package com.tangem.blockchain.binance.client;
package com.tangem.blockchain.blockchains.binance.client;
import java.io.IOException;
@ -6,7 +6,7 @@ import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import static com.tangem.blockchain.binance.client.BinanceDexApiClientGenerator.getBinanceApiError;
import static com.tangem.blockchain.blockchains.binance.client.BinanceDexApiClientGenerator.getBinanceApiError;
/**
* An adapter/wrapper which transforms a Callback from Retrofit into a BinanceDexApiCallback which is exposed to the client.

View file

@ -1,7 +1,7 @@
package com.tangem.blockchain.binance.client;
package com.tangem.blockchain.blockchains.binance.client;
import com.tangem.blockchain.binance.client.impl.BinanceDexApiAsyncRestClientImpl;
import com.tangem.blockchain.binance.client.impl.BinanceDexApiRestClientImpl;
import com.tangem.blockchain.blockchains.binance.client.impl.BinanceDexApiAsyncRestClientImpl;
import com.tangem.blockchain.blockchains.binance.client.impl.BinanceDexApiRestClientImpl;
public class BinanceDexApiClientFactory {
private BinanceDexApiClientFactory() {

View file

@ -1,4 +1,4 @@
package com.tangem.blockchain.binance.client;
package com.tangem.blockchain.blockchains.binance.client;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.joda.JodaModule;

View file

@ -1,4 +1,4 @@
package com.tangem.blockchain.binance.client;
package com.tangem.blockchain.blockchains.binance.client;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

View file

@ -1,4 +1,4 @@
package com.tangem.blockchain.binance.client;
package com.tangem.blockchain.blockchains.binance.client;
public class BinanceDexApiException extends RuntimeException {

View file

@ -1,34 +1,34 @@
package com.tangem.blockchain.binance.client;
package com.tangem.blockchain.blockchains.binance.client;
import com.tangem.blockchain.binance.BinanceAccountData;
import com.tangem.blockchain.binance.client.domain.Account;
import com.tangem.blockchain.binance.client.domain.AccountSequence;
import com.tangem.blockchain.binance.client.domain.Candlestick;
import com.tangem.blockchain.binance.client.domain.CandlestickInterval;
import com.tangem.blockchain.binance.client.domain.Infos;
import com.tangem.blockchain.binance.client.domain.Market;
import com.tangem.blockchain.binance.client.domain.Order;
import com.tangem.blockchain.binance.client.domain.OrderBook;
import com.tangem.blockchain.binance.client.domain.OrderList;
import com.tangem.blockchain.binance.client.domain.Peer;
import com.tangem.blockchain.binance.client.domain.TickerStatistics;
import com.tangem.blockchain.binance.client.domain.Time;
import com.tangem.blockchain.binance.client.domain.Token;
import com.tangem.blockchain.binance.client.domain.TradePage;
import com.tangem.blockchain.binance.client.domain.TransactionMetadata;
import com.tangem.blockchain.binance.client.domain.TransactionPage;
import com.tangem.blockchain.binance.client.domain.Validators;
import com.tangem.blockchain.binance.client.domain.broadcast.CancelOrder;
import com.tangem.blockchain.binance.client.domain.broadcast.NewOrder;
import com.tangem.blockchain.binance.client.domain.broadcast.TokenFreeze;
import com.tangem.blockchain.binance.client.domain.broadcast.TokenUnfreeze;
import com.tangem.blockchain.binance.client.domain.broadcast.TransactionOption;
import com.tangem.blockchain.binance.client.domain.broadcast.Transfer;
import com.tangem.blockchain.binance.client.domain.request.ClosedOrdersRequest;
import com.tangem.blockchain.binance.client.domain.request.OpenOrdersRequest;
import com.tangem.blockchain.binance.client.domain.request.TradesRequest;
import com.tangem.blockchain.binance.client.domain.request.TransactionsRequest;
import com.tangem.blockchain.binance.client.encoding.message.TransactionRequestAssemblerExtSign;
import com.tangem.blockchain.blockchains.binance.BinanceAccountData;
import com.tangem.blockchain.blockchains.binance.client.domain.Account;
import com.tangem.blockchain.blockchains.binance.client.domain.AccountSequence;
import com.tangem.blockchain.blockchains.binance.client.domain.Candlestick;
import com.tangem.blockchain.blockchains.binance.client.domain.CandlestickInterval;
import com.tangem.blockchain.blockchains.binance.client.domain.Infos;
import com.tangem.blockchain.blockchains.binance.client.domain.Market;
import com.tangem.blockchain.blockchains.binance.client.domain.Order;
import com.tangem.blockchain.blockchains.binance.client.domain.OrderBook;
import com.tangem.blockchain.blockchains.binance.client.domain.OrderList;
import com.tangem.blockchain.blockchains.binance.client.domain.Peer;
import com.tangem.blockchain.blockchains.binance.client.domain.TickerStatistics;
import com.tangem.blockchain.blockchains.binance.client.domain.Time;
import com.tangem.blockchain.blockchains.binance.client.domain.Token;
import com.tangem.blockchain.blockchains.binance.client.domain.TradePage;
import com.tangem.blockchain.blockchains.binance.client.domain.TransactionMetadata;
import com.tangem.blockchain.blockchains.binance.client.domain.TransactionPage;
import com.tangem.blockchain.blockchains.binance.client.domain.Validators;
import com.tangem.blockchain.blockchains.binance.client.domain.broadcast.CancelOrder;
import com.tangem.blockchain.blockchains.binance.client.domain.broadcast.NewOrder;
import com.tangem.blockchain.blockchains.binance.client.domain.broadcast.TokenFreeze;
import com.tangem.blockchain.blockchains.binance.client.domain.broadcast.TokenUnfreeze;
import com.tangem.blockchain.blockchains.binance.client.domain.broadcast.TransactionOption;
import com.tangem.blockchain.blockchains.binance.client.domain.broadcast.Transfer;
import com.tangem.blockchain.blockchains.binance.client.domain.request.ClosedOrdersRequest;
import com.tangem.blockchain.blockchains.binance.client.domain.request.OpenOrdersRequest;
import com.tangem.blockchain.blockchains.binance.client.domain.request.TradesRequest;
import com.tangem.blockchain.blockchains.binance.client.domain.request.TransactionsRequest;
import com.tangem.blockchain.blockchains.binance.client.encoding.message.TransactionRequestAssemblerExtSign;
import java.io.IOException;
import java.security.NoSuchAlgorithmException;

View file

@ -1,4 +1,4 @@
package com.tangem.blockchain.binance.client;
package com.tangem.blockchain.blockchains.binance.client;
import org.apache.commons.lang3.builder.ToStringStyle;

View file

@ -1,4 +1,4 @@
package com.tangem.blockchain.binance.client;
package com.tangem.blockchain.blockchains.binance.client;
public enum BinanceDexEnvironment {
PROD(

View file

@ -1,10 +1,10 @@
package com.tangem.blockchain.binance.client;
package com.tangem.blockchain.blockchains.binance.client;
import com.tangem.blockchain.binance.client.domain.Account;
import com.tangem.blockchain.binance.client.domain.AccountSequence;
import com.tangem.blockchain.binance.client.domain.Infos;
import com.tangem.blockchain.binance.client.encoding.Crypto;
import com.tangem.blockchain.binance.client.encoding.message.MessageType;
import com.tangem.blockchain.blockchains.binance.client.domain.Account;
import com.tangem.blockchain.blockchains.binance.client.domain.AccountSequence;
import com.tangem.blockchain.blockchains.binance.client.domain.Infos;
import com.tangem.blockchain.blockchains.binance.client.encoding.Crypto;
import com.tangem.blockchain.blockchains.binance.client.encoding.message.MessageType;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,8 +1,8 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,7 +1,7 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,7 +1,7 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,9 +1,9 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,4 +1,4 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

View file

@ -1,8 +1,8 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,8 +1,8 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,8 +1,8 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,7 +1,7 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.joda.time.DateTime;

View file

@ -1,7 +1,7 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,9 +1,9 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,4 +1,4 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.ObjectCodec;

View file

@ -1,4 +1,4 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;

View file

@ -1,7 +1,7 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,4 +1,4 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;

View file

@ -1,4 +1,4 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
public enum OrderStatus {
Ack,

View file

@ -1,4 +1,4 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;

View file

@ -1,8 +1,8 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,8 +1,8 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.joda.time.DateTime;

View file

@ -1,7 +1,7 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,8 +1,8 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.joda.time.DateTime;

View file

@ -1,4 +1,4 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;

View file

@ -1,8 +1,8 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,7 +1,7 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,7 +1,7 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,4 +1,4 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

View file

@ -1,7 +1,7 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,4 +1,4 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

View file

@ -1,7 +1,7 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,4 +1,4 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
public enum TransactionType {
NEW_ORDER,

View file

@ -1,8 +1,8 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,8 +1,8 @@
package com.tangem.blockchain.binance.client.domain;
package com.tangem.blockchain.blockchains.binance.client.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,7 +1,7 @@
package com.tangem.blockchain.binance.client.domain.broadcast;
package com.tangem.blockchain.blockchains.binance.client.domain.broadcast;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,9 +1,9 @@
package com.tangem.blockchain.binance.client.domain.broadcast;
package com.tangem.blockchain.blockchains.binance.client.domain.broadcast;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.binance.client.domain.OrderSide;
import com.tangem.blockchain.binance.client.domain.OrderType;
import com.tangem.blockchain.binance.client.domain.TimeInForce;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.domain.OrderSide;
import com.tangem.blockchain.blockchains.binance.client.domain.OrderType;
import com.tangem.blockchain.blockchains.binance.client.domain.TimeInForce;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,6 +1,6 @@
package com.tangem.blockchain.binance.client.domain.broadcast;
package com.tangem.blockchain.blockchains.binance.client.domain.broadcast;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,6 +1,6 @@
package com.tangem.blockchain.binance.client.domain.broadcast;
package com.tangem.blockchain.blockchains.binance.client.domain.broadcast;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,6 +1,6 @@
package com.tangem.blockchain.binance.client.domain.broadcast;
package com.tangem.blockchain.blockchains.binance.client.domain.broadcast;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,6 +1,6 @@
package com.tangem.blockchain.binance.client.domain.broadcast;
package com.tangem.blockchain.blockchains.binance.client.domain.broadcast;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,8 +1,8 @@
package com.tangem.blockchain.binance.client.domain.request;
package com.tangem.blockchain.blockchains.binance.client.domain.request;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.binance.client.domain.OrderSide;
import com.tangem.blockchain.binance.client.domain.OrderStatus;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.domain.OrderSide;
import com.tangem.blockchain.blockchains.binance.client.domain.OrderStatus;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,6 +1,6 @@
package com.tangem.blockchain.binance.client.domain.request;
package com.tangem.blockchain.blockchains.binance.client.domain.request;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,7 +1,7 @@
package com.tangem.blockchain.binance.client.domain.request;
package com.tangem.blockchain.blockchains.binance.client.domain.request;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.binance.client.domain.OrderSide;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.domain.OrderSide;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,8 +1,8 @@
package com.tangem.blockchain.binance.client.domain.request;
package com.tangem.blockchain.blockchains.binance.client.domain.request;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.binance.client.domain.OrderSide;
import com.tangem.blockchain.binance.client.domain.TransactionType;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.domain.OrderSide;
import com.tangem.blockchain.blockchains.binance.client.domain.TransactionType;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -15,7 +15,7 @@
* limitations under the License.
*/
package com.tangem.blockchain.binance.client.encoding;
package com.tangem.blockchain.blockchains.binance.client.encoding;
import org.bitcoinj.core.Base58;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package com.tangem.blockchain.binance.client.encoding;
package com.tangem.blockchain.blockchains.binance.client.encoding;
import java.util.Arrays;
import java.util.Locale;

View file

@ -1,4 +1,4 @@
package com.tangem.blockchain.binance.client.encoding;
package com.tangem.blockchain.blockchains.binance.client.encoding;
import org.bitcoinj.core.ECKey;
import org.bitcoinj.core.Sha256Hash;

View file

@ -1,4 +1,4 @@
package com.tangem.blockchain.binance.client.encoding;
package com.tangem.blockchain.blockchains.binance.client.encoding;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

View file

@ -0,0 +1,4 @@
package com.tangem.blockchain.blockchains.binance.client.encoding.message;
public interface BinanceDexTransactionMessage {
}

View file

@ -1,9 +1,9 @@
package com.tangem.blockchain.binance.client.encoding.message;
package com.tangem.blockchain.blockchains.binance.client.encoding.message;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,8 +1,8 @@
package com.tangem.blockchain.binance.client.encoding.message;
package com.tangem.blockchain.blockchains.binance.client.encoding.message;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,6 +1,6 @@
package com.tangem.blockchain.binance.client.encoding.message;
package com.tangem.blockchain.blockchains.binance.client.encoding.message;
import com.tangem.blockchain.binance.client.encoding.EncodeUtils;
import com.tangem.blockchain.blockchains.binance.client.encoding.EncodeUtils;
/**
* Binance dex standard transactiont types.

View file

@ -1,11 +1,11 @@
package com.tangem.blockchain.binance.client.encoding.message;
package com.tangem.blockchain.blockchains.binance.client.encoding.message;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.tangem.blockchain.binance.client.domain.OrderSide;
import com.tangem.blockchain.binance.client.domain.OrderType;
import com.tangem.blockchain.binance.client.domain.TimeInForce;
import com.tangem.blockchain.blockchains.binance.client.domain.OrderSide;
import com.tangem.blockchain.blockchains.binance.client.domain.OrderType;
import com.tangem.blockchain.blockchains.binance.client.domain.TimeInForce;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

View file

@ -1,4 +1,4 @@
package com.tangem.blockchain.binance.client.encoding.message;
package com.tangem.blockchain.blockchains.binance.client.encoding.message;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

View file

@ -1,8 +1,8 @@
package com.tangem.blockchain.binance.client.encoding.message;
package com.tangem.blockchain.blockchains.binance.client.encoding.message;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,8 +1,8 @@
package com.tangem.blockchain.binance.client.encoding.message;
package com.tangem.blockchain.blockchains.binance.client.encoding.message;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,8 +1,8 @@
package com.tangem.blockchain.binance.client.encoding.message;
package com.tangem.blockchain.blockchains.binance.client.encoding.message;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,17 +1,17 @@
package com.tangem.blockchain.binance.client.encoding.message;
package com.tangem.blockchain.blockchains.binance.client.encoding.message;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.google.common.annotations.VisibleForTesting;
import com.google.protobuf.ByteString;
import com.tangem.blockchain.binance.client.Wallet;
import com.tangem.blockchain.binance.client.domain.broadcast.TokenFreeze;
import com.tangem.blockchain.binance.client.domain.broadcast.TokenUnfreeze;
import com.tangem.blockchain.binance.client.domain.broadcast.TransactionOption;
import com.tangem.blockchain.binance.client.domain.broadcast.Transfer;
import com.tangem.blockchain.binance.client.encoding.Crypto;
import com.tangem.blockchain.binance.client.encoding.EncodeUtils;
import com.tangem.blockchain.binance.proto.StdSignature;
import com.tangem.blockchain.binance.proto.StdTx;
import com.tangem.blockchain.blockchains.binance.client.Wallet;
import com.tangem.blockchain.blockchains.binance.client.domain.broadcast.TokenFreeze;
import com.tangem.blockchain.blockchains.binance.client.domain.broadcast.TokenUnfreeze;
import com.tangem.blockchain.blockchains.binance.client.domain.broadcast.TransactionOption;
import com.tangem.blockchain.blockchains.binance.client.domain.broadcast.Transfer;
import com.tangem.blockchain.blockchains.binance.client.encoding.Crypto;
import com.tangem.blockchain.blockchains.binance.client.encoding.EncodeUtils;
import com.tangem.blockchain.blockchains.binance.proto.StdSignature;
import com.tangem.blockchain.blockchains.binance.proto.StdTx;
import java.io.IOException;
import java.math.BigDecimal;
@ -102,7 +102,7 @@ public class TransactionRequestAssembler {
@VisibleForTesting
NewOrderMessage createNewOrderMessage(
com.tangem.blockchain.binance.client.domain.broadcast.NewOrder newOrder) {
com.tangem.blockchain.blockchains.binance.client.domain.broadcast.NewOrder newOrder) {
return NewOrderMessage.newBuilder()
.setId(generateOrderId())
.setOrderType(newOrder.getOrderType())
@ -118,7 +118,7 @@ public class TransactionRequestAssembler {
@VisibleForTesting
byte[] encodeNewOrderMessage(NewOrderMessage newOrder)
throws IOException {
com.tangem.blockchain.binance.proto.NewOrder proto = com.tangem.blockchain.binance.proto.NewOrder.newBuilder()
com.tangem.blockchain.blockchains.binance.proto.NewOrder proto = com.tangem.blockchain.blockchains.binance.proto.NewOrder.newBuilder()
.setSender(ByteString.copyFrom(wallet.getAddressBytes()))
.setId(newOrder.getId())
.setSymbol(newOrder.getSymbol())
@ -131,7 +131,7 @@ public class TransactionRequestAssembler {
return EncodeUtils.aminoWrap(proto.toByteArray(), MessageType.NewOrder.getTypePrefixBytes(), false);
}
public RequestBody buildNewOrder(com.tangem.blockchain.binance.client.domain.broadcast.NewOrder newOrder)
public RequestBody buildNewOrder(com.tangem.blockchain.blockchains.binance.client.domain.broadcast.NewOrder newOrder)
throws IOException, NoSuchAlgorithmException {
NewOrderMessage msgBean = createNewOrderMessage(newOrder);
byte[] msg = encodeNewOrderMessage(msgBean);
@ -142,7 +142,7 @@ public class TransactionRequestAssembler {
@VisibleForTesting
CancelOrderMessage createCancelOrderMessage(
com.tangem.blockchain.binance.client.domain.broadcast.CancelOrder cancelOrder) {
com.tangem.blockchain.blockchains.binance.client.domain.broadcast.CancelOrder cancelOrder) {
CancelOrderMessage bean =
new CancelOrderMessage();
bean.setRefId(cancelOrder.getRefId());
@ -154,7 +154,7 @@ public class TransactionRequestAssembler {
@VisibleForTesting
byte[] encodeCancelOrderMessage(CancelOrderMessage cancelOrder)
throws IOException {
com.tangem.blockchain.binance.proto.CancelOrder proto = com.tangem.blockchain.binance.proto.CancelOrder.newBuilder()
com.tangem.blockchain.blockchains.binance.proto.CancelOrder proto = com.tangem.blockchain.blockchains.binance.proto.CancelOrder.newBuilder()
.setSender(ByteString.copyFrom(wallet.getAddressBytes()))
.setSymbol(cancelOrder.getSymbol())
.setRefid(cancelOrder.getRefId())
@ -162,7 +162,7 @@ public class TransactionRequestAssembler {
return EncodeUtils.aminoWrap(proto.toByteArray(), MessageType.CancelOrder.getTypePrefixBytes(), false);
}
public RequestBody buildCancelOrder(com.tangem.blockchain.binance.client.domain.broadcast.CancelOrder cancelOrder)
public RequestBody buildCancelOrder(com.tangem.blockchain.blockchains.binance.client.domain.broadcast.CancelOrder cancelOrder)
throws IOException, NoSuchAlgorithmException {
CancelOrderMessage msgBean = createCancelOrderMessage(cancelOrder);
byte[] msg = encodeCancelOrderMessage(msgBean);
@ -191,28 +191,28 @@ public class TransactionRequestAssembler {
return msgBean;
}
private com.tangem.blockchain.binance.proto.Send.Input toProtoInput(InputOutput input) {
private com.tangem.blockchain.blockchains.binance.proto.Send.Input toProtoInput(InputOutput input) {
byte[] address = Crypto.decodeAddress(input.getAddress());
com.tangem.blockchain.binance.proto.Send.Input.Builder builder =
com.tangem.blockchain.binance.proto.Send.Input.newBuilder().setAddress(ByteString.copyFrom(address));
com.tangem.blockchain.blockchains.binance.proto.Send.Input.Builder builder =
com.tangem.blockchain.blockchains.binance.proto.Send.Input.newBuilder().setAddress(ByteString.copyFrom(address));
for (Token coin : input.getCoins()) {
com.tangem.blockchain.binance.proto.Send.Token protCoin =
com.tangem.blockchain.binance.proto.Send.Token.newBuilder().setAmount(coin.getAmount())
com.tangem.blockchain.blockchains.binance.proto.Send.Token protCoin =
com.tangem.blockchain.blockchains.binance.proto.Send.Token.newBuilder().setAmount(coin.getAmount())
.setDenom(coin.getDenom()).build();
builder.addCoins(protCoin);
}
return builder.build();
}
private com.tangem.blockchain.binance.proto.Send.Output toProtoOutput(InputOutput output) {
private com.tangem.blockchain.blockchains.binance.proto.Send.Output toProtoOutput(InputOutput output) {
byte[] address = Crypto.decodeAddress(output.getAddress());
com.tangem.blockchain.binance.proto.Send.Output.Builder builder =
com.tangem.blockchain.binance.proto.Send.Output.newBuilder().setAddress(ByteString.copyFrom(address));
com.tangem.blockchain.blockchains.binance.proto.Send.Output.Builder builder =
com.tangem.blockchain.blockchains.binance.proto.Send.Output.newBuilder().setAddress(ByteString.copyFrom(address));
for (Token coin : output.getCoins()) {
com.tangem.blockchain.binance.proto.Send.Token protCoin =
com.tangem.blockchain.binance.proto.Send.Token.newBuilder().setAmount(coin.getAmount())
com.tangem.blockchain.blockchains.binance.proto.Send.Token protCoin =
com.tangem.blockchain.blockchains.binance.proto.Send.Token.newBuilder().setAmount(coin.getAmount())
.setDenom(coin.getDenom()).build();
builder.addCoins(protCoin);
}
@ -222,14 +222,14 @@ public class TransactionRequestAssembler {
@VisibleForTesting
byte[] encodeTransferMessage(TransferMessage msg)
throws IOException {
com.tangem.blockchain.binance.proto.Send.Builder builder = com.tangem.blockchain.binance.proto.Send.newBuilder();
com.tangem.blockchain.blockchains.binance.proto.Send.Builder builder = com.tangem.blockchain.blockchains.binance.proto.Send.newBuilder();
for (InputOutput input : msg.getInputs()) {
builder.addInputs(toProtoInput(input));
}
for (InputOutput output : msg.getOutputs()) {
builder.addOutputs(toProtoOutput(output));
}
com.tangem.blockchain.binance.proto.Send proto = builder.build();
com.tangem.blockchain.blockchains.binance.proto.Send proto = builder.build();
return EncodeUtils.aminoWrap(proto.toByteArray(), MessageType.Send.getTypePrefixBytes(), false);
}
@ -254,8 +254,8 @@ public class TransactionRequestAssembler {
@VisibleForTesting
byte[] encodeTokenFreezeMessage(TokenFreezeMessage freeze) throws IOException {
byte[] address = Crypto.decodeAddress(freeze.getFrom());
com.tangem.blockchain.binance.proto.TokenFreeze proto =
com.tangem.blockchain.binance.proto.TokenFreeze.newBuilder().setFrom(ByteString.copyFrom(address))
com.tangem.blockchain.blockchains.binance.proto.TokenFreeze proto =
com.tangem.blockchain.blockchains.binance.proto.TokenFreeze.newBuilder().setFrom(ByteString.copyFrom(address))
.setAmount(freeze.getAmount())
.setSymbol(freeze.getSymbol())
.build();
@ -283,8 +283,8 @@ public class TransactionRequestAssembler {
@VisibleForTesting
byte[] encodeTokenUnfreezeMessage(TokenUnfreezeMessage unfreeze) throws IOException {
byte[] address = Crypto.decodeAddress(unfreeze.getFrom());
com.tangem.blockchain.binance.proto.TokenUnfreeze proto =
com.tangem.blockchain.binance.proto.TokenUnfreeze.newBuilder().setFrom(ByteString.copyFrom(address))
com.tangem.blockchain.blockchains.binance.proto.TokenUnfreeze proto =
com.tangem.blockchain.blockchains.binance.proto.TokenUnfreeze.newBuilder().setFrom(ByteString.copyFrom(address))
.setAmount(unfreeze.getAmount())
.setSymbol(unfreeze.getSymbol())
.build();

View file

@ -1,14 +1,14 @@
package com.tangem.blockchain.binance.client.encoding.message;
package com.tangem.blockchain.blockchains.binance.client.encoding.message;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.google.protobuf.ByteString;
import com.tangem.blockchain.binance.BinanceAccountData;
import com.tangem.blockchain.binance.client.domain.broadcast.TransactionOption;
import com.tangem.blockchain.binance.client.domain.broadcast.Transfer;
import com.tangem.blockchain.binance.client.encoding.Crypto;
import com.tangem.blockchain.binance.client.encoding.EncodeUtils;
import com.tangem.blockchain.binance.proto.StdSignature;
import com.tangem.blockchain.binance.proto.StdTx;
import com.tangem.blockchain.blockchains.binance.BinanceAccountData;
import com.tangem.blockchain.blockchains.binance.client.domain.broadcast.TransactionOption;
import com.tangem.blockchain.blockchains.binance.client.domain.broadcast.Transfer;
import com.tangem.blockchain.blockchains.binance.client.encoding.Crypto;
import com.tangem.blockchain.blockchains.binance.client.encoding.EncodeUtils;
import com.tangem.blockchain.blockchains.binance.proto.StdSignature;
import com.tangem.blockchain.blockchains.binance.proto.StdTx;
import java.io.IOException;
import java.math.BigDecimal;
@ -107,28 +107,28 @@ public class TransactionRequestAssemblerExtSign {
return msgBean;
}
private com.tangem.blockchain.binance.proto.Send.Input toProtoInput(InputOutput input) {
private com.tangem.blockchain.blockchains.binance.proto.Send.Input toProtoInput(InputOutput input) {
byte[] address = Crypto.decodeAddress(input.getAddress());
com.tangem.blockchain.binance.proto.Send.Input.Builder builder =
com.tangem.blockchain.binance.proto.Send.Input.newBuilder().setAddress(ByteString.copyFrom(address));
com.tangem.blockchain.blockchains.binance.proto.Send.Input.Builder builder =
com.tangem.blockchain.blockchains.binance.proto.Send.Input.newBuilder().setAddress(ByteString.copyFrom(address));
for (Token coin : input.getCoins()) {
com.tangem.blockchain.binance.proto.Send.Token protCoin =
com.tangem.blockchain.binance.proto.Send.Token.newBuilder().setAmount(coin.getAmount())
com.tangem.blockchain.blockchains.binance.proto.Send.Token protCoin =
com.tangem.blockchain.blockchains.binance.proto.Send.Token.newBuilder().setAmount(coin.getAmount())
.setDenom(coin.getDenom()).build();
builder.addCoins(protCoin);
}
return builder.build();
}
private com.tangem.blockchain.binance.proto.Send.Output toProtoOutput(InputOutput output) {
private com.tangem.blockchain.blockchains.binance.proto.Send.Output toProtoOutput(InputOutput output) {
byte[] address = Crypto.decodeAddress(output.getAddress());
com.tangem.blockchain.binance.proto.Send.Output.Builder builder =
com.tangem.blockchain.binance.proto.Send.Output.newBuilder().setAddress(ByteString.copyFrom(address));
com.tangem.blockchain.blockchains.binance.proto.Send.Output.Builder builder =
com.tangem.blockchain.blockchains.binance.proto.Send.Output.newBuilder().setAddress(ByteString.copyFrom(address));
for (Token coin : output.getCoins()) {
com.tangem.blockchain.binance.proto.Send.Token protCoin =
com.tangem.blockchain.binance.proto.Send.Token.newBuilder().setAmount(coin.getAmount())
com.tangem.blockchain.blockchains.binance.proto.Send.Token protCoin =
com.tangem.blockchain.blockchains.binance.proto.Send.Token.newBuilder().setAmount(coin.getAmount())
.setDenom(coin.getDenom()).build();
builder.addCoins(protCoin);
}
@ -137,14 +137,14 @@ public class TransactionRequestAssemblerExtSign {
public byte[] encodeTransferMessage(TransferMessage msg)
throws IOException {
com.tangem.blockchain.binance.proto.Send.Builder builder = com.tangem.blockchain.binance.proto.Send.newBuilder();
com.tangem.blockchain.blockchains.binance.proto.Send.Builder builder = com.tangem.blockchain.blockchains.binance.proto.Send.newBuilder();
for (InputOutput input : msg.getInputs()) {
builder.addInputs(toProtoInput(input));
}
for (InputOutput output : msg.getOutputs()) {
builder.addOutputs(toProtoOutput(output));
}
com.tangem.blockchain.binance.proto.Send proto = builder.build();
com.tangem.blockchain.blockchains.binance.proto.Send proto = builder.build();
return EncodeUtils.aminoWrap(proto.toByteArray(), MessageType.Send.getTypePrefixBytes(), false);
}

View file

@ -1,8 +1,8 @@
package com.tangem.blockchain.binance.client.encoding.message;
package com.tangem.blockchain.blockchains.binance.client.encoding.message;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.tangem.blockchain.binance.client.BinanceDexConstants;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;

View file

@ -1,15 +1,35 @@
package com.tangem.blockchain.binance.client.impl;
package com.tangem.blockchain.blockchains.binance.client.impl;
import android.os.Build;
import androidx.annotation.RequiresApi;
import com.tangem.blockchain.binance.client.*;
import com.tangem.blockchain.binance.client.domain.*;
import com.tangem.blockchain.binance.client.domain.request.ClosedOrdersRequest;
import com.tangem.blockchain.binance.client.domain.request.OpenOrdersRequest;
import com.tangem.blockchain.binance.client.domain.request.TradesRequest;
import com.tangem.blockchain.binance.client.domain.request.TransactionsRequest;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexApi;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexApiAsyncRestClient;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexApiCallback;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexApiCallbackAdapter;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexApiClientGenerator;
import com.tangem.blockchain.blockchains.binance.client.domain.Account;
import com.tangem.blockchain.blockchains.binance.client.domain.AccountSequence;
import com.tangem.blockchain.blockchains.binance.client.domain.Candlestick;
import com.tangem.blockchain.blockchains.binance.client.domain.CandlestickInterval;
import com.tangem.blockchain.blockchains.binance.client.domain.Infos;
import com.tangem.blockchain.blockchains.binance.client.domain.Market;
import com.tangem.blockchain.blockchains.binance.client.domain.Order;
import com.tangem.blockchain.blockchains.binance.client.domain.OrderBook;
import com.tangem.blockchain.blockchains.binance.client.domain.OrderList;
import com.tangem.blockchain.blockchains.binance.client.domain.Peer;
import com.tangem.blockchain.blockchains.binance.client.domain.TickerStatistics;
import com.tangem.blockchain.blockchains.binance.client.domain.Time;
import com.tangem.blockchain.blockchains.binance.client.domain.Token;
import com.tangem.blockchain.blockchains.binance.client.domain.TradePage;
import com.tangem.blockchain.blockchains.binance.client.domain.TransactionMetadata;
import com.tangem.blockchain.blockchains.binance.client.domain.TransactionPage;
import com.tangem.blockchain.blockchains.binance.client.domain.Validators;
import com.tangem.blockchain.blockchains.binance.client.domain.request.ClosedOrdersRequest;
import com.tangem.blockchain.blockchains.binance.client.domain.request.OpenOrdersRequest;
import com.tangem.blockchain.blockchains.binance.client.domain.request.TradesRequest;
import com.tangem.blockchain.blockchains.binance.client.domain.request.TransactionsRequest;
import java.util.List;
import java.util.stream.Collectors;

View file

@ -1,27 +1,52 @@
package com.tangem.blockchain.binance.client.impl;
package com.tangem.blockchain.blockchains.binance.client.impl;
import android.os.Build;
import androidx.annotation.RequiresApi;
import com.tangem.blockchain.binance.BinanceAccountData;
import com.tangem.blockchain.binance.client.*;
import com.tangem.blockchain.binance.client.domain.*;
import com.tangem.blockchain.binance.client.domain.broadcast.*;
import com.tangem.blockchain.binance.client.domain.request.ClosedOrdersRequest;
import com.tangem.blockchain.binance.client.domain.request.OpenOrdersRequest;
import com.tangem.blockchain.binance.client.domain.request.TradesRequest;
import com.tangem.blockchain.binance.client.domain.request.TransactionsRequest;
import com.tangem.blockchain.binance.client.encoding.message.TransactionRequestAssembler;
import com.tangem.blockchain.binance.client.encoding.message.TransactionRequestAssemblerExtSign;
import okhttp3.RequestBody;
import com.tangem.blockchain.blockchains.binance.BinanceAccountData;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexApi;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexApiClientGenerator;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexApiException;
import com.tangem.blockchain.blockchains.binance.client.BinanceDexApiRestClient;
import com.tangem.blockchain.blockchains.binance.client.Wallet;
import com.tangem.blockchain.blockchains.binance.client.domain.Account;
import com.tangem.blockchain.blockchains.binance.client.domain.AccountSequence;
import com.tangem.blockchain.blockchains.binance.client.domain.Candlestick;
import com.tangem.blockchain.blockchains.binance.client.domain.CandlestickInterval;
import com.tangem.blockchain.blockchains.binance.client.domain.Infos;
import com.tangem.blockchain.blockchains.binance.client.domain.Market;
import com.tangem.blockchain.blockchains.binance.client.domain.Order;
import com.tangem.blockchain.blockchains.binance.client.domain.OrderBook;
import com.tangem.blockchain.blockchains.binance.client.domain.OrderList;
import com.tangem.blockchain.blockchains.binance.client.domain.Peer;
import com.tangem.blockchain.blockchains.binance.client.domain.TickerStatistics;
import com.tangem.blockchain.blockchains.binance.client.domain.Time;
import com.tangem.blockchain.blockchains.binance.client.domain.Token;
import com.tangem.blockchain.blockchains.binance.client.domain.TradePage;
import com.tangem.blockchain.blockchains.binance.client.domain.TransactionMetadata;
import com.tangem.blockchain.blockchains.binance.client.domain.TransactionPage;
import com.tangem.blockchain.blockchains.binance.client.domain.Validators;
import com.tangem.blockchain.blockchains.binance.client.domain.broadcast.CancelOrder;
import com.tangem.blockchain.blockchains.binance.client.domain.broadcast.NewOrder;
import com.tangem.blockchain.blockchains.binance.client.domain.broadcast.TokenFreeze;
import com.tangem.blockchain.blockchains.binance.client.domain.broadcast.TokenUnfreeze;
import com.tangem.blockchain.blockchains.binance.client.domain.broadcast.TransactionOption;
import com.tangem.blockchain.blockchains.binance.client.domain.broadcast.Transfer;
import com.tangem.blockchain.blockchains.binance.client.domain.request.ClosedOrdersRequest;
import com.tangem.blockchain.blockchains.binance.client.domain.request.OpenOrdersRequest;
import com.tangem.blockchain.blockchains.binance.client.domain.request.TradesRequest;
import com.tangem.blockchain.blockchains.binance.client.domain.request.TransactionsRequest;
import com.tangem.blockchain.blockchains.binance.client.encoding.message.TransactionRequestAssembler;
import com.tangem.blockchain.blockchains.binance.client.encoding.message.TransactionRequestAssemblerExtSign;
import java.io.IOException;
import java.security.NoSuchAlgorithmException;
import java.util.List;
import java.util.stream.Collectors;
import okhttp3.RequestBody;
/**
* Binance DEX API rest client, supporting synchronous/blocking access Binance DEX's REST API.

View file

@ -1,6 +1,5 @@
package com.tangem.blockchain.binance.network
package com.tangem.blockchain.blockchains.binance.network
import retrofit2.Call
import retrofit2.http.GET
interface BinanceApi {

View file

@ -1,24 +1,29 @@
package com.tangem.blockchain.binance.network
package com.tangem.blockchain.blockchains.binance.network
import com.tangem.blockchain.binance.client.BinanceDexApiClientFactory
import com.tangem.blockchain.binance.client.BinanceDexEnvironment
import com.tangem.blockchain.binance.client.encoding.message.TransactionRequestAssemblerExtSign
import com.tangem.blockchain.blockchains.binance.client.BinanceDexApiClientFactory
import com.tangem.blockchain.blockchains.binance.client.BinanceDexApiRestClient
import com.tangem.blockchain.blockchains.binance.client.BinanceDexEnvironment
import com.tangem.blockchain.blockchains.binance.client.encoding.message.TransactionRequestAssemblerExtSign
import com.tangem.blockchain.common.Blockchain
import com.tangem.blockchain.common.extensions.Result
import com.tangem.blockchain.common.extensions.SimpleResult
import com.tangem.blockchain.common.extensions.retryIO
import com.tangem.blockchain.common.network.API_BINANCE
import com.tangem.blockchain.common.network.API_BINANCE_TESTNET
import com.tangem.blockchain.common.network.createRetrofitInstance
import com.tangem.blockchain.extensions.Result
import com.tangem.blockchain.extensions.SimpleResult
import com.tangem.blockchain.extensions.retryIO
import com.tangem.blockchain.network.API_BINANCE
import com.tangem.blockchain.network.API_BINANCE_TESTNET
import com.tangem.blockchain.network.createRetrofitInstance
import okhttp3.RequestBody
import java.math.BigDecimal
class BinanceNetworkManager(isTestNet: Boolean) {
val api = createRetrofitInstance(if (!isTestNet) API_BINANCE else API_BINANCE_TESTNET)
.create(BinanceApi::class.java)
val client = BinanceDexApiClientFactory.newInstance().newRestClient(
if (!isTestNet) BinanceDexEnvironment.PROD.baseUrl else BinanceDexEnvironment.TEST_NET.baseUrl
)
class BinanceNetworkManager(isTestNet: Boolean = false) {
val api: BinanceApi by lazy {
createRetrofitInstance(if (!isTestNet) API_BINANCE else API_BINANCE_TESTNET)
.create(BinanceApi::class.java)
}
val client: BinanceDexApiRestClient by lazy {
BinanceDexApiClientFactory.newInstance().newRestClient(
if (!isTestNet) BinanceDexEnvironment.PROD.baseUrl else BinanceDexEnvironment.TEST_NET.baseUrl
)
}
suspend fun getInfo(address: String): Result<BinanceInfoResponse> {
return try {
@ -57,7 +62,7 @@ class BinanceNetworkManager(isTestNet: Boolean) {
for (binanceFee in feeData) {
if (binanceFee.transactionFee != null) {
fee = binanceFee.transactionFee?.value?.toBigDecimal()
?.movePointLeft(Blockchain.Binance.decimals.toInt())
?.movePointLeft(Blockchain.Binance.decimals())
break
}
}

View file

@ -1,4 +1,4 @@
package com.tangem.blockchain.binance.network
package com.tangem.blockchain.blockchains.binance.network
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass

View file

@ -1,7 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: dex.proto
package com.tangem.blockchain.binance.proto;
package com.tangem.blockchain.blockchains.binance.proto;
/**
* <pre>
@ -87,15 +87,15 @@ private static final long serialVersionUID = 0L;
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.tangem.blockchain.binance.proto.Transaction.internal_static_transaction_CancelOrder_descriptor;
return com.tangem.blockchain.blockchains.binance.proto.Transaction.internal_static_transaction_CancelOrder_descriptor;
}
@Override
protected FieldAccessorTable
internalGetFieldAccessorTable() {
return com.tangem.blockchain.binance.proto.Transaction.internal_static_transaction_CancelOrder_fieldAccessorTable
return com.tangem.blockchain.blockchains.binance.proto.Transaction.internal_static_transaction_CancelOrder_fieldAccessorTable
.ensureFieldAccessorsInitialized(
com.tangem.blockchain.binance.proto.CancelOrder.class, com.tangem.blockchain.binance.proto.CancelOrder.Builder.class);
com.tangem.blockchain.blockchains.binance.proto.CancelOrder.class, com.tangem.blockchain.blockchains.binance.proto.CancelOrder.Builder.class);
}
public static final int SENDER_FIELD_NUMBER = 1;
@ -247,10 +247,10 @@ private static final long serialVersionUID = 0L;
if (obj == this) {
return true;
}
if (!(obj instanceof com.tangem.blockchain.binance.proto.CancelOrder)) {
if (!(obj instanceof com.tangem.blockchain.blockchains.binance.proto.CancelOrder)) {
return super.equals(obj);
}
com.tangem.blockchain.binance.proto.CancelOrder other = (com.tangem.blockchain.binance.proto.CancelOrder) obj;
com.tangem.blockchain.blockchains.binance.proto.CancelOrder other = (com.tangem.blockchain.blockchains.binance.proto.CancelOrder) obj;
if (!getSender()
.equals(other.getSender())) return false;
@ -280,69 +280,69 @@ private static final long serialVersionUID = 0L;
return hash;
}
public static com.tangem.blockchain.binance.proto.CancelOrder parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.CancelOrder parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static com.tangem.blockchain.binance.proto.CancelOrder parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.CancelOrder parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static com.tangem.blockchain.binance.proto.CancelOrder parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.CancelOrder parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static com.tangem.blockchain.binance.proto.CancelOrder parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.CancelOrder parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static com.tangem.blockchain.binance.proto.CancelOrder parseFrom(byte[] data)
public static com.tangem.blockchain.blockchains.binance.proto.CancelOrder parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static com.tangem.blockchain.binance.proto.CancelOrder parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.CancelOrder parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static com.tangem.blockchain.binance.proto.CancelOrder parseFrom(java.io.InputStream input)
public static com.tangem.blockchain.blockchains.binance.proto.CancelOrder parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static com.tangem.blockchain.binance.proto.CancelOrder parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.CancelOrder parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static com.tangem.blockchain.binance.proto.CancelOrder parseDelimitedFrom(java.io.InputStream input)
public static com.tangem.blockchain.blockchains.binance.proto.CancelOrder parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static com.tangem.blockchain.binance.proto.CancelOrder parseDelimitedFrom(
public static com.tangem.blockchain.blockchains.binance.proto.CancelOrder parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static com.tangem.blockchain.binance.proto.CancelOrder parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.CancelOrder parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static com.tangem.blockchain.binance.proto.CancelOrder parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.CancelOrder parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
@ -355,7 +355,7 @@ private static final long serialVersionUID = 0L;
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(com.tangem.blockchain.binance.proto.CancelOrder prototype) {
public static Builder newBuilder(com.tangem.blockchain.blockchains.binance.proto.CancelOrder prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@Override
@ -380,21 +380,21 @@ private static final long serialVersionUID = 0L;
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
// @@protoc_insertion_point(builder_implements:transaction.CancelOrder)
com.tangem.blockchain.binance.proto.CancelOrderOrBuilder {
com.tangem.blockchain.blockchains.binance.proto.CancelOrderOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.tangem.blockchain.binance.proto.Transaction.internal_static_transaction_CancelOrder_descriptor;
return com.tangem.blockchain.blockchains.binance.proto.Transaction.internal_static_transaction_CancelOrder_descriptor;
}
@Override
protected FieldAccessorTable
internalGetFieldAccessorTable() {
return com.tangem.blockchain.binance.proto.Transaction.internal_static_transaction_CancelOrder_fieldAccessorTable
return com.tangem.blockchain.blockchains.binance.proto.Transaction.internal_static_transaction_CancelOrder_fieldAccessorTable
.ensureFieldAccessorsInitialized(
com.tangem.blockchain.binance.proto.CancelOrder.class, com.tangem.blockchain.binance.proto.CancelOrder.Builder.class);
com.tangem.blockchain.blockchains.binance.proto.CancelOrder.class, com.tangem.blockchain.blockchains.binance.proto.CancelOrder.Builder.class);
}
// Construct using com.tangem.blockchain.binance.proto.CancelOrder.newBuilder()
// Construct using com.tangem.blockchain.blockchains.binance.proto.CancelOrder.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
@ -424,17 +424,17 @@ private static final long serialVersionUID = 0L;
@Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return com.tangem.blockchain.binance.proto.Transaction.internal_static_transaction_CancelOrder_descriptor;
return com.tangem.blockchain.blockchains.binance.proto.Transaction.internal_static_transaction_CancelOrder_descriptor;
}
@Override
public com.tangem.blockchain.binance.proto.CancelOrder getDefaultInstanceForType() {
return com.tangem.blockchain.binance.proto.CancelOrder.getDefaultInstance();
public com.tangem.blockchain.blockchains.binance.proto.CancelOrder getDefaultInstanceForType() {
return com.tangem.blockchain.blockchains.binance.proto.CancelOrder.getDefaultInstance();
}
@Override
public com.tangem.blockchain.binance.proto.CancelOrder build() {
com.tangem.blockchain.binance.proto.CancelOrder result = buildPartial();
public com.tangem.blockchain.blockchains.binance.proto.CancelOrder build() {
com.tangem.blockchain.blockchains.binance.proto.CancelOrder result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
@ -442,8 +442,8 @@ private static final long serialVersionUID = 0L;
}
@Override
public com.tangem.blockchain.binance.proto.CancelOrder buildPartial() {
com.tangem.blockchain.binance.proto.CancelOrder result = new com.tangem.blockchain.binance.proto.CancelOrder(this);
public com.tangem.blockchain.blockchains.binance.proto.CancelOrder buildPartial() {
com.tangem.blockchain.blockchains.binance.proto.CancelOrder result = new com.tangem.blockchain.blockchains.binance.proto.CancelOrder(this);
result.sender_ = sender_;
result.symbol_ = symbol_;
result.refid_ = refid_;
@ -485,16 +485,16 @@ private static final long serialVersionUID = 0L;
}
@Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof com.tangem.blockchain.binance.proto.CancelOrder) {
return mergeFrom((com.tangem.blockchain.binance.proto.CancelOrder)other);
if (other instanceof com.tangem.blockchain.blockchains.binance.proto.CancelOrder) {
return mergeFrom((com.tangem.blockchain.blockchains.binance.proto.CancelOrder)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(com.tangem.blockchain.binance.proto.CancelOrder other) {
if (other == com.tangem.blockchain.binance.proto.CancelOrder.getDefaultInstance()) return this;
public Builder mergeFrom(com.tangem.blockchain.blockchains.binance.proto.CancelOrder other) {
if (other == com.tangem.blockchain.blockchains.binance.proto.CancelOrder.getDefaultInstance()) return this;
if (other.getSender() != com.google.protobuf.ByteString.EMPTY) {
setSender(other.getSender());
}
@ -521,11 +521,11 @@ private static final long serialVersionUID = 0L;
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
com.tangem.blockchain.binance.proto.CancelOrder parsedMessage = null;
com.tangem.blockchain.blockchains.binance.proto.CancelOrder parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (com.tangem.blockchain.binance.proto.CancelOrder) e.getUnfinishedMessage();
parsedMessage = (com.tangem.blockchain.blockchains.binance.proto.CancelOrder) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
@ -770,12 +770,12 @@ private static final long serialVersionUID = 0L;
}
// @@protoc_insertion_point(class_scope:transaction.CancelOrder)
private static final com.tangem.blockchain.binance.proto.CancelOrder DEFAULT_INSTANCE;
private static final com.tangem.blockchain.blockchains.binance.proto.CancelOrder DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new com.tangem.blockchain.binance.proto.CancelOrder();
DEFAULT_INSTANCE = new com.tangem.blockchain.blockchains.binance.proto.CancelOrder();
}
public static com.tangem.blockchain.binance.proto.CancelOrder getDefaultInstance() {
public static com.tangem.blockchain.blockchains.binance.proto.CancelOrder getDefaultInstance() {
return DEFAULT_INSTANCE;
}
@ -800,7 +800,7 @@ private static final long serialVersionUID = 0L;
}
@Override
public com.tangem.blockchain.binance.proto.CancelOrder getDefaultInstanceForType() {
public com.tangem.blockchain.blockchains.binance.proto.CancelOrder getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}

View file

@ -1,7 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: dex.proto
package com.tangem.blockchain.binance.proto;
package com.tangem.blockchain.blockchains.binance.proto;
public interface CancelOrderOrBuilder extends
// @@protoc_insertion_point(interface_extends:transaction.CancelOrder)

View file

@ -1,7 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: dex.proto
package com.tangem.blockchain.binance.proto;
package com.tangem.blockchain.blockchains.binance.proto;
/**
* <pre>
@ -112,15 +112,15 @@ private static final long serialVersionUID = 0L;
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.tangem.blockchain.binance.proto.Transaction.internal_static_transaction_NewOrder_descriptor;
return com.tangem.blockchain.blockchains.binance.proto.Transaction.internal_static_transaction_NewOrder_descriptor;
}
@Override
protected FieldAccessorTable
internalGetFieldAccessorTable() {
return com.tangem.blockchain.binance.proto.Transaction.internal_static_transaction_NewOrder_fieldAccessorTable
return com.tangem.blockchain.blockchains.binance.proto.Transaction.internal_static_transaction_NewOrder_fieldAccessorTable
.ensureFieldAccessorsInitialized(
com.tangem.blockchain.binance.proto.NewOrder.class, com.tangem.blockchain.binance.proto.NewOrder.Builder.class);
com.tangem.blockchain.blockchains.binance.proto.NewOrder.class, com.tangem.blockchain.blockchains.binance.proto.NewOrder.Builder.class);
}
public static final int SENDER_FIELD_NUMBER = 1;
@ -372,10 +372,10 @@ private static final long serialVersionUID = 0L;
if (obj == this) {
return true;
}
if (!(obj instanceof com.tangem.blockchain.binance.proto.NewOrder)) {
if (!(obj instanceof com.tangem.blockchain.blockchains.binance.proto.NewOrder)) {
return super.equals(obj);
}
com.tangem.blockchain.binance.proto.NewOrder other = (com.tangem.blockchain.binance.proto.NewOrder) obj;
com.tangem.blockchain.blockchains.binance.proto.NewOrder other = (com.tangem.blockchain.blockchains.binance.proto.NewOrder) obj;
if (!getSender()
.equals(other.getSender())) return false;
@ -430,69 +430,69 @@ private static final long serialVersionUID = 0L;
return hash;
}
public static com.tangem.blockchain.binance.proto.NewOrder parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.NewOrder parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static com.tangem.blockchain.binance.proto.NewOrder parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.NewOrder parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static com.tangem.blockchain.binance.proto.NewOrder parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.NewOrder parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static com.tangem.blockchain.binance.proto.NewOrder parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.NewOrder parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static com.tangem.blockchain.binance.proto.NewOrder parseFrom(byte[] data)
public static com.tangem.blockchain.blockchains.binance.proto.NewOrder parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static com.tangem.blockchain.binance.proto.NewOrder parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.NewOrder parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static com.tangem.blockchain.binance.proto.NewOrder parseFrom(java.io.InputStream input)
public static com.tangem.blockchain.blockchains.binance.proto.NewOrder parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static com.tangem.blockchain.binance.proto.NewOrder parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.NewOrder parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static com.tangem.blockchain.binance.proto.NewOrder parseDelimitedFrom(java.io.InputStream input)
public static com.tangem.blockchain.blockchains.binance.proto.NewOrder parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static com.tangem.blockchain.binance.proto.NewOrder parseDelimitedFrom(
public static com.tangem.blockchain.blockchains.binance.proto.NewOrder parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static com.tangem.blockchain.binance.proto.NewOrder parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.NewOrder parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static com.tangem.blockchain.binance.proto.NewOrder parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.NewOrder parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
@ -505,7 +505,7 @@ private static final long serialVersionUID = 0L;
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(com.tangem.blockchain.binance.proto.NewOrder prototype) {
public static Builder newBuilder(com.tangem.blockchain.blockchains.binance.proto.NewOrder prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@Override
@ -530,21 +530,21 @@ private static final long serialVersionUID = 0L;
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
// @@protoc_insertion_point(builder_implements:transaction.NewOrder)
com.tangem.blockchain.binance.proto.NewOrderOrBuilder {
com.tangem.blockchain.blockchains.binance.proto.NewOrderOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.tangem.blockchain.binance.proto.Transaction.internal_static_transaction_NewOrder_descriptor;
return com.tangem.blockchain.blockchains.binance.proto.Transaction.internal_static_transaction_NewOrder_descriptor;
}
@Override
protected FieldAccessorTable
internalGetFieldAccessorTable() {
return com.tangem.blockchain.binance.proto.Transaction.internal_static_transaction_NewOrder_fieldAccessorTable
return com.tangem.blockchain.blockchains.binance.proto.Transaction.internal_static_transaction_NewOrder_fieldAccessorTable
.ensureFieldAccessorsInitialized(
com.tangem.blockchain.binance.proto.NewOrder.class, com.tangem.blockchain.binance.proto.NewOrder.Builder.class);
com.tangem.blockchain.blockchains.binance.proto.NewOrder.class, com.tangem.blockchain.blockchains.binance.proto.NewOrder.Builder.class);
}
// Construct using com.tangem.blockchain.binance.proto.NewOrder.newBuilder()
// Construct using com.tangem.blockchain.blockchains.binance.proto.NewOrder.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
@ -584,17 +584,17 @@ private static final long serialVersionUID = 0L;
@Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return com.tangem.blockchain.binance.proto.Transaction.internal_static_transaction_NewOrder_descriptor;
return com.tangem.blockchain.blockchains.binance.proto.Transaction.internal_static_transaction_NewOrder_descriptor;
}
@Override
public com.tangem.blockchain.binance.proto.NewOrder getDefaultInstanceForType() {
return com.tangem.blockchain.binance.proto.NewOrder.getDefaultInstance();
public com.tangem.blockchain.blockchains.binance.proto.NewOrder getDefaultInstanceForType() {
return com.tangem.blockchain.blockchains.binance.proto.NewOrder.getDefaultInstance();
}
@Override
public com.tangem.blockchain.binance.proto.NewOrder build() {
com.tangem.blockchain.binance.proto.NewOrder result = buildPartial();
public com.tangem.blockchain.blockchains.binance.proto.NewOrder build() {
com.tangem.blockchain.blockchains.binance.proto.NewOrder result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
@ -602,8 +602,8 @@ private static final long serialVersionUID = 0L;
}
@Override
public com.tangem.blockchain.binance.proto.NewOrder buildPartial() {
com.tangem.blockchain.binance.proto.NewOrder result = new com.tangem.blockchain.binance.proto.NewOrder(this);
public com.tangem.blockchain.blockchains.binance.proto.NewOrder buildPartial() {
com.tangem.blockchain.blockchains.binance.proto.NewOrder result = new com.tangem.blockchain.blockchains.binance.proto.NewOrder(this);
result.sender_ = sender_;
result.id_ = id_;
result.symbol_ = symbol_;
@ -650,16 +650,16 @@ private static final long serialVersionUID = 0L;
}
@Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof com.tangem.blockchain.binance.proto.NewOrder) {
return mergeFrom((com.tangem.blockchain.binance.proto.NewOrder)other);
if (other instanceof com.tangem.blockchain.blockchains.binance.proto.NewOrder) {
return mergeFrom((com.tangem.blockchain.blockchains.binance.proto.NewOrder)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(com.tangem.blockchain.binance.proto.NewOrder other) {
if (other == com.tangem.blockchain.binance.proto.NewOrder.getDefaultInstance()) return this;
public Builder mergeFrom(com.tangem.blockchain.blockchains.binance.proto.NewOrder other) {
if (other == com.tangem.blockchain.blockchains.binance.proto.NewOrder.getDefaultInstance()) return this;
if (other.getSender() != com.google.protobuf.ByteString.EMPTY) {
setSender(other.getSender());
}
@ -701,11 +701,11 @@ private static final long serialVersionUID = 0L;
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
com.tangem.blockchain.binance.proto.NewOrder parsedMessage = null;
com.tangem.blockchain.blockchains.binance.proto.NewOrder parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (com.tangem.blockchain.binance.proto.NewOrder) e.getUnfinishedMessage();
parsedMessage = (com.tangem.blockchain.blockchains.binance.proto.NewOrder) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
@ -1140,12 +1140,12 @@ private static final long serialVersionUID = 0L;
}
// @@protoc_insertion_point(class_scope:transaction.NewOrder)
private static final com.tangem.blockchain.binance.proto.NewOrder DEFAULT_INSTANCE;
private static final com.tangem.blockchain.blockchains.binance.proto.NewOrder DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new com.tangem.blockchain.binance.proto.NewOrder();
DEFAULT_INSTANCE = new com.tangem.blockchain.blockchains.binance.proto.NewOrder();
}
public static com.tangem.blockchain.binance.proto.NewOrder getDefaultInstance() {
public static com.tangem.blockchain.blockchains.binance.proto.NewOrder getDefaultInstance() {
return DEFAULT_INSTANCE;
}
@ -1170,7 +1170,7 @@ private static final long serialVersionUID = 0L;
}
@Override
public com.tangem.blockchain.binance.proto.NewOrder getDefaultInstanceForType() {
public com.tangem.blockchain.blockchains.binance.proto.NewOrder getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}

View file

@ -1,7 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: dex.proto
package com.tangem.blockchain.binance.proto;
package com.tangem.blockchain.blockchains.binance.proto;
public interface NewOrderOrBuilder extends
// @@protoc_insertion_point(interface_extends:transaction.NewOrder)

View file

@ -1,7 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: dex.proto
package com.tangem.blockchain.binance.proto;
package com.tangem.blockchain.blockchains.binance.proto;
public interface SendOrBuilder extends
// @@protoc_insertion_point(interface_extends:transaction.Send)
@ -10,12 +10,12 @@ public interface SendOrBuilder extends
/**
* <code>repeated .transaction.Send.Input inputs = 1;</code>
*/
java.util.List<com.tangem.blockchain.binance.proto.Send.Input>
java.util.List<com.tangem.blockchain.blockchains.binance.proto.Send.Input>
getInputsList();
/**
* <code>repeated .transaction.Send.Input inputs = 1;</code>
*/
com.tangem.blockchain.binance.proto.Send.Input getInputs(int index);
com.tangem.blockchain.blockchains.binance.proto.Send.Input getInputs(int index);
/**
* <code>repeated .transaction.Send.Input inputs = 1;</code>
*/
@ -23,23 +23,23 @@ public interface SendOrBuilder extends
/**
* <code>repeated .transaction.Send.Input inputs = 1;</code>
*/
java.util.List<? extends com.tangem.blockchain.binance.proto.Send.InputOrBuilder>
java.util.List<? extends com.tangem.blockchain.blockchains.binance.proto.Send.InputOrBuilder>
getInputsOrBuilderList();
/**
* <code>repeated .transaction.Send.Input inputs = 1;</code>
*/
com.tangem.blockchain.binance.proto.Send.InputOrBuilder getInputsOrBuilder(
com.tangem.blockchain.blockchains.binance.proto.Send.InputOrBuilder getInputsOrBuilder(
int index);
/**
* <code>repeated .transaction.Send.Output outputs = 2;</code>
*/
java.util.List<com.tangem.blockchain.binance.proto.Send.Output>
java.util.List<com.tangem.blockchain.blockchains.binance.proto.Send.Output>
getOutputsList();
/**
* <code>repeated .transaction.Send.Output outputs = 2;</code>
*/
com.tangem.blockchain.binance.proto.Send.Output getOutputs(int index);
com.tangem.blockchain.blockchains.binance.proto.Send.Output getOutputs(int index);
/**
* <code>repeated .transaction.Send.Output outputs = 2;</code>
*/
@ -47,11 +47,11 @@ public interface SendOrBuilder extends
/**
* <code>repeated .transaction.Send.Output outputs = 2;</code>
*/
java.util.List<? extends com.tangem.blockchain.binance.proto.Send.OutputOrBuilder>
java.util.List<? extends com.tangem.blockchain.blockchains.binance.proto.Send.OutputOrBuilder>
getOutputsOrBuilderList();
/**
* <code>repeated .transaction.Send.Output outputs = 2;</code>
*/
com.tangem.blockchain.binance.proto.Send.OutputOrBuilder getOutputsOrBuilder(
com.tangem.blockchain.blockchains.binance.proto.Send.OutputOrBuilder getOutputsOrBuilder(
int index);
}

View file

@ -1,7 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: dex.proto
package com.tangem.blockchain.binance.proto;
package com.tangem.blockchain.blockchains.binance.proto;
/**
* Protobuf type {@code transaction.StdSignature}
@ -85,15 +85,15 @@ private static final long serialVersionUID = 0L;
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.tangem.blockchain.binance.proto.Transaction.internal_static_transaction_StdSignature_descriptor;
return com.tangem.blockchain.blockchains.binance.proto.Transaction.internal_static_transaction_StdSignature_descriptor;
}
@Override
protected FieldAccessorTable
internalGetFieldAccessorTable() {
return com.tangem.blockchain.binance.proto.Transaction.internal_static_transaction_StdSignature_fieldAccessorTable
return com.tangem.blockchain.blockchains.binance.proto.Transaction.internal_static_transaction_StdSignature_fieldAccessorTable
.ensureFieldAccessorsInitialized(
com.tangem.blockchain.binance.proto.StdSignature.class, com.tangem.blockchain.binance.proto.StdSignature.Builder.class);
com.tangem.blockchain.blockchains.binance.proto.StdSignature.class, com.tangem.blockchain.blockchains.binance.proto.StdSignature.Builder.class);
}
public interface PubKeyOrBuilder extends
@ -163,15 +163,15 @@ private static final long serialVersionUID = 0L;
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.tangem.blockchain.binance.proto.Transaction.internal_static_transaction_StdSignature_PubKey_descriptor;
return com.tangem.blockchain.blockchains.binance.proto.Transaction.internal_static_transaction_StdSignature_PubKey_descriptor;
}
@Override
protected FieldAccessorTable
internalGetFieldAccessorTable() {
return com.tangem.blockchain.binance.proto.Transaction.internal_static_transaction_StdSignature_PubKey_fieldAccessorTable
return com.tangem.blockchain.blockchains.binance.proto.Transaction.internal_static_transaction_StdSignature_PubKey_fieldAccessorTable
.ensureFieldAccessorsInitialized(
com.tangem.blockchain.binance.proto.StdSignature.PubKey.class, com.tangem.blockchain.binance.proto.StdSignature.PubKey.Builder.class);
com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey.class, com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey.Builder.class);
}
private byte memoizedIsInitialized = -1;
@ -207,10 +207,10 @@ private static final long serialVersionUID = 0L;
if (obj == this) {
return true;
}
if (!(obj instanceof com.tangem.blockchain.binance.proto.StdSignature.PubKey)) {
if (!(obj instanceof com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey)) {
return super.equals(obj);
}
com.tangem.blockchain.binance.proto.StdSignature.PubKey other = (com.tangem.blockchain.binance.proto.StdSignature.PubKey) obj;
com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey other = (com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey) obj;
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
@ -228,69 +228,69 @@ private static final long serialVersionUID = 0L;
return hash;
}
public static com.tangem.blockchain.binance.proto.StdSignature.PubKey parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static com.tangem.blockchain.binance.proto.StdSignature.PubKey parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static com.tangem.blockchain.binance.proto.StdSignature.PubKey parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static com.tangem.blockchain.binance.proto.StdSignature.PubKey parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static com.tangem.blockchain.binance.proto.StdSignature.PubKey parseFrom(byte[] data)
public static com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static com.tangem.blockchain.binance.proto.StdSignature.PubKey parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static com.tangem.blockchain.binance.proto.StdSignature.PubKey parseFrom(java.io.InputStream input)
public static com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static com.tangem.blockchain.binance.proto.StdSignature.PubKey parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static com.tangem.blockchain.binance.proto.StdSignature.PubKey parseDelimitedFrom(java.io.InputStream input)
public static com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static com.tangem.blockchain.binance.proto.StdSignature.PubKey parseDelimitedFrom(
public static com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static com.tangem.blockchain.binance.proto.StdSignature.PubKey parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static com.tangem.blockchain.binance.proto.StdSignature.PubKey parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
@ -303,7 +303,7 @@ private static final long serialVersionUID = 0L;
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(com.tangem.blockchain.binance.proto.StdSignature.PubKey prototype) {
public static Builder newBuilder(com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@Override
@ -328,21 +328,21 @@ private static final long serialVersionUID = 0L;
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
// @@protoc_insertion_point(builder_implements:transaction.StdSignature.PubKey)
com.tangem.blockchain.binance.proto.StdSignature.PubKeyOrBuilder {
com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKeyOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.tangem.blockchain.binance.proto.Transaction.internal_static_transaction_StdSignature_PubKey_descriptor;
return com.tangem.blockchain.blockchains.binance.proto.Transaction.internal_static_transaction_StdSignature_PubKey_descriptor;
}
@Override
protected FieldAccessorTable
internalGetFieldAccessorTable() {
return com.tangem.blockchain.binance.proto.Transaction.internal_static_transaction_StdSignature_PubKey_fieldAccessorTable
return com.tangem.blockchain.blockchains.binance.proto.Transaction.internal_static_transaction_StdSignature_PubKey_fieldAccessorTable
.ensureFieldAccessorsInitialized(
com.tangem.blockchain.binance.proto.StdSignature.PubKey.class, com.tangem.blockchain.binance.proto.StdSignature.PubKey.Builder.class);
com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey.class, com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey.Builder.class);
}
// Construct using com.tangem.blockchain.binance.proto.StdSignature.PubKey.newBuilder()
// Construct using com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
@ -366,17 +366,17 @@ private static final long serialVersionUID = 0L;
@Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return com.tangem.blockchain.binance.proto.Transaction.internal_static_transaction_StdSignature_PubKey_descriptor;
return com.tangem.blockchain.blockchains.binance.proto.Transaction.internal_static_transaction_StdSignature_PubKey_descriptor;
}
@Override
public com.tangem.blockchain.binance.proto.StdSignature.PubKey getDefaultInstanceForType() {
return com.tangem.blockchain.binance.proto.StdSignature.PubKey.getDefaultInstance();
public com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey getDefaultInstanceForType() {
return com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey.getDefaultInstance();
}
@Override
public com.tangem.blockchain.binance.proto.StdSignature.PubKey build() {
com.tangem.blockchain.binance.proto.StdSignature.PubKey result = buildPartial();
public com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey build() {
com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
@ -384,8 +384,8 @@ private static final long serialVersionUID = 0L;
}
@Override
public com.tangem.blockchain.binance.proto.StdSignature.PubKey buildPartial() {
com.tangem.blockchain.binance.proto.StdSignature.PubKey result = new com.tangem.blockchain.binance.proto.StdSignature.PubKey(this);
public com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey buildPartial() {
com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey result = new com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey(this);
onBuilt();
return result;
}
@ -424,16 +424,16 @@ private static final long serialVersionUID = 0L;
}
@Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof com.tangem.blockchain.binance.proto.StdSignature.PubKey) {
return mergeFrom((com.tangem.blockchain.binance.proto.StdSignature.PubKey)other);
if (other instanceof com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey) {
return mergeFrom((com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(com.tangem.blockchain.binance.proto.StdSignature.PubKey other) {
if (other == com.tangem.blockchain.binance.proto.StdSignature.PubKey.getDefaultInstance()) return this;
public Builder mergeFrom(com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey other) {
if (other == com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey.getDefaultInstance()) return this;
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
@ -449,11 +449,11 @@ private static final long serialVersionUID = 0L;
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
com.tangem.blockchain.binance.proto.StdSignature.PubKey parsedMessage = null;
com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (com.tangem.blockchain.binance.proto.StdSignature.PubKey) e.getUnfinishedMessage();
parsedMessage = (com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
@ -479,12 +479,12 @@ private static final long serialVersionUID = 0L;
}
// @@protoc_insertion_point(class_scope:transaction.StdSignature.PubKey)
private static final com.tangem.blockchain.binance.proto.StdSignature.PubKey DEFAULT_INSTANCE;
private static final com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new com.tangem.blockchain.binance.proto.StdSignature.PubKey();
DEFAULT_INSTANCE = new com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey();
}
public static com.tangem.blockchain.binance.proto.StdSignature.PubKey getDefaultInstance() {
public static com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey getDefaultInstance() {
return DEFAULT_INSTANCE;
}
@ -509,7 +509,7 @@ private static final long serialVersionUID = 0L;
}
@Override
public com.tangem.blockchain.binance.proto.StdSignature.PubKey getDefaultInstanceForType() {
public com.tangem.blockchain.blockchains.binance.proto.StdSignature.PubKey getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
@ -628,10 +628,10 @@ private static final long serialVersionUID = 0L;
if (obj == this) {
return true;
}
if (!(obj instanceof com.tangem.blockchain.binance.proto.StdSignature)) {
if (!(obj instanceof com.tangem.blockchain.blockchains.binance.proto.StdSignature)) {
return super.equals(obj);
}
com.tangem.blockchain.binance.proto.StdSignature other = (com.tangem.blockchain.binance.proto.StdSignature) obj;
com.tangem.blockchain.blockchains.binance.proto.StdSignature other = (com.tangem.blockchain.blockchains.binance.proto.StdSignature) obj;
if (!getPubKey()
.equals(other.getPubKey())) return false;
@ -667,69 +667,69 @@ private static final long serialVersionUID = 0L;
return hash;
}
public static com.tangem.blockchain.binance.proto.StdSignature parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.StdSignature parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static com.tangem.blockchain.binance.proto.StdSignature parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.StdSignature parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static com.tangem.blockchain.binance.proto.StdSignature parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.StdSignature parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static com.tangem.blockchain.binance.proto.StdSignature parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.StdSignature parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static com.tangem.blockchain.binance.proto.StdSignature parseFrom(byte[] data)
public static com.tangem.blockchain.blockchains.binance.proto.StdSignature parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static com.tangem.blockchain.binance.proto.StdSignature parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.StdSignature parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static com.tangem.blockchain.binance.proto.StdSignature parseFrom(java.io.InputStream input)
public static com.tangem.blockchain.blockchains.binance.proto.StdSignature parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static com.tangem.blockchain.binance.proto.StdSignature parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.StdSignature parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static com.tangem.blockchain.binance.proto.StdSignature parseDelimitedFrom(java.io.InputStream input)
public static com.tangem.blockchain.blockchains.binance.proto.StdSignature parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static com.tangem.blockchain.binance.proto.StdSignature parseDelimitedFrom(
public static com.tangem.blockchain.blockchains.binance.proto.StdSignature parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static com.tangem.blockchain.binance.proto.StdSignature parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.StdSignature parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static com.tangem.blockchain.binance.proto.StdSignature parseFrom(
public static com.tangem.blockchain.blockchains.binance.proto.StdSignature parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
@ -742,7 +742,7 @@ private static final long serialVersionUID = 0L;
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(com.tangem.blockchain.binance.proto.StdSignature prototype) {
public static Builder newBuilder(com.tangem.blockchain.blockchains.binance.proto.StdSignature prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@Override
@ -763,21 +763,21 @@ private static final long serialVersionUID = 0L;
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
// @@protoc_insertion_point(builder_implements:transaction.StdSignature)
com.tangem.blockchain.binance.proto.StdSignatureOrBuilder {
com.tangem.blockchain.blockchains.binance.proto.StdSignatureOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.tangem.blockchain.binance.proto.Transaction.internal_static_transaction_StdSignature_descriptor;
return com.tangem.blockchain.blockchains.binance.proto.Transaction.internal_static_transaction_StdSignature_descriptor;
}
@Override
protected FieldAccessorTable
internalGetFieldAccessorTable() {
return com.tangem.blockchain.binance.proto.Transaction.internal_static_transaction_StdSignature_fieldAccessorTable
return com.tangem.blockchain.blockchains.binance.proto.Transaction.internal_static_transaction_StdSignature_fieldAccessorTable
.ensureFieldAccessorsInitialized(
com.tangem.blockchain.binance.proto.StdSignature.class, com.tangem.blockchain.binance.proto.StdSignature.Builder.class);
com.tangem.blockchain.blockchains.binance.proto.StdSignature.class, com.tangem.blockchain.blockchains.binance.proto.StdSignature.Builder.class);
}
// Construct using com.tangem.blockchain.binance.proto.StdSignature.newBuilder()
// Construct using com.tangem.blockchain.blockchains.binance.proto.StdSignature.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
@ -809,17 +809,17 @@ private static final long serialVersionUID = 0L;
@Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return com.tangem.blockchain.binance.proto.Transaction.internal_static_transaction_StdSignature_descriptor;
return com.tangem.blockchain.blockchains.binance.proto.Transaction.internal_static_transaction_StdSignature_descriptor;
}
@Override
public com.tangem.blockchain.binance.proto.StdSignature getDefaultInstanceForType() {
return com.tangem.blockchain.binance.proto.StdSignature.getDefaultInstance();
public com.tangem.blockchain.blockchains.binance.proto.StdSignature getDefaultInstanceForType() {
return com.tangem.blockchain.blockchains.binance.proto.StdSignature.getDefaultInstance();
}
@Override
public com.tangem.blockchain.binance.proto.StdSignature build() {
com.tangem.blockchain.binance.proto.StdSignature result = buildPartial();
public com.tangem.blockchain.blockchains.binance.proto.StdSignature build() {
com.tangem.blockchain.blockchains.binance.proto.StdSignature result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
@ -827,8 +827,8 @@ private static final long serialVersionUID = 0L;
}
@Override
public com.tangem.blockchain.binance.proto.StdSignature buildPartial() {
com.tangem.blockchain.binance.proto.StdSignature result = new com.tangem.blockchain.binance.proto.StdSignature(this);
public com.tangem.blockchain.blockchains.binance.proto.StdSignature buildPartial() {
com.tangem.blockchain.blockchains.binance.proto.StdSignature result = new com.tangem.blockchain.blockchains.binance.proto.StdSignature(this);
result.pubKey_ = pubKey_;
result.signature_ = signature_;
result.accountNumber_ = accountNumber_;
@ -871,16 +871,16 @@ private static final long serialVersionUID = 0L;
}
@Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof com.tangem.blockchain.binance.proto.StdSignature) {
return mergeFrom((com.tangem.blockchain.binance.proto.StdSignature)other);
if (other instanceof com.tangem.blockchain.blockchains.binance.proto.StdSignature) {
return mergeFrom((com.tangem.blockchain.blockchains.binance.proto.StdSignature)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(com.tangem.blockchain.binance.proto.StdSignature other) {
if (other == com.tangem.blockchain.binance.proto.StdSignature.getDefaultInstance()) return this;
public Builder mergeFrom(com.tangem.blockchain.blockchains.binance.proto.StdSignature other) {
if (other == com.tangem.blockchain.blockchains.binance.proto.StdSignature.getDefaultInstance()) return this;
if (other.getPubKey() != com.google.protobuf.ByteString.EMPTY) {
setPubKey(other.getPubKey());
}
@ -908,11 +908,11 @@ private static final long serialVersionUID = 0L;
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
com.tangem.blockchain.binance.proto.StdSignature parsedMessage = null;
com.tangem.blockchain.blockchains.binance.proto.StdSignature parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (com.tangem.blockchain.binance.proto.StdSignature) e.getUnfinishedMessage();
parsedMessage = (com.tangem.blockchain.blockchains.binance.proto.StdSignature) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
@ -1096,12 +1096,12 @@ private static final long serialVersionUID = 0L;
}
// @@protoc_insertion_point(class_scope:transaction.StdSignature)
private static final com.tangem.blockchain.binance.proto.StdSignature DEFAULT_INSTANCE;
private static final com.tangem.blockchain.blockchains.binance.proto.StdSignature DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new com.tangem.blockchain.binance.proto.StdSignature();
DEFAULT_INSTANCE = new com.tangem.blockchain.blockchains.binance.proto.StdSignature();
}
public static com.tangem.blockchain.binance.proto.StdSignature getDefaultInstance() {
public static com.tangem.blockchain.blockchains.binance.proto.StdSignature getDefaultInstance() {
return DEFAULT_INSTANCE;
}
@ -1126,7 +1126,7 @@ private static final long serialVersionUID = 0L;
}
@Override
public com.tangem.blockchain.binance.proto.StdSignature getDefaultInstanceForType() {
public com.tangem.blockchain.blockchains.binance.proto.StdSignature getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}

Some files were not shown because too many files have changed in this diff Show more