dev-resources.site
for different kinds of informations.
Ethereum Transaction Calls and State Changes
Published at
12/25/2024
Categories
ethereum
solidity
evm
blockchain
Author
Mahima Thacker
Let’s break down how different transaction calls work in Ethereum, and how state changes happen using a simple example🫣:
- CALL
- Imagine Contract A wants to send 1 ETH to Contract B and run a function there.
- When Contract A makes the CALL:
- A new environment (EVM instance) is created for Contract B.
- msg.sender is Contract A, meaning Contract B knows who initiated the transaction.
msg.value is set to 1 ETH (the amount being sent).
State changes: Even though msg.sender is Contract A, any changes (like updating balances) happen in Contract B's storage, not Contract A’s.
2.STATICCALL
- Suppose Contract A only wants to check a balance in Contract B without changing anything.
- When Contract A uses STATICCALL:
- It’s just like CALL, but no changes are allowed—just reading data.
- msg.sender is still Contract A, but Contract B cannot change any state.
3.DELEGATECALL
- Now, let’s say Contract A wants to use Contract B’s code but with its own (Contract A’s) storage.
- When Contract A uses DELEGATECALL:
- Contract B’s code runs, but it affects Contract A’s storage.
- msg.sender: The original caller (EOA), not Contract A.
So In-short:
CALL: Contract A triggers changes in Contract B’s state.
STATICCALL: Same as CALL, but only reads data, no changes.
DELEGATECALL: Contract A runs Contract B’s code, but changes are made to Contract A’s storage.
Understanding these helps you see how smart contracts interact and manage state in #Ethereum. 💥
Articles
9 articles in total
Have You Fallen for a Phishing Scam? Let’s Talk About It 👀
read article
OverFlow and UnderFlow causes in Solidity
read article
OverFlow and UnderFlow causes in Solidity
read article
The Danger of Randomness in Smart Contracts and its solution
read article
🤑 What are Stablecoins? Let's break it down!
read article
Why You Should Attend Events Like Devcon?
read article
Ethereum Transaction Calls and State Changes
currently reading
Ever wonder what happens when you send a transaction on Ethereum? 👀
read article
What's Version Control and Why Should You Care? 📣
read article
Featured ones: