-
bitcoin $87959.907984 USD
1.34% -
ethereum $2920.497338 USD
3.04% -
tether $0.999775 USD
0.00% -
xrp $2.237324 USD
8.12% -
bnb $860.243768 USD
0.90% -
solana $138.089498 USD
5.43% -
usd-coin $0.999807 USD
0.01% -
tron $0.272801 USD
-1.53% -
dogecoin $0.150904 USD
2.96% -
cardano $0.421635 USD
1.97% -
hyperliquid $32.152445 USD
2.23% -
bitcoin-cash $533.301069 USD
-1.94% -
chainlink $12.953417 USD
2.68% -
unus-sed-leo $9.535951 USD
0.73% -
zcash $521.483386 USD
-2.87%
Quels sont les événements de Solidity et comment les utiliser?
Solidity events enable contracts to log data via the `emit` keyword, allowing dApps to listen for and process real-time updates using tools like Web3.js.
Jul 20, 2025 at 08:07 pm
Comprendre les événements de la solidité
Dans Solidity, les événements sont un moyen pour un contrat de communiquer avec le monde extérieur. Ils permettent aux contrats intelligents d'émettre des journaux qui peuvent être écoutés et traités par des applications décentralisées (DAPP), des portefeuilles et d'autres services externes. Les événements sont particulièrement utiles pour suivre les modifications de l'état du contrat et fournir des mises à jour en temps réel à l'interface frontale.
Les événements Solidity sont déclarés en utilisant le mot-clé de event suivi du nom de l'événement et d'une liste de paramètres. Ces paramètres peuvent être indexés ou non indexés, les paramètres indexés étant consultables dans les journaux. Lorsqu'un événement est émis, il est stocké dans le journal de la transaction, qui fait partie de la blockchain mais n'est pas accessible à d'autres contrats intelligents.
Déclarer les événements de Solidity
Pour déclarer un événement dans Solidity, vous utilisez le mot-clé de event dans la portée du contrat. Voici un exemple de base:
pragma solidity ^0.8.0;Contracter MyContract {event MyEvent(address indexed sender, uint256 amount);}
Dans cet exemple, MyEvent est un événement qui enregistre l'adresse de l'expéditeur et la quantité d'éther transférée. Le mot-clé indexed permet au paramètre sender d'être utilisé comme filtre lors de l'interrogation des journaux.
Vous pouvez inclure jusqu'à trois paramètres indexés dans un événement. Cette limitation est due à la structure de journal de la machine virtuelle Ethereum (EVM), qui ne permet que jusqu'à trois sujets de filtrage.
Émettre des événements en solidité
Une fois un événement déclaré, il peut être émis en utilisant le mot-clé emit . Cela se fait généralement à l'intérieur d'une fonction où une action notable se produit. Voici comment émettre l'événement déclaré plus tôt:
function sendFunds(address payable recipient, uint256 amount) public payable {recipient.transfer(amount); emit MyEvent(msg.sender, amount);
}
Dans cette fonction, après avoir transféré des fonds au destinataire, le contrat émet l'événement MyEvent avec l'adresse de l'expéditeur et le montant envoyé. L'instruction emit doit correspondre à la liste des paramètres de l'événement dans le numéro et le type.
Lorsque l'événement est émis, l'EVM crée une entrée de journal qui est stockée dans le reçu de transaction. Ce journal est accessible plus tard par des applications externes.
Écoute d'événements à l'aide de web3.js
Pour utiliser les événements dans un DAPP, vous devez les écouter à l'aide d'un outil comme Web3.js ou Ethers.js. Voici comment vous pouvez configurer un auditeur à l'aide de Web3.js:
- Initialisez Web3 : Connectez-vous à un nœud Ethereum à l'aide d'un fournisseur comme Infura ou Metamask.
- Obtenez l'instance du contrat : utilisez l'ABI du contrat et adressez-vous pour créer un objet contractuel.
- Configurez l'auditeur de l'événement :
const myContract = new web3.eth.Contract(abi, contractAddress);MyContract.Events.MyEvent ().on('data', event => { console.log('Event triggered:', event.returnValues); }) .on('error', error => { console.error('Error listening to event:', error); });Ce code écoute l'événement
MyEventet enregistre les données chaque fois qu'elle est émise. La propriétéreturnValuescontient les paramètres passés lorsque l'événement a été déclenché.Cas d'utilisation pratiques d'événements
Les événements ne sont pas seulement pour l'exploitation forestière; Ils jouent un rôle crucial dans le développement du DAPP. Certains cas d'utilisation courants comprennent:
- Transferts de jetons de suivi : les normes ERC-20 et ERC-721 utilisent l'événement
Transferpour se connecter lorsque les jetons sont déplacés entre les comptes. - Renforcer les mises à jour frontales : lorsqu'un état contractuel change, l'émission d'un événement permet au front-end de mettre à jour en temps réel.
- Audit et surveillance : les événements fournissent un enregistrement transparent et immuable de l'activité contractuelle, ce qui est utile pour la conformité et le débogage.
Par exemple, dans un contrat de vote, vous pourriez émettre un événement chaque fois qu'un vote est exprimé:
event VoteCast(address indexed voter, string proposal);Cela permet aux systèmes externes de suivre l'activité de vote et d'assurer la transparence.
Meilleures pratiques pour utiliser des événements
Lorsque vous travaillez avec des événements dans Solidity, il est important de suivre les meilleures pratiques pour assurer l'efficacité et la clarté:
- Utilisez des paramètres indexés pour le filtrage : si vous devez interroger les journaux en fonction d'un paramètre spécifique, marquez-le comme indexé.
- Ne pas utiliser les événements : émettre trop d'événements peut augmenter les coûts de gaz et encombrer les journaux.
- Paramètres de l'événement de document : Expliquez clairement ce que chaque paramètre représente dans la déclaration d'événements.
- Utiliser les noms descriptifs : les noms d'événements doivent clairement indiquer l'action qu'ils représentent, telles que
TokensTransferredouOwnershipTransferred.
Évitez d'émettre des événements dans des boucles ou des fonctions à haute fréquence à moins que cela ne soit nécessaire, car cela peut augmenter considérablement la consommation de gaz.
Questions fréquemment posées
Q: Les événements peuvent-ils être utilisés pour communiquer entre les contrats intelligents?
Non, les événements ne peuvent pas être utilisés pour la communication inter-contrat. Ils sont stockés dans les journaux de transaction et ne sont accessibles qu'aux applications hors chaîne.
Q: Combien d'événements de gaz consomment-ils? Les événements consomment du gaz parce qu'ils font partie de la transaction. Le coût exact dépend du nombre et de la taille des paramètres, en particulier s'ils sont indexés ou non.
Q: Les événements sont-ils stockés en permanence sur la blockchain? Oui, les événements sont stockés dans les journaux Ethereum, qui font partie de la blockchain. Cependant, ils ne sont pas directement accessibles aux contrats intelligents.
Q: Puis-je émettre un événement sans aucun paramètre? Oui, vous pouvez déclarer et émettre des événements sans aucun paramètre. Ceci est utile pour signaler qu'une action particulière s'est produite sans avoir besoin de passer des données.
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.
-
RAIN Échangez maintenant$0.007852
113.00%
-
PIPPIN Échangez maintenant$0.06097
51.96%
-
PARTI Échangez maintenant$0.1396
42.04%
-
WAVES Échangez maintenant$0.9141
41.69%
-
ARC Échangez maintenant$0.04302
35.73%
-
HONEY Échangez maintenant$0.01029
21.80%
- Bitcoin, eCash Fork et Airdrop Dynamics : une plongée approfondie dans les dernières controverses de la cryptographie
- 2026-05-03 12:55:01
- Consensus 2026 Miami : Web3, Blockchain, Crypto-monnaie, NFT, Metaverse, conférence, 5 mai — Là où Wall Street rencontre la frontière numérique
- 2026-05-02 12:45:01
- La Fed maintient ses taux stables, déclenchant une baisse du prix du Bitcoin dans un contexte de tensions géopolitiques
- 2026-05-01 06:45:01
- Les mineurs de Bitcoin électrifient le réseau : l'acquisition d'une usine à gaz dans l'Ohio ouvre une nouvelle ère pour l'or numérique
- 2026-05-01 00:45:01
- Le jeton MEGA de MegaETH arrive dans la Big Apple : définition de nouveaux critères de performance pour la blockchain en temps réel
- 2026-05-01 00:55:01
- La pente glissante de Solana : les prévisions de prix indiquent une perte de résistance et de nouvelles baisses potentielles
- 2026-05-01 06:45:01
Connaissances connexes
Comment reconnaître les signaux de manipulation du marché sur les marchés à terme des cryptomonnaies
Jun 12,2026 at 05:26pm
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...
Qu’est-ce que le piégeage à effet de levier ? Pourquoi les commerçants de détail se font souvent prendre
Jun 12,2026 at 11:53pm
Modèles de volatilité du marché 1. Les fluctuations de prix Bitcoin dépassent souvent 5 % sur une fenêtre de 24 heures lors d'événements à forte l...
Qu'est-ce qu'une transaction en petits groupes ? Comment les traders à terme capturent les mouvements de prix importants
Jun 13,2026 at 05:19am
Comprendre les mécanismes de rupture dans les contrats à terme cryptographiques 1. Une cassure se produit lorsque le prix de Bitcoin ou de l'altco...
Comment échanger des contrats à terme sur crypto lors d'annonces économiques majeures
Jun 12,2026 at 10:50pm
Modèles de volatilité du marché 1. Les fluctuations de prix Bitcoin dépassent souvent 5 % sur une seule fenêtre de 24 heures lors d'événements à f...
Qu’est-ce que le solde de marge ? Comprendre le cœur du contrôle des risques à terme
Jun 12,2026 at 03:19pm
Modèles de volatilité du marché 1. Les fluctuations de prix de Bitcoin sont souvent en corrélation avec des indicateurs macroéconomiques tels que les ...
Qu’est-ce que l’ADL (désendettement automatique) ? Comment cela peut affecter vos transactions à terme
Jun 13,2026 at 02:05am
Mécanisme de base de l’ADL 1. ADL signifie Auto-Deleveraging, un protocole intégré aux bourses à terme de cryptomonnaies pour prévenir l'insolvabi...
Comment reconnaître les signaux de manipulation du marché sur les marchés à terme des cryptomonnaies
Jun 12,2026 at 05:26pm
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...
Qu’est-ce que le piégeage à effet de levier ? Pourquoi les commerçants de détail se font souvent prendre
Jun 12,2026 at 11:53pm
Modèles de volatilité du marché 1. Les fluctuations de prix Bitcoin dépassent souvent 5 % sur une fenêtre de 24 heures lors d'événements à forte l...
Qu'est-ce qu'une transaction en petits groupes ? Comment les traders à terme capturent les mouvements de prix importants
Jun 13,2026 at 05:19am
Comprendre les mécanismes de rupture dans les contrats à terme cryptographiques 1. Une cassure se produit lorsque le prix de Bitcoin ou de l'altco...
Comment échanger des contrats à terme sur crypto lors d'annonces économiques majeures
Jun 12,2026 at 10:50pm
Modèles de volatilité du marché 1. Les fluctuations de prix Bitcoin dépassent souvent 5 % sur une seule fenêtre de 24 heures lors d'événements à f...
Qu’est-ce que le solde de marge ? Comprendre le cœur du contrôle des risques à terme
Jun 12,2026 at 03:19pm
Modèles de volatilité du marché 1. Les fluctuations de prix de Bitcoin sont souvent en corrélation avec des indicateurs macroéconomiques tels que les ...
Qu’est-ce que l’ADL (désendettement automatique) ? Comment cela peut affecter vos transactions à terme
Jun 13,2026 at 02:05am
Mécanisme de base de l’ADL 1. ADL signifie Auto-Deleveraging, un protocole intégré aux bourses à terme de cryptomonnaies pour prévenir l'insolvabi...
Voir tous les articles














