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 token and operates on the Ethereum platform. Friendz has a current supply of 1,131,842,156.381 with 522,908,181.938 in circulation. The last known price of Friendz is $0.000722 USD and is up 8.18% over the last 24 hours. It is currently trading on 8 active market(s) with $82,656.94 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
Functions
transferOwnership keyboard_arrow_up
balanceOf keyboard_arrow_up
transfer keyboard_arrow_up
Requirements help
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) onlyOwner public {
require(_addr != co_owner);
co_owner = _addr;
CoOwnerSet(_addr);
}
setReleaseDate keyboard_arrow_up
getMinimumAmount keyboard_arrow_up
Source Code
function getMinimumAmount(address _addr) constant public 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) isBlockingTransfer public {
// 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
transferFrom keyboard_arrow_up
Modifiers help
canTransfer checks for the following:
One or more of the following:
-null - ORnull
Requirements help
Source Code
function transferFrom(address _from, address _to, uint _value) canTransfer(_from, _value) public 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;
}