// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;
/**
* @title ForLoopExample
* @dev This Solidity smart contract demonstrates the use of a for loop to store and emit Ethereum block numbers as events.
* It includes a mapping to store block numbers indexed by their order, a counter to keep track of the stored block numbers, and an event to log these block numbers.
*/
contract ForLoopExample {
// Mapping to store block numbers with their corresponding index.
mapping(uint => uint) blockNumber;
// Counter to keep track of the number of block numbers stored.
uint counter;
// Event to log the block numbers.
event uintNumber(uint);
/**
* @dev Function to add the current block number to the mapping and increment the counter.
*/
function setNumber() public {
// Store the current block number in the mapping and increment the counter.
blockNumber[counter++] = block.number;
}
/**
* @dev Function to retrieve and emit all stored block numbers.
*/
function getNumbers() public {
// Loop through the stored block numbers and emit them as events.
for (uint i = 0; i < counter; i++) {
emit uintNumber(blockNumber[i]);
}
}
}
//Deploy: