Updated on 2026-08-14
This commit is contained in:
parent
ae33c00aae
commit
85cff6b0d3
10 changed files with 169 additions and 22 deletions
|
|
@ -4,6 +4,7 @@ import com.tangem.datasource.api.common.blockaid.models.request.DomainScanReques
|
|||
import com.tangem.datasource.api.common.blockaid.models.request.EvmTransactionScanRequest
|
||||
import com.tangem.datasource.api.common.blockaid.models.request.SolanaTransactionScanRequest
|
||||
import com.tangem.datasource.api.common.blockaid.models.response.DomainScanResponse
|
||||
import com.tangem.datasource.api.common.blockaid.models.response.SolanaTransactionResponse
|
||||
import com.tangem.datasource.api.common.blockaid.models.response.TransactionScanResponse
|
||||
import retrofit2.http.Body
|
||||
import retrofit2.http.POST
|
||||
|
|
@ -17,5 +18,5 @@ interface BlockAidApi {
|
|||
suspend fun scanJsonRpc(@Body request: EvmTransactionScanRequest): TransactionScanResponse
|
||||
|
||||
@POST("solana/message/scan")
|
||||
suspend fun scanSolanaMessage(@Body request: SolanaTransactionScanRequest): TransactionScanResponse
|
||||
suspend fun scanSolanaMessage(@Body request: SolanaTransactionScanRequest): SolanaTransactionResponse
|
||||
}
|
||||
|
|
@ -7,7 +7,7 @@ import com.tangem.datasource.api.common.blockaid.models.response.TransactionMeta
|
|||
@JsonClass(generateAdapter = true)
|
||||
data class SolanaTransactionScanRequest(
|
||||
@Json(name = "encoding") val encoding: String = "base64",
|
||||
@Json(name = "chain") val chain: String,
|
||||
@Json(name = "blockchain") val blockchain: String,
|
||||
@Json(name = "method") val method: String,
|
||||
@Json(name = "options") val options: List<String> = listOf("simulation", "validation"),
|
||||
@Json(name = "metadata") val metadata: TransactionMetadata,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,58 @@
|
|||
package com.tangem.datasource.api.common.blockaid.models.response
|
||||
|
||||
import com.squareup.moshi.Json
|
||||
import com.squareup.moshi.JsonClass
|
||||
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class SolanaTransactionResponse(
|
||||
@Json(name = "result") val result: SolanaTransactionResult,
|
||||
)
|
||||
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class SolanaTransactionResult(
|
||||
@Json(name = "validation") val validation: SolanaTransactionValidation,
|
||||
@Json(name = "simulation") val simulation: SolanaTransactionSimulation? = null,
|
||||
)
|
||||
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class SolanaTransactionValidation(
|
||||
@Json(name = "result_type") val resultType: String,
|
||||
@Json(name = "description") val description: String?,
|
||||
)
|
||||
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class SolanaTransactionSimulation(
|
||||
@Json(name = "account_summary") val accountSummary: SolanaTransactionAccountSummary,
|
||||
@Json(name = "error") val error: String? = null,
|
||||
@Json(name = "error_details") val errorDetails: String? = null,
|
||||
)
|
||||
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class SolanaTransactionAccountSummary(
|
||||
@Json(name = "account_assets_diff")
|
||||
val accountAssetsDiff: List<SolanaTransactionAssetDiff>,
|
||||
)
|
||||
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class SolanaTransactionAssetDiff(
|
||||
@Json(name = "asset_type") val assetType: String,
|
||||
@Json(name = "asset") val asset: SolanaTransactionAsset,
|
||||
@Json(name = "in") val inTransfer: SolanaTransferDetail? = null,
|
||||
@Json(name = "out") val outTransfer: SolanaTransferDetail? = null,
|
||||
)
|
||||
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class SolanaTransactionAsset(
|
||||
@Json(name = "address") val address: String? = null,
|
||||
@Json(name = "symbol") val symbol: String? = null,
|
||||
@Json(name = "name") val name: String? = null,
|
||||
@Json(name = "decimals") val decimals: Int? = null,
|
||||
@Json(name = "type") val type: String? = null,
|
||||
@Json(name = "logo") val logoUrl: String? = null,
|
||||
)
|
||||
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class SolanaTransferDetail(
|
||||
@Json(name = "value") val amount: String? = null,
|
||||
@Json(name = "summary") val summary: String? = null,
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue