Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0xbaA70614C7AAfB568a93E62a98D55696bcc85DFE
Balance 0 ETH
Nonce 1
Code Size 5203 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

5203 bytes
0x6080604052600436106101455763ffffffff60e060020a60003504166305d2035b811461014a57806306fdde0314610173578063095ea7b3146101fd57806318160ddd146102215780631e89d5451461024857806323b872dd146102d657806327e235e314610300578063313ce56714610321578063355274ea1461034c57806340c10f191461036157806342966c68146103855780634552b04f1461039f578063522f6815146103d057806366188463146103f45780636cf7ccac1461041857806370a0823114610448578063757b8cf41461046957806379ba50971461049357806379cc6790146104a85780637d64bcb4146104cc5780638da5cb5b146104e157806395d89b41146104f6578063a9059cbb1461050b578063d73dd6231461052f578063dd62ed3e14610553578063f0595dd11461057a578063f2fde38b146105a4575b600080fd5b34801561015657600080fd5b5061015f6105c5565b604080519115158252519081900360200190f35b34801561017f57600080fd5b506101886105e6565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101c25781810151838201526020016101aa565b50505050905090810190601f1680156101ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020957600080fd5b5061015f600160a060020a0360043516602435610673565b34801561022d57600080fd5b5061023661072a565b60408051918252519081900360200190f35b34801561025457600080fd5b506040805160206004803580820135838102808601850190965280855261015f95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506107309650505050505050565b3480156102e257600080fd5b5061015f600160a060020a036004358116906024351660443561079b565b34801561030c57600080fd5b50610236600160a060020a0360043516610902565b34801561032d57600080fd5b50610336610914565b6040805160ff9092168252519081900360200190f35b34801561035857600080fd5b5061023661091d565b34801561036d57600080fd5b5061015f600160a060020a0360043516602435610923565b34801561039157600080fd5b5061039d600435610959565b005b3480156103ab57600080fd5b506103b4610966565b60408051600160a060020a039092168252519081900360200190f35b3480156103dc57600080fd5b5061039d600160a060020a0360043516602435610975565b34801561040057600080fd5b5061015f600160a060020a0360043516602435610a29565b34801561042457600080fd5b5061039d600160a060020a0360043581169060243581169060443516606435610b3f565b34801561045457600080fd5b50610236600160a060020a0360043516610c07565b34801561047557600080fd5b5061039d600160a060020a0360043581169060243516604435610c22565b34801561049f57600080fd5b5061039d610cd8565b3480156104b457600080fd5b5061039d600160a060020a0360043516602435610d7a565b3480156104d857600080fd5b5061015f610e10565b3480156104ed57600080fd5b506103b4610eb6565b34801561050257600080fd5b50610188610ec5565b34801561051757600080fd5b5061015f600160a060020a0360043516602435610f1d565b34801561053b57600080fd5b5061015f600160a060020a0360043516602435610fee565b34801561055f57600080fd5b50610236600160a060020a03600435811690602435166110ab565b34801561058657600080fd5b5061039d600160a060020a03600435811690602435166044356110d6565b3480156105b057600080fd5b5061039d600160a060020a0360043516611150565b60075474010000000000000000000000000000000000000000900460ff1681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561066b5780601f106106405761010080835404028352916020019161066b565b820191906000526020600020905b81548152906001019060200180831161064e57829003601f168201915b505050505081565b6000600160a060020a038316151561068a57600080fd5b8115806106b85750336000908152600560209081526040808320600160a060020a0387168452909152902054155b15156106c357600080fd5b336000818152600560209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60005490565b6000808251845114151561074357600080fd5b5060005b835181101561079157610788848281518110151561076157fe5b90602001906020020151848381518110151561077957fe5b90602001906020020151610f1d565b50600101610747565b5060019392505050565b6000600160a060020a03831615156107b257600080fd5b600160a060020a0384166000908152600460205260409020548211156107d757600080fd5b600160a060020a038416600090815260056020908152604080832033845290915290205482111561080757600080fd5b600160a060020a038416600090815260046020526040902054610830908363ffffffff61117016565b600160a060020a038086166000908152600460205260408082209390935590851681522054610865908363ffffffff61118716565b600160a060020a0380851660009081526004602090815260408083209490945591871681526005825282812033825290915220546108a9908363ffffffff61117016565b600160a060020a0380861660008181526005602090815260408083203384528252918290209490945580518681529051928716939192600080516020611408833981519152929181900390910190a35060019392505050565b60046020526000908152604090205481565b60035460ff1681565b60085481565b600060085461093d8360005461118790919063ffffffff16565b111561094857600080fd5b6109528383611199565b9392505050565b61096333826112a3565b50565b600754600160a060020a031681565b600654600160a060020a0316331461098c57600080fd5b600160a060020a03821615156109a157600080fd5b30318111156109af57600080fd5b604051600160a060020a0383169082156108fc029083906000818181858888f193505050501580156109e5573d6000803e3d6000fd5b50604080518281529051600160a060020a038416917fdb35132c111efe920cede025e819975671cfd1b8fcc1174762c8670c4e94c211919081900360200190a25050565b600080600160a060020a0384161515610a4157600080fd5b60008311610a4e57600080fd5b50336000908152600560209081526040808320600160a060020a038716845290915290205480831115610aa457336000908152600560209081526040808320600160a060020a0388168452909152812055610ad9565b610ab4818463ffffffff61117016565b336000908152600560209081526040808320600160a060020a03891684529091529020555b336000818152600560209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600654600160a060020a03163314610b5657600080fd5b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301528481166024830152604482018490529151918616916323b872dd916064808201926020929091908290030181600087803b158015610bca57600080fd5b505af1158015610bde573d6000803e3d6000fd5b505050506040513d6020811015610bf457600080fd5b50511515610c0157600080fd5b50505050565b600160a060020a031660009081526004602052604090205490565b600654600160a060020a03163314610c3957600080fd5b82600160a060020a031663095ea7b383836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610c9c57600080fd5b505af1158015610cb0573d6000803e3d6000fd5b505050506040513d6020811015610cc657600080fd5b50511515610cd357600080fd5b505050565b600754600160a060020a031615801590610cfc5750600754600160a060020a031633145b1515610d0757600080fd5b600754600654604051600160a060020a0392831692909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600780546006805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600160a060020a0382166000908152600560209081526040808320338452909152902054811115610daa57600080fd5b600160a060020a0382166000908152600560209081526040808320338452909152902054610dde908263ffffffff61117016565b600160a060020a0383166000908152600560209081526040808320338452909152902055610e0c82826112a3565b5050565b600654600090600160a060020a03163314610e2a57600080fd5b60075474010000000000000000000000000000000000000000900460ff1615610e5257600080fd5b6007805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a150600190565b600654600160a060020a031681565b6002805460408051602060018416156101000260001901909316849004601f8101849004840282018401909252818152929183018282801561066b5780601f106106405761010080835404028352916020019161066b565b6000600160a060020a0383161515610f3457600080fd5b33600090815260046020526040902054821115610f5057600080fd5b33600090815260046020526040902054610f70908363ffffffff61117016565b3360009081526004602052604080822092909255600160a060020a03851681522054610fa2908363ffffffff61118716565b600160a060020a0384166000818152600460209081526040918290209390935580518581529051919233926000805160206114088339815191529281900390910190a350600192915050565b6000600160a060020a038316151561100557600080fd5b6000821161101257600080fd5b336000908152600560209081526040808320600160a060020a0387168452909152902054611046908363ffffffff61118716565b336000818152600560209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b600654600160a060020a031633146110ed57600080fd5b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610c9c57600080fd5b600654600160a060020a0316331461116757600080fd5b61096381611393565b6000808383111561118057600080fd5b5050900390565b60008282018381101561095257600080fd5b600654600090600160a060020a031633146111b357600080fd5b60075474010000000000000000000000000000000000000000900460ff16156111db57600080fd5b6000546111ee908363ffffffff61118716565b6000908155600160a060020a038416815260046020526040902054611219908363ffffffff61118716565b600160a060020a038416600081815260046020908152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a2604080518381529051600160a060020a038516916000916000805160206114088339815191529181900360200190a350600192915050565b600160a060020a0382166000908152600460205260409020548111156112c857600080fd5b600160a060020a0382166000908152600460205260409020546112f1908263ffffffff61117016565b600160a060020a0383166000908152600460205260408120919091555461131e908263ffffffff61117016565b600055604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a038516916000805160206114088339815191529181900360200190a35050565b600160a060020a03811615156113a857600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116918217909255600654604051919216907f22500af037c600dd7b720644ab6e358635085601d9ac508ad83eb2d6b2d729ca90600090a3505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058205379dda09c4f27334944a4c21a861f244e9c57e0af63bf00030d0da85adaddd60029

Verified Source Code Partial Match

Compiler: v0.4.25+commit.59dbf8f1 EVM: byzantium Optimization: Yes (200 runs)
Token.sol 281 lines
/*! ucap.token.sol | (c) 2018 Develop by BelovITLab LLC, author @stupidlovejoy | License: MIT */

pragma solidity 0.4.25;

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

    function div(uint256 a, uint256 b) internal pure returns(uint256) {
        require(b > 0);
        uint256 c = a / b;
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns(uint256) {
        require(b <= a);
        uint256 c = a - b;
        return c;
    }

    function add(uint256 a, uint256 b) internal pure returns(uint256) {
        uint256 c = a + b;
        require(c >= a);
        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns(uint256) {
        require(b != 0);
        return a % b;
    }
}

contract Ownable {
    address public owner;
    address public new_owner;

    event OwnershipTransfer(address indexed previousOwner, address indexed newOwner);
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

    constructor() public {
        owner = msg.sender;
    }

    function _transferOwnership(address _to) internal {
        require(_to != address(0));

        new_owner = _to;

        emit OwnershipTransfer(owner, _to);
    }

    function acceptOwnership() public {
        require(new_owner != address(0) && msg.sender == new_owner);

        emit OwnershipTransferred(owner, new_owner);

        owner = new_owner;
        new_owner = address(0);
    }

    function transferOwnership(address _to) public onlyOwner {
        _transferOwnership(_to);
    }
}

contract ERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    function totalSupply() public view returns(uint256);
    function balanceOf(address who) public view returns(uint256);
    function transfer(address to, uint256 value) public returns(bool);
    function transferFrom(address from, address to, uint256 value) public returns(bool);
    function allowance(address owner, address spender) public view returns(uint256);
    function approve(address spender, uint256 value) public returns(bool);
}

contract StandardToken is ERC20 {
    using SafeMath for uint256;

    uint256 internal totalSupply_;

    string public name;
    string public symbol;
    uint8 public decimals;

    mapping(address => uint256) public balances;
    mapping(address => mapping(address => uint256)) internal allowed;

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

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

    function balanceOf(address _owner) public view returns(uint256) {
        return balances[_owner];
    }

    function transfer(address _to, uint256 _value) public returns(bool) {
        require(_to != address(0));
        require(_value <= balances[msg.sender]);

        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        
        emit Transfer(msg.sender, _to, _value);
        return true;
    }

    function multiTransfer(address[] _to, uint256[] _value) public returns(bool) {
        require(_to.length == _value.length);

        for(uint i = 0; i < _to.length; i++) {
            transfer(_to[i], _value[i]);
        }

        return true;
    }

    function transferFrom(address _from, address _to, uint256 _value) public 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 allowance(address _owner, address _spender) public view returns(uint256) {
        return allowed[_owner][_spender];
    }

    function approve(address _spender, uint256 _value) public returns(bool) {
        require(_spender != address(0));
        require((_value == 0) || (allowed[msg.sender][_spender] == 0));

        allowed[msg.sender][_spender] = _value;

        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    function increaseApproval(address _spender, uint _addedValue) public returns(bool) {
        require(_spender != address(0));
        require(_addedValue > 0);

        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 returns(bool) {
        require(_spender != address(0));
        require(_subtractedValue > 0);

        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;
    }
}

contract MintableToken is StandardToken, Ownable {
    bool public mintingFinished = false;

    event Mint(address indexed to, uint256 amount);
    event MintFinished();

    modifier canMint() { require(!mintingFinished); _; }
    modifier hasMintPermission() { require(msg.sender == owner); _; }

    function mint(address _to, uint256 _amount) hasMintPermission canMint public returns(bool) {
        totalSupply_ = totalSupply_.add(_amount);
        balances[_to] = balances[_to].add(_amount);

        emit Mint(_to, _amount);
        emit Transfer(address(0), _to, _amount);
        return true;
    }

    function finishMinting() onlyOwner canMint public returns(bool) {
        mintingFinished = true;

        emit MintFinished();
        return true;
    }
}

contract CappedToken is MintableToken {
    uint256 public cap;

    constructor(uint256 _cap) public {
        require(_cap > 0);
        cap = _cap;
    }

    function mint(address _to, uint256 _amount) public returns(bool) {
        require(totalSupply_.add(_amount) <= cap);

        return super.mint(_to, _amount);
    }
}

contract BurnableToken is StandardToken {
    event Burn(address indexed burner, uint256 value);

    function _burn(address _who, uint256 _value) internal {
        require(_value <= balances[_who]);

        balances[_who] = balances[_who].sub(_value);
        totalSupply_ = totalSupply_.sub(_value);

        emit Burn(_who, _value);
        emit Transfer(_who, address(0), _value);
    }

    function burn(uint256 _value) public {
        _burn(msg.sender, _value);
    }

    function burnFrom(address _from, uint256 _value) public {
        require(_value <= allowed[_from][msg.sender]);
        
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
        _burn(_from, _value);
    }
}

contract Withdrawable is Ownable {
    event WithdrawEther(address indexed to, uint value);

    function withdrawEther(address _to, uint _value) onlyOwner public {
        require(_to != address(0));
        require(address(this).balance >= _value);

        _to.transfer(_value);

        emit WithdrawEther(_to, _value);
    }

    function withdrawTokensTransfer(ERC20 _token, address _to, uint256 _value) onlyOwner public {
        require(_token.transfer(_to, _value));
    }

    function withdrawTokensTransferFrom(ERC20 _token, address _from, address _to, uint256 _value) onlyOwner public {
        require(_token.transferFrom(_from, _to, _value));
    }

    function withdrawTokensApprove(ERC20 _token, address _spender, uint256 _value) onlyOwner public {
        require(_token.approve(_spender, _value));
    }
}

contract Token is StandardToken, CappedToken, BurnableToken, Withdrawable {
    constructor() CappedToken(100000000 * 1e18) StandardToken("UniCap.finance", "UCAP", 18) public {
        mint(0x316eB64cc65C36b7266A5e76DD7ABF257a7FA119, 1e26);
    }
}

Read Contract

allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
balances 0x27e235e3 → uint256
cap 0x355274ea → uint256
decimals 0x313ce567 → uint8
mintingFinished 0x05d2035b → bool
name 0x06fdde03 → string
new_owner 0x4552b04f → address
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 16 functions

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

acceptOwnership 0x79ba5097
No parameters
approve 0x095ea7b3
address _spender
uint256 _value
returns: bool
burn 0x42966c68
uint256 _value
burnFrom 0x79cc6790
address _from
uint256 _value
decreaseApproval 0x66188463
address _spender
uint256 _subtractedValue
returns: bool
finishMinting 0x7d64bcb4
No parameters
returns: bool
increaseApproval 0xd73dd623
address _spender
uint256 _addedValue
returns: bool
mint 0x40c10f19
address _to
uint256 _amount
returns: bool
multiTransfer 0x1e89d545
address[] _to
uint256[] _value
returns: bool
transfer 0xa9059cbb
address _to
uint256 _value
returns: bool
transferFrom 0x23b872dd
address _from
address _to
uint256 _value
returns: bool
transferOwnership 0xf2fde38b
address _to
withdrawEther 0x522f6815
address _to
uint256 _value
withdrawTokensApprove 0x757b8cf4
address _token
address _spender
uint256 _value
withdrawTokensTransfer 0xf0595dd1
address _token
address _to
uint256 _value
withdrawTokensTransferFrom 0x6cf7ccac
address _token
address _from
address _to
uint256 _value

Recent Transactions

No transactions found for this address