Yul

Outils

Definition

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
    }
}

Termes Lies

Pratique ce concept sur Solingo

Maîtrise Yul avec des exercices interactifs et un IDE intégré.

Commencer gratuitement