Capitalisation boursière: $2.1374T 2.28%
Volume(24h): $72.1076B -54.99%
Indice de peur et de cupidité:

15 - Peur extrême

  • Capitalisation boursière: $2.1374T 2.28%
  • Volume(24h): $72.1076B -54.99%
  • Indice de peur et de cupidité:
  • Capitalisation boursière: $2.1374T 2.28%
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 choisir entre des contrats linéaires et perpétuels inverses sur Bybit pour le trading BTC ?

Comment choisir entre des contrats linéaires et perpétuels inverses sur Bybit pour le trading BTC ?

Jun 06,2026 at 02:54am

Mécanismes de règlement des contrats 1. Les contrats perpétuels linéaires sur Bybit sont réglés en USDT, ce qui signifie que tous les calculs de profi...

Comment identifier et éviter les manipulations du marché à terme comme les stop hunts et l’usurpation d’identité ?

Comment identifier et éviter les manipulations du marché à terme comme les stop hunts et l’usurpation d’identité ?

Jun 07,2026 at 02:20pm

Bitcoin Réduire de moitié les mécanismes 1. Le protocole de Bitcoin applique un calendrier d'émission fixe dans lequel les récompenses de bloc son...

Comment mettre en place des règles de gestion des risques sur Bybit pour plafonner ma perte quotidienne maximale ?

Comment mettre en place des règles de gestion des risques sur Bybit pour plafonner ma perte quotidienne maximale ?

Jun 04,2026 at 04:40pm

Configuration de la limite de perte au niveau du compte 1. Connectez-vous à votre compte Bybit via une application Web ou mobile en utilisant l'au...

Comment activer le mode marge de portefeuille sur Binance pour réduire mes exigences de marge ?

Comment activer le mode marge de portefeuille sur Binance pour réduire mes exigences de marge ?

Jun 05,2026 at 04:59am

Bitcoin Réduire de moitié les mécanismes 1. Le protocole de Bitcoin applique un calendrier d'émission fixe dans lequel les récompenses de bloc son...

Comment migrer mes positions à terme ouvertes de Binance vers Bybit sans les fermer ?

Comment migrer mes positions à terme ouvertes de Binance vers Bybit sans les fermer ?

Jun 04,2026 at 03:59am

Bitcoin Réduire de moitié les mécanismes 1. Le protocole de Bitcoin applique un calendrier d'émission fixe dans lequel les récompenses de bloc son...

Comment gérer les implications fiscales des bénéfices des transactions à terme sur crypto aux États-Unis ?

Comment gérer les implications fiscales des bénéfices des transactions à terme sur crypto aux États-Unis ?

May 29,2026 at 06:19pm

Bitcoin Réduire de moitié les mécanismes 1. Le protocole de Bitcoin impose un plafond d'approvisionnement fixe de 21 millions de pièces, avec de n...

Comment choisir entre des contrats linéaires et perpétuels inverses sur Bybit pour le trading BTC ?

Comment choisir entre des contrats linéaires et perpétuels inverses sur Bybit pour le trading BTC ?

Jun 06,2026 at 02:54am

Mécanismes de règlement des contrats 1. Les contrats perpétuels linéaires sur Bybit sont réglés en USDT, ce qui signifie que tous les calculs de profi...

Comment identifier et éviter les manipulations du marché à terme comme les stop hunts et l’usurpation d’identité ?

Comment identifier et éviter les manipulations du marché à terme comme les stop hunts et l’usurpation d’identité ?

Jun 07,2026 at 02:20pm

Bitcoin Réduire de moitié les mécanismes 1. Le protocole de Bitcoin applique un calendrier d'émission fixe dans lequel les récompenses de bloc son...

Comment mettre en place des règles de gestion des risques sur Bybit pour plafonner ma perte quotidienne maximale ?

Comment mettre en place des règles de gestion des risques sur Bybit pour plafonner ma perte quotidienne maximale ?

Jun 04,2026 at 04:40pm

Configuration de la limite de perte au niveau du compte 1. Connectez-vous à votre compte Bybit via une application Web ou mobile en utilisant l'au...

Comment activer le mode marge de portefeuille sur Binance pour réduire mes exigences de marge ?

Comment activer le mode marge de portefeuille sur Binance pour réduire mes exigences de marge ?

Jun 05,2026 at 04:59am

Bitcoin Réduire de moitié les mécanismes 1. Le protocole de Bitcoin applique un calendrier d'émission fixe dans lequel les récompenses de bloc son...

Comment migrer mes positions à terme ouvertes de Binance vers Bybit sans les fermer ?

Comment migrer mes positions à terme ouvertes de Binance vers Bybit sans les fermer ?

Jun 04,2026 at 03:59am

Bitcoin Réduire de moitié les mécanismes 1. Le protocole de Bitcoin applique un calendrier d'émission fixe dans lequel les récompenses de bloc son...

Comment gérer les implications fiscales des bénéfices des transactions à terme sur crypto aux États-Unis ?

Comment gérer les implications fiscales des bénéfices des transactions à terme sur crypto aux États-Unis ?

May 29,2026 at 06:19pm

Bitcoin Réduire de moitié les mécanismes 1. Le protocole de Bitcoin impose un plafond d'approvisionnement fixe de 21 millions de pièces, avec de n...

Voir tous les articles

User not found or password invalid

Your input is correct