ERC-20
Source Code
Overview
Max Total Supply
15,000,000,000 ERC-20 TOKEN*
Holders
5,176
Transfers
-
0 (0%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 8 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
Penchant
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*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
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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"}]Contract Creation Code
608060405260018054600160a060020a031916331790556714d1120d7b1600006004556005805460ff1916905534801561003857600080fd5b5060018054600160a060020a0319163390811790915560045460009182526002602052604090912055610a49806100706000396000f3006080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100df578063095ea7b31461016957806318160ddd146101a157806323b872dd146101c8578063313ce567146101f25780634d2301cc1461021d57806370a082311461023e57806395d89b411461025f5780639b1cbccc14610274578063a9059cbb14610289578063c108d542146102ad578063dba01cfe146102c2578063dd62ed3e14610322578063e58fc54c14610349578063f2fde38b1461036a575b600080fd5b3480156100eb57600080fd5b506100f461038b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012e578181015183820152602001610116565b50505050905090810190601f16801561015b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017557600080fd5b5061018d600160a060020a03600435166024356103c2565b604080519115158252519081900360200190f35b3480156101ad57600080fd5b506101b661046a565b60408051918252519081900360200190f35b3480156101d457600080fd5b5061018d600160a060020a0360043581169060243516604435610470565b3480156101fe57600080fd5b50610207610594565b6040805160ff9092168252519081900360200190f35b34801561022957600080fd5b506101b6600160a060020a0360043516610599565b34801561024a57600080fd5b506101b6600160a060020a03600435166105a6565b34801561026b57600080fd5b506100f46105c1565b34801561028057600080fd5b5061018d6105f8565b34801561029557600080fd5b5061018d600160a060020a036004351660243561064e565b3480156102b957600080fd5b5061018d610720565b3480156102ce57600080fd5b5060408051602060048035808201358381028086018501909652808552610320953695939460249493850192918291850190849080828437509497505084359550505060209092013591506107299050565b005b34801561032e57600080fd5b506101b6600160a060020a0360043581169060243516610858565b34801561035557600080fd5b5061018d600160a060020a0360043516610883565b34801561037657600080fd5b50610320600160a060020a03600435166109d7565b60408051808201909152600e81527f50656e6368616e7420546f6b656e000000000000000000000000000000000000602082015290565b600081158015906103f55750336000908152600360209081526040808320600160a060020a038716845290915290205415155b1561040257506000610464565b336000818152600360209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60045481565b60006060606436101561047f57fe5b600160a060020a03851660009081526002602052604090205483118015906104ca5750600160a060020a03851660009081526003602090815260408083203384529091529020548311155b80156104d65750600083115b80156104fb5750600160a060020a038416600090815260026020526040902054838101115b1561058757600160a060020a03808616600081815260026020818152604080842080548a9003905560038252808420338552825280842080548a90039055948916808452918152918490208054880190558351878152935190937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92908290030190a36001915061058c565b600091505b509392505050565b600890565b600160a060020a03163190565b600160a060020a031660009081526002602052604090205490565b60408051808201909152600481527f50454e5400000000000000000000000000000000000000000000000000000000602082015290565b600154600090600160a060020a0316331461061257600080fd5b6005805460ff191660011790556040517f7f95d919e78bdebe8a285e6e33357c2fcb65ccf66e72d7573f9f8f6caad0c4cc90600090a150600190565b60006040604436101561065d57fe5b33600090815260026020526040902054831180159061067c5750600083115b80156106a15750600160a060020a038416600090815260026020526040902054838101115b156107145733600081815260026020908152604080832080548890039055600160a060020a03881680845292819020805488019055805187815290519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a360019150610719565b600091505b5092915050565b60055460ff1681565b600154600090600160a060020a0316331461074357600080fd5b60055460ff161561075357600080fd5b5060005b83518110156108525781610781858381518110151561077257fe5b90602001906020020151610599565b101561078c5761084a565b600154600160a060020a0316600090815260026020819052604082208054869003905585518592908790859081106107c057fe5b6020908102909101810151600160a060020a031682528101919091526040016000208054909101905583518490829081106107f757fe5b602090810291909101810151600154604080518781529051600160a060020a039384169493909216927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35b600101610757565b50505050565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b60015460009081908190600160a060020a031633146108a157600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051859350600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561090557600080fd5b505af1158015610919573d6000803e3d6000fd5b505050506040513d602081101561092f57600080fd5b5051600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810184905290519293509084169163a9059cbb916044808201926020929091908290030181600087803b1580156109a357600080fd5b505af11580156109b7573d6000803e3d6000fd5b505050506040513d60208110156109cd57600080fd5b5051949350505050565b600154600160a060020a031633146109ee57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a723058205b8700d33ccc766bf683478644973c2a5b73c8abbd83285a603fdf1ec3b12a4b0029
Deployed Bytecode
0x6080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100df578063095ea7b31461016957806318160ddd146101a157806323b872dd146101c8578063313ce567146101f25780634d2301cc1461021d57806370a082311461023e57806395d89b411461025f5780639b1cbccc14610274578063a9059cbb14610289578063c108d542146102ad578063dba01cfe146102c2578063dd62ed3e14610322578063e58fc54c14610349578063f2fde38b1461036a575b600080fd5b3480156100eb57600080fd5b506100f461038b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012e578181015183820152602001610116565b50505050905090810190601f16801561015b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017557600080fd5b5061018d600160a060020a03600435166024356103c2565b604080519115158252519081900360200190f35b3480156101ad57600080fd5b506101b661046a565b60408051918252519081900360200190f35b3480156101d457600080fd5b5061018d600160a060020a0360043581169060243516604435610470565b3480156101fe57600080fd5b50610207610594565b6040805160ff9092168252519081900360200190f35b34801561022957600080fd5b506101b6600160a060020a0360043516610599565b34801561024a57600080fd5b506101b6600160a060020a03600435166105a6565b34801561026b57600080fd5b506100f46105c1565b34801561028057600080fd5b5061018d6105f8565b34801561029557600080fd5b5061018d600160a060020a036004351660243561064e565b3480156102b957600080fd5b5061018d610720565b3480156102ce57600080fd5b5060408051602060048035808201358381028086018501909652808552610320953695939460249493850192918291850190849080828437509497505084359550505060209092013591506107299050565b005b34801561032e57600080fd5b506101b6600160a060020a0360043581169060243516610858565b34801561035557600080fd5b5061018d600160a060020a0360043516610883565b34801561037657600080fd5b50610320600160a060020a03600435166109d7565b60408051808201909152600e81527f50656e6368616e7420546f6b656e000000000000000000000000000000000000602082015290565b600081158015906103f55750336000908152600360209081526040808320600160a060020a038716845290915290205415155b1561040257506000610464565b336000818152600360209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60045481565b60006060606436101561047f57fe5b600160a060020a03851660009081526002602052604090205483118015906104ca5750600160a060020a03851660009081526003602090815260408083203384529091529020548311155b80156104d65750600083115b80156104fb5750600160a060020a038416600090815260026020526040902054838101115b1561058757600160a060020a03808616600081815260026020818152604080842080548a9003905560038252808420338552825280842080548a90039055948916808452918152918490208054880190558351878152935190937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92908290030190a36001915061058c565b600091505b509392505050565b600890565b600160a060020a03163190565b600160a060020a031660009081526002602052604090205490565b60408051808201909152600481527f50454e5400000000000000000000000000000000000000000000000000000000602082015290565b600154600090600160a060020a0316331461061257600080fd5b6005805460ff191660011790556040517f7f95d919e78bdebe8a285e6e33357c2fcb65ccf66e72d7573f9f8f6caad0c4cc90600090a150600190565b60006040604436101561065d57fe5b33600090815260026020526040902054831180159061067c5750600083115b80156106a15750600160a060020a038416600090815260026020526040902054838101115b156107145733600081815260026020908152604080832080548890039055600160a060020a03881680845292819020805488019055805187815290519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a360019150610719565b600091505b5092915050565b60055460ff1681565b600154600090600160a060020a0316331461074357600080fd5b60055460ff161561075357600080fd5b5060005b83518110156108525781610781858381518110151561077257fe5b90602001906020020151610599565b101561078c5761084a565b600154600160a060020a0316600090815260026020819052604082208054869003905585518592908790859081106107c057fe5b6020908102909101810151600160a060020a031682528101919091526040016000208054909101905583518490829081106107f757fe5b602090810291909101810151600154604080518781529051600160a060020a039384169493909216927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35b600101610757565b50505050565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b60015460009081908190600160a060020a031633146108a157600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051859350600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561090557600080fd5b505af1158015610919573d6000803e3d6000fd5b505050506040513d602081101561092f57600080fd5b5051600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810184905290519293509084169163a9059cbb916044808201926020929091908290030181600087803b1580156109a357600080fd5b505af11580156109b7573d6000803e3d6000fd5b505050506040513d60208110156109cd57600080fd5b5051949350505050565b600154600160a060020a031633146109ee57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a723058205b8700d33ccc766bf683478644973c2a5b73c8abbd83285a603fdf1ec3b12a4b0029
Swarm Source
bzzr://5b8700d33ccc766bf683478644973c2a5b73c8abbd83285a603fdf1ec3b12a4b
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)