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)
pipouvpara 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
- Referencia del SDK de Python - Documentación completa de la API
- Operaciones por Dominio - Lista completa de operaciones
- Recetas - Patrones comunes de múltiples operaciones