Address Contract Partially Verified
Address
0xAdEBeaFcdCf5De0a5A7f7dfdd467B0e9fb205BE9
Balance
0 ETH
Nonce
1
Code Size
3997 bytes
Creator
0xE08ED96e...4eCB at tx 0xcfa905cc...24e550
Last Active
Indexed Transactions
5 (10,625,652 → 10,703,740)
Gas Used (indexed)
241,356
Contract Bytecode
3997 bytes
0x6080604052600436106101265763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041662cab8b1811461012b57806306fdde0314610151578063095ea7b3146101db57806318160ddd1461021357806323b872dd1461023a578063313ce5671461026457806334a90d021461028f5780633f4ba83a146102b057806342966c68146102c55780635c975abb146102dd57806366188463146102f257806370a08231146103165780638456cb59146103375780638da5cb5b1461034c57806395d89b411461037d578063a0da7d2e14610392578063a9059cbb146103b3578063b7eb5e0a146103d7578063d73dd623146103f8578063dd62ed3e1461041c578063e960bb4814610443578063f2fde38b14610464575b600080fd5b34801561013757600080fd5b5061014f600160a060020a0360043516602435610485565b005b34801561015d57600080fd5b506101666104bc565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101a0578181015183820152602001610188565b50505050905090810190601f1680156101cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101e757600080fd5b506101ff600160a060020a0360043516602435610549565b604080519115158252519081900360200190f35b34801561021f57600080fd5b506102286105dd565b60408051918252519081900360200190f35b34801561024657600080fd5b506101ff600160a060020a03600435811690602435166044356105e3565b34801561027057600080fd5b5061027961081e565b6040805160ff9092168252519081900360200190f35b34801561029b57600080fd5b5061014f600160a060020a0360043516610827565b3480156102bc57600080fd5b5061014f610866565b3480156102d157600080fd5b5061014f6004356108c8565b3480156102e957600080fd5b506101ff61097d565b3480156102fe57600080fd5b506101ff600160a060020a036004351660243561098d565b34801561032257600080fd5b50610228600160a060020a0360043516610ab5565b34801561034357600080fd5b5061014f610ad0565b34801561035857600080fd5b50610361610b38565b60408051600160a060020a039092168252519081900360200190f35b34801561038957600080fd5b50610166610b47565b34801561039e57600080fd5b506101ff600160a060020a0360043516610b9f565b3480156103bf57600080fd5b506101ff600160a060020a0360043516602435610bb4565b3480156103e357600080fd5b5061014f600160a060020a0360043516610d6a565b34801561040457600080fd5b506101ff600160a060020a0360043516602435610da6565b34801561042857600080fd5b50610228600160a060020a0360043581169060243516610e74565b34801561044f57600080fd5b50610228600160a060020a0360043516610e9f565b34801561047057600080fd5b5061014f600160a060020a0360043516610eb1565b60005433600160a060020a039081169116146104a057600080fd5b600160a060020a03909116600090815260076020526040902055565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105415780601f1061051657610100808354040283529160200191610541565b820191906000526020600020905b81548152906001019060200180831161052457829003601f168201915b505050505081565b6000805433600160a060020a039081169116146105775760005460a060020a900460ff161561057757600080fd5b600160a060020a03338116600081815260066020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a350600192915050565b60045481565b600160a060020a0383166000908152600860205260408120548490839060ff161561060d57600080fd5b600160a060020a038216600090815260076020908152604080832054600590925290912054101561063d57600080fd5b600160a060020a0382166000908152600760209081526040808320546005909252909120540381111561066f57600080fd5b60005433600160a060020a0390811691161461069c5760005460a060020a900460ff161561069c57600080fd5b600160a060020a03851615156106b157600080fd5b600160a060020a0386166000908152600560205260409020548411156106d657600080fd5b600160a060020a038087166000908152600660209081526040808320339094168352929052205484111561070957600080fd5b600160a060020a038616600090815260056020526040902054610732908563ffffffff610f4916565b600160a060020a038088166000908152600560205260408082209390935590871681522054610767908563ffffffff610f5b16565b600160a060020a038087166000908152600560209081526040808320949094558983168252600681528382203390931682529190915220546107af908563ffffffff610f4916565b600160a060020a038088166000818152600660209081526040808320338616845282529182902094909455805188815290519289169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350600195945050505050565b60035460ff1681565b60005433600160a060020a0390811691161461084257600080fd5b600160a060020a03166000908152600860205260409020805460ff19166001179055565b60005433600160a060020a0390811691161461088157600080fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b60005433600160a060020a039081169116146108e357600080fd5b60008054600160a060020a031681526005602052604090205461090c908263ffffffff610f4916565b60008054600160a060020a0316815260056020526040902055600454610938908263ffffffff610f4916565b600455604080518281529051600160a060020a033316917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a250565b60005460a060020a900460ff1681565b60008054819033600160a060020a039081169116146109bd5760005460a060020a900460ff16156109bd57600080fd5b50600160a060020a0333811660009081526006602090815260408083209387168352929052205480831115610a1957600160a060020a033381166000908152600660209081526040808320938816835292905290812055610a50565b610a29818463ffffffff610f4916565b600160a060020a033381166000908152600660209081526040808320938916835292905220555b600160a060020a0333811660008181526006602090815260408083209489168084529482529182902054825190815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060019392505050565b600160a060020a031660009081526005602052604090205490565b60005433600160a060020a03908116911614610aeb57600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b600054600160a060020a031681565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156105415780601f1061051657610100808354040283529160200191610541565b60086020526000908152604090205460ff1681565b33600160a060020a038116600090815260086020526040812054909190839060ff1615610be057600080fd5b600160a060020a0382166000908152600760209081526040808320546005909252909120541015610c1057600080fd5b600160a060020a03821660009081526007602090815260408083205460059092529091205403811115610c4257600080fd5b60005433600160a060020a03908116911614610c6f5760005460a060020a900460ff1615610c6f57600080fd5b600160a060020a0385161515610c8457600080fd5b600160a060020a033316600090815260056020526040902054841115610ca957600080fd5b600160a060020a033316600090815260056020526040902054610cd2908563ffffffff610f4916565b600160a060020a033381166000908152600560205260408082209390935590871681522054610d07908563ffffffff610f5b16565b600160a060020a038087166000818152600560209081526040918290209490945580518881529051919333909316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3506001949350505050565b60005433600160a060020a03908116911614610d8557600080fd5b600160a060020a03166000908152600860205260409020805460ff19169055565b6000805433600160a060020a03908116911614610dd45760005460a060020a900460ff1615610dd457600080fd5b600160a060020a03338116600090815260066020908152604080832093871683529290522054610e0a908363ffffffff610f5b16565b600160a060020a0333811660008181526006602090815260408083209489168084529482529182902085905581519485529051929391927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a350600192915050565b600160a060020a03918216600090815260066020908152604080832093909416825291909152205490565b60076020526000908152604090205481565b60005433600160a060020a03908116911614610ecc57600080fd5b600160a060020a0381161515610ee157600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600082821115610f5557fe5b50900390565b600082820183811015610f6a57fe5b93925050505600a165627a7a72305820e8c188aadb379f0df5c3aad1893332129a4b034a794a360ffc34cec3121833030029
Verified Source Code Partial Match
Compiler: v0.4.23+commit.124ca40d
EVM: byzantium
Optimization: Yes (200 runs)
Token.sol 196 lines
pragma solidity ^0.4.23;
contract Ownable {
address public owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor() public {
owner = msg.sender;
}
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
function transferOwnership(address newOwner) public onlyOwner {
require(newOwner != address(0));
emit OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
}
contract Pausable is Ownable {
event Pause();
event Unpause();
bool public paused = false;
modifier whenNotPaused() {
if (msg.sender != owner) {
require(!paused);
}
_;
}
modifier whenPaused() {
if (msg.sender != owner) {
require(paused);
}
_;
}
function pause() onlyOwner public {
paused = true;
emit Pause();
}
function unpause() onlyOwner public {
paused = false;
emit Unpause();
}
}
library SafeMath {
function mul(uint a, uint b) internal pure returns (uint) {
if (a == 0) {
return 0;
}
uint c = a * b;
assert(c / a == b);
return c;
}
function div(uint a, uint b) internal pure returns (uint) {
// assert(b > 0); // Solidity automatically throws when dividing by 0
uint c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
function sub(uint a, uint b) internal pure returns (uint) {
assert(b <= a);
return a - b;
}
function add(uint a, uint b) internal pure returns (uint) {
uint c = a + b;
assert(c >= a);
return c;
}
}
contract ERC20 {
string public name;
string public symbol;
uint8 public decimals;
uint public totalSupply;
constructor(string _name, string _symbol, uint8 _decimals) public {
name = _name;
symbol = _symbol;
decimals = _decimals;
}
function balanceOf(address who) public view returns (uint);
function transfer(address to, uint value) public returns (bool);
function allowance(address owner, address spender) public view returns (uint);
function transferFrom(address from, address to, uint value) public returns (bool);
function approve(address spender, uint value) public returns (bool);
event Transfer(address indexed from, address indexed to, uint value);
event Approval(address indexed owner, address indexed spender, uint value);
}
contract Token is Pausable, ERC20 {
using SafeMath for uint;
event Burn(address indexed burner, uint256 value);
mapping(address => uint) balances;
mapping (address => mapping (address => uint)) internal allowed;
mapping(address => uint) public balanceOfLocked;
mapping(address => bool) public addressLocked;
constructor() ERC20("OCP", "OCP", 18) public {
totalSupply = 10000000000 * 10 ** uint(decimals);
balances[msg.sender] = totalSupply;
}
modifier lockCheck(address from, uint value) {
require(addressLocked[from] == false);
require(balances[from] >= balanceOfLocked[from]);
require(value <= balances[from] - balanceOfLocked[from]);
_;
}
function burn(uint _value) onlyOwner public {
balances[owner] = balances[owner].sub(_value);
totalSupply = totalSupply.sub(_value);
emit Burn(msg.sender, _value);
}
function lockAddressValue(address _addr, uint _value) onlyOwner public {
balanceOfLocked[_addr] = _value;
}
function lockAddress(address addr) onlyOwner public {
addressLocked[addr] = true;
}
function unlockAddress(address addr) onlyOwner public {
addressLocked[addr] = false;
}
function transfer(address _to, uint _value) lockCheck(msg.sender, _value) whenNotPaused 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;
}
function balanceOf(address _owner) public view returns (uint balance) {
return balances[_owner];
}
function transferFrom(address _from, address _to, uint _value) public lockCheck(_from, _value) whenNotPaused 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;
}
function approve(address _spender, uint _value) public whenNotPaused returns (bool) {
allowed[msg.sender][_spender] = _value;
emit Approval(msg.sender, _spender, _value);
return true;
}
function allowance(address _owner, address _spender) public view returns (uint) {
return allowed[_owner][_spender];
}
function increaseApproval(address _spender, uint _addedValue) public whenNotPaused returns (bool) {
allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
function decreaseApproval(address _spender, uint _subtractedValue) public whenNotPaused returns (bool) {
uint oldValue = allowed[msg.sender][_spender];
if (_subtractedValue > oldValue) {
allowed[msg.sender][_spender] = 0;
} else {
allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
}
emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
}
Read Contract
addressLocked 0xa0da7d2e → bool
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
balanceOfLocked 0xe960bb48 → uint256
decimals 0x313ce567 → uint8
name 0x06fdde03 → string
owner 0x8da5cb5b → address
paused 0x5c975abb → bool
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
Write Contract 12 functions
These functions modify contract state and require a wallet transaction to execute.
approve 0x095ea7b3
address _spender
uint256 _value
returns: bool
burn 0x42966c68
uint256 _value
decreaseApproval 0x66188463
address _spender
uint256 _subtractedValue
returns: bool
increaseApproval 0xd73dd623
address _spender
uint256 _addedValue
returns: bool
lockAddress 0x34a90d02
address addr
lockAddressValue 0x00cab8b1
address _addr
uint256 _value
pause 0x8456cb59
No parameters
transfer 0xa9059cbb
address _to
uint256 _value
returns: bool
transferFrom 0x23b872dd
address _from
address _to
uint256 _value
returns: bool
transferOwnership 0xf2fde38b
address newOwner
unlockAddress 0xb7eb5e0a
address addr
unpause 0x3f4ba83a
No parameters
Top Interactions
| Address | Txns | Sent | Received |
|---|---|---|---|
| 0xa6444f5c...A41F | 3 | 3 | |
| 0xCBdCaa56...fFe0 | 1 | 1 | |
| 0x3a9E6cF4...9C03 | 1 | 1 |
Token Balances (1)
View Transfers →Recent Transactions
|
| Hash | Block | Age | From/To | Value | |
|---|---|---|---|---|---|
| 0xcf223418...d60a68 | 10,703,740 | IN | 0xCBdCaa56...fFe0 | 0 ETH | |
| 0xf7423506...e8dcec | 10,630,549 | IN | 0xa6444f5c...A41F | 0 ETH | |
| 0x813deb01...da3839 | 10,628,925 | IN | 0x3a9E6cF4...9C03 | 0 ETH | |
| 0xdfa02eab...f36ab0 | 10,625,658 | IN | 0xa6444f5c...A41F | 0 ETH | |
| 0x82b69610...0593eb | 10,625,652 | IN | 0xa6444f5c...A41F | 0 ETH |