Calldata

EVM

Definition

Zone mémoire en lecture seule où sont stockés les arguments des fonctions external. Beaucoup plus gas-efficient que `memory` car les données ne sont pas copiées. À privilégier pour les paramètres des fonctions `external` qui ne nécessitent pas de modification.

English version

Read-only memory area where external function arguments are stored. Much more gas-efficient than `memory` as data is not copied. Prefer for `external` function parameters that don't need modification.

Exemple de Code

// Gas-efficient: calldata évite la copie
function processData(uint[] calldata data) external pure returns (uint) {
    uint sum = 0;
    for (uint i = 0; i < data.length; i++) {
        sum += data[i];
    }
    return sum;
}

// Moins efficient avec memory
function processDataMemory(uint[] memory data) public pure returns (uint) {
    // data est copié en mémoire (coût gas)
}

Termes Lies

Pratique ce concept sur Solingo

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

Commencer gratuitement