Optimize contract
This commit is contained in:
parent
5368c26332
commit
90b9d403e6
|
@ -108,7 +108,7 @@ contract WrappedAsset is IERC20, Context {
|
|||
* - `recipient` cannot be the zero address.
|
||||
* - the caller must have a balance of at least `amount`.
|
||||
*/
|
||||
function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
|
||||
function transfer(address recipient, uint256 amount) public override returns (bool) {
|
||||
_transfer(_msgSender(), recipient, amount);
|
||||
return true;
|
||||
}
|
||||
|
@ -116,7 +116,7 @@ contract WrappedAsset is IERC20, Context {
|
|||
/**
|
||||
* @dev See {IERC20-allowance}.
|
||||
*/
|
||||
function allowance(address owner, address spender) public view virtual override returns (uint256) {
|
||||
function allowance(address owner, address spender) public view override returns (uint256) {
|
||||
return _allowances[owner][spender];
|
||||
}
|
||||
|
||||
|
@ -127,7 +127,7 @@ contract WrappedAsset is IERC20, Context {
|
|||
*
|
||||
* - `spender` cannot be the zero address.
|
||||
*/
|
||||
function approve(address spender, uint256 amount) public virtual override returns (bool) {
|
||||
function approve(address spender, uint256 amount) public override returns (bool) {
|
||||
_approve(_msgSender(), spender, amount);
|
||||
return true;
|
||||
}
|
||||
|
@ -144,7 +144,7 @@ contract WrappedAsset is IERC20, Context {
|
|||
* - the caller must have allowance for ``sender``'s tokens of at least
|
||||
* `amount`.
|
||||
*/
|
||||
function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
|
||||
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
|
||||
_transfer(sender, recipient, amount);
|
||||
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
|
||||
return true;
|
||||
|
@ -162,7 +162,7 @@ contract WrappedAsset is IERC20, Context {
|
|||
*
|
||||
* - `spender` cannot be the zero address.
|
||||
*/
|
||||
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
|
||||
function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
|
||||
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
|
||||
return true;
|
||||
}
|
||||
|
@ -181,7 +181,7 @@ contract WrappedAsset is IERC20, Context {
|
|||
* - `spender` must have allowance for the caller of at least
|
||||
* `subtractedValue`.
|
||||
*/
|
||||
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
|
||||
function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
|
||||
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
|
||||
return true;
|
||||
}
|
||||
|
@ -200,12 +200,10 @@ contract WrappedAsset is IERC20, Context {
|
|||
* - `recipient` cannot be the zero address.
|
||||
* - `sender` must have a balance of at least `amount`.
|
||||
*/
|
||||
function _transfer(address sender, address recipient, uint256 amount) internal virtual {
|
||||
function _transfer(address sender, address recipient, uint256 amount) internal {
|
||||
require(sender != address(0), "ERC20: transfer from the zero address");
|
||||
require(recipient != address(0), "ERC20: transfer to the zero address");
|
||||
|
||||
_beforeTokenTransfer(sender, recipient, amount);
|
||||
|
||||
_balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
|
||||
_balances[recipient] = _balances[recipient].add(amount);
|
||||
emit Transfer(sender, recipient, amount);
|
||||
|
@ -220,11 +218,9 @@ contract WrappedAsset is IERC20, Context {
|
|||
*
|
||||
* - `to` cannot be the zero address.
|
||||
*/
|
||||
function _mint(address account, uint256 amount) internal virtual {
|
||||
function _mint(address account, uint256 amount) internal {
|
||||
require(account != address(0), "ERC20: mint to the zero address");
|
||||
|
||||
_beforeTokenTransfer(address(0), account, amount);
|
||||
|
||||
_totalSupply = _totalSupply.add(amount);
|
||||
_balances[account] = _balances[account].add(amount);
|
||||
emit Transfer(address(0), account, amount);
|
||||
|
@ -241,11 +237,9 @@ contract WrappedAsset is IERC20, Context {
|
|||
* - `account` cannot be the zero address.
|
||||
* - `account` must have at least `amount` tokens.
|
||||
*/
|
||||
function _burn(address account, uint256 amount) internal virtual {
|
||||
function _burn(address account, uint256 amount) internal {
|
||||
require(account != address(0), "ERC20: burn from the zero address");
|
||||
|
||||
_beforeTokenTransfer(account, address(0), amount);
|
||||
|
||||
_balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
|
||||
_totalSupply = _totalSupply.sub(amount);
|
||||
emit Transfer(account, address(0), amount);
|
||||
|
@ -264,7 +258,7 @@ contract WrappedAsset is IERC20, Context {
|
|||
* - `owner` cannot be the zero address.
|
||||
* - `spender` cannot be the zero address.
|
||||
*/
|
||||
function _approve(address owner, address spender, uint256 amount) internal virtual {
|
||||
function _approve(address owner, address spender, uint256 amount) internal {
|
||||
require(owner != address(0), "ERC20: approve from the zero address");
|
||||
require(spender != address(0), "ERC20: approve to the zero address");
|
||||
|
||||
|
@ -282,20 +276,4 @@ contract WrappedAsset is IERC20, Context {
|
|||
function _setupDecimals(uint8 decimals_) internal {
|
||||
_decimals = decimals_;
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev Hook that is called before any transfer of tokens. This includes
|
||||
* minting and burning.
|
||||
*
|
||||
* Calling conditions:
|
||||
*
|
||||
* - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
|
||||
* will be to transferred to `to`.
|
||||
* - when `from` is zero, `amount` tokens will be minted for `to`.
|
||||
* - when `to` is zero, `amount` of ``from``'s tokens will be burned.
|
||||
* - `from` and `to` are never both zero.
|
||||
*
|
||||
* To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
|
||||
*/
|
||||
function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue