Ir al contenido

Obtener Datos con el SDK de Kotlin

Kaptos expone APIs de lectura sobre endpoints REST de fullnode, endpoints respaldados por indexer y funciones view de Move.

Las llamadas de red retornan Result<Ok, Err>, así que puedes elegir entre control explícito o fail-fast.

val ledgerInfoResult = aptos.getLedgerInfo()
when (ledgerInfoResult) {
is Result.Ok -> println("Ledger version: ${ledgerInfoResult.value.ledgerVersion}")
is Result.Err -> println("Failed to read ledger info: ${ledgerInfoResult.error.message}")
}

Si prefieres fail-fast:

val ledgerInfo = aptos.getLedgerInfo().expect("Failed to fetch ledger info")

Para más patrones de manejo, revisa Manejar respuestas de consulta del SDK.

val chainId = aptos.getChainId().expect("Failed to fetch chain id")
val latestBlock =
aptos.getBlockByHeight(ledgerHeight = 1, withTransactions = true)
.expect("Failed to fetch latest block")
val address = AccountAddress.fromString("0x1")
val accountInfo = aptos.getAccountInfo(address).expect("Failed to fetch account info")
val modules = aptos.getAccountModules(address) { limit = 20 }.expect("Failed to fetch modules")
val resources = aptos.getAccountResources(address) { limit = 50 }.expect("Failed to fetch resources")

Balance de APT vía indexer:

val aptBalance = aptos.getAccountAPTAmount(address).expect("Failed to fetch APT balance")

Ruta view de smart contract para un coin type específico:

val aptBalanceFromView =
aptos
.getAccountCoinAmountFromSmartContract(
accountAddress = address,
coinType = MoveValue.MoveStructId("0x1::aptos_coin::AptosCoin"),
)
.expect("Failed to fetch coin balance from smart contract")

Usa view<T>() para llamadas de solo lectura personalizadas.

val payload =
InputViewFunctionData(
function = "0x1::chain_id::get",
typeArguments = emptyList(),
functionArguments = emptyList(),
)
val viewResult =
aptos
.view<List<MoveValue.MoveUint8Type>>(payload)
.expect("Failed to execute view")
val chainIdFromView = viewResult.first().value