tx

Solidity

Définition

Variable globale Solidity contenant les informations de la transaction actuelle. tx.origin = adresse de l'émetteur initial (EOA, jamais un contrat), tx.gasprice = prix du gas de la transaction. Différent de msg.sender dans le cas d'appels de contrat à contrat. ⚠️ Ne jamais utiliser tx.origin pour l'authentification (vulnérable aux phishing).

Version anglaise

Solidity global variable containing current transaction information. tx.origin = original sender address (EOA, never a contract), tx.gasprice = transaction gas price. Different from msg.sender in contract-to-contract calls. ⚠️ Never use tx.origin for authentication (vulnerable to phishing).

Exemple de Code

contract TxExample {
  // ❌ DANGER : vulnérable au phishing
  function badAuth() public {
    require(tx.origin == owner, "Not owner"); // NE JAMAIS FAIRE
  }

  // ✅ Correct
  function goodAuth() public {
    require(msg.sender == owner, "Not owner");
  }

  function getGasPrice() public view returns (uint256) {
    return tx.gasprice; // Prix du gas en wei
  }
}

// Scénario d'attaque :
// User -> MaliciousContract -> VictimContract
// tx.origin = User (bypass la vérification !)

Termes Liés

Pratique ce concept sur Solingo

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

Commencer gratuitement