Definition
Mechanism for contracts to broadcast logs, cheaper than storing state.
core usage
Frontend / off-chain apps listen to events and react.
indexed keyword: up to 3 parameters can be indexed, useful for filtering & searching
contract Auction {
event Bid(address indexed bidder, uint amount);
function placeBid() public payable {
// ... logic ...
emit Bid(msg.sender, msg.value);
}
}
// ethers.js
import { ethers } from "ethers";
const contract = new ethers.Contract(contractAddress, abi, provider);
contract.on("Bid", (bidder, amount, event) => {
console.log("📢 New Bid:", bidder, amount.toString());
console.log("Full event object:", event);
});
// web3.js
contract.events.Bid()
.on("data", (event) => {
console.log("📢 New Bid:", event.returnValues);
})
.on("error", console.error);
practical effect
The frontend can show newest bid price, don't need to call contract function period.
Event data can see in the Etherscan
Top comments (0)