Invictus Hyperion
ERC20
This contract is an ERC20 token.
Name
Invictus Hyperion
Symbol
IHF
Decimals
18
Total Supply
121,335,657 IHF
About link
Invictus Hyperion Fund (IHF) is a cryptocurrency and operates on the Ethereum platform. Invictus Hyperion Fund has a current supply of 119,662,262.5638736 with 119,280,440.6173936 in circulation. The last known price of Invictus Hyperion Fund is 0.35307735 USD and is up 33.74 over the last 24 hours. It is currently trading on 1 active market(s) with $133,568.92 traded over the last 24 hours. More information can be found at https://invictuscapital.com/en/hyperion.
Stats
Public Functions
19
Event Types
2
Code Size
12,546 bytes
Library Use
Uses SafeMath for uint256.
State Variables (13) keyboard_arrow_up
Functions
totalSupply keyboard_arrow_up
balanceOf keyboard_arrow_up
transfer keyboard_arrow_up
Modifiers help
isTradeable checks for the following:
One or more of the following:
-
vestingContract
must be equal to
the sender's address
- OR
fundWallet1
must be equal to
the sender's address
- ORtradeable must be true
Requirements help
Source Code
function transfer(address _to, uint256 _value)
public
isTradeable
returns (bool success)
{
return super.transfer(_to, _value);
}
allowance keyboard_arrow_up
transferFrom keyboard_arrow_up
Modifiers help
isTradeable checks for the following:
One or more of the following:
-
vestingContract
must be equal to
the sender's address
- OR
fundWallet1
must be equal to
the sender's address
- ORtradeable must be true
Requirements help
Source Code
function transferFrom(
address _from,
address _to,
uint256 _value
) public isTradeable returns (bool success) {
return super.transferFrom(_from, _to, _value);
}
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, uint256 _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, uint256 _subtractedValue)
public
returns (bool)
{
uint256 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;
}
setVestingContract keyboard_arrow_up
Modifiers help
onlyFundWallets checks for the following:
One or more of the following:
-
fundWallet2
must be equal to
the sender's address
- OR
fundWallet1
must be equal to
the sender's address
Requirements help
Source Code
function setVestingContract(address vestingContractInput)
external
onlyFundWallets
{
require(!vestingSet); // can only be called once
require(vestingContractInput != address(0));
vestingContract = vestingContractInput;
vestingSet = true;
}
batchAllocate keyboard_arrow_up
Modifiers help
onlyFundWallets checks for the following:
One or more of the following:
-
fundWallet2
must be equal to
the sender's address
- OR
fundWallet1
must be equal to
the sender's address
Requirements help
Source Code
function batchAllocate(address[] participants, uint256[] values)
external
onlyFundWallets
returns (uint256)
{
require(block.number < fundingEndBlock);
uint256 i = 0;
while (i < participants.length) {
allocateTokens(participants[i], values[i]);
i++;
}
return (i);
}
adjustBalance keyboard_arrow_up
Modifiers help
onlyFundWallets checks for the following:
One or more of the following:
-
fundWallet2
must be equal to
the sender's address
- OR
fundWallet1
must be equal to
the sender's address
Requirements help
vestingSet must be true
Source Code
function adjustBalance(address participant) external onlyFundWallets {
require(vestingSet);
require(block.number < fundingEndBlock);
uint256 amountTokens = balances[participant];
uint256 developmentAllocation = amountTokens.mul(25641025641025641).div(
1000000000000000000
);
uint256 removeTokens = amountTokens.add(developmentAllocation);
totalSupply_ = totalSupply_.sub(removeTokens);
balances[participant] = 0;
balances[vestingContract] = balances[vestingContract].sub(
developmentAllocation
);
emit Transfer(participant, address(0), amountTokens);
emit Transfer(vestingContract, address(0), developmentAllocation);
}
changeFundWallet1 keyboard_arrow_up
Modifiers help
onlyFundWallets checks for the following:
One or more of the following:
-
fundWallet2
must be equal to
the sender's address
- OR
fundWallet1
must be equal to
the sender's address
Requirements help
Source Code
function changeFundWallet1(address newFundWallet) external onlyFundWallets {
require(newFundWallet != address(0));
fundWallet1 = newFundWallet;
}
changeFundWallet2 keyboard_arrow_up
Modifiers help
onlyFundWallets checks for the following:
One or more of the following:
-
fundWallet2
must be equal to
the sender's address
- OR
fundWallet1
must be equal to
the sender's address
Requirements help
Source Code
function changeFundWallet2(address newFundWallet) external onlyFundWallets {
require(newFundWallet != address(0));
fundWallet2 = newFundWallet;
}
updateFundingEndBlock keyboard_arrow_up
Modifiers help
onlyFundWallets checks for the following:
One or more of the following:
-
fundWallet2
must be equal to
the sender's address
- OR
fundWallet1
must be equal to
the sender's address
Requirements help
Source Code
function updateFundingEndBlock(uint256 newFundingEndBlock)
external
onlyFundWallets
{
require(block.number < fundingEndBlock);
require(block.number < newFundingEndBlock);
fundingEndBlock = newFundingEndBlock;
}
enableTrading keyboard_arrow_up
Parameters help
This function has no parameters.
Modifiers help
onlyFundWallets checks for the following:
One or more of the following:
-
fundWallet2
must be equal to
the sender's address
- OR
fundWallet1
must be equal to
the sender's address
Requirements help
Source Code
function enableTrading() external onlyFundWallets {
require(block.number > fundingEndBlock);
tradeable = true;
}
constructor keyboard_arrow_up
claimTokens keyboard_arrow_up
Modifiers help
onlyFundWallets checks for the following:
One or more of the following:
-
fundWallet2
must be equal to
the sender's address
- OR
fundWallet1
must be equal to
the sender's address
Source Code
function claimTokens(address _token) external onlyFundWallets {
require(_token != address(0));
ERC20Basic token = ERC20Basic(_token);
uint256 balance = token.balanceOf(this);
token.transfer(fundWallet1, balance);
}
removeEth keyboard_arrow_up
Parameters help
This function has no parameters.
Modifiers help
onlyFundWallets checks for the following:
One or more of the following:
-
fundWallet2
must be equal to
the sender's address
- OR
fundWallet1
must be equal to
the sender's address
Source Code
function removeEth() external onlyFundWallets {
fundWallet1.transfer(address(this).balance);
}
burn keyboard_arrow_up
Modifiers help
onlyFundWallets checks for the following:
One or more of the following:
-
fundWallet2
must be equal to
the sender's address
- OR
fundWallet1
must be equal to
the sender's address
Requirements help
Source Code
function burn(uint256 _value) external onlyFundWallets {
require(balances[msg.sender] >= _value);
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[0x0] = balances[0x0].add(_value);
totalSupply_ = totalSupply_.sub(_value);
emit Transfer(msg.sender, 0x0, _value);
}
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 IHF.allocateTokens keyboard_arrow_up
Requirements help
vestingSet must be true
Source Code
function allocateTokens(address participant, uint256 amountTokens) private {
require(vestingSet);
// 2.5% of total allocated for Invictus Capital & Team
uint256 developmentAllocation = amountTokens.mul(25641025641025641).div(
1000000000000000000
);
uint256 newTokens = amountTokens.add(developmentAllocation);
// increase token supply, assign tokens to participant
totalSupply_ = totalSupply_.add(newTokens);
balances[participant] = balances[participant].add(amountTokens);
balances[vestingContract] = balances[vestingContract].add(
developmentAllocation
);
emit Transfer(address(0), participant, amountTokens);
emit Transfer(address(0), vestingContract, developmentAllocation);
}