ERC20InterfaceUpgaradable.sol
Important changes to the ERC20 implementation
ERC20Interface will be using the balance info coming from gAVAX, so there is no _balances
/**
* @dev gAVAX ERC20 interface doesn't use balance info, catches it from ERC1155.
* mapping(address => uint256) private _balances;
**/
function _transfer(...) internal virtual {
...
unchecked {
_ERC1155.safeTransferFrom(sender,recipient,_id,amount,"0x00");
}
...
}
There is also a function for pricePerShare, so it is easy for any code to keep track of underlying AVAX balances.
function pricePerShare() public view returns(uint){
return _ERC1155.pricePerShare(_id);
}
Balance info for the used ID's ERC20interface will show the gAVAX balance info.
function balanceOf(address account) public view virtual override returns (uint256) {
return _ERC1155.balanceOf(account,_id);
}
TotalSupply info for the used ID's ERC20interface will show the gAVAX totalSupply info.
/**
* @dev gAVAX ERC20 interface doesn't use totalSupply info, catches it from ERC1155.
* uint256 private _totalSupply;
**/
function totalSupply() public view virtual override returns (uint256) {
return _ERC1155.totalSupply(_id);
}
Note, these code pieces should NOT be used in production.
See it on Diffchecker.
See it on Github.
Last updated