msg.sender

EVM

Definition

Variable globale contenant l'adresse de l'appelant direct de la fonction. Dans une chaîne d'appels A → B → C, `msg.sender` dans C sera B. Contrairement à `tx.origin` (toujours l'EOA initial), `msg.sender` change à chaque appel. Utilisé pour l'authentification.

English version

Global variable containing address of direct function caller. In call chain A → B → C, `msg.sender` in C will be B. Unlike `tx.origin` (always initial EOA), `msg.sender` changes per call.

Exemple de Code

address public owner;

constructor() {
    owner = msg.sender; // Défini le déployeur comme owner
}

modifier onlyOwner() {
    require(msg.sender == owner, "Not owner");
    _;
}

function transfer(address to, uint amount) public {
    balances[msg.sender] -= amount; // Débite l'appelant
    balances[to] += amount;
}

Termes Lies

Pratique ce concept sur Solingo

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

Commencer gratuitement