Skip to content

Latest commit

 

History

History
283 lines (158 loc) · 6.62 KB

File metadata and controls

283 lines (158 loc) · 6.62 KB

ERC20

Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. We have followed general OpenZeppelin guidelines: functions revert instead of returning false on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.

Methods

allowance

function allowance(address owner, address spender) external view returns (uint256)

See {IERC20-allowance}.

Parameters

Name Type Description
owner address undefined
spender address undefined

Returns

Name Type Description
_0 uint256 undefined

approve

function approve(address spender, uint256 amount) external nonpayable returns (bool)

See {IERC20-approve}. Requirements: - spender cannot be the zero address.

Parameters

Name Type Description
spender address undefined
amount uint256 undefined

Returns

Name Type Description
_0 bool undefined

balanceOf

function balanceOf(address account) external view returns (uint256)

See {IERC20-balanceOf}.

Parameters

Name Type Description
account address undefined

Returns

Name Type Description
_0 uint256 undefined

decimals

function decimals() external view returns (uint8)

Returns the number of decimals used to get its user representation. For example, if decimals equals 2, a balance of 505 tokens should be displayed to a user as 5,05 (505 / 10 ** 2). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for display purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.

Returns

Name Type Description
_0 uint8 undefined

decreaseAllowance

function decreaseAllowance(address spender, uint256 subtractedValue) external nonpayable returns (bool)

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 least subtractedValue.

Parameters

Name Type Description
spender address undefined
subtractedValue uint256 undefined

Returns

Name Type Description
_0 bool undefined

increaseAllowance

function increaseAllowance(address spender, uint256 addedValue) external nonpayable returns (bool)

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.

Parameters

Name Type Description
spender address undefined
addedValue uint256 undefined

Returns

Name Type Description
_0 bool undefined

name

function name() external view returns (string)

Returns the name of the token.

Returns

Name Type Description
_0 string undefined

symbol

function symbol() external view returns (string)

Returns the symbol of the token, usually a shorter version of the name.

Returns

Name Type Description
_0 string undefined

totalSupply

function totalSupply() external view returns (uint256)

See {IERC20-totalSupply}.

Returns

Name Type Description
_0 uint256 undefined

transfer

function transfer(address recipient, uint256 amount) external nonpayable returns (bool)

See {IERC20-transfer}. Requirements: - recipient cannot be the zero address. - the caller must have a balance of at least amount.

Parameters

Name Type Description
recipient address undefined
amount uint256 undefined

Returns

Name Type Description
_0 bool undefined

transferFrom

function transferFrom(address sender, address recipient, uint256 amount) external nonpayable returns (bool)

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 and recipient cannot be the zero address. - sender must have a balance of at least amount. - the caller must have allowance for sender's tokens of at least amount.

Parameters

Name Type Description
sender address undefined
recipient address undefined
amount uint256 undefined

Returns

Name Type Description
_0 bool undefined

Events

Approval

event Approval(address indexed owner, address indexed spender, uint256 value)

Parameters

Name Type Description
owner indexed address undefined
spender indexed address undefined
value uint256 undefined

Transfer

event Transfer(address indexed from, address indexed to, uint256 value)

Parameters

Name Type Description
from indexed address undefined
to indexed address undefined
value uint256 undefined