WAX-CDT API
Alle Smart Contracts erben von den C++-API-Dateien, die in der Bibliothek WAX Contract Development Toolkit (WAX-CDT) verfügbar sind. Diese Dateien werden verwendet, um die Aktionen, Strukturen und Datentypen Ihres Smart Contracts zu definieren.
Diese Smart-Contract-API kann in drei Hauptmodule unterteilt werden:
- contracts: Dies ist die primäre C++-Vertrags-API, die für die Kommunikation mit der WAX-Blockchain verwendet wird. Diese Bibliothek definiert Aktionen, Dispatcher, Berechtigungen und mehr. core: Diese Bibliothek verwaltet Datenströme, den Datentyp name, Serialisierungsobjekte und vieles mehr.
- types: Diese Bibliothek definiert den Basisvertrag, Datenlayouts, Datenstrukturen und mehr.
Alle diese Bibliotheken befinden sich im Ordner wax-cdt/libraries/eosiolib. Die meisten dieser Funktionen sind verfügbar, sobald Sie <eosio/eosio.hpp> in Ihren Smart Contract einbinden. Es wird empfohlen, dass Sie sich diese Dateien ansehen, um zu verstehen, wie ein Smart Contract aufgebaut ist.
WAX API Overloads and Anpassungen
Methoden Name: verify_rsa_sha256_sig
Source Code: WAX GitHub Repository
Beschreibung: Verifizierung einer Unterschrift mit dem RSA-256-Algorithmus. Diese in nativem Code implementierte Methode ist etwa 15-mal schneller als die standardmäßige WASM-Verifizierung. Siehe RSA Cryptography Standard für mehr Informationen.
Input Parameter:
Parameter | Beschreibung |
---|---|
message | Message buffer der verifiziert werden soll. |
message_len | Message buffer Länge. |
signature | Signature als hex string. |
exponent | Public key Exponent als hex string. |
modulus | Modulus als hex string (eine führende Null ist nicht erlaubt). |
Beispiel Verwendung: Diese Methode wird in unserem WAX RNG-Dienst verwendet, um zu überprüfen, ob die vom WAX RNG-Orakel zurückgegebene RSA-Signatur (Zufallswert) gültig ist.
eosio_assert(verify_rsa_sha256_sig(&signing_value, sizeof(signing_value),
random_value, pub_key->exponent, pub_key->modulus),
"Could not verify signature.");
Rückgabewert: Boolean. True, wenn die Überprüfung erfolgreich war, False, wenn nicht.
Datentypen
Ihre Smart Contracts können die folgenden Datentypen verwenden:
- bool
- string
- int8
- int16
- int32
- int64
- int128
- uint8
- uint16
- uint32
- uint64
- uint128
- varint32
- varuint32
- float32
- float64
- float128
- time_point
- time_point_sec
- block_timestamp_type
- bytes
- checksum160
- checksum256
- checksum512
- name
- public_key
- private_key
- signature
- symbol
- symbol_code
- asset
Siehe EOSIO’s Types für mehr Informationen.
Typendefinitionen
WAX-CDT enthält auch eine eigene Bibliothek mit Typdefinitionen:
- typedef uint64_t account_name;
- typedef uint64_t action_name;
- typedef uint64_t permission_name;
- typedef uint64_t scope_name;
- typedef uint64_t table_name;
- typedef uint32_t time;
- typedef uint16_t weight_type;
- typedef struct checksum256 transaction_id_type;
- typedef struct checksum256 block_id_type;
Weitere Informationen
Eine vollständige Liste der Funktionen, die über die C++-API für Smart Contracts verfügbar sind, finden Sie in der C/C++-API von EOSIO.