Перейти к основному содержимому

TypeScript SDK

@openfiat/sdk (openfiat-sdks/typescript) — типизированный клиент для JSON-RPC-поверхности узла, плюс подпись кошелька Ed25519 (через @noble/ed25519, совместимый с ed25519-dalek из Rust SDK — одна и та же seed кошелька даёт одни и те же ключи и подписи в любом из языков) и поддержка моста цепочки Solana. По дизайну безопасен для браузера/edge; файловый ввод-вывод кошелька только для Node живёт в отдельной точке входа @openfiat/sdk/node.

Установка

До 1.0 и пока не опубликован на npm — зависите от него как от git-зависимости, закреплённой на коммите:

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 — SDK строит подписанную нагрузку и отправляет её; узел никогда ничего не конструирует и не подписывает от вашего имени:

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) — сломанный пример ломает сборку так же, как сломанный тест:

  • basic.ts — постройте клиента.
  • oracle_provider.ts — зарегистрируйтесь как поставщик оракула, опубликуйте курс.
  • notification_provider.ts — зарегистрируйтесь как поставщик уведомлений, сообщите о доставке.
  • trading_bot.ts — опубликуйте объявление, откройте резервирование против него.
  • solana_transaction.ts — подпишите и отправьте реальную транзакцию Solana через мост цепочки.

Запустите любой из них против локального узла:

# терминал 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