tx
SolidityDé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
Pages Liées
Pratique ce concept sur Solingo
Maîtrise tx avec des exercices interactifs et un IDE intégré.
Commencer gratuitement