Hello @bl4km0uz !
The reason why is because it is of the type internal
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
_beforeTokenTransfer(account, address(0), amount);
uint256 accountBalance = _balances[account];
require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
_balances[account] = accountBalance - amount;
_totalSupply -= amount;
emit Transfer(account, address(0), amount);
}
Thus, it can only be called from within the contract itself, hence the name "internal"
If I was in your situation, to burn tokens, I would send the amount of tokens I wanted to burn to the 0x0000000000000 (dead) address.
Can I make some fixes (changes) in the code of already deployed contract?
Thanks!
No you cannot. Once deployed you cannot change the code, but.... you can use a proxy found in the tutorial below.
Before going further, I highly recommend following the tutorial below. Even if you don't understand things 100% it will get you up and running to deploying upgradable proxies with hardhat!
After following the tutorial, please use the learning resources
I know it seems like a huge pain to do this. But seriously - if you want to actually learn and be effective, then take the time and do this. You are investing in yourself skills that allow you to do whatever you want with smart contracts!