إنتقل إلى المحتوى الرئيسي

TypeScript SDK

@openfiat/sdk (openfiat-sdks/typescript) — عميل مطبوع لـواجهة JSON-RPC لعقدة، إضافةً إلى توقيع محفظة Ed25519 (عبر @noble/ed25519، متوافق مع ed25519-dalek في حزمة Rust — بذرة المحفظة نفسها تنتج المفاتيح والتواقيع نفسها في أي من اللغتين) ودعم جسر سلسلة Solana. آمن للمتصفح/الحافة بالتصميم؛ ويعيش إدخال/إخراج ملف المحفظة الخاص بـ Node فقط في نقطة دخول منفصلة @openfiat/sdk/node.

التثبيت

قبل 1.0 ولم يُنشر على npm بعد — اعتمد عليه كاعتمادية git، مثبَّتة إلى commit:

pnpm add "github:OpenFiat-org/openfiat-sdks#<commit>&path:typescript"

بداية سريعة

import { Client } from "@openfiat/sdk";

const client = new Client({ endpoint: "http://localhost:7080", timeoutMs: 30_000 });
const version = await client.call("getVersion", {});

تُجمَّع الطرق المطبوعة في وحدة لكل مجال — node، chain، oracles، providers، advertisements، reservations، notifications:

import { node } from "@openfiat/sdk";

const version = await node.getVersion(client);

توقيع كتابة وتقديمها

يأخذ كل طريقة sendX كائن حدث المجال الخاص إضافةً إلى Keypair — تبني الحزمة الحمولة الموقَّعة وتقدّمها؛ لا تُنشئ عقدة أو توقّع شيئًا نيابةً عنك قط:

import { generateKeypair, oracles } from "@openfiat/sdk";

const keypair = await generateKeypair(); // أو keypairFromSeed(...) / loadWalletFile(...) من "@openfiat/sdk/node"
const oracleId = await oracles.sendOraclePublish(client, publish, keypair);

أمثلة

كل مثال في typescript/examples يعمل ضد عقدة حقيقية ويغطّيه اختبار في tests/live_node.test.ts، يُشغَّل في CI ضد عملية openfiat-node فعلية (انظر مهمة typescript-sdk-live-node في .github/workflows/ci.yml) — فمثال معطوب يُفشل البناء تمامًا كما يُفشله اختبار معطوب:

شغّل أيًا منها ضد عقدة محلية:

# الطرفية 1 — من openfiat-core
cargo run -p openfiat-cli -- --rpc-bind-address 127.0.0.1:7080

# الطرفية 2 — من openfiat-sdks/typescript
pnpm tsx examples/trading_bot.ts