Plateforme privée et indépendante.Plateforme privée et indépendante : gratuite pour les clients, financée par une commission des prestataires.Financement
Audit et développement de smart contracts sur NEAR
Développer et auditer sur NEAR : contrats Rust compilés en WebAssembly, appels inter-contrats asynchrones et callbacks, clés d'accès et préparation.
NEAR est une blockchain de couche 1 fragmentée (sharding) dont les smart contracts s'exécutent en WebAssembly. Elle utilise des noms de comptes lisibles et un système de clés souple. Pour un projet, la principale différence avec l'EVM tient au caractère asynchrone des appels entre contrats, qui change la façon de gérer les erreurs et l'état.
Développer sur NEAR
Les contrats sont surtout écrits en Rust avec le SDK NEAR, un SDK JavaScript étant aussi disponible. Un appel à un autre contrat renvoie une promesse, dont le résultat arrive plus tard dans un callback, lors d'une étape distincte. Si l'appel distant échoue, les modifications d'état déjà faites par le contrat appelant ne sont pas annulées automatiquement. Les comptes peuvent détenir des clés d'accès complet ou des clés limitées à certains appels de fonctions, et les contrats doivent immobiliser des tokens pour payer le stockage qu'ils occupent.
Langages : Rust, JavaScript
Outils : le SDK NEAR, les outils en ligne de commande et un sandbox pour les tests d'intégration
Non compatible EVM, même si des environnements EVM distincts existent dans l'écosystème
Ce que regardent les auditeurs
Les callbacks : état modifié avant l'appel inter-contrats, chemins d'échec et restauration des soldes
La protection des callbacks, qui ne doivent pouvoir être appelés que par le contrat lui-même
Les dépôts attachés : contrôles sur les fonctions sensibles et remboursement des excédents
Le staking de stockage : qui paie le stockage, et un utilisateur peut-il épuiser le solde du contrat
Les clés d'accès, les droits de redéploiement et l'usage des noms de comptes dans les autorisations
Avant de demander des devis
Décrivez chaque appel inter-contrats et le comportement attendu en cas d'échec
Précisez le SDK et sa version, et si le contrat peut être redéployé, par qui
Fournissez des tests d'intégration en sandbox, pas seulement des tests unitaires