Capitalisation boursière: $2.5665T -2.09%
Volume(24h): $64.1207B 43.32%
Indice de peur et de cupidité:

33 - Peur

  • Capitalisation boursière: $2.5665T -2.09%
  • Volume(24h): $64.1207B 43.32%
  • Indice de peur et de cupidité:
  • Capitalisation boursière: $2.5665T -2.09%
Cryptos
Les sujets
Cryptospedia
Nouvelles
Cryptosopique
Vidéos
Top Cryptospedia

Choisir la langue

Choisir la langue

Sélectionnez la devise

Cryptos
Les sujets
Cryptospedia
Nouvelles
Cryptosopique
Vidéos

Quelle est la différence entre call, déléguécall et staticcall dans Solidity ?

Understanding `call`, `delegatecall`, and `staticcall` is crucial for secure Solidity development, as each alters execution context, state access, and security risks differently.

Nov 14, 2025 at 06:59 pm

Comprendre les distinctions entre appel, appel délégué et appel statique est essentiel pour le développement de contrats intelligents sécurisé et efficace dans Solidity. Ces fonctions de bas niveau permettent d'interagir avec d'autres contrats ou comptes externes mais se comportent différemment en termes de contexte, de modification d'état et d'environnement d'exécution.

appel

1. La fonction d'appel invoque la fonction d'un autre contrat tout en transmettant une quantité spécifiée d'Ether et en exécutant du code dans le contexte du contrat appelé.

  1. Il utilise le stockage, le code et le solde de l'appelé, ce qui signifie que tout changement d'état se produit dans le cadre du contrat cible.
  2. Cette méthode est couramment utilisée lors de l'interaction avec des contrats externes dont l'ABI peut ne pas être connu au moment de la compilation.
  3. Les développeurs doivent gérer soigneusement les données renvoyées, car call renvoie un booléen indiquant le succès ou l'échec, ainsi que des octets de retour facultatifs.
  4. Une mauvaise utilisation peut conduire à des vulnérabilités de réentrée si les modèles appropriés de vérification, d'effet et d'interaction ne sont pas suivis.

appel délégué

1. déléguécall exécute le code d'un contrat différent mais conserve le stockage, le contexte et le solde de l'appelant.

  1. Il est souvent utilisé dans les modèles de proxy où la logique est séparée des données, permettant ainsi des contrats évolutifs.
  2. Étant donné que les modifications d'état affectent le stockage du contrat appelant, une extrême prudence est requise lors de l'alignement des dispositions de stockage entre le proxy et l'implémentation.
  3. Contrairement à call , aucun Ether n'est transféré lors d'un appel délégué à moins qu'il ne soit explicitement envoyé via des mécanismes supplémentaires.
  4. Les risques de sécurité incluent des contrats de mise en œuvre malveillants modifiant des variables critiques telles que la propriété ou les soldes du proxy.

appel statique

1. staticcall est conçu pour invoquer des fonctions qui ne modifient pas l'état de la blockchain.

  1. Toute tentative d'écriture dans le stockage, d'émission d'événements ou d'exécution d'opérations modifiant l'état entraînera l'annulation de l'appel.
  2. Cette fonction est utile pour lire en toute sécurité les données des contrats externes sans risquer d'effets secondaires involontaires.
  3. Comme call , il fonctionne dans le code du contrat cible mais applique un mode lecture seule lors de l'exécution.
  4. Son principal cas d'utilisation consiste à interroger les soldes de jetons, à vérifier les allocations ou à récupérer des valeurs immuables à partir de contrats tiers.

Questions courantes

Que se passe-t-il si un appel de délégué cible un contrat avec une disposition de stockage incompatible ? Si les emplacements de stockage du contrat appelant ne correspondent pas à ceux attendus par la logique du contrat appelé, les variables peuvent être écrasées de manière incorrecte. Par exemple, une adresse stockée dans un emplacement peut être interprétée comme un uint256, entraînant des données corrompues ou un accès non autorisé.

staticcall peut-il être utilisé pour interagir avec des fonctions payantes ? Oui, staticcall peut cibler les fonctions payantes tant qu'elles ne modifient pas réellement l'état. Cependant, l'envoi d'Ether via un appel statique est redondant car les transferts de valeurs impliquent intrinsèquement des changements d'état et entraîneraient l'échec de l'appel.

Pourquoi l'appel est-il considéré comme plus risqué que l'appel statique dans certains scénarios ? Étant donné que l’appel permet à la fois les changements d’état et les transferts d’Ether, il ouvre des vecteurs d’attaque tels que les attaques de réentrée. Sans validation stricte des entrées et gestion des flux de contrôle, un contrat externe pourrait drainer des fonds de manière récursive lors d’un rappel.

Le déléguécall est-il compatible avec tous les types de mises à niveau de contrat ? Bien que déléguécall permette une évolutivité, il nécessite une conception minutieuse. Les collisions de stockage, les conflits de sélecteurs de fonctions et les problèmes d'initialisation peuvent interrompre les fonctionnalités. Les proxys transparents et les modèles UUPS aident à atténuer ces risques mais exigent des tests et des audits rigoureux.

Clause de non-responsabilité:info@kdj.com

Les informations fournies ne constituent pas des conseils commerciaux. kdj.com n’assume aucune responsabilité pour les investissements effectués sur la base des informations fournies dans cet article. Les crypto-monnaies sont très volatiles et il est fortement recommandé d’investir avec prudence après une recherche approfondie!

Si vous pensez que le contenu utilisé sur ce site Web porte atteinte à vos droits d’auteur, veuillez nous contacter immédiatement (info@kdj.com) et nous le supprimerons dans les plus brefs délais.

Connaissances connexes

Comment calculer le coût total de détention d'une position à terme BTCUSDT

Comment calculer le coût total de détention d'une position à terme BTCUSDT

Oct 26,2026 at 04:06am

Composantes du coût total des positions à terme BTCUSDT 1. Le coût total de détention d’une position à terme BTCUSDT comprend à la fois les frais expl...

Comment surveiller ensemble les taux de financement XRPUSDT et les intérêts ouverts

Comment surveiller ensemble les taux de financement XRPUSDT et les intérêts ouverts

Oct 20,2026 at 06:39pm

Mécanique du taux de financement sur les contrats perpétuels XRPUSDT 1. Les taux de financement sur les swaps perpétuels XRPUSDT sont calculés toutes ...

Comment définir un stop-loss au seuil de rentabilité sur les contrats à terme perpétuels SOLUSDT

Comment définir un stop-loss au seuil de rentabilité sur les contrats à terme perpétuels SOLUSDT

Oct 23,2026 at 09:34am

Comprendre les mécanismes de stop-loss au seuil de rentabilité 1. Un stop-loss au seuil de rentabilité est un ordre dynamique qui s'ajuste à la ha...

Comment utiliser le calculateur Binance Futures pour les transactions ETHUSDT

Comment utiliser le calculateur Binance Futures pour les transactions ETHUSDT

Oct 21,2026 at 02:00am

Comprendre l'interface du calculateur Binance Futures 1. La calculatrice est intégrée directement dans l'interface de trading Binance Futures,...

Comment vérifier le prix BTCUSDT avant une liquidation à terme

Comment vérifier le prix BTCUSDT avant une liquidation à terme

Oct 26,2026 at 12:20pm

Comprendre le prix Mark dans les contrats à terme BTCUSDT 1. Le prix mark est une valeur calculée utilisée par les bourses pour éviter les liquidation...

Comment ajuster l'effet de levier sur un contrat perpétuel TRUMPUSDT

Comment ajuster l'effet de levier sur un contrat perpétuel TRUMPUSDT

Oct 30,2026 at 10:19pm

Comprendre la mécanique des contrats perpétuels TRUMPUSDT 1. TRUMPUSDT est un contrat à terme perpétuel thématique coté sur plusieurs bourses de produ...

Comment calculer le coût total de détention d'une position à terme BTCUSDT

Comment calculer le coût total de détention d'une position à terme BTCUSDT

Oct 26,2026 at 04:06am

Composantes du coût total des positions à terme BTCUSDT 1. Le coût total de détention d’une position à terme BTCUSDT comprend à la fois les frais expl...

Comment surveiller ensemble les taux de financement XRPUSDT et les intérêts ouverts

Comment surveiller ensemble les taux de financement XRPUSDT et les intérêts ouverts

Oct 20,2026 at 06:39pm

Mécanique du taux de financement sur les contrats perpétuels XRPUSDT 1. Les taux de financement sur les swaps perpétuels XRPUSDT sont calculés toutes ...

Comment définir un stop-loss au seuil de rentabilité sur les contrats à terme perpétuels SOLUSDT

Comment définir un stop-loss au seuil de rentabilité sur les contrats à terme perpétuels SOLUSDT

Oct 23,2026 at 09:34am

Comprendre les mécanismes de stop-loss au seuil de rentabilité 1. Un stop-loss au seuil de rentabilité est un ordre dynamique qui s'ajuste à la ha...

Comment utiliser le calculateur Binance Futures pour les transactions ETHUSDT

Comment utiliser le calculateur Binance Futures pour les transactions ETHUSDT

Oct 21,2026 at 02:00am

Comprendre l'interface du calculateur Binance Futures 1. La calculatrice est intégrée directement dans l'interface de trading Binance Futures,...

Comment vérifier le prix BTCUSDT avant une liquidation à terme

Comment vérifier le prix BTCUSDT avant une liquidation à terme

Oct 26,2026 at 12:20pm

Comprendre le prix Mark dans les contrats à terme BTCUSDT 1. Le prix mark est une valeur calculée utilisée par les bourses pour éviter les liquidation...

Comment ajuster l'effet de levier sur un contrat perpétuel TRUMPUSDT

Comment ajuster l'effet de levier sur un contrat perpétuel TRUMPUSDT

Oct 30,2026 at 10:19pm

Comprendre la mécanique des contrats perpétuels TRUMPUSDT 1. TRUMPUSDT est un contrat à terme perpétuel thématique coté sur plusieurs bourses de produ...

Voir tous les articles

User not found or password invalid

Your input is correct