Installieren und eine Einzahlung erstellen
- 01Paket installieren: bun add @usdctofiat/offramp (npm und pnpm funktionieren ebenfalls).
- 02Übergeben Sie einen viem WalletClient: die Wallet des Nutzers, eine Server-Wallet oder eine Bot-Wallet.
- 03Rufen Sie offramp(walletClient, { amount, platform, currency, identifier }) auf.
- 04Lesen Sie die zurückgegebene depositId und txHash aus, oder richten Sie ein Projekt mit npx create-offramp-app@latest ein.
Die SDK-Oberfläche
| Export | Funktion |
|---|---|
| offramp(walletClient, params) | USDC-Verkauf in einem Aufruf, gibt { depositId, txHash, resumed, otcLink? } zurück |
| deposits(address) | Einzahlungen für eine Adresse auflisten, ohne den Protokollzustand zu indizieren |
| close(walletClient, depositId) | Nicht gefülltes USDC aus einer bestehenden Einzahlung abheben |
| enableOtc / disableOtc / getOtcLink | Private Einkäuferbeschränkung für eine Einzahlung verwalten |
| useOfframp() / usePeerExtensionRegistration() | React-Hooks aus @usdctofiat/offramp/react |
| PLATFORMS, CURRENCIES | Typisierte Const-Maps mit Identifikatoren, Validierung und Währungslisten |
Von Grund auf wiederaufnehmbar
Das Erstellen einer Einzahlung umfasst mehrere Onchain-Schritte. Wenn ein vorheriger Aufruf eine Einzahlung halb abgeschlossen hinterlassen hat, setzt ein erneuter Aufruf von offramp() dort fort, wo er aufgehört hat, anstatt eine Dublette zu erstellen. Das Flag resumed im Ergebnis ist true, wenn eine bestehende, nicht delegierte Einzahlung übernommen statt neu erstellt wurde.
Das macht das SDK sicher für Wiederholungsversuche von einem Server oder Bot: ein idempotenzfreundlicher Einstiegspunkt, der mit dem Onchain-Zustand abgleicht, anstatt einen sauberen Ausgangszustand vorauszusetzen.
Fehlerbehandlung
| Bereich | Wie das SDK es signalisiert |
|---|---|
| Typisierte Fehler | OfframpError enthält einen Code aus OFFRAMP_ERROR_CODES |
| PayPal- oder Wise-Einrichtung | EXTENSION_REGISTRATION_REQUIRED signalisiert nur technische Einrichtung; Provider-Richtlinie separat durchsetzen |
| Validierung | PLATFORMS und CURRENCIES bieten Identifikator- und Währungsvalidierung |
| Keine Schlüsselverwahrung | Das SDK signiert mit Ihrem WalletClient und speichert niemals private Schlüssel |