ETH Price: $3,427.09 (-1.58%)
Gas: 7 Gwei

Contract

0x70aa2BA250E71850B457E5DAe83fE0E883a4c3A5
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer184309392023-10-26 0:52:35266 days ago1698281555IN
0x70aa2BA2...883a4c3A5
0 ETH0.001060520.46470107
Transfer156810152022-10-05 9:29:23651 days ago1664962163IN
0x70aa2BA2...883a4c3A5
0 ETH0.000259285.00237111
Transfer144665532022-03-27 6:14:40843 days ago1648361680IN
0x70aa2BA2...883a4c3A5
0 ETH0.0013444128.59174268
Transfer135825782021-11-09 14:05:21981 days ago1636466721IN
0x70aa2BA2...883a4c3A5
0 ETH0.01024602197.67373835
Transfer133001142021-09-26 7:30:031025 days ago1632641403IN
0x70aa2BA2...883a4c3A5
0 ETH0.00605152116.77741265
Transfer128931152021-07-25 3:43:041088 days ago1627184584IN
0x70aa2BA2...883a4c3A5
0 ETH0.0006736713
Approve126588262021-06-18 14:06:401125 days ago1624025200IN
0x70aa2BA2...883a4c3A5
0 ETH0.0008868619.00000145
Transfer125933342021-06-08 10:28:131135 days ago1623148093IN
0x70aa2BA2...883a4c3A5
0 ETH0.0005700311
Transfer124039052021-05-10 2:28:071165 days ago1620613687IN
0x70aa2BA2...883a4c3A5
0 ETH0.00595941115
Transfer123987352021-05-09 7:08:351165 days ago1620544115IN
0x70aa2BA2...883a4c3A5
0 ETH0.0064221123.9
Transfer122650012021-04-18 15:54:421186 days ago1618761282IN
0x70aa2BA2...883a4c3A5
0 ETH0.00678855131
Transfer121164072021-03-26 18:57:021209 days ago1616785022IN
0x70aa2BA2...883a4c3A5
0 ETH0.00748808142.00000145
Transfer118469372021-02-13 7:25:161250 days ago1613201116IN
0x70aa2BA2...883a4c3A5
0 ETH0.00574789109
Transfer113076702020-11-22 11:13:491333 days ago1606043629IN
0x70aa2BA2...883a4c3A5
0 ETH0.0015872630.1
Approve111657062020-10-31 16:14:201355 days ago1604160860IN
0x70aa2BA2...883a4c3A5
0 ETH0.0021214347
Approve110753952020-10-17 19:45:421369 days ago1602963942IN
0x70aa2BA2...883a4c3A5
0 ETH0.0009027420
Approve109484032020-09-28 2:35:171389 days ago1601260517IN
0x70aa2BA2...883a4c3A5
0 ETH0.0025276756
Approve109209572020-09-23 20:22:041393 days ago1600892524IN
0x70aa2BA2...883a4c3A5
0 ETH0.0027190960.24096385
Transfer109106662020-09-22 6:20:211394 days ago1600755621IN
0x70aa2BA2...883a4c3A5
0 ETH0.0044295784
Transfer107702582020-08-31 18:14:531416 days ago1598897693IN
0x70aa2BA2...883a4c3A5
0 ETH0.01044871277
Transfer107369452020-08-26 15:38:411421 days ago1598456321IN
0x70aa2BA2...883a4c3A5
0 ETH0.0051139397
Transfer103426982020-06-26 17:07:531482 days ago1593191273IN
0x70aa2BA2...883a4c3A5
0 ETH0.0021088440
Transfer103303992020-06-24 19:31:101484 days ago1593027070IN
0x70aa2BA2...883a4c3A5
0 ETH0.0014937539.6
Transfer102906572020-06-18 16:07:401490 days ago1592496460IN
0x70aa2BA2...883a4c3A5
0 ETH0.0015083640
Transfer102905762020-06-18 15:50:261490 days ago1592495426IN
0x70aa2BA2...883a4c3A5
0 ETH0.0015078840
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Penchant

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-09-03
*/

pragma solidity ^0.4.24;

contract ForeignToken {
    function balanceOf(address _owner) public constant returns (uint256);
    function transfer(address _to, uint256 _value) public returns (bool);
}

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 Penchant is ERC20 {
    
    address owner = msg.sender;

    mapping (address => uint256) balances;
    mapping (address => mapping (address => uint256)) allowed;
    
    uint256 public totalSupply = 15000000000 * 10**8;

    function name() public constant returns (string) { return "Penchant Token"; }
    function symbol() public constant returns (string) { return "PENT"; }
    function decimals() public constant returns (uint8) { return 8; }

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);

    event DistrFinished();

    bool public distributionFinished = false;

    modifier canDistr() {
    require(!distributionFinished);
    _;
    }

    function Penchant() public {
        owner = msg.sender;
        balances[msg.sender] = totalSupply;
    }

    modifier onlyOwner { 
        require(msg.sender == owner);
        _;
    }

    function transferOwnership(address newOwner) onlyOwner public {
        owner = newOwner;
    }

    function getEthBalance(address _addr) constant public returns(uint) {
    return _addr.balance;
    }

    function distributePENT(address[] addresses, uint256 _value, uint256 _ethbal) onlyOwner canDistr public {
         for (uint i = 0; i < addresses.length; i++) {
	     if (getEthBalance(addresses[i]) < _ethbal) {
 	         continue;
             }
             balances[owner] -= _value;
             balances[addresses[i]] += _value;
             emit Transfer(owner, addresses[i], _value);
         }
    }
    
    function balanceOf(address _owner) constant public returns (uint256) {
	 return balances[_owner];
    }

    // mitigates the ERC20 short address attack
    modifier onlyPayloadSize(uint size) {
        assert(msg.data.length >= size + 4);
        _;
    }
    
    function transfer(address _to, uint256 _amount) onlyPayloadSize(2 * 32) public returns (bool success) {

         if (balances[msg.sender] >= _amount
             && _amount > 0
             && balances[_to] + _amount > balances[_to]) {
             balances[msg.sender] -= _amount;
             balances[_to] += _amount;
             emit Transfer(msg.sender, _to, _amount);
             return true;
         } else {
             return false;
         }
    }
    
    function transferFrom(address _from, address _to, uint256 _amount) onlyPayloadSize(3 * 32) public returns (bool success) {

         if (balances[_from] >= _amount
             && allowed[_from][msg.sender] >= _amount
             && _amount > 0
             && balances[_to] + _amount > balances[_to]) {
             balances[_from] -= _amount;
             allowed[_from][msg.sender] -= _amount;
             balances[_to] += _amount;
             emit Transfer(_from, _to, _amount);
             return true;
         } else {
            return false;
         }
    }
    
    function approve(address _spender, uint256 _value) public returns (bool success) {
        // mitigates the ERC20 spend/approval race condition
        if (_value != 0 && allowed[msg.sender][_spender] != 0) { return false; }
        
        allowed[msg.sender][_spender] = _value;
        
        emit Approval(msg.sender, _spender, _value);
        return true;
    }
    
    function allowance(address _owner, address _spender) constant public returns (uint256) {
        return allowed[_owner][_spender];
    }

    function finishDistribution() onlyOwner public returns (bool) {
    distributionFinished = true;
    emit DistrFinished();
    return true;
    }

    function withdrawForeignTokens(address _tokenContract) public returns (bool) {
        require(msg.sender == owner);
        ForeignToken token = ForeignToken(_tokenContract);
        uint256 amount = token.balanceOf(address(this));
        return token.transfer(owner, amount);
    }

}

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":"success","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":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"getEthBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","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":"finishDistribution","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"distributionFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addresses","type":"address[]"},{"name":"_value","type":"uint256"},{"name":"_ethbal","type":"uint256"}],"name":"distributePENT","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenContract","type":"address"}],"name":"withdrawForeignTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"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"},{"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":[],"name":"DistrFinished","type":"event"}]

608060405260018054600160a060020a031916331790556714d1120d7b1600006004556005805460ff1916905534801561003857600080fd5b5060018054600160a060020a0319163390811790915560045460009182526002602052604090912055610a49806100706000396000f3006080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100df578063095ea7b31461016957806318160ddd146101a157806323b872dd146101c8578063313ce567146101f25780634d2301cc1461021d57806370a082311461023e57806395d89b411461025f5780639b1cbccc14610274578063a9059cbb14610289578063c108d542146102ad578063dba01cfe146102c2578063dd62ed3e14610322578063e58fc54c14610349578063f2fde38b1461036a575b600080fd5b3480156100eb57600080fd5b506100f461038b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012e578181015183820152602001610116565b50505050905090810190601f16801561015b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017557600080fd5b5061018d600160a060020a03600435166024356103c2565b604080519115158252519081900360200190f35b3480156101ad57600080fd5b506101b661046a565b60408051918252519081900360200190f35b3480156101d457600080fd5b5061018d600160a060020a0360043581169060243516604435610470565b3480156101fe57600080fd5b50610207610594565b6040805160ff9092168252519081900360200190f35b34801561022957600080fd5b506101b6600160a060020a0360043516610599565b34801561024a57600080fd5b506101b6600160a060020a03600435166105a6565b34801561026b57600080fd5b506100f46105c1565b34801561028057600080fd5b5061018d6105f8565b34801561029557600080fd5b5061018d600160a060020a036004351660243561064e565b3480156102b957600080fd5b5061018d610720565b3480156102ce57600080fd5b5060408051602060048035808201358381028086018501909652808552610320953695939460249493850192918291850190849080828437509497505084359550505060209092013591506107299050565b005b34801561032e57600080fd5b506101b6600160a060020a0360043581169060243516610858565b34801561035557600080fd5b5061018d600160a060020a0360043516610883565b34801561037657600080fd5b50610320600160a060020a03600435166109d7565b60408051808201909152600e81527f50656e6368616e7420546f6b656e000000000000000000000000000000000000602082015290565b600081158015906103f55750336000908152600360209081526040808320600160a060020a038716845290915290205415155b1561040257506000610464565b336000818152600360209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60045481565b60006060606436101561047f57fe5b600160a060020a03851660009081526002602052604090205483118015906104ca5750600160a060020a03851660009081526003602090815260408083203384529091529020548311155b80156104d65750600083115b80156104fb5750600160a060020a038416600090815260026020526040902054838101115b1561058757600160a060020a03808616600081815260026020818152604080842080548a9003905560038252808420338552825280842080548a90039055948916808452918152918490208054880190558351878152935190937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92908290030190a36001915061058c565b600091505b509392505050565b600890565b600160a060020a03163190565b600160a060020a031660009081526002602052604090205490565b60408051808201909152600481527f50454e5400000000000000000000000000000000000000000000000000000000602082015290565b600154600090600160a060020a0316331461061257600080fd5b6005805460ff191660011790556040517f7f95d919e78bdebe8a285e6e33357c2fcb65ccf66e72d7573f9f8f6caad0c4cc90600090a150600190565b60006040604436101561065d57fe5b33600090815260026020526040902054831180159061067c5750600083115b80156106a15750600160a060020a038416600090815260026020526040902054838101115b156107145733600081815260026020908152604080832080548890039055600160a060020a03881680845292819020805488019055805187815290519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a360019150610719565b600091505b5092915050565b60055460ff1681565b600154600090600160a060020a0316331461074357600080fd5b60055460ff161561075357600080fd5b5060005b83518110156108525781610781858381518110151561077257fe5b90602001906020020151610599565b101561078c5761084a565b600154600160a060020a0316600090815260026020819052604082208054869003905585518592908790859081106107c057fe5b6020908102909101810151600160a060020a031682528101919091526040016000208054909101905583518490829081106107f757fe5b602090810291909101810151600154604080518781529051600160a060020a039384169493909216927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35b600101610757565b50505050565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b60015460009081908190600160a060020a031633146108a157600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051859350600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561090557600080fd5b505af1158015610919573d6000803e3d6000fd5b505050506040513d602081101561092f57600080fd5b5051600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810184905290519293509084169163a9059cbb916044808201926020929091908290030181600087803b1580156109a357600080fd5b505af11580156109b7573d6000803e3d6000fd5b505050506040513d60208110156109cd57600080fd5b5051949350505050565b600154600160a060020a031633146109ee57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a723058205b8700d33ccc766bf683478644973c2a5b73c8abbd83285a603fdf1ec3b12a4b0029

Deployed Bytecode

0x6080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100df578063095ea7b31461016957806318160ddd146101a157806323b872dd146101c8578063313ce567146101f25780634d2301cc1461021d57806370a082311461023e57806395d89b411461025f5780639b1cbccc14610274578063a9059cbb14610289578063c108d542146102ad578063dba01cfe146102c2578063dd62ed3e14610322578063e58fc54c14610349578063f2fde38b1461036a575b600080fd5b3480156100eb57600080fd5b506100f461038b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012e578181015183820152602001610116565b50505050905090810190601f16801561015b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017557600080fd5b5061018d600160a060020a03600435166024356103c2565b604080519115158252519081900360200190f35b3480156101ad57600080fd5b506101b661046a565b60408051918252519081900360200190f35b3480156101d457600080fd5b5061018d600160a060020a0360043581169060243516604435610470565b3480156101fe57600080fd5b50610207610594565b6040805160ff9092168252519081900360200190f35b34801561022957600080fd5b506101b6600160a060020a0360043516610599565b34801561024a57600080fd5b506101b6600160a060020a03600435166105a6565b34801561026b57600080fd5b506100f46105c1565b34801561028057600080fd5b5061018d6105f8565b34801561029557600080fd5b5061018d600160a060020a036004351660243561064e565b3480156102b957600080fd5b5061018d610720565b3480156102ce57600080fd5b5060408051602060048035808201358381028086018501909652808552610320953695939460249493850192918291850190849080828437509497505084359550505060209092013591506107299050565b005b34801561032e57600080fd5b506101b6600160a060020a0360043581169060243516610858565b34801561035557600080fd5b5061018d600160a060020a0360043516610883565b34801561037657600080fd5b50610320600160a060020a03600435166109d7565b60408051808201909152600e81527f50656e6368616e7420546f6b656e000000000000000000000000000000000000602082015290565b600081158015906103f55750336000908152600360209081526040808320600160a060020a038716845290915290205415155b1561040257506000610464565b336000818152600360209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60045481565b60006060606436101561047f57fe5b600160a060020a03851660009081526002602052604090205483118015906104ca5750600160a060020a03851660009081526003602090815260408083203384529091529020548311155b80156104d65750600083115b80156104fb5750600160a060020a038416600090815260026020526040902054838101115b1561058757600160a060020a03808616600081815260026020818152604080842080548a9003905560038252808420338552825280842080548a90039055948916808452918152918490208054880190558351878152935190937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92908290030190a36001915061058c565b600091505b509392505050565b600890565b600160a060020a03163190565b600160a060020a031660009081526002602052604090205490565b60408051808201909152600481527f50454e5400000000000000000000000000000000000000000000000000000000602082015290565b600154600090600160a060020a0316331461061257600080fd5b6005805460ff191660011790556040517f7f95d919e78bdebe8a285e6e33357c2fcb65ccf66e72d7573f9f8f6caad0c4cc90600090a150600190565b60006040604436101561065d57fe5b33600090815260026020526040902054831180159061067c5750600083115b80156106a15750600160a060020a038416600090815260026020526040902054838101115b156107145733600081815260026020908152604080832080548890039055600160a060020a03881680845292819020805488019055805187815290519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a360019150610719565b600091505b5092915050565b60055460ff1681565b600154600090600160a060020a0316331461074357600080fd5b60055460ff161561075357600080fd5b5060005b83518110156108525781610781858381518110151561077257fe5b90602001906020020151610599565b101561078c5761084a565b600154600160a060020a0316600090815260026020819052604082208054869003905585518592908790859081106107c057fe5b6020908102909101810151600160a060020a031682528101919091526040016000208054909101905583518490829081106107f757fe5b602090810291909101810151600154604080518781529051600160a060020a039384169493909216927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35b600101610757565b50505050565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b60015460009081908190600160a060020a031633146108a157600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051859350600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561090557600080fd5b505af1158015610919573d6000803e3d6000fd5b505050506040513d602081101561092f57600080fd5b5051600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810184905290519293509084169163a9059cbb916044808201926020929091908290030181600087803b1580156109a357600080fd5b505af11580156109b7573d6000803e3d6000fd5b505050506040513d60208110156109cd57600080fd5b5051949350505050565b600154600160a060020a031633146109ee57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a723058205b8700d33ccc766bf683478644973c2a5b73c8abbd83285a603fdf1ec3b12a4b0029

Swarm Source

bzzr://5b8700d33ccc766bf683478644973c2a5b73c8abbd83285a603fdf1ec3b12a4b

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.