Dieses Dokument erläutert, wie Sie Token-Transfers innerhalb der OmniSafe API initiieren und verfolgen können.

1

Initiierung eines Token-Transfers

Verwenden Sie den Endpunkt POST /v1/transfers, um einen Token-Transfer zwischen zwei Wallets zu initiieren.

  • Endpunkt: POST /v1/transfers - API-Referenz zum Transfer
  • Zusammenfassung: Überträgt einen Token zwischen zwei Wallets.
  • Beschreibung: Dieser Endpunkt initiiert einen Token-Transfer auf der Blockchain zwischen zwei Wallets. Der Anfragetext gibt die Wallet-Adresse des Absenders, die Wallet-Adresse des Empfängers, den zu übertragenden Token und die Menge an. Nach erfolgreicher Verarbeitung wird eine Transfer-ID (idInClient) zurückgegeben. Diese ID kann verwendet werden, um den Status des Transfers mithilfe des Endpunkts getTransferStatus zu verfolgen. Beachten Sie, dass die Bestätigung des Transfers einige Zeit dauern kann, abhängig von den Netzwerkbedingungen, obwohl dieser Endpunkt den Transfer auf der Blockchain initiiert. Wenn die idInClient bereits vorhanden ist, wird ein 409-Fehler zurückgegeben.

Anfragetext:

Der Anfragetext sollte dem BlockchainTransactionDto-Schema entsprechen (definiert in der OpenAPI-Spezifikation). Er enthält typischerweise:

  • fromWalletAddress: Die Adresse der Wallet des Absenders.
  • toWalletAddress: Die Adresse der Wallet des Empfängers.
  • tokenId: Die ID des zu übertragenden Tokens.
  • quantity: Die Menge des zu übertragenden Tokens.
  • idInClient: Eine eindeutige Kennung für diesen Transfer, die vom Client bereitgestellt wird. Dies ist entscheidend für die Verfolgung des Transferstatus.

Antwort:

  • 201 Erstellt: Gibt die idInClient (String) der erstellten Transfertransaktion zurück.
  • 409 Konflikt: Wird zurückgegeben, wenn die idInClient bereits vorhanden ist.

Wichtige Hinweise:

  • Eindeutigkeit der idInClient: Die idInClient muss für jeden von Ihnen initiierten Transfer eindeutig sein. Die Wiederverwendung einer idInClient führt zu einem 409-Fehler.
  • Asynchrone Verarbeitung: Die Initiierung des Transfers erzeugt eine Transaktion in der Blockchain. Die Bestätigung kann je nach Netzwerkbedingungen einige Zeit dauern.
2

Abrufen des Transferstatus

Verwenden Sie den Endpunkt GET /v1/transfers/{id-in-client}, um den Status eines zuvor initiierten Token-Transfers abzurufen.

  • Endpunkt: GET /v1/transfers/{id-in-client} - API-Referenz zum Abrufen des Transferstatus
  • Zusammenfassung: Ruft den Status eines zuvor initiierten Token-Transfers ab.
  • Beschreibung: Ruft den Status eines zuvor initiierten Token-Transfers in der Blockchain ab. Sie benötigen die idInClient, die vom Endpunkt POST /v1/transfers zurückgegeben wurde. Diese idInClient ermöglicht es Ihnen, einen bestimmten Transfer zu verfolgen.

Parameter:

  • idInClient (Pfadparameter): Die vom Client bereitgestellte ID des Transfers, den Sie verfolgen möchten.

Antwort:

  • 200 OK: Gibt ein Array von TransferStatusDto-Objekten zurück, das den aktuellen Status des Transfers enthält. Das TransferStatusDto enthält typischerweise:
  • transactionHash: Der Hash der Transaktion in der Blockchain (falls der Transfer bestätigt wurde).
  • status: Der aktuelle Status des Transfers (z. B. “PENDING”, “DONE”, “FAILED”).
  • errorMessage: Fehlermeldungen, die während des Transferprozesses aufgetreten sind.
  • 404 Nicht gefunden: Wird zurückgegeben, wenn kein Transfer mit der angegebenen idInClient gefunden wird.

Transferstatuswerte:

Das Feld status in der TransferStatusDto-Antwort kann die folgenden Werte haben (Beispiele, Ihre Werte können abweichen):

  • PENDING: Der Transfer wurde initiiert, aber noch nicht in der Blockchain bestätigt.
  • DONE: Der Transfer wurde erfolgreich in der Blockchain bestätigt.
  • FAILED: Der Transfer ist aufgrund eines Fehlers fehlgeschlagen. Überprüfen Sie das Feld errorMessage auf Details.