Usando el SDK de Python

Esta guía muestra cómo lograr el mismo resultado que el inicio rápido de HTTP utilizando el SDK de Python de Asset Core con operaciones tipadas.

Requisitos Previos

  • Python 3.11+
  • Daemons de Asset Core ejecutándose localmente (ver Primer Commit y Lectura)
  • pip o uv para la instalación de paquetes

Paso 1 - Instalar el SDK

Desde la raíz del repositorio de Asset Core:

cd sdk-python
pip install -e .

O con uv:

uv venv --seed .venv-sdk
source .venv-sdk/bin/activate
cd sdk-python
uv pip install -e .

Paso 2 - Crear el cliente

from assetcore_sdk import AssetCoreClient

client = AssetCoreClient(
    write_url="http://127.0.0.1:8080",
    read_url="http://127.0.0.1:8081"
)

El cliente maneja la agrupación de conexiones y la lógica de reintentos por usted.

Paso 3 - Operaciones de construcción

Utilice los constructores de operaciones tipadas:

Guía adicional:

Tono: formal Registro: técnico

Contexto:

  • dominio: infraestructura de blockchain
  • audiencia: desarrolladores e investigadores
  • propósito: documentación técnica

Restricciones:

  • Utilice un lenguaje neutral en cuanto al género
  • Preservar nombres de marcas
  • Mantener la precisión técnica

Preservar sin traducción:

  • code_blocks
  • inline_code
  • links
  • glossary_terms
  • mathematical_notation

Guía de glosario:

Preservar estos términos exactamente: Asset Core, Asset‑Core, CSP, API, Docker, ECS, daemon, L1, L2, L3, OpenGraph, GitHub, Astro, TypeScript, JavaScript, ℤ, ℤ², ℤ³, ℝ², ℝ³, 0D, 1D, 2D, 3D.

from assetcore_sdk.operations import (
    create_container,
    add_fungible
)

operations = [
    create_container(
        container_id=1001,
        kind="Standard"
    ),
    add_fungible(
        container_id=1001,
        class_id=100,
        key=1,
        quantity=500
    )
]

Cada función devuelve un diccionario que coincide con el formato de operación JSON.

Paso 4 - Enviar el commit

result = await client.commit(
    operations=operations,
    idempotency_key="sdk-first-commit"
)

print(f"Committed at sequence {result.global_seq}")

O use la versión sincrónica:

result = client.commit_sync(
    operations=operations,
    idempotency_key="sdk-first-commit"
)

Paso 5 - Leer el estado

container = await client.get_container_balances(1001)

for balance in container.balances:
    print(f"Class {balance.class_id}: {balance.quantity}")

La respuesta incluye campos tipados y metadatos de frescura.

Solución de problemas

”ModuleNotFoundError: assetcore_sdk”

El SDK no está instalado en su entorno actual. Asegúrese de haber activado el entorno virtual correcto y de haber ejecutado pip install -e . desde el directorio sdk-python.

Errores de conexión

Los daemons no están en ejecución o están en puertos diferentes. El SDK genera assetcore_sdk.errors.ConnectionError con detalles sobre qué daemon falló.

Errores de validación

Los argumentos de operación no válidos generan assetcore_sdk.errors.ValidationError con el campo específico que falló. Consulte la referencia de operación para los campos requeridos.

Próximos pasos

  1. Recetas - Patrones comunes de múltiples operaciones