Add A Solidity Event
Now that you know why we need Events, letās add one and observe the output again!
Modify the contract code as follows:
//SPDX-License-Identifier: MIT
pragma solidity 0.8.13;
contract EventExample {
mapping(address => uint) public tokenBalance;
event TokensSent(address _from, address _to, uint _amount);
constructor() {
tokenBalance[msg.sender] = 100;
}
function sendToken(address _to, uint _amount) public returns(bool) {
require(tokenBalance[msg.sender] >= _amount, "Not enough tokens");
assert(tokenBalance[_to] + _amount >= tokenBalance[_to]);
assert(tokenBalance[msg.sender] - _amount <= tokenBalance[msg.sender]);
tokenBalance[msg.sender] -= _amount;
tokenBalance[_to] += _amount;
emit TokensSent(msg.sender, _to, _amount);
return true;
}
}
Re-Deploy with MetaMask
Letās re-deploy our contract with MetaMask and run the exact same Transaction. Hereās what we can observe in the Transaction Details:
Suddenly we have ālogsā. These are in-sequence emitted events from the Smart Contract execution!
You will later see how you can listen to these events, query the blockchain for events and many more things.
Last updated on