ERC20
This contract is an ERC20 token.
Name
YOU Chain
Symbol
YOU
Decimals
18
Total Supply
2,856,000,000 YOU
About
link
YOUChain is focused on carrying out large-scale commercial applications through its YPoS consensus mechanism and investment model. YOUChain aims to create a public blockchain with high-performance and scalability to achieve its vision of “One Mobile Device One Node, Everyone Can Participate”.
YOUChain's founding team is reportedly from Alibaba, Tencent and BITMAIN. It has the following features:
- YPoS, a BFT consensus algorithm based on VRF and PoS, reportedly supports a large number of nodes to conduct consensus.
- Super routing, a P2P system made for both home broadband and mobile network, reportedly helps to enhance the efficiency of complex communication environments.
- Intelligent sharding reportedly enhances scalability.
- Any mobile device can theoretically become a node in the network to achieve decentralization.
Stats
Public Functions
11
Event Types
3
Code Size
12,274 bytes
Events (3) keyboard_arrow_up
Structs (1) 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 <= balances[msg.sender]);
// SafeMath.sub will throw if there is not enough balance.
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
emit Transfer(msg.sender, _to, _value);
return true;
}
allowance keyboard_arrow_up
transferFrom keyboard_arrow_up
Requirements help
Source Code
function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
require(_to != address(0));
require(_value <= balances[_from]);
require(_value <= allowed[_from][msg.sender]);
balances[_from] = balances[_from].sub(_value);
balances[_to] = balances[_to].add(_value);
allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
emit Transfer(_from, _to, _value);
return true;
}
approve keyboard_arrow_up
Source Code
function approve(address _spender, uint256 _value) public returns (bool) {
allowed[msg.sender][_spender] = _value;
emit Approval(msg.sender, _spender, _value);
return true;
}
increaseApproval keyboard_arrow_up
Source Code
function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
decreaseApproval keyboard_arrow_up
Source Code
function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
uint oldValue = allowed[msg.sender][_spender];
if (_subtractedValue > oldValue) {
allowed[msg.sender][_spender] = 0;
} else {
allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
}
emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
releaseAngelFirstVested keyboard_arrow_up
Parameters help
This function has no parameters.
Modifiers help
onlyOwner checks for the following:
Requirements help
Source Code
function releaseAngelFirstVested() public onlyOwner {
require(!angelFirstVested && now >= angelVestingGrant.start);
uint256 angelFirstSupplyBalance = ANGEL_SUPPLY.sub(ANGEL_SUPPLY_VESTING);
totalSupply = totalSupply.add(angelFirstSupplyBalance);
balances[angelVestingGrant.beneficiary] = angelFirstSupplyBalance;
angelFirstVested = true;
emit Transfer(address(0), angelVestingGrant.beneficiary, angelFirstSupplyBalance);
}