Friendz Coin
ERC20
This contract is an ERC20 token.
Name
Friendz Coin
Symbol
FDZ
Decimals
18
Total Supply
1,131,842,156 FDZ
About link description
Friendz (FDZ) is a cryptocurrency and operates on the Ethereum platform. Friendz has a current supply of 1,129,842,156.3806603 with 520,690,651.0893247 in circulation. The last known price of Friendz is 0.00166742 USD and is up 4.12 over the last 24 hours. It is currently trading on 7 active market(s) with $52,883.77 traded over the last 24 hours. More information can be found at https://friendz.io/.
Stats
Public Functions
17
Event Types
7
Code Size
10,574 bytes
Events (7) keyboard_arrow_up
State Variables (17) keyboard_arrow_up
Functions
transferOwnership keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
Source Code
function transferOwnership(address newOwner) public onlyOwner {
require(newOwner != address(0));
require(newOwner != owner);
OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
balanceOf keyboard_arrow_up
transfer keyboard_arrow_up
Source Code
function transfer(address _to, uint256 _value) public returns (bool) {
require(_to != address(0));
require(_value > 0);
// SafeMath.sub will throw if there is not enough balance.
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
Transfer(msg.sender, _to, _value);
return true;
}
burn keyboard_arrow_up
canTransferBefore keyboard_arrow_up
Source Code
function canTransferBefore(address _sender) public view returns (bool) {
return (_sender == owner ||
_sender == presale_holder ||
_sender == ico_holder ||
_sender == reserved_holder ||
_sender == wallet_holder);
}
canTransferIfLocked keyboard_arrow_up
Source Code
function canTransferIfLocked(address _sender, uint256 _value)
public
view
returns (bool)
{
uint256 after_math = balances[_sender].sub(_value);
return (now >= RELEASE_DATE && after_math >= getMinimumAmount(_sender));
}
setCoOwner keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
Source Code
function setCoOwner(address _addr) public onlyOwner {
require(_addr != co_owner);
co_owner = _addr;
CoOwnerSet(_addr);
}
setReleaseDate keyboard_arrow_up
getMinimumAmount keyboard_arrow_up
Source Code
function getMinimumAmount(address _addr) public constant returns (uint256) {
// if the address ha no limitations just return 0
if (blocked_amounts[_addr] == 0x0) return 0x0;
// if the purchase date is in the future block all the tokens
if (purchase_dates[_addr] > now) {
return blocked_amounts[_addr];
}
uint256 alpha = uint256(now).sub(purchase_dates[_addr]); // absolute purchase date
uint256 beta = release_dates[_addr].sub(purchase_dates[_addr]); // absolute token release date
uint256 tokens = blocked_amounts[_addr].sub(
alpha.mul(blocked_amounts[_addr]).div(beta)
); // T - (α * T) / β
return tokens;
}
setBlockingState keyboard_arrow_up
Modifiers help
isBlockingTransfer checks for the following:
Requirements help
One or more of the following:
-
co_owner
must be equal to
the sender's address
- OR
owner
must be equal to
the sender's address
Source Code
function setBlockingState(
address _addr,
uint256 _end,
uint256 _value
) public isBlockingTransfer {
// only the onwer and the co-owner can call this function
require(msg.sender == owner || msg.sender == co_owner);
require(_addr != address(0));
uint256 final_value = _value;
if (release_dates[_addr] != 0x0) {
// if it's not the first time this function is beign called for this address
// update its information instead of setting them (add value to previous value)
final_value = blocked_amounts[_addr].add(_value);
}
release_dates[_addr] = _end;
purchase_dates[_addr] = RELEASE_DATE;
blocked_amounts[_addr] = final_value;
UpdatedBlockingState(_addr, _end, RELEASE_DATE, final_value);
}
freeToken keyboard_arrow_up
transfer keyboard_arrow_up
Modifiers help
canTransfer checks for the following:
One or more of the following:
-null - ORnull
Source Code
function transfer(address _to, uint256 _value)
public
canTransfer(msg.sender, _value)
returns (bool success)
{
return super.transfer(_to, _value);
}
transferFrom keyboard_arrow_up
Modifiers help
canTransfer checks for the following:
One or more of the following:
-null - ORnull
Source Code
function transferFrom(
address _from,
address _to,
uint256 _value
) public canTransfer(_from, _value) returns (bool success) {
require(_from != address(0));
require(_to != address(0));
// SafeMath.sub will throw if there is not enough balance.
balances[_from] = balances[_from].sub(_value);
balances[_to] = balances[_to].add(_value);
allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); // this will throw if we don't have enough allowance
// this event comes from BasicToken.sol
Transfer(_from, _to, _value);
return true;
}
approve keyboard_arrow_up
Requirements help
One or more of the following:
-
allowed for the sender's address for _spender
must be equal to
0
- OR
_value
must be equal to
0
Source Code
function approve(address _spender, uint256 _value) public returns (bool) {
require(_value == 0 || allowed[msg.sender][_spender] == 0);
allowed[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
return true;
}
allowance keyboard_arrow_up
increaseApproval keyboard_arrow_up
Source Code
function increaseApproval(address _spender, uint256 _addedValue)
public
returns (bool success)
{
allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(
_addedValue
);
Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
decreaseApproval keyboard_arrow_up
Source Code
function decreaseApproval(address _spender, uint256 _subtractedValue)
public
returns (bool success)
{
uint256 oldValue = allowed[msg.sender][_spender];
if (_subtractedValue >= oldValue) {
allowed[msg.sender][_spender] = 0;
} else {
allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
}
Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
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.