Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0xBFB5D14365a78D1D51d6Ca76c85eB75e7116D009
Balance 0 ETH
Nonce 1
Code Size 3419 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

3419 bytes
0x608060405234801561001057600080fd5b50600436106101005760003560e01c806370a0823111610097578063a6a6860611610066578063a6a6860614610428578063a9059cbb14610445578063c5ac0ded14610471578063dd62ed3e1461047957610100565b806370a08231146103a257806379cc6790146103c857806395d89b41146103f4578063a457c2d7146103fc57610100565b806323b872dd116100d357806323b872dd14610305578063313ce5671461033b578063395093511461035957806342966c681461038557610100565b806306fdde0314610105578063095ea7b31461018257806318160ddd146101c25780631e89d545146101dc575b600080fd5b61010d6104a7565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014757818101518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ae6004803603604081101561019857600080fd5b506001600160a01b03813516906020013561053d565b604080519115158252519081900360200190f35b6101ca6105ba565b60408051918252519081900360200190f35b610303600480360360408110156101f257600080fd5b81019060208101813564010000000081111561020d57600080fd5b82018360208201111561021f57600080fd5b8035906020019184602083028401116401000000008311171561024157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561029157600080fd5b8201836020820111156102a357600080fd5b803590602001918460208302840111640100000000831117156102c557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506105c0945050505050565b005b6101ae6004803603606081101561031b57600080fd5b506001600160a01b0381358116916020810135909116906040013561060a565b6103436107ed565b6040805160ff9092168252519081900360200190f35b6101ae6004803603604081101561036f57600080fd5b506001600160a01b0381351690602001356107f6565b6103036004803603602081101561039b57600080fd5b50356108a4565b6101ca600480360360208110156103b857600080fd5b50356001600160a01b03166108b1565b610303600480360360408110156103de57600080fd5b506001600160a01b0381351690602001356108cc565b61010d610962565b6101ae6004803603604081101561041257600080fd5b506001600160a01b0381351690602001356109c2565b6101ca6004803603602081101561043e57600080fd5b5035610a0b565b6101ae6004803603604081101561045b57600080fd5b506001600160a01b038135169060200135610a56565b6101ca610b87565b6101ca6004803603604081101561048f57600080fd5b506001600160a01b0381358116916020013516610b8d565b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105335780601f1061050857610100808354040283529160200191610533565b820191906000526020600020905b81548152906001019060200180831161051657829003601f168201915b5050505050905090565b60006001600160a01b03831661055257600080fd5b3360008181526004602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60055490565b60005b8251811015610605576105fc8382815181106105db57fe5b60200260200101518383815181106105ef57fe5b6020026020010151610a56565b506001016105c3565b505050565b6001600160a01b03831660009081526003602052604081205482111561062f57600080fd5b6001600160a01b038416600090815260046020908152604080832033845290915290205482111561065f57600080fd5b6001600160a01b03831661067257600080fd5b6001600160a01b03841660009081526003602052604090205461069b908363ffffffff610bb816565b6001600160a01b0385166000908152600360205260408120919091556106c083610a0b565b905060006106d4848363ffffffff610bb816565b6001600160a01b038616600090815260036020526040902054909150610700908263ffffffff610bca16565b6001600160a01b03861660009081526003602052604090205560055461072c908363ffffffff610bb816565b6005556001600160a01b0386166000908152600460209081526040808320338452909152902054610763908563ffffffff610bb816565b6001600160a01b0380881660008181526004602090815260408083203384528252918290209490945580518581529051928916939192600080516020610d07833981519152929181900390910190a36040805183815290516000916001600160a01b03891691600080516020610d078339815191529181900360200190a350600195945050505050565b60025460ff1690565b60006001600160a01b03831661080b57600080fd5b3360009081526004602090815260408083206001600160a01b038716845290915290205461083f908363ffffffff610bca16565b3360008181526004602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6108ae3382610be0565b50565b6001600160a01b031660009081526003602052604090205490565b6001600160a01b03821660009081526004602090815260408083203384529091529020548111156108fc57600080fd5b6001600160a01b0382166000908152600460209081526040808320338452909152902054610930908263ffffffff610bb816565b6001600160a01b038316600090815260046020908152604080832033845290915290205561095e8282610be0565b5050565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156105335780601f1061050857610100808354040283529160200191610533565b60006001600160a01b0383166109d757600080fd5b3360009081526004602090815260408083206001600160a01b038716845290915290205461083f908363ffffffff610bb816565b600080610a2360065484610c9390919063ffffffff16565b90506000610a4e611388610a4260065485610ccd90919063ffffffff16565b9063ffffffff610cf116565b949350505050565b33600090815260036020526040812054821115610a7257600080fd5b6001600160a01b038316610a8557600080fd5b6000610a9083610a0b565b90506000610aa4848363ffffffff610bb816565b33600090815260036020526040902054909150610ac7908563ffffffff610bb816565b33600090815260036020526040808220929092556001600160a01b03871681522054610af9908263ffffffff610bca16565b6001600160a01b038616600090815260036020526040902055600554610b25908363ffffffff610bb816565b6005556040805182815290516001600160a01b038716913391600080516020610d078339815191529181900360200190a36040805183815290516000913391600080516020610d078339815191529181900360200190a3506001949350505050565b60065481565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b600082821115610bc457fe5b50900390565b600082820183811015610bd957fe5b9392505050565b80610bea57600080fd5b6001600160a01b038216600090815260036020526040902054811115610c0f57600080fd5b600554610c22908263ffffffff610bb816565b6005556001600160a01b038216600090815260036020526040902054610c4e908263ffffffff610bb816565b6001600160a01b038316600081815260036020908152604080832094909455835185815293519193600080516020610d07833981519152929081900390910190a35050565b600080610ca08484610bca565b90506000610caf826001610bb8565b9050610cc4610cbe8286610cf1565b85610ccd565b95945050505050565b600082610cdc575060006105b4565b82820282848281610ce957fe5b0414610bd957fe5b600080828481610cfd57fe5b0494935050505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa265627a7a72315820e92cd80a0f77085cbac1377f653162be29bc28c964bcd93aeee5577eb61bcd6d64736f6c63430005110032

Verified Source Code Partial Match

Compiler: v0.5.17+commit.d19bba13 EVM: istanbul Optimization: Yes (200 runs)
AntiTrust.sol 199 lines
/**
 *Submitted for verification at Etherscan.io on 2020-10-13
*/

pragma solidity ^0.5.0;

interface IERC20 {
  function totalSupply() external view returns (uint256);
  function balanceOf(address who) external view returns (uint256);
  function allowance(address owner, address spender) external view returns (uint256);
  function transfer(address to, uint256 value) external returns (bool);
  function approve(address spender, uint256 value) external returns (bool);
  function transferFrom(address from, address to, uint256 value) external returns (bool);

  event Transfer(address indexed from, address indexed to, uint256 value);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a / b;
    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 ceil(uint256 a, uint256 m) internal pure returns (uint256) {
    uint256 c = add(a,m);
    uint256 d = sub(c,1);
    return mul(div(d,m),m);
  }
}

contract ERC20Detailed is IERC20 {

  string private _name;
  string private _symbol;
  uint8 private _decimals;

  constructor(string memory name, string memory symbol, uint8 decimals) public {
    _name = name;
    _symbol = symbol;
    _decimals = decimals;
  }

  function name() public view returns(string memory) {
    return _name;
  }

  function symbol() public view returns(string memory) {
    return _symbol;
  }

  function decimals() public view returns(uint8) {
    return _decimals;
  }
}

contract AntiTrust is ERC20Detailed {

  using SafeMath for uint256;
  mapping (address => uint256) private _balances;
  mapping (address => mapping (address => uint256)) private _allowed;

  string constant tokenName = "AntiTrust";
  string constant tokenSymbol = "ANTT";
  uint8  constant tokenDecimals = 0;
  uint256 _totalSupply = 1000000;
  uint256 public basePercent = 100;

  constructor() public payable ERC20Detailed(tokenName, tokenSymbol, tokenDecimals) {
    _mint(msg.sender, _totalSupply);
  }

  function totalSupply() public view returns (uint256) {
    return _totalSupply;
  }

  function balanceOf(address owner) public view returns (uint256) {
    return _balances[owner];
  }

  function allowance(address owner, address spender) public view returns (uint256) {
    return _allowed[owner][spender];
  }

  function findOnePercent(uint256 value) public view returns (uint256)  {
    uint256 roundValue = value.ceil(basePercent);
    uint256 onePercent = roundValue.mul(basePercent).div(5000);
    return onePercent;
  }

  function transfer(address to, uint256 value) public returns (bool) {
    require(value <= _balances[msg.sender]);
    require(to != address(0));

    uint256 tokensToBurn = findOnePercent(value);
    uint256 tokensToTransfer = value.sub(tokensToBurn);

    _balances[msg.sender] = _balances[msg.sender].sub(value);
    _balances[to] = _balances[to].add(tokensToTransfer);

    _totalSupply = _totalSupply.sub(tokensToBurn);

    emit Transfer(msg.sender, to, tokensToTransfer);
    emit Transfer(msg.sender, address(0), tokensToBurn);
    return true;
  }

  function multiTransfer(address[] memory receivers, uint256[] memory amounts) public {
    for (uint256 i = 0; i < receivers.length; i++) {
      transfer(receivers[i], amounts[i]);
    }
  }

  function approve(address spender, uint256 value) public returns (bool) {
    require(spender != address(0));
    _allowed[msg.sender][spender] = value;
    emit Approval(msg.sender, spender, value);
    return true;
  }

  function transferFrom(address from, address to, uint256 value) public returns (bool) {
    require(value <= _balances[from]);
    require(value <= _allowed[from][msg.sender]);
    require(to != address(0));

    _balances[from] = _balances[from].sub(value);

    uint256 tokensToBurn = findOnePercent(value);
    uint256 tokensToTransfer = value.sub(tokensToBurn);

    _balances[to] = _balances[to].add(tokensToTransfer);
    _totalSupply = _totalSupply.sub(tokensToBurn);

    _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value);

    emit Transfer(from, to, tokensToTransfer);
    emit Transfer(from, address(0), tokensToBurn);

    return true;
  }

  function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
    require(spender != address(0));
    _allowed[msg.sender][spender] = (_allowed[msg.sender][spender].add(addedValue));
    emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
    return true;
  }

  function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
    require(spender != address(0));
    _allowed[msg.sender][spender] = (_allowed[msg.sender][spender].sub(subtractedValue));
    emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
    return true;
  }

  function _mint(address account, uint256 amount) internal {
    require(amount != 0);
    _balances[account] = _balances[account].add(amount);
    emit Transfer(address(0), account, amount);
  }

  function burn(uint256 amount) external {
    _burn(msg.sender, amount);
  }

  function _burn(address account, uint256 amount) internal {
    require(amount != 0);
    require(amount <= _balances[account]);
    _totalSupply = _totalSupply.sub(amount);
    _balances[account] = _balances[account].sub(amount);
    emit Transfer(account, address(0), amount);
  }

  function burnFrom(address account, uint256 amount) external {
    require(amount <= _allowed[account][msg.sender]);
    _allowed[account][msg.sender] = _allowed[account][msg.sender].sub(amount);
    _burn(account, amount);
  }
}

Read Contract

allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
basePercent 0xc5ac0ded → uint256
decimals 0x313ce567 → uint8
findOnePercent 0xa6a68606 → uint256
name 0x06fdde03 → string
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 8 functions

These functions modify contract state and require a wallet transaction to execute.

approve 0x095ea7b3
address spender
uint256 value
returns: bool
burn 0x42966c68
uint256 amount
burnFrom 0x79cc6790
address account
uint256 amount
decreaseAllowance 0xa457c2d7
address spender
uint256 subtractedValue
returns: bool
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
multiTransfer 0x1e89d545
address[] receivers
uint256[] amounts
transfer 0xa9059cbb
address to
uint256 value
returns: bool
transferFrom 0x23b872dd
address from
address to
uint256 value
returns: bool

Recent Transactions

No transactions found for this address