solidity functions 101, we always hear a lot that looking at the code you can guess all the functionality of a certain token, but how to read those functions and what do they mean?
i made a list of some common ones, from simple actions to complex scenerarios, as a developer you can build your contracts with the specific functions and these are some of them
1. Minting (mint):
```solidity
function mint(address to, uint256 amount) public onlyOwner {
_mint(to, amount);
}
```
This function creates new tokens and adds them to the recipient's balance, effectively increasing the total supply.
2. Burning (burn):
```solidity
function burn(uint256 amount) public {
_burn(msg.sender, amount);
}
```
It allows holders to destroy a specified amount of their tokens, reducing the overall supply.
3. Delegated Transfer (approve and transferFrom):
```solidity
function approve(address delegate, uint256 numTokens) public returns (bool) {
allowed[msg.sender][delegate] = numTokens;
return true;
}
function transferFrom(address owner, address buyer, uint256 numTokens) public returns (bool) {
require(numTokens <= balances[owner]);
require(numTokens <= allowed[owner][msg.sender]);
balances[owner] -= numTokens;
allowed[owner][msg.sender] -= numTokens;
balances[buyer] += numTokens;
return true;
}
```
Token owners authorize others to transfer a specified number of tokens on their behalf.
4. Token Vesting (vest):
```solidity
function vest(address beneficiary, uint256 amount, uint256 releaseTime) public onlyOwner {
// Vesting logic here
}
```
Locks tokens for a beneficiary until a specified time, ensuring they cannot be transferred until then.
5. Dividend Distribution (distributeDividends):
```solidity
function distributeDividends() public payable {
// Dividend distribution logic here
}
```
Distributes earnings to token holders, often proportionate to their holdings.