ETH Price: $2,605.34 (+0.70%)
Gas: 1 Gwei

Contract

0x7123b1f3849F9baa25028158af50be4F0681341F
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer127003502021-06-25 1:27:211142 days ago1624584441IN
Ethex: IF Token
0 ETH0.0019736438
Transfer125537422021-06-02 7:45:201165 days ago1622619920IN
Ethex: IF Token
0 ETH0.0029632785
Transfer116574362021-01-15 4:23:051303 days ago1610684585IN
Ethex: IF Token
0 ETH0.00397633107
Transfer109570882020-09-29 11:19:121411 days ago1601378352IN
Ethex: IF Token
0 ETH0.00912205175
Transfer108197592020-09-08 7:50:171432 days ago1599551417IN
Ethex: IF Token
0 ETH0.0023768364.00000145
Transfer106637812020-08-15 9:12:551456 days ago1597482775IN
Ethex: IF Token
0 ETH0.0124117238
Transfer105947202020-08-04 17:43:031467 days ago1596562983IN
Ethex: IF Token
0 ETH0.0020797256.00000145
Transfer103718502020-07-01 6:11:131501 days ago1593583873IN
Ethex: IF Token
0 ETH0.002606950
Transfer103197522020-06-23 3:56:211509 days ago1592884581IN
Ethex: IF Token
0 ETH0.001565968
Transfer101535072020-05-28 9:49:431535 days ago1590659383IN
Ethex: IF Token
0 ETH0.001857550
Transfer100877332020-05-18 4:04:251545 days ago1589774665IN
Ethex: IF Token
0 ETH0.001858150
Transfer100805482020-05-17 1:15:331546 days ago1589678133IN
Ethex: IF Token
0 ETH0.0020797256
Transfer100724722020-05-15 19:05:111547 days ago1589569511IN
Ethex: IF Token
0 ETH0.0010782120.68000023
Transfer99666692020-04-29 9:34:541564 days ago1588152894IN
Ethex: IF Token
0 ETH0.0013002535
Transfer99661072020-04-29 7:31:081564 days ago1588145468IN
Ethex: IF Token
0 ETH0.0005940116
Transfer99090092020-04-20 11:21:201573 days ago1587381680IN
Ethex: IF Token
0 ETH0.0013006735
Transfer99088022020-04-20 10:38:321573 days ago1587379112IN
Ethex: IF Token
0 ETH0.00030228.14000023
Transfer98361742020-04-09 5:30:581584 days ago1586410258IN
Ethex: IF Token
0 ETH0.0012998335
Transfer98360502020-04-09 5:04:241584 days ago1586408664IN
Ethex: IF Token
0 ETH0.000188078.5
Transfer97967422020-04-03 4:03:391590 days ago1585886619IN
Ethex: IF Token
0 ETH0.0013006735
Transfer97932702020-04-02 15:07:091591 days ago1585840029IN
Ethex: IF Token
0 ETH0.0004456512.00000123
Transfer96586682020-03-12 19:50:281611 days ago1584042628IN
Ethex: IF Token
0 ETH0.0012998335
Transfer96558102020-03-12 9:01:011612 days ago1584003661IN
Ethex: IF Token
0 ETH0.0014103338.00000123
Transfer96280822020-03-08 2:31:091616 days ago1583634669IN
Ethex: IF Token
0 ETH0.0012998335
Transfer96280082020-03-08 2:13:571616 days ago1583633637IN
Ethex: IF Token
0 ETH0.000154967
View all transactions

Advanced mode:
Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
IFToken

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2019-04-01
*/

pragma solidity ^0.4.25;

library SafeMath {
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }

  function toUINT112(uint256 a) internal pure returns(uint112) {
    assert(uint112(a) == a);
    return uint112(a);
  }

  function toUINT120(uint256 a) internal pure returns(uint120) {
    assert(uint120(a) == a);
    return uint120(a);
  }

  function toUINT128(uint256 a) internal pure returns(uint128) {
    assert(uint128(a) == a);
    return uint128(a);
  }
}

contract ERC20Basic {
  uint256 public totalSupply;
  function balanceOf(address who) public constant returns (uint256);
  function transfer(address to, uint256 value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}

contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) public constant returns (uint256);
  function transferFrom(address from, address to, uint256 value) public returns (bool);
  function approve(address spender, uint256 value) public returns (bool);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract BasicToken is ERC20Basic {
  using SafeMath for uint256;

  mapping(address => uint256) balances;

  /**
  * @dev transfer token for a specified address
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  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;
  }

  /**
  * @dev Gets the balance of the specified address.
  * @param _owner The address to query the the balance of.
  * @return An uint256 representing the amount owned by the passed address.
  */
  function balanceOf(address _owner) public constant returns (uint256 balance) {
    return balances[_owner];
  }

}

contract StandardToken is ERC20, BasicToken {

  mapping (address => mapping (address => uint256)) internal allowed;


  /**
   * @dev Transfer tokens from one address to another
   * @param _from address The address which you want to send tokens from
   * @param _to address The address which you want to transfer to
   * @param _value uint256 the amount of tokens to be transferred
   */
  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;
  }

  /**
   * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
   *
   * Beware that changing an allowance with this method brings the risk that someone may use both the old
   * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
   * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
   * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   * @param _spender The address which will spend the funds.
   * @param _value The amount of tokens to be spent.
   */
  function approve(address _spender, uint256 _value) public returns (bool) {
    require((_value == 0) || (allowed[msg.sender][_spender] == 0));
    allowed[msg.sender][_spender] = _value;
    emit Approval(msg.sender, _spender, _value);
    return true;
  }

  /**
   * @dev Function to check the amount of tokens that an owner allowed to a spender.
   * @param _owner address The address which owns the funds.
   * @param _spender address The address which will spend the funds.
   * @return A uint256 specifying the amount of tokens still available for the spender.
   */
  function allowance(address _owner, address _spender) public constant returns (uint256 remaining) {
    return allowed[_owner][_spender];
  }

}

contract IFToken is StandardToken {

  string public constant name = "IFToken";
  string public constant symbol = "IF";
  uint8 public constant decimals = 18;


  uint256 public constant INITIAL_SUPPLY = 2400000000 * (10 ** uint256(decimals));
  
  constructor() public {
    totalSupply = INITIAL_SUPPLY;
    balances[msg.sender] = INITIAL_SUPPLY;
    emit Transfer(msg.sender, msg.sender, INITIAL_SUPPLY);
  }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

608060405234801561001057600080fd5b506b07c13bc4b2c133c5600000006000818155338082526001602090815260409283902084905582519384529151909283927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a361069d8061007a6000396000f3006080604052600436106100a35763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100a8578063095ea7b31461013257806318160ddd1461016a57806323b872dd146101915780632ff2e9dc146101bb578063313ce567146101d057806370a08231146101fb57806395d89b411461021c578063a9059cbb14610231578063dd62ed3e14610255575b600080fd5b3480156100b457600080fd5b506100bd61027c565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100f75781810151838201526020016100df565b50505050905090810190601f1680156101245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561013e57600080fd5b50610156600160a060020a03600435166024356102b3565b604080519115158252519081900360200190f35b34801561017657600080fd5b5061017f610355565b60408051918252519081900360200190f35b34801561019d57600080fd5b50610156600160a060020a036004358116906024351660443561035b565b3480156101c757600080fd5b5061017f6104d4565b3480156101dc57600080fd5b506101e56104e4565b6040805160ff9092168252519081900360200190f35b34801561020757600080fd5b5061017f600160a060020a03600435166104e9565b34801561022857600080fd5b506100bd610504565b34801561023d57600080fd5b50610156600160a060020a036004351660243561053b565b34801561026157600080fd5b5061017f600160a060020a036004358116906024351661061e565b60408051808201909152600781527f4946546f6b656e00000000000000000000000000000000000000000000000000602082015281565b60008115806102e35750336000908152600260209081526040808320600160a060020a0387168452909152902054155b15156102ee57600080fd5b336000818152600260209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60005481565b6000600160a060020a038316151561037257600080fd5b600160a060020a03841660009081526001602052604090205482111561039757600080fd5b600160a060020a03841660009081526002602090815260408083203384529091529020548211156103c757600080fd5b600160a060020a0384166000908152600160205260409020546103f0908363ffffffff61064916565b600160a060020a038086166000908152600160205260408082209390935590851681522054610425908363ffffffff61065b16565b600160a060020a038085166000908152600160209081526040808320949094559187168152600282528281203382529091522054610469908363ffffffff61064916565b600160a060020a03808616600081815260026020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b6b07c13bc4b2c133c56000000081565b601281565b600160a060020a031660009081526001602052604090205490565b60408051808201909152600281527f4946000000000000000000000000000000000000000000000000000000000000602082015281565b6000600160a060020a038316151561055257600080fd5b3360009081526001602052604090205482111561056e57600080fd5b3360009081526001602052604090205461058e908363ffffffff61064916565b3360009081526001602052604080822092909255600160a060020a038516815220546105c0908363ffffffff61065b16565b600160a060020a0384166000818152600160209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60008282111561065557fe5b50900390565b60008282018381101561066a57fe5b93925050505600a165627a7a72305820109244b8726a7fe1a5ea9ae4e7d11fd6f658af09a44f5ca238f89449f5013ad10029

Deployed Bytecode

0x6080604052600436106100a35763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100a8578063095ea7b31461013257806318160ddd1461016a57806323b872dd146101915780632ff2e9dc146101bb578063313ce567146101d057806370a08231146101fb57806395d89b411461021c578063a9059cbb14610231578063dd62ed3e14610255575b600080fd5b3480156100b457600080fd5b506100bd61027c565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100f75781810151838201526020016100df565b50505050905090810190601f1680156101245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561013e57600080fd5b50610156600160a060020a03600435166024356102b3565b604080519115158252519081900360200190f35b34801561017657600080fd5b5061017f610355565b60408051918252519081900360200190f35b34801561019d57600080fd5b50610156600160a060020a036004358116906024351660443561035b565b3480156101c757600080fd5b5061017f6104d4565b3480156101dc57600080fd5b506101e56104e4565b6040805160ff9092168252519081900360200190f35b34801561020757600080fd5b5061017f600160a060020a03600435166104e9565b34801561022857600080fd5b506100bd610504565b34801561023d57600080fd5b50610156600160a060020a036004351660243561053b565b34801561026157600080fd5b5061017f600160a060020a036004358116906024351661061e565b60408051808201909152600781527f4946546f6b656e00000000000000000000000000000000000000000000000000602082015281565b60008115806102e35750336000908152600260209081526040808320600160a060020a0387168452909152902054155b15156102ee57600080fd5b336000818152600260209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60005481565b6000600160a060020a038316151561037257600080fd5b600160a060020a03841660009081526001602052604090205482111561039757600080fd5b600160a060020a03841660009081526002602090815260408083203384529091529020548211156103c757600080fd5b600160a060020a0384166000908152600160205260409020546103f0908363ffffffff61064916565b600160a060020a038086166000908152600160205260408082209390935590851681522054610425908363ffffffff61065b16565b600160a060020a038085166000908152600160209081526040808320949094559187168152600282528281203382529091522054610469908363ffffffff61064916565b600160a060020a03808616600081815260026020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b6b07c13bc4b2c133c56000000081565b601281565b600160a060020a031660009081526001602052604090205490565b60408051808201909152600281527f4946000000000000000000000000000000000000000000000000000000000000602082015281565b6000600160a060020a038316151561055257600080fd5b3360009081526001602052604090205482111561056e57600080fd5b3360009081526001602052604090205461058e908363ffffffff61064916565b3360009081526001602052604080822092909255600160a060020a038516815220546105c0908363ffffffff61065b16565b600160a060020a0384166000818152600160209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60008282111561065557fe5b50900390565b60008282018381101561066a57fe5b93925050505600a165627a7a72305820109244b8726a7fe1a5ea9ae4e7d11fd6f658af09a44f5ca238f89449f5013ad10029

Swarm Source

bzzr://109244b8726a7fe1a5ea9ae4e7d11fd6f658af09a44f5ca238f89449f5013ad1

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.