ETH Price: $3,095.86 (+0.92%)
Gas: 15 Gwei

Contract

0xF8E6BaCD9298dF8B0ABa67eF2ef8348fAbC5aE8a
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Transfer161716382022-12-12 22:34:47575 days ago1670884487IN
0xF8E6BaCD...fAbC5aE8a
0 ETH0.0020971414.67027433
Transfer161709732022-12-12 20:21:23575 days ago1670876483IN
0xF8E6BaCD...fAbC5aE8a
0 ETH0.0011138220.91529306
Transfer161145082022-12-04 22:45:11583 days ago1670193911IN
0xF8E6BaCD...fAbC5aE8a
0 ETH0.0015749811
Transfer138869142021-12-27 11:05:30926 days ago1640603130IN
0xF8E6BaCD...fAbC5aE8a
0 ETH0.0065851746
Transfer116980902021-01-21 9:56:281266 days ago1611222988IN
0xF8E6BaCD...fAbC5aE8a
0 ETH0.01093189176.78571428
Transfer116980822021-01-21 9:55:061266 days ago1611222906IN
0xF8E6BaCD...fAbC5aE8a
0 ETH0.00529879176.78571428
Transfer106195932020-08-08 13:58:311432 days ago1596895111IN
0xF8E6BaCD...fAbC5aE8a
0 ETH0.0092896475.06416817
Transfer95151322020-02-19 17:52:561602 days ago1582134776IN
0xF8E6BaCD...fAbC5aE8a
0 ETH0.001030368.325
Transfer93006152020-01-17 19:15:191635 days ago1579288519IN
0xF8E6BaCD...fAbC5aE8a
0 ETH0.0025348241
Transfer91232182019-12-18 1:04:281666 days ago1576631068IN
0xF8E6BaCD...fAbC5aE8a
0 ETH0.000151933
Transfer87015792019-10-08 13:22:411737 days ago1570540961IN
0xF8E6BaCD...fAbC5aE8a
0 ETH0.0019655841
Transfer86615242019-10-02 7:34:381743 days ago1570001678IN
0xF8E6BaCD...fAbC5aE8a
0 ETH0.0000481
Transfer84019962019-08-22 19:35:461783 days ago1566502546IN
0xF8E6BaCD...fAbC5aE8a
0 ETH0.0019655841
Transfer83883922019-08-20 16:49:331785 days ago1566319773IN
0xF8E6BaCD...fAbC5aE8a
0 ETH0.0004883410.2
Transfer83883832019-08-20 16:46:341785 days ago1566319594IN
0xF8E6BaCD...fAbC5aE8a
0 ETH0.0006220410
Transfer83883752019-08-20 16:44:351785 days ago1566319475IN
0xF8E6BaCD...fAbC5aE8a
0 ETH0.000248814
Transfer83351922019-08-12 10:27:421794 days ago1565605662IN
0xF8E6BaCD...fAbC5aE8a
0 ETH0.0019655841
Transfer82688752019-08-02 3:42:561804 days ago1564717376IN
0xF8E6BaCD...fAbC5aE8a
0 ETH0.0012026541
Transfer82490332019-07-30 1:38:441807 days ago1564450724IN
0xF8E6BaCD...fAbC5aE8a
0 ETH0.0007191115
Transfer82414932019-07-28 21:25:311808 days ago1564349131IN
0xF8E6BaCD...fAbC5aE8a
0 ETH0.0004794110
Transfer82186222019-07-25 7:58:161812 days ago1564041496IN
0xF8E6BaCD...fAbC5aE8a
0 ETH0.0015703225
Transfer82186082019-07-25 7:55:181812 days ago1564041318IN
0xF8E6BaCD...fAbC5aE8a
0 ETH0.0006219610
Transfer82039402019-07-23 1:19:521814 days ago1563844792IN
0xF8E6BaCD...fAbC5aE8a
0 ETH0.000169164
Transfer81999172019-07-22 10:29:431815 days ago1563791383IN
0xF8E6BaCD...fAbC5aE8a
0 ETH0.000504048
Transfer81887272019-07-20 16:43:341816 days ago1563641014IN
0xF8E6BaCD...fAbC5aE8a
0 ETH0.0013190721
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:
CAVAssetProxy

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-03-05
*/

contract CAVAsset {
    function __transferWithReference(address _to, uint _value, string _reference, address _sender) returns(bool);
    function __transferFromWithReference(address _from, address _to, uint _value, string _reference, address _sender) returns(bool);
    function __approve(address _spender, uint _value, address _sender) returns(bool);
    function __process(bytes _data, address _sender) payable {
        revert();
    }
}

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

    function decimals() constant returns (uint8);
    function totalSupply() constant returns (uint256 supply);
    function balanceOf(address _owner) constant returns (uint256 balance);
    function transfer(address _to, uint256 _value) returns (bool success);
    function transferFrom(address _from, address _to, uint256 _value) returns (bool success);
    function approve(address _spender, uint256 _value) returns (bool success);
    function allowance(address _owner, address _spender) constant returns (uint256 remaining);
}

contract CAVPlatform {
    mapping(bytes32 => address) public proxies;
    function symbols(uint _idx) public constant returns (bytes32);
    function symbolsCount() public constant returns (uint);

    function name(bytes32 _symbol) returns(string);
    function setProxy(address _address, bytes32 _symbol) returns(uint errorCode);
    function isCreated(bytes32 _symbol) constant returns(bool);
    function isOwner(address _owner, bytes32 _symbol) returns(bool);
    function owner(bytes32 _symbol) constant returns(address);
    function totalSupply(bytes32 _symbol) returns(uint);
    function balanceOf(address _holder, bytes32 _symbol) returns(uint);
    function allowance(address _from, address _spender, bytes32 _symbol) returns(uint);
    function baseUnit(bytes32 _symbol) returns(uint8);
    function proxyTransferWithReference(address _to, uint _value, bytes32 _symbol, string _reference, address _sender) returns(uint errorCode);
    function proxyTransferFromWithReference(address _from, address _to, uint _value, bytes32 _symbol, string _reference, address _sender) returns(uint errorCode);
    function proxyApprove(address _spender, uint _value, bytes32 _symbol, address _sender) returns(uint errorCode);
    function issueAsset(bytes32 _symbol, uint _value, string _name, string _description, uint8 _baseUnit, bool _isReissuable) returns(uint errorCode);
    function issueAsset(bytes32 _symbol, uint _value, string _name, string _description, uint8 _baseUnit, bool _isReissuable, address _account) returns(uint errorCode);
    function reissueAsset(bytes32 _symbol, uint _value) returns(uint errorCode);
    function revokeAsset(bytes32 _symbol, uint _value) returns(uint errorCode);
    function isReissuable(bytes32 _symbol) returns(bool);
    function changeOwnership(bytes32 _symbol, address _newOwner) returns(uint errorCode);
    function hasAssetRights(address _owner, bytes32 _symbol) public view returns (bool);
}

contract CAVAssetProxy is ERC20 {

    // Supports CAVPlatform ability to return error codes from methods
    uint constant OK = 1;

    // Assigned platform, immutable.
    CAVPlatform public platform;

    // Assigned symbol, immutable.
    bytes32 public smbl;

    // Assigned name, immutable.
    string public name;

    string public symbol;

    /**
     * Sets platform address, assigns symbol and name.
     *
     * Can be set only once.
     *
     * @param _platform platform contract address.
     * @param _symbol assigned symbol.
     * @param _name assigned name.
     *
     * @return success.
     */
    function init(CAVPlatform _platform, string _symbol, string _name) returns(bool) {
        if (address(platform) != 0x0) {
            return false;
        }
        platform = _platform;
        symbol = _symbol;
        smbl = stringToBytes32(_symbol);
        name = _name;
        return true;
    }

    function stringToBytes32(string memory source) returns (bytes32 result) {
        assembly {
           result := mload(add(source, 32))
        }
    }

    /**
     * Only platform is allowed to call.
     */
    modifier onlyPlatform() {
        if (msg.sender == address(platform)) {
            _;
        }
    }

    /**
     * Only current asset owner is allowed to call.
     */
    modifier onlyAssetOwner() {
        if (platform.isOwner(msg.sender, smbl)) {
            _;
        }
    }

    /**
     * Returns asset implementation contract for current caller.
     *
     * @return asset implementation contract.
     */
    function _getAsset() internal returns(CAVAsset) {
        return CAVAsset(getVersionFor(msg.sender));
    }

    /**
     * Returns asset total supply.
     *
     * @return asset total supply.
     */
    function totalSupply() constant returns(uint) {
        return platform.totalSupply(smbl);
    }

    /**
     * Returns asset balance for a particular holder.
     *
     * @param _owner holder address.
     *
     * @return holder balance.
     */
    function balanceOf(address _owner) constant returns(uint) {
        return platform.balanceOf(_owner, smbl);
    }

    /**
     * Returns asset allowance from one holder to another.
     *
     * @param _from holder that allowed spending.
     * @param _spender holder that is allowed to spend.
     *
     * @return holder to spender allowance.
     */
    function allowance(address _from, address _spender) constant returns(uint) {
        return platform.allowance(_from, _spender, smbl);
    }

    /**
     * Returns asset decimals.
     *
     * @return asset decimals.
     */
    function decimals() constant returns(uint8) {
        return platform.baseUnit(smbl);
    }

    /**
     * Transfers asset balance from the caller to specified receiver.
     *
     * @param _to holder address to give to.
     * @param _value amount to transfer.
     *
     * @return success.
     */
    function transfer(address _to, uint _value) returns(bool) {
        if (_to != 0x0) {
          return _transferWithReference(_to, _value, "");
        }
        else {
            return false;
        }
    }

    /**
     * Transfers asset balance from the caller to specified receiver adding specified comment.
     *
     * @param _to holder address to give to.
     * @param _value amount to transfer.
     * @param _reference transfer comment to be included in a platform's Transfer event.
     *
     * @return success.
     */
    function transferWithReference(address _to, uint _value, string _reference) returns(bool) {
        if (_to != 0x0) {
            return _transferWithReference(_to, _value, _reference);
        }
        else {
            return false;
        }
    }

    /**
     * Resolves asset implementation contract for the caller and forwards there arguments along with
     * the caller address.
     *
     * @return success.
     */
    function _transferWithReference(address _to, uint _value, string _reference) internal returns(bool) {
        return _getAsset().__transferWithReference(_to, _value, _reference, msg.sender);
    }

    /**
     * Performs transfer call on the platform by the name of specified sender.
     *
     * Can only be called by asset implementation contract assigned to sender.
     *
     * @param _to holder address to give to.
     * @param _value amount to transfer.
     * @param _reference transfer comment to be included in a platform's Transfer event.
     * @param _sender initial caller.
     *
     * @return success.
     */
    function __transferWithReference(address _to, uint _value, string _reference, address _sender) onlyAccess(_sender) returns(bool) {
        return platform.proxyTransferWithReference(_to, _value, smbl, _reference, _sender) == OK;
    }

    /**
     * Prforms allowance transfer of asset balance between holders.
     *
     * @param _from holder address to take from.
     * @param _to holder address to give to.
     * @param _value amount to transfer.
     *
     * @return success.
     */
    function transferFrom(address _from, address _to, uint _value) returns(bool) {
        if (_to != 0x0) {
            return _getAsset().__transferFromWithReference(_from, _to, _value, "", msg.sender);
         }
         else {
             return false;
         }
    }

    /**
     * Performs allowance transfer call on the platform by the name of specified sender.
     *
     * Can only be called by asset implementation contract assigned to sender.
     *
     * @param _from holder address to take from.
     * @param _to holder address to give to.
     * @param _value amount to transfer.
     * @param _reference transfer comment to be included in a platform's Transfer event.
     * @param _sender initial caller.
     *
     * @return success.
     */
    function __transferFromWithReference(address _from, address _to, uint _value, string _reference, address _sender) onlyAccess(_sender) returns(bool) {
        return platform.proxyTransferFromWithReference(_from, _to, _value, smbl, _reference, _sender) == OK;
    }

    /**
     * Sets asset spending allowance for a specified spender.
     *
     * @param _spender holder address to set allowance to.
     * @param _value amount to allow.
     *
     * @return success.
     */
    function approve(address _spender, uint _value) returns(bool) {
        if (_spender != 0x0) {
             return _getAsset().__approve(_spender, _value, msg.sender);
        }
        else {
            return false;
        }
    }

    /**
     * Performs allowance setting call on the platform by the name of specified sender.
     *
     * Can only be called by asset implementation contract assigned to sender.
     *
     * @param _spender holder address to set allowance to.
     * @param _value amount to allow.
     * @param _sender initial caller.
     *
     * @return success.
     */
    function __approve(address _spender, uint _value, address _sender) onlyAccess(_sender) returns(bool) {
        return platform.proxyApprove(_spender, _value, smbl, _sender) == OK;
    }

    /**
     * Emits ERC20 Transfer event on this contract.
     *
     * Can only be, and, called by assigned platform when asset transfer happens.
     */
    function emitTransfer(address _from, address _to, uint _value) onlyPlatform() {
        Transfer(_from, _to, _value);
    }

    /**
     * Emits ERC20 Approval event on this contract.
     *
     * Can only be, and, called by assigned platform when asset allowance set happens.
     */
    function emitApprove(address _from, address _spender, uint _value) onlyPlatform() {
        Approval(_from, _spender, _value);
    }

    /**
     * Resolves asset implementation contract for the caller and forwards there transaction data,
     * along with the value. This allows for proxy interface growth.
     */
    function () payable {
        _getAsset().__process.value(msg.value)(msg.data, msg.sender);
    }

    /**
     * Indicates an upgrade freeze-time start, and the next asset implementation contract.
     */
    event UpgradeProposal(address newVersion);

    // Current asset implementation contract address.
    address latestVersion;

    // Proposed next asset implementation contract address.
    address pendingVersion;

    // Upgrade freeze-time start.
    uint pendingVersionTimestamp;

    // Timespan for users to review the new implementation and make decision.
    uint constant UPGRADE_FREEZE_TIME = 3 days;

    // Asset implementation contract address that user decided to stick with.
    // 0x0 means that user uses latest version.
    mapping(address => address) userOptOutVersion;

    /**
     * Only asset implementation contract assigned to sender is allowed to call.
     */
    modifier onlyAccess(address _sender) {
        if (getVersionFor(_sender) == msg.sender) {
            _;
        }
    }

    /**
     * Returns asset implementation contract address assigned to sender.
     *
     * @param _sender sender address.
     *
     * @return asset implementation contract address.
     */
    function getVersionFor(address _sender) constant returns(address) {
        return userOptOutVersion[_sender] == 0 ? latestVersion : userOptOutVersion[_sender];
    }

    /**
     * Returns current asset implementation contract address.
     *
     * @return asset implementation contract address.
     */
    function getLatestVersion() constant returns(address) {
        return latestVersion;
    }

    /**
     * Returns proposed next asset implementation contract address.
     *
     * @return asset implementation contract address.
     */
    function getPendingVersion() constant returns(address) {
        return pendingVersion;
    }

    /**
     * Returns upgrade freeze-time start.
     *
     * @return freeze-time start.
     */
    function getPendingVersionTimestamp() constant returns(uint) {
        return pendingVersionTimestamp;
    }

    /**
     * Propose next asset implementation contract address.
     *
     * Can only be called by current asset owner.
     *
     * Note: freeze-time should not be applied for the initial setup.
     *
     * @param _newVersion asset implementation contract address.
     *
     * @return success.
     */
    function proposeUpgrade(address _newVersion) onlyAssetOwner() returns(bool) {
        // Should not already be in the upgrading process.
        if (pendingVersion != 0x0) {
            return false;
        }
        // New version address should be other than 0x0.
        if (_newVersion == 0x0) {
            return false;
        }
        // Don't apply freeze-time for the initial setup.
        if (latestVersion == 0x0) {
            latestVersion = _newVersion;
            return true;
        }
        pendingVersion = _newVersion;
        pendingVersionTimestamp = now;
        UpgradeProposal(_newVersion);
        return true;
    }

    /**
     * Cancel the pending upgrade process.
     *
     * Can only be called by current asset owner.
     *
     * @return success.
     */
    function purgeUpgrade() onlyAssetOwner() returns(bool) {
        if (pendingVersion == 0x0) {
            return false;
        }
        delete pendingVersion;
        delete pendingVersionTimestamp;
        return true;
    }

    /**
     * Finalize an upgrade process setting new asset implementation contract address.
     *
     * Can only be called after an upgrade freeze-time.
     *
     * @return success.
     */
    function commitUpgrade() returns(bool) {
        if (pendingVersion == 0x0) {
            return false;
        }
        if (pendingVersionTimestamp + UPGRADE_FREEZE_TIME > now) {
            return false;
        }
        latestVersion = pendingVersion;
        delete pendingVersion;
        delete pendingVersionTimestamp;
        return true;
    }

    /**
     * Disagree with proposed upgrade, and stick with current asset implementation
     * until further explicit agreement to upgrade.
     *
     * @return success.
     */
    function optOut() returns(bool) {
        if (userOptOutVersion[msg.sender] != 0x0) {
            return false;
        }
        userOptOutVersion[msg.sender] = latestVersion;
        return true;
    }

    /**
     * Implicitly agree to upgrade to current and future asset implementation upgrades,
     * until further explicit disagreement.
     *
     * @return success.
     */
    function optIn() returns(bool) {
        delete userOptOutVersion[msg.sender];
        return true;
    }
}

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":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"commitUpgrade","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getLatestVersion","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","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":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"emitApprove","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"emitTransfer","outputs":[],"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":"platform","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPendingVersionTimestamp","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"purgeUpgrade","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"optIn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"},{"name":"_sender","type":"address"}],"name":"__transferWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_sender","type":"address"}],"name":"__approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPendingVersion","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"}],"name":"transferWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_platform","type":"address"},{"name":"_symbol","type":"string"},{"name":"_name","type":"string"}],"name":"init","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newVersion","type":"address"}],"name":"proposeUpgrade","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"smbl","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"source","type":"string"}],"name":"stringToBytes32","outputs":[{"name":"result","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"optOut","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_from","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"},{"name":"_sender","type":"address"}],"name":"__transferFromWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"}],"name":"getVersionFor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newVersion","type":"address"}],"name":"UpgradeProposal","type":"event"},{"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":"from","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]

6060604052341561000f57600080fd5b6116138061001e6000396000f3006060604052600436106101505763ffffffff60e060020a60003504166306fdde0381146101e2578063095ea7b31461026c5780630ba12c83146102a25780630e6d1de9146102b557806318160ddd146102e4578063233850891461030957806323b872dd1461033357806323de66511461035b578063313ce567146103835780634bde38c8146103ac5780634bfaf2e8146103bf5780634dfe950d146103d25780635b48684e146103e55780636a630ee7146103f857806370a08231146104685780637b7054c81461048757806395d89b41146104b0578063a883fb90146104c3578063a9059cbb146104d6578063ac35caee146104f8578063b2b45df51461055d578063c915fc93146105fe578063cb4e75bb1461061d578063cfb5192814610630578063d4eec5a614610681578063dd62ed3e14610694578063ec698a28146106b9578063fe8beb7114610730575b61015861074f565b600160a060020a031663f2d6e0ab346000363360405160e060020a63ffffffff8716028152600160a060020a03821660248201526040600482019081526044820184905290819060640185858082843782019150509450505050506000604051808303818588803b15156101cb57600080fd5b6125ee5a03f115156101dc57600080fd5b50505050005b34156101ed57600080fd5b6101f5610760565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610231578082015183820152602001610219565b50505050905090810190601f16801561025e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027757600080fd5b61028e600160a060020a03600435166024356107fe565b604051901515815260200160405180910390f35b34156102ad57600080fd5b61028e6108ab565b34156102c057600080fd5b6102c861090f565b604051600160a060020a03909116815260200160405180910390f35b34156102ef57600080fd5b6102f761091e565b60405190815260200160405180910390f35b341561031457600080fd5b610331600160a060020a0360043581169060243516604435610994565b005b341561033e57600080fd5b61028e600160a060020a03600435811690602435166044356109f8565b341561036657600080fd5b610331600160a060020a0360043581169060243516604435610abd565b341561038e57600080fd5b610396610b20565b60405160ff909116815260200160405180910390f35b34156103b757600080fd5b6102c8610b77565b34156103ca57600080fd5b6102f7610b86565b34156103dd57600080fd5b61028e610b8c565b34156103f057600080fd5b61028e610c47565b341561040357600080fd5b61028e60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050509235600160a060020a03169250610c72915050565b341561047357600080fd5b6102f7600160a060020a0360043516610dae565b341561049257600080fd5b61028e600160a060020a036004358116906024359060443516610e36565b34156104bb57600080fd5b6101f5610eff565b34156104ce57600080fd5b6102c8610f6a565b34156104e157600080fd5b61028e600160a060020a0360043516602435610f79565b341561050357600080fd5b61028e60048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610faa95505050505050565b341561056857600080fd5b61028e60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650610fcd95505050505050565b341561060957600080fd5b61028e600160a060020a0360043516611042565b341561062857600080fd5b6102f7611192565b341561063b57600080fd5b6102f760046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061119895505050505050565b341561068c57600080fd5b61028e6111a5565b341561069f57600080fd5b6102f7600160a060020a0360043581169060243516611205565b34156106c457600080fd5b61028e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050509235600160a060020a0316925061129a915050565b341561073b57600080fd5b6102c8600160a060020a03600435166113e2565b600061075a336113e2565b90505b90565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107f65780601f106107cb576101008083540402835291602001916107f6565b820191906000526020600020905b8154815290600101906020018083116107d957829003601f168201915b505050505081565b6000600160a060020a038316156108a15761081761074f565b600160a060020a0316637b7054c884843360006040516020015260405160e060020a63ffffffff8616028152600160a060020a03938416600482015260248101929092529091166044820152606401602060405180830381600087803b151561087f57600080fd5b6102c65a03f1151561089057600080fd5b5050506040518051905090506108a5565b5060005b92915050565b600654600090600160a060020a031615156108c85750600061075d565b426203f4806007540111156108df5750600061075d565b506006805460058054600160a060020a0319908116600160a060020a038416179091551690556000600755600190565b600554600160a060020a031690565b600154600254600091600160a060020a03169063b524abcf90836040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561097557600080fd5b6102c65a03f1151561098657600080fd5b505050604051805191505090565b60015433600160a060020a03908116911614156109f35781600160a060020a031683600160a060020a03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405190815260200160405180910390a35b505050565b6000600160a060020a03831615610ab257610a1161074f565b600160a060020a031663ec698a288585853360006040516020015260405160e060020a63ffffffff8716028152600160a060020a03948516600482015292841660248401526044830191909152909116608482015260a06064820152600060a482015260e401602060405180830381600087803b1515610a9057600080fd5b6102c65a03f11515610aa157600080fd5b505050604051805190509050610ab6565b5060005b9392505050565b60015433600160a060020a03908116911614156109f35781600160a060020a031683600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a3505050565b600154600254600091600160a060020a03169063dc86e6f090836040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561097557600080fd5b600154600160a060020a031681565b60075490565b600154600254600091600160a060020a03169063e96b462a903390846040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610bf257600080fd5b6102c65a03f11515610c0357600080fd5b505050604051805190501561075d57600654600160a060020a03161515610c2c5750600061075d565b5060068054600160a060020a03191690556000600755600190565b600160a060020a03331660009081526008602052604090208054600160a060020a0319169055600190565b60008133600160a060020a0316610c88826113e2565b600160a060020a03161415610da55760018054600254600160a060020a03909116906357a96dd09089908990898960006040516020015260405160e060020a63ffffffff8816028152600160a060020a03808716600483019081526024830187905260448301869052908316608483015260a060648301908152909160a40184818151815260200191508051906020019080838360005b83811015610d37578082015183820152602001610d1f565b50505050905090810190601f168015610d645780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1515610d8657600080fd5b6102c65a03f11515610d9757600080fd5b505050604051805190501491505b50949350505050565b600154600254600091600160a060020a031690634d30b6be908490846040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610e1457600080fd5b6102c65a03f11515610e2557600080fd5b50505060405180519150505b919050565b60008133600160a060020a0316610e4c826113e2565b600160a060020a03161415610ef75760018054600254600160a060020a03909116906314712e2f90889088908860006040516020015260405160e060020a63ffffffff8716028152600160a060020a039485166004820152602481019390935260448301919091529091166064820152608401602060405180830381600087803b1515610ed857600080fd5b6102c65a03f11515610ee957600080fd5b505050604051805190501491505b509392505050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107f65780601f106107cb576101008083540402835291602001916107f6565b600654600160a060020a031690565b6000600160a060020a038316156108a157610fa38383602060405190810160405260008152611435565b90506108a5565b6000600160a060020a03841615610ab257610fc6848484611435565b9050610ab6565b600154600090600160a060020a031615610fe957506000610ab6565b60018054600160a060020a031916600160a060020a038616179055600483805161101792916020019061154f565b5061102183611198565b600255600382805161103792916020019061154f565b506001949350505050565b600154600254600091600160a060020a03169063e96b462a903390846040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156110a857600080fd5b6102c65a03f115156110b957600080fd5b5050506040518051905015610e3157600654600160a060020a0316156110e157506000610e31565b600160a060020a03821615156110f957506000610e31565b600554600160a060020a0316151561112e575060058054600160a060020a031916600160a060020a0383161790556001610e31565b60068054600160a060020a031916600160a060020a038416179055426007557faf574319215a31df9b528258f1bdeef2b12b169dc85ff443a49373248c77493a82604051600160a060020a03909116815260200160405180910390a1506001919050565b60025481565b6000602082015192915050565b600160a060020a03338116600090815260086020526040812054909116156111cf5750600061075d565b5060055433600160a060020a0390811660009081526008602052604090208054600160a060020a03191691909216179055600190565b600154600254600091600160a060020a031690631c8d5d389085908590856040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561127957600080fd5b6102c65a03f1151561128a57600080fd5b5050506040518051949350505050565b60008133600160a060020a03166112b0826113e2565b600160a060020a031614156113d85760018054600254600160a060020a039091169063161ff662908a908a908a908a8a60006040516020015260405160e060020a63ffffffff8916028152600160a060020a03808816600483019081528782166024840152604483018790526064830186905290831660a483015260c060848301908152909160c40184818151815260200191508051906020019080838360005b83811015611369578082015183820152602001611351565b50505050905090810190601f1680156113965780820380516001836020036101000a031916815260200191505b50975050505050505050602060405180830381600087803b15156113b957600080fd5b6102c65a03f115156113ca57600080fd5b505050604051805190501491505b5095945050505050565b600160a060020a038082166000908152600860205260408120549091161561142457600160a060020a03808316600090815260086020526040902054166108a5565b5050600554600160a060020a031690565b600061143f61074f565b600160a060020a0316636a630ee7858585336000604051602001526040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a031681526020018481526020018060200183600160a060020a0316600160a060020a03168152602001828103825284818151815260200191508051906020019080838360005b838110156114df5780820151838201526020016114c7565b50505050905090810190601f16801561150c5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561152d57600080fd5b6102c65a03f1151561153e57600080fd5b505050604051805195945050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061159057805160ff19168380011785556115bd565b828001600101855582156115bd579182015b828111156115bd5782518255916020019190600101906115a2565b506115c99291506115cd565b5090565b61075d91905b808211156115c957600081556001016115d35600a165627a7a7230582029d4b936f9cc5b0014b21228a8fe421af96aac8be5c59b58509ab1ea59695e1f0029

Deployed Bytecode

0x6060604052600436106101505763ffffffff60e060020a60003504166306fdde0381146101e2578063095ea7b31461026c5780630ba12c83146102a25780630e6d1de9146102b557806318160ddd146102e4578063233850891461030957806323b872dd1461033357806323de66511461035b578063313ce567146103835780634bde38c8146103ac5780634bfaf2e8146103bf5780634dfe950d146103d25780635b48684e146103e55780636a630ee7146103f857806370a08231146104685780637b7054c81461048757806395d89b41146104b0578063a883fb90146104c3578063a9059cbb146104d6578063ac35caee146104f8578063b2b45df51461055d578063c915fc93146105fe578063cb4e75bb1461061d578063cfb5192814610630578063d4eec5a614610681578063dd62ed3e14610694578063ec698a28146106b9578063fe8beb7114610730575b61015861074f565b600160a060020a031663f2d6e0ab346000363360405160e060020a63ffffffff8716028152600160a060020a03821660248201526040600482019081526044820184905290819060640185858082843782019150509450505050506000604051808303818588803b15156101cb57600080fd5b6125ee5a03f115156101dc57600080fd5b50505050005b34156101ed57600080fd5b6101f5610760565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610231578082015183820152602001610219565b50505050905090810190601f16801561025e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027757600080fd5b61028e600160a060020a03600435166024356107fe565b604051901515815260200160405180910390f35b34156102ad57600080fd5b61028e6108ab565b34156102c057600080fd5b6102c861090f565b604051600160a060020a03909116815260200160405180910390f35b34156102ef57600080fd5b6102f761091e565b60405190815260200160405180910390f35b341561031457600080fd5b610331600160a060020a0360043581169060243516604435610994565b005b341561033e57600080fd5b61028e600160a060020a03600435811690602435166044356109f8565b341561036657600080fd5b610331600160a060020a0360043581169060243516604435610abd565b341561038e57600080fd5b610396610b20565b60405160ff909116815260200160405180910390f35b34156103b757600080fd5b6102c8610b77565b34156103ca57600080fd5b6102f7610b86565b34156103dd57600080fd5b61028e610b8c565b34156103f057600080fd5b61028e610c47565b341561040357600080fd5b61028e60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050509235600160a060020a03169250610c72915050565b341561047357600080fd5b6102f7600160a060020a0360043516610dae565b341561049257600080fd5b61028e600160a060020a036004358116906024359060443516610e36565b34156104bb57600080fd5b6101f5610eff565b34156104ce57600080fd5b6102c8610f6a565b34156104e157600080fd5b61028e600160a060020a0360043516602435610f79565b341561050357600080fd5b61028e60048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610faa95505050505050565b341561056857600080fd5b61028e60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650610fcd95505050505050565b341561060957600080fd5b61028e600160a060020a0360043516611042565b341561062857600080fd5b6102f7611192565b341561063b57600080fd5b6102f760046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061119895505050505050565b341561068c57600080fd5b61028e6111a5565b341561069f57600080fd5b6102f7600160a060020a0360043581169060243516611205565b34156106c457600080fd5b61028e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050509235600160a060020a0316925061129a915050565b341561073b57600080fd5b6102c8600160a060020a03600435166113e2565b600061075a336113e2565b90505b90565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107f65780601f106107cb576101008083540402835291602001916107f6565b820191906000526020600020905b8154815290600101906020018083116107d957829003601f168201915b505050505081565b6000600160a060020a038316156108a15761081761074f565b600160a060020a0316637b7054c884843360006040516020015260405160e060020a63ffffffff8616028152600160a060020a03938416600482015260248101929092529091166044820152606401602060405180830381600087803b151561087f57600080fd5b6102c65a03f1151561089057600080fd5b5050506040518051905090506108a5565b5060005b92915050565b600654600090600160a060020a031615156108c85750600061075d565b426203f4806007540111156108df5750600061075d565b506006805460058054600160a060020a0319908116600160a060020a038416179091551690556000600755600190565b600554600160a060020a031690565b600154600254600091600160a060020a03169063b524abcf90836040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561097557600080fd5b6102c65a03f1151561098657600080fd5b505050604051805191505090565b60015433600160a060020a03908116911614156109f35781600160a060020a031683600160a060020a03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405190815260200160405180910390a35b505050565b6000600160a060020a03831615610ab257610a1161074f565b600160a060020a031663ec698a288585853360006040516020015260405160e060020a63ffffffff8716028152600160a060020a03948516600482015292841660248401526044830191909152909116608482015260a06064820152600060a482015260e401602060405180830381600087803b1515610a9057600080fd5b6102c65a03f11515610aa157600080fd5b505050604051805190509050610ab6565b5060005b9392505050565b60015433600160a060020a03908116911614156109f35781600160a060020a031683600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a3505050565b600154600254600091600160a060020a03169063dc86e6f090836040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561097557600080fd5b600154600160a060020a031681565b60075490565b600154600254600091600160a060020a03169063e96b462a903390846040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610bf257600080fd5b6102c65a03f11515610c0357600080fd5b505050604051805190501561075d57600654600160a060020a03161515610c2c5750600061075d565b5060068054600160a060020a03191690556000600755600190565b600160a060020a03331660009081526008602052604090208054600160a060020a0319169055600190565b60008133600160a060020a0316610c88826113e2565b600160a060020a03161415610da55760018054600254600160a060020a03909116906357a96dd09089908990898960006040516020015260405160e060020a63ffffffff8816028152600160a060020a03808716600483019081526024830187905260448301869052908316608483015260a060648301908152909160a40184818151815260200191508051906020019080838360005b83811015610d37578082015183820152602001610d1f565b50505050905090810190601f168015610d645780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1515610d8657600080fd5b6102c65a03f11515610d9757600080fd5b505050604051805190501491505b50949350505050565b600154600254600091600160a060020a031690634d30b6be908490846040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610e1457600080fd5b6102c65a03f11515610e2557600080fd5b50505060405180519150505b919050565b60008133600160a060020a0316610e4c826113e2565b600160a060020a03161415610ef75760018054600254600160a060020a03909116906314712e2f90889088908860006040516020015260405160e060020a63ffffffff8716028152600160a060020a039485166004820152602481019390935260448301919091529091166064820152608401602060405180830381600087803b1515610ed857600080fd5b6102c65a03f11515610ee957600080fd5b505050604051805190501491505b509392505050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107f65780601f106107cb576101008083540402835291602001916107f6565b600654600160a060020a031690565b6000600160a060020a038316156108a157610fa38383602060405190810160405260008152611435565b90506108a5565b6000600160a060020a03841615610ab257610fc6848484611435565b9050610ab6565b600154600090600160a060020a031615610fe957506000610ab6565b60018054600160a060020a031916600160a060020a038616179055600483805161101792916020019061154f565b5061102183611198565b600255600382805161103792916020019061154f565b506001949350505050565b600154600254600091600160a060020a03169063e96b462a903390846040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156110a857600080fd5b6102c65a03f115156110b957600080fd5b5050506040518051905015610e3157600654600160a060020a0316156110e157506000610e31565b600160a060020a03821615156110f957506000610e31565b600554600160a060020a0316151561112e575060058054600160a060020a031916600160a060020a0383161790556001610e31565b60068054600160a060020a031916600160a060020a038416179055426007557faf574319215a31df9b528258f1bdeef2b12b169dc85ff443a49373248c77493a82604051600160a060020a03909116815260200160405180910390a1506001919050565b60025481565b6000602082015192915050565b600160a060020a03338116600090815260086020526040812054909116156111cf5750600061075d565b5060055433600160a060020a0390811660009081526008602052604090208054600160a060020a03191691909216179055600190565b600154600254600091600160a060020a031690631c8d5d389085908590856040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561127957600080fd5b6102c65a03f1151561128a57600080fd5b5050506040518051949350505050565b60008133600160a060020a03166112b0826113e2565b600160a060020a031614156113d85760018054600254600160a060020a039091169063161ff662908a908a908a908a8a60006040516020015260405160e060020a63ffffffff8916028152600160a060020a03808816600483019081528782166024840152604483018790526064830186905290831660a483015260c060848301908152909160c40184818151815260200191508051906020019080838360005b83811015611369578082015183820152602001611351565b50505050905090810190601f1680156113965780820380516001836020036101000a031916815260200191505b50975050505050505050602060405180830381600087803b15156113b957600080fd5b6102c65a03f115156113ca57600080fd5b505050604051805190501491505b5095945050505050565b600160a060020a038082166000908152600860205260408120549091161561142457600160a060020a03808316600090815260086020526040902054166108a5565b5050600554600160a060020a031690565b600061143f61074f565b600160a060020a0316636a630ee7858585336000604051602001526040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a031681526020018481526020018060200183600160a060020a0316600160a060020a03168152602001828103825284818151815260200191508051906020019080838360005b838110156114df5780820151838201526020016114c7565b50505050905090810190601f16801561150c5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561152d57600080fd5b6102c65a03f1151561153e57600080fd5b505050604051805195945050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061159057805160ff19168380011785556115bd565b828001600101855582156115bd579182015b828111156115bd5782518255916020019190600101906115a2565b506115c99291506115cd565b5090565b61075d91905b808211156115c957600081556001016115d35600a165627a7a7230582029d4b936f9cc5b0014b21228a8fe421af96aac8be5c59b58509ab1ea59695e1f0029

Swarm Source

bzzr://29d4b936f9cc5b0014b21228a8fe421af96aac8be5c59b58509ab1ea59695e1f

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.