Yul
OutilsDefinition
Langage assembleur de bas niveau pour Solidity et Vyper. Permet d'écrire du code très optimisé en accédant directement aux opcodes EVM. Utilisé dans les blocs `assembly {}`. Dangereux si mal utilisé (pas de vérification de types). Réservé aux optimisations extrêmes et bibliothèques.
English version
Low-level assembly language for Solidity and Vyper. Allows writing highly optimized code by directly accessing EVM opcodes. Used in `assembly {}` blocks. Dangerous if misused (no type checking).
Exemple de Code
function getCodeSize(address account) public view returns (uint size) {
assembly {
size := extcodesize(account) // Opcode EXTCODESIZE
}
}
function efficientHash(uint a, uint b) public pure returns (bytes32 result) {
assembly {
mstore(0x00, a)
mstore(0x20, b)
result := keccak256(0x00, 0x40) // Opcode KECCAK256
}
}
// Économie de gas vs Solidity natif
function add(uint a, uint b) public pure returns (uint result) {
assembly {
result := add(a, b) // Opcode ADD direct
}
}Pages Liees
Pratique ce concept sur Solingo
Maîtrise Yul avec des exercices interactifs et un IDE intégré.
Commencer gratuitement