TestnetERC20
TestnetERC20
#
This contract can be deployed or the interface can be used to communicate with Compound's ERC20 tokens. Note: this token should never be used to store real value since it allows permissionless minting.
#
Functionsconstructor(string _name, string _symbol, uint8 _tokenDecimals) (public)
Constructs the TestnetERC20.
#
Parameters:- _name: The name which describes the new token.
- _symbol: The ticker abbreviation of the name. Ideally < 5 chars.
- _tokenDecimals: The number of decimals to define token precision.
decimals() โ uint8 (public)
allocateTo(address ownerAddress, uint256 value) (external)
Mints value tokens to the owner address.
#
Parameters:- ownerAddress: the address to mint to.
- value: the amount of tokens to mint.
name() โ string (public)
Returns the name of the token.
symbol() โ string (public)
Returns the symbol of the token, usually a shorter version of the name.
totalSupply() โ uint256 (public)
See {IERC20-totalSupply}.
balanceOf(address account) โ uint256 (public)
See {IERC20-balanceOf}.
transfer(address recipient, uint256 amount) โ bool (public)
See {IERC20-transfer}. Requirements:
recipient
cannot be the zero address.- the caller must have a balance of at least
amount
.
allowance(address owner, address spender) โ uint256 (public)
See {IERC20-allowance}.
approve(address spender, uint256 amount) โ bool (public)
See {IERC20-approve}. Requirements:
spender
cannot be the zero address.
transferFrom(address sender, address recipient, uint256 amount) โ bool (public)
See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. Requirements:
sender
andrecipient
cannot be the zero address.sender
must have a balance of at leastamount
.- the caller must have allowance for
sender
's tokens of at leastamount
.
increaseAllowance(address spender, uint256 addedValue) โ bool (public)
Atomically increases the allowance granted to spender
by the caller.
This is an alternative to {approve} that can be used as a mitigation for
problems described in {IERC20-approve}.
Emits an {Approval} event indicating the updated allowance.
Requirements:
spender
cannot be the zero address.
decreaseAllowance(address spender, uint256 subtractedValue) โ bool (public)
Atomically decreases the allowance granted to spender
by the caller.
This is an alternative to {approve} that can be used as a mitigation for
problems described in {IERC20-approve}.
Emits an {Approval} event indicating the updated allowance.
Requirements:
spender
cannot be the zero address.spender
must have allowance for the caller of at leastsubtractedValue
.
_transfer(address sender, address recipient, uint256 amount) (internal)
Moves amount
of tokens from sender
to recipient
.
This internal function is equivalent to {transfer}, and can be used to
e.g. implement automatic token fees, slashing mechanisms, etc.
Emits a {Transfer} event.
Requirements:
sender
cannot be the zero address.recipient
cannot be the zero address.sender
must have a balance of at leastamount
.
_mint(address account, uint256 amount) (internal)
Creates amount
tokens and assigns them to account
, increasing
the total supply.
Emits a {Transfer} event with from
set to the zero address.
Requirements:
account
cannot be the zero address.
_burn(address account, uint256 amount) (internal)
Destroys amount
tokens from account
, reducing the
total supply.
Emits a {Transfer} event with to
set to the zero address.
Requirements:
account
cannot be the zero address.account
must have at leastamount
tokens.
_approve(address owner, address spender, uint256 amount) (internal)
Sets amount
as the allowance of spender
over the owner
s tokens.
This internal function is equivalent to approve
, and can be used to
e.g. set automatic allowances for certain subsystems, etc.
Emits an {Approval} event.
Requirements:
owner
cannot be the zero address.spender
cannot be the zero address.
_beforeTokenTransfer(address from, address to, uint256 amount) (internal)
Hook that is called before any transfer of tokens. This includes minting and burning. Calling conditions:
- when
from
andto
are both non-zero,amount
offrom
's tokens will be transferred toto
. - when
from
is zero,amount
tokens will be minted forto
. - when
to
is zero,amount
offrom
's tokens will be burned. from
andto
are never both zero. To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
_afterTokenTransfer(address from, address to, uint256 amount) (internal)
Hook that is called after any transfer of tokens. This includes minting and burning. Calling conditions:
- when
from
andto
are both non-zero,amount
offrom
's tokens has been transferred toto
. - when
from
is zero,amount
tokens have been minted forto
. - when
to
is zero,amount
offrom
's tokens have been burned. from
andto
are never both zero. To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
_msgSender() โ address (internal)
_msgData() โ bytes (internal)
#
EventsTransfer(address from, address to, uint256 value)
Emitted when value
tokens are moved from one account (from
) to
another (to
).
Note that value
may be zero.
Approval(address owner, address spender, uint256 value)
Emitted when the allowance of a spender
for an owner
is set by
a call to {approve}. value
is the new allowance.