Blockwell

Credo Token

ERC20

This contract is an ERC20 token.

Name Credo Token
Symbol CREDO
Decimals 18
Total Supply 1,374,729,257 CREDO

About link description

Credo (CREDO) is a token offered by BitBounce email service and the native currency of CredoEx exchange. Meant to reduce spam, users of the BitBounce service are said to earn Credo for emails received from unfamiliar senders, and according to BitBounce.com, users also have the option to spend the Ethereum-based token in order to send unsolicited emails.

Stats

Public Functions 8
Event Types 4
Code Size 6,340 bytes

Approval Event

Parameters help
_owner
address help
_spender
address help
_value
uint256 help

CreateCredo Event

Parameters help
_to
address help
_value
uint256 help

LogRefund Event

Parameters help
_to
address help
_value
uint256 help

Transfer Event

Parameters help
_from
address help
_to
address help
_value
uint256 help

Functions Expand All Collapse All

balanceOf keyboard_arrow_up

Parameters help

Name Type
_owner
address help

Properties

Visibility help public
Mutability help constant
Source Code
    function balanceOf(address _owner) constant returns (uint256 balance) {
        return balances[_owner];
    }

transfer keyboard_arrow_up

Parameters help

Name Type
_to
address help
_value
uint256 help

Properties

Visibility help public
Mutability help transaction
Source Code
    function transfer(address _to, uint256 _value) returns (bool success) {
      if (balances[msg.sender] >= _value && _value > 0) {
        balances[msg.sender] -= _value;
        balances[_to] += _value;
        Transfer(msg.sender, _to, _value);
        return true;
      } else {
        return false;
      }
    }

transferFrom keyboard_arrow_up

Parameters help

Name Type
_from
address help
_to
address help
_value
uint256 help

Properties

Visibility help public
Mutability help transaction
Source Code
    function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
      if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0) {
        balances[_to] += _value;
        balances[_from] -= _value;
        allowed[_from][msg.sender] -= _value;
        Transfer(_from, _to, _value);
        return true;
      } else {
        return false;
      }
    }

approve keyboard_arrow_up

Parameters help

Name Type
_spender
address help
_value
uint256 help

Properties

Visibility help public
Mutability help transaction
Source Code
    function approve(address _spender, uint256 _value) returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
        return true;
    }

allowance keyboard_arrow_up

Parameters help

Name Type
_owner
address help
_spender
address help

Properties

Visibility help public
Mutability help constant
Source Code
    function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
      return allowed[_owner][_spender];
    }

createTokens keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help payable
Source Code
    function createTokens() payable external {
      if (isFinalized) throw;
      if (block.number < fundingStartBlock) throw;
      if (block.number > fundingEndBlock) throw;
      if (msg.value == 0) throw;

      uint256 tokens = safeMult(msg.value, credoEthExchangeRate);
      uint256 checkedSupply = safeAdd(totalSupply, tokens);

      if (tokenCreationCap < checkedSupply) throw;

      totalSupply = checkedSupply;
      balances[msg.sender] += tokens;
      CreateCredo(msg.sender, tokens);
    }

finalize keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
    function finalize() external {
      if (isFinalized) throw;
      if (msg.sender != etherProceedsAccount) throw;
      if (totalSupply < tokenCreationMin) throw;
      if (block.number <= fundingEndBlock && totalSupply != tokenCreationCap) throw;

      isFinalized = true;

      if (!etherProceedsAccount.send(this.balance)) throw;
    }

refund keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
    function refund() external {
      if (isFinalized) throw;
      if (block.number <= fundingEndBlock) throw;
      if (totalSupply >= tokenCreationMin) throw;
      if (msg.sender == credosReserveAccount) throw;
      uint256 credoVal = balances[msg.sender];
      if (credoVal == 0) throw;
      balances[msg.sender] = 0;
      totalSupply = safeSubtract(totalSupply, credoVal);
      uint256 ethVal = credoVal / credoEthExchangeRate;
      LogRefund(msg.sender, ethVal);
      if (!msg.sender.send(ethVal)) throw;
    }