Contract 0x69980dfd271daf09B606b7fA1d872D98c98015a8

 
 
Txn Hash
Method
Block
From
To
Value
0x5be86f5ffcdc8e1c374fda0a9b52586b6338246640cb656e99c2fbb69c8582c5Transfer Ownersh...67903282018-11-28 21:03:451356 days 23 hrs agoDragonereum Egg: Deployer IN  Dragonereum: Core Controller0 Ether0.‍001529150
0x563117ce5496ba82ebfaf632fea3bab95ffc664780f181fe67489598391f452fSet External Dep...67903192018-11-28 21:01:011356 days 23 hrs agoDragonereum Egg: Deployer IN  Dragonereum: Core Controller0 Ether0.‍0042677550
0x73ffe2428e5330d942b855021cc4d130346a300f8259b888db710af2e01c244eSet Internal Dep...67903172018-11-28 21:00:411356 days 23 hrs agoDragonereum Egg: Deployer IN  Dragonereum: Core Controller0 Ether0.‍0106116550
0xcc25ad6dd38ddc36673c2521e449f830553262ea7e6e2aa4fd56c335419896e10x6080604067902872018-11-28 20:54:351356 days 23 hrs agoDragonereum Egg: Deployer IN  Create: CoreController0 Ether0.‍1846085550
[ Download CSV Export 
View more zero value Internal Transactions in Advanced View mode
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CoreController

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-11-30
*/

pragma solidity 0.4.25;

library SafeMath256 {

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

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

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

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

    function pow(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) return 0;
        if (b == 0) return 1;

        uint256 c = a ** b;
        assert(c / (a ** (b - 1)) == a);
        return c;
    }
}

contract Ownable {
    address public owner;

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

    function _validateAddress(address _addr) internal pure {
        require(_addr != address(0), "invalid address");
    }

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

    modifier onlyOwner() {
        require(msg.sender == owner, "not a contract owner");
        _;
    }

    function transferOwnership(address newOwner) public onlyOwner {
        _validateAddress(newOwner);
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }

}

contract Controllable is Ownable {
    mapping(address => bool) controllers;

    modifier onlyController {
        require(_isController(msg.sender), "no controller rights");
        _;
    }

    function _isController(address _controller) internal view returns (bool) {
        return controllers[_controller];
    }

    function _setControllers(address[] _controllers) internal {
        for (uint256 i = 0; i < _controllers.length; i++) {
            _validateAddress(_controllers[i]);
            controllers[_controllers[i]] = true;
        }
    }
}

contract Upgradable is Controllable {
    address[] internalDependencies;
    address[] externalDependencies;

    function getInternalDependencies() public view returns(address[]) {
        return internalDependencies;
    }

    function getExternalDependencies() public view returns(address[]) {
        return externalDependencies;
    }

    function setInternalDependencies(address[] _newDependencies) public onlyOwner {
        for (uint256 i = 0; i < _newDependencies.length; i++) {
            _validateAddress(_newDependencies[i]);
        }
        internalDependencies = _newDependencies;
    }

    function setExternalDependencies(address[] _newDependencies) public onlyOwner {
        externalDependencies = _newDependencies;
        _setControllers(_newDependencies);
    }
}

contract Core {
    function isEggOwner(address, uint256) external view returns (bool);
    function createEgg(address, uint8) external returns (uint256);
    function sendToNest(uint256) external returns (bool, uint256, uint256, address);
    function openEgg(address, uint256, uint256) internal returns (uint256);
    function breed(address, uint256, uint256) external returns (uint256);
    function setDragonRemainingHealthAndMana(uint256, uint32, uint32) external;
    function increaseDragonExperience(uint256, uint256) external;
    function upgradeDragonGenes(uint256, uint16[10]) external;
    function increaseDragonWins(uint256) external;
    function increaseDragonDefeats(uint256) external;
    function setDragonTactics(uint256, uint8, uint8) external;
    function setDragonName(uint256, string) external returns (bytes32);
    function setDragonSpecialPeacefulSkill(uint256, uint8) external;
    function useDragonSpecialPeacefulSkill(address, uint256, uint256) external;
    function updateLeaderboardRewardTime() external;
    function getDragonsFromLeaderboard() external view returns (uint256[10]);
    function getLeaderboardRewards(uint256) external view returns (uint256[10]);
}

contract Treasury {
    uint256 public hatchingPrice;
    function giveGold(address, uint256) external;
    function takeGold(uint256) external;
    function burnGold(uint256) external;
    function remainingGold() external view returns (uint256);
}

contract Getter {
    function getDragonsAmount() external view returns (uint256);
    function isDragonBreedingAllowed(uint256) external view returns (bool);
    function getDragonNamePriceByLength(uint256) external view returns (uint256);
    function isEggOnSale(uint256) external view returns (bool);
    function isDragonOnSale(uint256) public view returns (bool);
    function isBreedingOnSale(uint256) public view returns (bool);
    function isDragonOwner(address, uint256) external view returns (bool);
    function ownerOfDragon(uint256) public view returns (address);
    function isDragonInGladiatorBattle(uint256) public view returns (bool);
}

contract Distribution {
    function claim(uint8) external returns (uint256, uint256, uint256);
}




//////////////CONTRACT//////////////




contract CoreController is Upgradable {
    using SafeMath256 for uint256;

    Core core;
    Treasury treasury;
    Getter getter;
    Distribution distribution;

    function _isDragonOwner(address _user, uint256 _id) internal view returns (bool) {
        return getter.isDragonOwner(_user, _id);
    }

    function _checkTheDragonIsNotInGladiatorBattle(uint256 _id) internal view {
        require(!getter.isDragonInGladiatorBattle(_id), "dragon participates in gladiator battle");
    }

    function _checkTheDragonIsNotOnSale(uint256 _id) internal view {
        require(!getter.isDragonOnSale(_id), "dragon is on sale");
    }

    function _checkTheDragonIsNotOnBreeding(uint256 _id) internal view {
        require(!getter.isBreedingOnSale(_id), "dragon is on breeding sale");
    }

    function _checkThatEnoughDNAPoints(uint256 _id) internal view {
        require(getter.isDragonBreedingAllowed(_id), "dragon has no enough DNA points for breeding");
    }

    function _checkDragonOwner(address _user, uint256 _id) internal view {
        require(_isDragonOwner(_user, _id), "not an owner");
    }

    function claimEgg(
        address _sender,
        uint8 _dragonType
    ) external onlyController returns (
        uint256 eggId,
        uint256 restAmount,
        uint256 lastBlock,
        uint256 interval
    ) {
        (restAmount, lastBlock, interval) = distribution.claim(_dragonType);
        eggId = core.createEgg(_sender, _dragonType);

        uint256 _goldReward = treasury.hatchingPrice();
        uint256 _goldAmount = treasury.remainingGold();
        if (_goldReward > _goldAmount) _goldReward = _goldAmount;
        treasury.giveGold(_sender, _goldReward);
    }

    // ACTIONS WITH OWN TOKEN

    function sendToNest(
        address _sender,
        uint256 _eggId
    ) external onlyController returns (bool, uint256, uint256, address) {
        require(!getter.isEggOnSale(_eggId), "egg is on sale");
        require(core.isEggOwner(_sender, _eggId), "not an egg owner");

        uint256 _hatchingPrice = treasury.hatchingPrice();
        treasury.takeGold(_hatchingPrice);
        if (getter.getDragonsAmount() > 9997) { // 9997 + 2 (in the nest) + 1 (just sent) = 10000 dragons without gold burning
            treasury.burnGold(_hatchingPrice.div(2));
        }

        return core.sendToNest(_eggId);
    }

    function breed(
        address _sender,
        uint256 _momId,
        uint256 _dadId
    ) external onlyController returns (uint256 eggId) {
        _checkThatEnoughDNAPoints(_momId);
        _checkThatEnoughDNAPoints(_dadId);
        _checkTheDragonIsNotOnBreeding(_momId);
        _checkTheDragonIsNotOnBreeding(_dadId);
        _checkTheDragonIsNotOnSale(_momId);
        _checkTheDragonIsNotOnSale(_dadId);
        _checkTheDragonIsNotInGladiatorBattle(_momId);
        _checkTheDragonIsNotInGladiatorBattle(_dadId);
        _checkDragonOwner(_sender, _momId);
        _checkDragonOwner(_sender, _dadId);
        require(_momId != _dadId, "the same dragon");

        return core.breed(_sender, _momId, _dadId);
    }

    function upgradeDragonGenes(
        address _sender,
        uint256 _id,
        uint16[10] _dnaPoints
    ) external onlyController {
        _checkTheDragonIsNotOnBreeding(_id);
        _checkTheDragonIsNotOnSale(_id);
        _checkTheDragonIsNotInGladiatorBattle(_id);
        _checkDragonOwner(_sender, _id);
        core.upgradeDragonGenes(_id, _dnaPoints);
    }

    function setDragonTactics(
        address _sender,
        uint256 _id,
        uint8 _melee,
        uint8 _attack
    ) external onlyController {
        _checkDragonOwner(_sender, _id);
        core.setDragonTactics(_id, _melee, _attack);
    }

    function setDragonName(
        address _sender,
        uint256 _id,
        string _name
    ) external onlyController returns (bytes32) {
        _checkDragonOwner(_sender, _id);

        uint256 _length = bytes(_name).length;
        uint256 _price = getter.getDragonNamePriceByLength(_length);

        if (_price > 0) {
            treasury.takeGold(_price);
        }

        return core.setDragonName(_id, _name);
    }

    function setDragonSpecialPeacefulSkill(address _sender, uint256 _id, uint8 _class) external onlyController {
        _checkDragonOwner(_sender, _id);
        core.setDragonSpecialPeacefulSkill(_id, _class);
    }

    function useDragonSpecialPeacefulSkill(address _sender, uint256 _id, uint256 _target) external onlyController {
        _checkDragonOwner(_sender, _id);
        _checkTheDragonIsNotInGladiatorBattle(_id);
        _checkTheDragonIsNotInGladiatorBattle(_target);
        core.useDragonSpecialPeacefulSkill(_sender, _id, _target);
    }

    function distributeLeaderboardRewards() external onlyController returns (
        uint256[10] dragons,
        address[10] users
    ) {
        core.updateLeaderboardRewardTime();
        uint256 _hatchingPrice = treasury.hatchingPrice();
        uint256[10] memory _rewards = core.getLeaderboardRewards(_hatchingPrice);

        dragons = core.getDragonsFromLeaderboard();
        uint8 i;
        for (i = 0; i < dragons.length; i++) {
            if (dragons[i] == 0) continue;
            users[i] = getter.ownerOfDragon(dragons[i]);
        }

        uint256 _remainingGold = treasury.remainingGold();
        uint256 _reward;
        for (i = 0; i < users.length; i++) {
            if (_remainingGold == 0) break;
            if (users[i] == address(0)) continue;

            _reward = _rewards[i];
            if (_reward > _remainingGold) {
                _reward = _remainingGold;
            }
            treasury.giveGold(users[i], _reward);
            _remainingGold = _remainingGold.sub(_reward);
        }
    }

    // UPDATE CONTRACT

    function setInternalDependencies(address[] _newDependencies) public onlyOwner {
        super.setInternalDependencies(_newDependencies);

        core = Core(_newDependencies[0]);
        treasury = Treasury(_newDependencies[1]);
        getter = Getter(_newDependencies[2]);
        distribution = Distribution(_newDependencies[3]);
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_sender","type":"address"},{"name":"_momId","type":"uint256"},{"name":"_dadId","type":"uint256"}],"name":"breed","outputs":[{"name":"eggId","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_sender","type":"address"},{"name":"_id","type":"uint256"},{"name":"_name","type":"string"}],"name":"setDragonName","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_sender","type":"address"},{"name":"_id","type":"uint256"},{"name":"_melee","type":"uint8"},{"name":"_attack","type":"uint8"}],"name":"setDragonTactics","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_sender","type":"address"},{"name":"_dragonType","type":"uint8"}],"name":"claimEgg","outputs":[{"name":"eggId","type":"uint256"},{"name":"restAmount","type":"uint256"},{"name":"lastBlock","type":"uint256"},{"name":"interval","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_sender","type":"address"},{"name":"_eggId","type":"uint256"}],"name":"sendToNest","outputs":[{"name":"","type":"bool"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"distributeLeaderboardRewards","outputs":[{"name":"dragons","type":"uint256[10]"},{"name":"users","type":"address[10]"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_sender","type":"address"},{"name":"_id","type":"uint256"},{"name":"_class","type":"uint8"}],"name":"setDragonSpecialPeacefulSkill","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newDependencies","type":"address[]"}],"name":"setExternalDependencies","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newDependencies","type":"address[]"}],"name":"setInternalDependencies","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sender","type":"address"},{"name":"_id","type":"uint256"},{"name":"_target","type":"uint256"}],"name":"useDragonSpecialPeacefulSkill","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getInternalDependencies","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sender","type":"address"},{"name":"_id","type":"uint256"},{"name":"_dnaPoints","type":"uint16[10]"}],"name":"upgradeDragonGenes","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getExternalDependencies","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506136aa806100536000396000f3006080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806312e3fe10146100e05780632382cd971461014b578063274ddb50146101cc5780634039eee3146102335780634638ac57146102ac5780635f9ac1a514610352578063655cf8e9146103d457806365fc12531461042e57806369c0ad93146104945780638da5cb5b146104fa578063978ee4e014610551578063b75c4f80146105a8578063d4df4dd614610614578063e6458f6e1461066c578063f2fde38b146106d8575b600080fd5b3480156100ec57600080fd5b50610135600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061071b565b6040518082815260200191505060405180910390f35b34801561015757600080fd5b506101ae600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190820180359060200191909192939192939050505061097f565b60405180826000191660001916815260200191505060405180910390f35b3480156101d857600080fd5b50610231600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803560ff169060200190929190803560ff169060200190929190505050610c8c565b005b34801561023f57600080fd5b50610281600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610dde565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b3480156102b857600080fd5b506102f7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112d8565b60405180851515151581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390f35b34801561035e57600080fd5b50610367611a01565b6040518083600a60200280838360005b83811015610392578082015181840152602081019050610377565b5050505090500182600a60200280838360005b838110156103c05780820151818401526020810190506103a5565b505050509050019250505060405180910390f35b3480156103e057600080fd5b5061042c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803560ff16906020019092919050505061217d565b005b34801561043a57600080fd5b50610492600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506122c0565b005b3480156104a057600080fd5b506104f8600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506123a7565b005b34801561050657600080fd5b5061050f6125db565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055d57600080fd5b506105a6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050612600565b005b3480156105b457600080fd5b506105bd612783565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106005780820151818401526020810190506105e5565b505050509050019250505060405180910390f35b34801561062057600080fd5b5061066a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908061014001909192919290505050612811565b005b34801561067857600080fd5b50610681612972565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106c45780820151818401526020810190506106a9565b505050509050019250505060405180910390f35b3480156106e457600080fd5b50610719600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a00565b005b600061072633612b8b565b151561079a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b6107a383612be1565b6107ac82612be1565b6107b583612d4a565b6107be82612d4a565b6107c783612e8e565b6107d082612e8e565b6107d983612fd2565b6107e282612fd2565b6107ec848461313c565b6107f6848361313c565b81831415151561086e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f7468652073616d6520647261676f6e000000000000000000000000000000000081525060200191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166312e3fe108585856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019350505050602060405180830381600087803b15801561093b57600080fd5b505af115801561094f573d6000803e3d6000fd5b505050506040513d602081101561096557600080fd5b810190808051906020019092919050505090509392505050565b600080600061098d33612b8b565b1515610a01576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b610a0b878761313c565b848490509150600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639462c0ed836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b158015610aa257600080fd5b505af1158015610ab6573d6000803e3d6000fd5b505050506040513d6020811015610acc57600080fd5b810190808051906020019092919050505090506000811115610b9257600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d84da7e826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015610b7957600080fd5b505af1158015610b8d573d6000803e3d6000fd5b505050505b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166399d76e498787876040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018060200182810382528484828181526020019250808284378201915050945050505050602060405180830381600087803b158015610c4557600080fd5b505af1158015610c59573d6000803e3d6000fd5b505050506040513d6020811015610c6f57600080fd5b810190808051906020019092919050505092505050949350505050565b610c9533612b8b565b1515610d09576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b610d13848461313c565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663466d3d388484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018360ff1660ff1681526020018260ff1660ff1681526020019350505050600060405180830381600087803b158015610dc057600080fd5b505af1158015610dd4573d6000803e3d6000fd5b5050505050505050565b600080600080600080610df033612b8b565b1515610e64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166395d4063f886040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260ff1660ff168152602001915050606060405180830381600087803b158015610efb57600080fd5b505af1158015610f0f573d6000803e3d6000fd5b505050506040513d6060811015610f2557600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050809550819650829750505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b0866bc789896040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018260ff1660ff16815260200192505050602060405180830381600087803b15801561102157600080fd5b505af1158015611035573d6000803e3d6000fd5b505050506040513d602081101561104b57600080fd5b81019080805190602001909291905050509550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663529e89346040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156110e457600080fd5b505af11580156110f8573d6000803e3d6000fd5b505050506040513d602081101561110e57600080fd5b81019080805190602001909291905050509150600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b95e94846040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156111a757600080fd5b505af11580156111bb573d6000803e3d6000fd5b505050506040513d60208110156111d157600080fd5b81019080805190602001909291905050509050808211156111f0578091505b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c47bf45f89846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156112b557600080fd5b505af11580156112c9573d6000803e3d6000fd5b50505050505092959194509250565b60008060008060006112e933612b8b565b151561135d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e9797022876040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1580156113ee57600080fd5b505af1158015611402573d6000803e3d6000fd5b505050506040513d602081101561141857600080fd5b810190808051906020019092919050505015151561149e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f656767206973206f6e2073616c6500000000000000000000000000000000000081525060200191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166345ada01f88886040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561156357600080fd5b505af1158015611577573d6000803e3d6000fd5b505050506040513d602081101561158d57600080fd5b81019080805190602001909291905050501515611612576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f7420616e20656767206f776e65720000000000000000000000000000000081525060200191505060405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663529e89346040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561169857600080fd5b505af11580156116ac573d6000803e3d6000fd5b505050506040513d60208110156116c257600080fd5b81019080805190602001909291905050509050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d84da7e826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561176657600080fd5b505af115801561177a573d6000803e3d6000fd5b5050505061270d600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663846a7f806040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561180757600080fd5b505af115801561181b573d6000803e3d6000fd5b505050506040513d602081101561183157600080fd5b8101908080519060200190929190505050111561190557600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee4d282361189a6002846131be90919063ffffffff16565b6040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1580156118ec57600080fd5b505af1158015611900573d6000803e3d6000fd5b505050505b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d2d21e85876040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050608060405180830381600087803b15801561199657600080fd5b505af11580156119aa573d6000803e3d6000fd5b505050506040513d60808110156119c057600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919050505094509450945094505092959194509250565b611a09613569565b611a1161358d565b6000611a1b613569565b6000806000611a2933612b8b565b1515611a9d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663068d1fb86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015611b2357600080fd5b505af1158015611b37573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663529e89346040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611bc157600080fd5b505af1158015611bd5573d6000803e3d6000fd5b505050506040513d6020811015611beb57600080fd5b81019080805190602001909291905050509450600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dc24838a866040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505061014060405180830381600087803b158015611c9057600080fd5b505af1158015611ca4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610140811015611cca57600080fd5b81019080919050509350600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380deece56040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161014060405180830381600087803b158015611d5b57600080fd5b505af1158015611d6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610140811015611d9557600080fd5b81019080919050509650600092505b600a8360ff161015611f0a576000878460ff16600a81101515611dc357fe5b60200201511415611dd357611efd565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4d5d69d888560ff16600a81101515611e2257fe5b60200201516040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b158015611e7957600080fd5b505af1158015611e8d573d6000803e3d6000fd5b505050506040513d6020811015611ea357600080fd5b8101908080519060200190929190505050868460ff16600a81101515611ec557fe5b602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b8280600101935050611da4565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b95e94846040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611f9057600080fd5b505af1158015611fa4573d6000803e3d6000fd5b505050506040513d6020811015611fba57600080fd5b81019080805190602001909291905050509150600092505b600a8360ff161015612174576000821415611fec57612174565b600073ffffffffffffffffffffffffffffffffffffffff16868460ff16600a8110151561201557fe5b602002015173ffffffffffffffffffffffffffffffffffffffff16141561203b57612167565b838360ff16600a8110151561204c57fe5b602002015190508181111561205f578190505b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c47bf45f878560ff16600a811015156120ae57fe5b6020020151836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561213957600080fd5b505af115801561214d573d6000803e3d6000fd5b5050505061216481836131d490919063ffffffff16565b91505b8280600101935050611fd2565b50505050509091565b61218633612b8b565b15156121fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b612204838361313c565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c718640a83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018260ff1660ff16815260200192505050600060405180830381600087803b1580156122a357600080fd5b505af11580156122b7573d6000803e3d6000fd5b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612384576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f74206120636f6e7472616374206f776e657200000000000000000000000081525060200191505060405180910390fd5b806003908051906020019061239a9291906135b1565b506123a4816131ed565b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561246b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f74206120636f6e7472616374206f776e657200000000000000000000000081525060200191505060405180910390fd5b6124748161329b565b80600081518110151561248357fe5b90602001906020020151600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060018151811015156124dc57fe5b90602001906020020151600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600281518110151561253557fe5b90602001906020020151600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600381518110151561258e57fe5b90602001906020020151600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61260933612b8b565b151561267d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b612687838361313c565b61269082612fd2565b61269981612fd2565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663978ee4e08484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019350505050600060405180830381600087803b15801561276657600080fd5b505af115801561277a573d6000803e3d6000fd5b50505050505050565b6060600280548060200260200160405190810160405280929190818152602001828054801561280757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116127bd575b5050505050905090565b61281a33612b8b565b151561288e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b61289782612d4a565b6128a082612e8e565b6128a982612fd2565b6128b3838361313c565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166335c0cbaf83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600a60200280828437820191505092505050600060405180830381600087803b15801561295557600080fd5b505af1158015612969573d6000803e3d6000fd5b50505050505050565b606060038054806020026020016040519081016040528092919081815260200182805480156129f657602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116129ac575b5050505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612ac4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f74206120636f6e7472616374206f776e657200000000000000000000000081525060200191505060405180910390fd5b612acd816133b7565b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b11c89f3826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b158015612c7257600080fd5b505af1158015612c86573d6000803e3d6000fd5b505050506040513d6020811015612c9c57600080fd5b81019080805190602001909291905050501515612d47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f647261676f6e20686173206e6f20656e6f75676820444e4120706f696e74732081526020017f666f72206272656564696e67000000000000000000000000000000000000000081525060400191505060405180910390fd5b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1fc70d7826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b158015612ddb57600080fd5b505af1158015612def573d6000803e3d6000fd5b505050506040513d6020811015612e0557600080fd5b8101908080519060200190929190505050151515612e8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f647261676f6e206973206f6e206272656564696e672073616c6500000000000081525060200191505060405180910390fd5b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166399941140826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b158015612f1f57600080fd5b505af1158015612f33573d6000803e3d6000fd5b505050506040513d6020811015612f4957600080fd5b8101908080519060200190929190505050151515612fcf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f647261676f6e206973206f6e2073616c6500000000000000000000000000000081525060200191505060405180910390fd5b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638792178b826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15801561306357600080fd5b505af1158015613077573d6000803e3d6000fd5b505050506040513d602081101561308d57600080fd5b8101908080519060200190929190505050151515613139576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f647261676f6e2070617274696369706174657320696e20676c61646961746f7281526020017f20626174746c650000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b50565b613146828261345f565b15156131ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f6e6f7420616e206f776e6572000000000000000000000000000000000000000081525060200191505060405180910390fd5b5050565b600081838115156131cb57fe5b04905092915050565b60008282111515156131e257fe5b818303905092915050565b60008090505b81518110156132975761321c828281518110151561320d57fe5b906020019060200201516133b7565b6001806000848481518110151561322f57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506131f3565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613361576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f74206120636f6e7472616374206f776e657200000000000000000000000081525060200191505060405180910390fd5b600090505b815181101561339c5761338f828281518110151561338057fe5b906020019060200201516133b7565b8080600101915050613366565b81600290805190602001906133b29291906135b1565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561345c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f696e76616c69642061646472657373000000000000000000000000000000000081525060200191505060405180910390fd5b50565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166339b823e784846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561352657600080fd5b505af115801561353a573d6000803e3d6000fd5b505050506040513d602081101561355057600080fd5b8101908080519060200190929190505050905092915050565b61014060405190810160405280600a90602082028038833980820191505090505090565b61014060405190810160405280600a90602082028038833980820191505090505090565b82805482825590600052602060002090810192821561362a579160200282015b828111156136295782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906135d1565b5b509050613637919061363b565b5090565b61367b91905b8082111561367757600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101613641565b5090565b905600a165627a7a72305820e4211279beb8eda1c914834c67ade7c249327939848daa2018bec3f0fbabd3430029

Swarm Source

bzzr://e4211279beb8eda1c914834c67ade7c249327939848daa2018bec3f0fbabd343
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

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.