Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0xAdEBeaFcdCf5De0a5A7f7dfdd467B0e9fb205BE9
Balance 0 ETH
Nonce 1
Code Size 3997 bytes
Last Active
Indexed Transactions 5 (10,625,65210,703,740)
Gas Used (indexed) 241,356
External Etherscan · Sourcify

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

AddressTxnsSentReceived
0xa6444f5c...A41F 3 3
0xCBdCaa56...fFe0 1 1
0x3a9E6cF4...9C03 1 1

Recent Transactions

CSV
|
Hash Method Block Age From/To Value Txn Fee Type
0xcf223418...d60a68 transfer 10,703,740 IN 0xCBdCaa56...fFe0 0 ETH 0.00574746 ETH Legacy
0xf7423506...e8dcec transfer 10,630,549 IN 0xa6444f5c...A41F 0 ETH 0.00619038 ETH Legacy
0x813deb01...da3839 transfer 10,628,925 IN 0x3a9E6cF4...9C03 0 ETH 0.00360341 ETH Legacy
0xdfa02eab...f36ab0 transfer 10,625,658 IN 0xa6444f5c...A41F 0 ETH 0.00237362 ETH Legacy
0x82b69610...0593eb transfer 10,625,652 IN 0xa6444f5c...A41F 0 ETH 0.00318362 ETH Legacy