استخدام SDK بايثون

هذا الدليل يوضح كيفية تحقيق نفس النتيجة كما في HTTP quickstart باستخدام Asset Core Python SDK مع عمليات محددة.

المتطلبات المسبقة

  • Python 3.11+
  • تعمل خدمات Asset Core محليًا (انظر First Commit and Read)
  • pip أو uv لتثبيت الحزم

الخطوة 1 - تثبيت SDK

من جذر مستودع Asset Core:

cd sdk-python
pip install -e .

أو مع uv:

إرشادات إضافية:

النبرة: رسمية السجل: تقني

السياق:

  • المجال: بنية تحتية للبلوك تشين
  • الجمهور: مهندسو الأمان وقادة البنية التحتية
  • الغرض: وثائق تقنية
  • اللغة: ar
  • الاتجاه: من اليمين إلى اليسار

القيود:

  • استخدام لغة محايدة للجنس
  • الحفاظ على أسماء العلامات التجارية
  • الحفاظ على الدقة التقنية
  • ضمان أن تظل علامات الترقيم والترقيم مناسبة من حيث الاتجاه
  • الاحتفاظ بأسماء العلامات التجارية والمصطلحات دون ترجمة

الحفاظ على هذه المصطلحات بالضبط (لا تترجم): Asset Core، Asset‑Core، CSP، API، Docker، ECS، daemon، L1، L2، L3، OpenGraph، GitHub، Astro، TypeScript، JavaScript، ℤ، ℤ²، ℤ³، ℝ²، ℝ³، 0D، 1D، 2D، 3D

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

الخطوة 2 - إنشاء العميل

from assetcore_sdk import AssetCoreClient

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

يتولى العميل إدارة تجميع الاتصالات ومنطق إعادة المحاولة نيابةً عنك.

الخطوة 3 - عمليات البناء

استخدم بناة العمليات المكتوبة:

إرشادات إضافية:

نبرة: رسمية سجل: تقني

سياق:

  • المجال: بنية تحتية للبلوكشين
  • الجمهور: مهندسو الأمان وقادة البنية التحتية
  • الغرض: وثائق تقنية
  • اللغة: ar
  • الاتجاه: RTL

قيود:

  • استخدم لغة محايدة من حيث الجنس
  • حافظ على أسماء العلامات التجارية
  • حافظ على الدقة التقنية
  • تأكد من أن علامات الترقيم والترقيم تبقى مناسبة للاتجاه RTL
  • احتفظ بأسماء العلامات التجارية والمصطلحات المعجمية دون ترجمة

احتفظ دون ترجمة:

  • code_blocks
  • inline_code
  • links
  • glossary_terms
  • mathematical_notation

إرشادات المعجم:

احتفظ بهذه المصطلحات كما هي (لا تترجم): 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
    )
]

تُرجع كل دالة قاموسًا يتطابق مع تنسيق عملية JSON.

الخطوة 4 - إرسال الالتزام

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

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

أو استخدم النسخة المتزامنة:

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

الخطوة 5 - قراءة الحالة

container = await client.get_container_balances(1001)

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

الاستجابة تتضمن حقول مكتوبة وبيانات تحديث.

استكشاف الأخطاء وإصلاحها

”ModuleNotFoundError: assetcore_sdk”

لم يتم تثبيت SDK في بيئتك الحالية. تأكد من أنك قمت بتفعيل البيئة الافتراضية الصحيحة وتشغيل pip install -e . من دليل sdk-python.

أخطاء الاتصال

لا تعمل الـ daemons أو أنها على منافذ مختلفة. يرفع SDK assetcore_sdk.errors.ConnectionError مع تفاصيل حول الـ daemon الذي فشل.

أخطاء التحقق

تؤدي معايير العملية غير الصالحة إلى رفع assetcore_sdk.errors.ValidationError مع الحقل المحدد الذي فشل. تحقق من مرجع العملية للحصول على الحقول المطلوبة.

الخطوات التالية

  1. الوصفات - أنماط العمليات المتعددة الشائعة