ERC20
This contract is an ERC20 token.
Name
Eminence
Symbol
EMN
Decimals
18
Total Supply
11,589,814,369 EMN
About
Stats
Public Functions
21
Event Types
8
Code Size
9,847 bytes
Events (8) keyboard_arrow_up
Constants (2) keyboard_arrow_up
State Variables (11) keyboard_arrow_up
Functions
name keyboard_arrow_up
symbol keyboard_arrow_up
decimals keyboard_arrow_up
totalSupply keyboard_arrow_up
balanceOf keyboard_arrow_up
transfer keyboard_arrow_up
Requirements help
Source Code
function transfer(address recipient, uint256 amount) public returns (bool) {
_transfer(msg.sender, recipient, amount);
return true;
}
allowance keyboard_arrow_up
approve keyboard_arrow_up
Requirements help
Source Code
function approve(address spender, uint256 amount) public returns (bool) {
_approve(msg.sender, spender, amount);
return true;
}
transferFrom keyboard_arrow_up
Requirements help
Source Code
function transferFrom(
address sender,
address recipient,
uint256 amount
) public returns (bool) {
_transfer(sender, recipient, amount);
_approve(
sender,
msg.sender,
_allowances[sender][msg.sender].sub(
amount,
"ERC20: transfer amount exceeds allowance"
)
);
return true;
}
increaseAllowance keyboard_arrow_up
Requirements help
Source Code
function increaseAllowance(address spender, uint256 addedValue)
public
returns (bool)
{
_approve(
msg.sender,
spender,
_allowances[msg.sender][spender].add(addedValue)
);
return true;
}
decreaseAllowance keyboard_arrow_up
Requirements help
Source Code
function decreaseAllowance(address spender, uint256 subtractedValue)
public
returns (bool)
{
_approve(
msg.sender,
spender,
_allowances[msg.sender][spender].sub(
subtractedValue,
"ERC20: decreased allowance below zero"
)
);
return true;
}
calculateContinuousMintReturn keyboard_arrow_up
Source Code
function calculateContinuousMintReturn(uint256 _amount)
public
view
returns (uint256 mintAmount)
{
return
CURVE.calculatePurchaseReturn(
totalSupply(),
reserveBalance,
uint32(reserveRatio),
_amount
);
}
calculateContinuousBurnReturn keyboard_arrow_up
Source Code
function calculateContinuousBurnReturn(uint256 _amount)
public
view
returns (uint256 burnAmount)
{
return
CURVE.calculateSaleReturn(
totalSupply(),
reserveBalance,
uint32(reserveRatio),
_amount
);
}
addNPC keyboard_arrow_up
revokeNPC keyboard_arrow_up
addGM keyboard_arrow_up
Requirements help
One or more of the following:
Source Code
function addGM(address _gm) external {
require(gamemasters[msg.sender] || gamemasters[tx.origin], "!gm");
gamemasters[_gm] = true;
emit AddGM(_gm, msg.sender);
}
revokeGM keyboard_arrow_up
award keyboard_arrow_up
Source Code
function award(address _to, uint256 _amount) external {
require(gamemasters[msg.sender], "!gm");
_mint(_to, _amount);
}
claim keyboard_arrow_up
Source Code
function claim(address _from, uint256 _amount) external {
require(gamemasters[msg.sender] || npcs[msg.sender], "!gm");
_burn(_from, _amount);
}
buy keyboard_arrow_up
Requirements help
Source Code
function buy(uint256 _amount, uint256 _min) external returns (uint256 _bought) {
_bought = _buy(_amount);
require(_bought >= _min, "slippage");
DAI.transferFrom(msg.sender, address(this), _amount);
_mint(msg.sender, _bought);
emit CashShopBuy(msg.sender, _bought, _amount);
}
sell keyboard_arrow_up
Requirements help
Source Code
function sell(uint256 _amount, uint256 _min)
external
returns (uint256 _bought)
{
_bought = _sell(_amount);
require(_bought >= _min, "slippage");
_burn(msg.sender, _amount);
DAI.transfer(msg.sender, _bought);
emit CashShopSell(msg.sender, _amount, _bought);
}
Internal Functions
Internal functions are parts of the contract that can't be used directly, but instead are used by the public functions listed above.
internal ContinuousToken._buy keyboard_arrow_up
internal ContinuousToken._sell keyboard_arrow_up
internal ContinuousToken._continuousMint keyboard_arrow_up
Source Code
function _continuousMint(uint256 _deposit) internal returns (uint256) {
uint256 amount = calculateContinuousMintReturn(_deposit);
reserveBalance = reserveBalance.add(_deposit);
return amount;
}
internal ContinuousToken._continuousBurn keyboard_arrow_up
Source Code
function _continuousBurn(uint256 _amount) internal returns (uint256) {
uint256 reimburseAmount = calculateContinuousBurnReturn(_amount);
reserveBalance = reserveBalance.sub(reimburseAmount);
return reimburseAmount;
}
internal ERC20._transfer keyboard_arrow_up
Requirements help
Source Code
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");
_balances[sender] = _balances[sender].sub(
amount,
"ERC20: transfer amount exceeds balance"
);
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
}
internal ERC20._mint keyboard_arrow_up
Source Code
function _mint(address account, uint256 amount) internal {
require(account != address(0), "ERC20: mint to the zero address");
_totalSupply = _totalSupply.add(amount);
_balances[account] = _balances[account].add(amount);
emit Transfer(address(0), account, amount);
}
internal ERC20._burn keyboard_arrow_up
Source Code
function _burn(address account, uint256 amount) internal {
require(account != address(0), "ERC20: burn from the zero address");
_balances[account] = _balances[account].sub(
amount,
"ERC20: burn amount exceeds balance"
);
_totalSupply = _totalSupply.sub(amount);
emit Transfer(account, address(0), amount);
}
internal ERC20._approve keyboard_arrow_up
Requirements help
Source Code
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");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}