Updated on 2026-08-14
This commit is contained in:
parent
e98780ff93
commit
479d142807
283 changed files with 2338 additions and 2730 deletions
|
|
@ -15,8 +15,8 @@ import java.lang.ref.WeakReference
|
|||
[REDACTED_AUTHOR]
|
||||
*/
|
||||
class NetworkConnectivity(
|
||||
private val store: Store<*>,
|
||||
context: Context
|
||||
private val store: Store<*>,
|
||||
context: Context,
|
||||
) {
|
||||
|
||||
private val wContext: WeakReference<Context> = WeakReference(context)
|
||||
|
|
@ -34,19 +34,16 @@ class NetworkConnectivity(
|
|||
store.dispatch(NetworkStateChanged(isOnlineOrConnecting()))
|
||||
}
|
||||
|
||||
|
||||
fun isOnlineOrConnecting(): Boolean {
|
||||
val connectivityManager = getConnectivityManager() ?: return false
|
||||
|
||||
return if (Build.VERSION.SDK_INT >= 23) {
|
||||
val capabilities =
|
||||
connectivityManager.getNetworkCapabilities(connectivityManager.activeNetwork)
|
||||
(capabilities != null) &&
|
||||
(capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) ||
|
||||
capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) ||
|
||||
capabilities.hasTransport(NetworkCapabilities.TRANSPORT_VPN) ||
|
||||
capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET))
|
||||
|
||||
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
val capabilities = connectivityManager.getNetworkCapabilities(connectivityManager.activeNetwork)
|
||||
capabilities != null &&
|
||||
(capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) ||
|
||||
capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) ||
|
||||
capabilities.hasTransport(NetworkCapabilities.TRANSPORT_VPN) ||
|
||||
capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET))
|
||||
} else {
|
||||
val networkInfo = connectivityManager.activeNetworkInfo
|
||||
networkInfo != null && networkInfo.isConnectedOrConnecting
|
||||
|
|
@ -55,7 +52,7 @@ class NetworkConnectivity(
|
|||
|
||||
private fun getConnectivityManager(): ConnectivityManager? {
|
||||
return wContext.get()?.applicationContext
|
||||
?.getSystemService(Context.CONNECTIVITY_SERVICE) as? ConnectivityManager
|
||||
?.getSystemService(Context.CONNECTIVITY_SERVICE) as? ConnectivityManager
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ class CurrencyExchangeManager(
|
|||
blockchain,
|
||||
cryptoCurrencyName,
|
||||
fiatCurrencyName,
|
||||
walletAddress
|
||||
walletAddress,
|
||||
)
|
||||
}
|
||||
|
||||
|
|
@ -86,7 +86,6 @@ class CurrencyExchangeManager(
|
|||
}
|
||||
}
|
||||
|
||||
@Suppress("unused")
|
||||
suspend fun CurrencyExchangeManager.buyErc20TestnetTokens(
|
||||
card: CardDTO,
|
||||
walletManager: EthereumWalletManager,
|
||||
|
|
@ -97,13 +96,15 @@ suspend fun CurrencyExchangeManager.buyErc20TestnetTokens(
|
|||
val amountToSend = Amount(walletManager.wallet.blockchain)
|
||||
val destinationAddress = token.contractAddress
|
||||
|
||||
val feeResult = walletManager.getFee(amountToSend,
|
||||
destinationAddress) as? Result.Success ?: return
|
||||
val feeResult =
|
||||
walletManager.getFee(
|
||||
amountToSend,
|
||||
destinationAddress,
|
||||
) as? Result.Success ?: return
|
||||
val fee = feeResult.data[0]
|
||||
|
||||
if ((walletManager.wallet.amounts[AmountType.Coin]?.value ?: BigDecimal.ZERO) < fee.value) {
|
||||
return
|
||||
}
|
||||
val coinValue = walletManager.wallet.amounts[AmountType.Coin]?.value ?: BigDecimal.ZERO
|
||||
if (coinValue < fee.value) return
|
||||
|
||||
val transaction = walletManager.createTransaction(amountToSend, fee, destinationAddress)
|
||||
|
||||
|
|
@ -116,8 +117,8 @@ suspend fun CurrencyExchangeManager.buyErc20TestnetTokens(
|
|||
GlobalAction.UpdateWalletSignedHashes(
|
||||
walletSignedHashes = signResponse.totalSignedHashes,
|
||||
walletPublicKey = walletManager.wallet.publicKey.seedKey,
|
||||
remainingSignatures = signResponse.remainingSignatures
|
||||
)
|
||||
remainingSignatures = signResponse.remainingSignatures,
|
||||
),
|
||||
)
|
||||
}
|
||||
walletManager.send(transaction, signer)
|
||||
|
|
|
|||
|
|
@ -33,11 +33,12 @@ class MercuryoService(
|
|||
|
||||
override fun featureIsSwitchedOn(): Boolean = true
|
||||
|
||||
@Suppress("NestedBlockDepth")
|
||||
override suspend fun update() {
|
||||
when (val result = performRequest { api.currencies(apiVersion) }) {
|
||||
is Result.Success -> {
|
||||
val response = result.data
|
||||
if (response.status == 200) {
|
||||
if (response.status == RESPONSE_SUCCESS_STATUS_CODE) {
|
||||
// all currencies which can be bought
|
||||
val currenciesAvailableToBy = response.data.crypto
|
||||
// tokens which can be bought only from specific blockchain network
|
||||
|
|
@ -108,7 +109,7 @@ class MercuryoService(
|
|||
blockchain: Blockchain,
|
||||
cryptoCurrencyName: CryptoCurrencyName,
|
||||
fiatCurrencyName: String,
|
||||
walletAddress: String
|
||||
walletAddress: String,
|
||||
): String {
|
||||
if (action == CurrencyExchangeManager.Action.Sell) throw UnsupportedOperationException()
|
||||
|
||||
|
|
@ -131,10 +132,9 @@ class MercuryoService(
|
|||
return (address + secret).calculateSha512().toHexString().lowercase()
|
||||
}
|
||||
|
||||
|
||||
override fun getSellCryptoReceiptUrl(
|
||||
action: CurrencyExchangeManager.Action,
|
||||
transactionId: String
|
||||
transactionId: String,
|
||||
): String? = null
|
||||
|
||||
private fun blockchainFromCurrencyName(currencyName: String): Blockchain? = when (currencyName) {
|
||||
|
|
@ -143,4 +143,8 @@ class MercuryoService(
|
|||
"ADA" -> Blockchain.CardanoShelley
|
||||
else -> Blockchain.values().find { it.currency.lowercase() == currencyName.lowercase() }
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val RESPONSE_SUCCESS_STATUS_CODE = 200
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,34 +11,31 @@ import retrofit2.http.Path
|
|||
interface PayIdVerifyApi {
|
||||
@GET("{user}")
|
||||
suspend fun verifyAddress(
|
||||
@Path("user") user: String,
|
||||
@Header("Accept") acceptNetworkHeader: String,
|
||||
@Header("PayID-Version") payIdVersion: String = "1.0"
|
||||
@Path("user") user: String,
|
||||
@Header("Accept") acceptNetworkHeader: String,
|
||||
@Header("PayID-Version") payIdVersion: String = "1.0",
|
||||
): VerifyPayIdResponse
|
||||
}
|
||||
|
||||
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class VerifyPayIdResponse(
|
||||
val addresses: List<PayIdAddress> = mutableListOf(),
|
||||
val payId: String? = null,
|
||||
val addresses: List<PayIdAddress> = mutableListOf(),
|
||||
val payId: String? = null,
|
||||
) {
|
||||
fun getAddressDetails(): PayIdAddressDetails? {
|
||||
return if (addresses.isEmpty()) null
|
||||
else addresses[0].addressDetails
|
||||
}
|
||||
fun getAddressDetails(): PayIdAddressDetails? =
|
||||
if (addresses.isNotEmpty()) addresses[0].addressDetails else null
|
||||
}
|
||||
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class PayIdAddress(
|
||||
var paymentNetwork: String,
|
||||
var environment: String,
|
||||
var addressDetailsType: String,
|
||||
var addressDetails: PayIdAddressDetails
|
||||
var paymentNetwork: String,
|
||||
var environment: String,
|
||||
var addressDetailsType: String,
|
||||
var addressDetails: PayIdAddressDetails,
|
||||
)
|
||||
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class PayIdAddressDetails(
|
||||
var address: String,
|
||||
var tag: String? = null
|
||||
var address: String,
|
||||
var tag: String? = null,
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue