ETH Price: $3,344.08 (-1.60%)

Contract

0x59De2a5C00C7ee1c9cc823146cD18580FC5fF7b5
 
Transaction Hash
Method
Block
From
To
Launch Ship On M...71519432019-01-31 3:40:442158 days ago1548906044IN
0x59De2a5C...0FC5fF7b5
0 ETH0.000013910.6103869
Launch Ship On M...70287922019-01-08 1:49:082181 days ago1546912148IN
0x59De2a5C...0FC5fF7b5
0 ETH0.000013910.6103439
Launch Ship On M...68984802018-12-16 17:28:032203 days ago1544981283IN
0x59De2a5C...0FC5fF7b5
0 ETH0.000045612
Pause68442642018-12-07 19:03:412212 days ago1544209421IN
0x59De2a5C...0FC5fF7b5
0 ETH0.000869420.1
Withdraw Collect...68379582018-12-06 17:55:292213 days ago1544118929IN
0x59De2a5C...0FC5fF7b5
0 ETH0.0055785317
Withdraw Collect...68330742018-12-05 22:24:472214 days ago1544048687IN
0x59De2a5C...0FC5fF7b5
0 ETH0.000874636
Claim Ore Only F...68330712018-12-05 22:24:162214 days ago1544048656IN
0x59De2a5C...0FC5fF7b5
0 ETH0.000334266
Claim Ore Only F...68330692018-12-05 22:23:482214 days ago1544048628IN
0x59De2a5C...0FC5fF7b5
0 ETH0.000302316
Claim Ore Only F...68330602018-12-05 22:22:052214 days ago1544048525IN
0x59De2a5C...0FC5fF7b5
0 ETH0.000302126
Withdraw Collect...68278562018-12-05 1:46:122215 days ago1543974372IN
0x59De2a5C...0FC5fF7b5
0 ETH0.0003692410
Unpause68278482018-12-05 1:42:152215 days ago1543974135IN
0x59De2a5C...0FC5fF7b5
0 ETH0.000281620.1
Withdraw Collect...68273102018-12-04 23:23:232215 days ago1543965803IN
0x59De2a5C...0FC5fF7b5
0 ETH0.0003692410
Pause68261132018-12-04 18:46:452215 days ago1543949205IN
0x59De2a5C...0FC5fF7b5
0 ETH0.0008753720.1
Withdraw Collect...68211222018-12-03 22:53:482216 days ago1543877628IN
0x59De2a5C...0FC5fF7b5
0 ETH0.000992048
Withdraw Collect...68204412018-12-03 20:20:582216 days ago1543868458IN
0x59De2a5C...0FC5fF7b5
0 ETH0.005179310.3
Claim Ore Only F...68197832018-12-03 17:47:352216 days ago1543859255IN
0x59De2a5C...0FC5fF7b5
0 ETH0.0008833120.1
Withdraw Collect...68197822018-12-03 17:47:162216 days ago1543859236IN
0x59De2a5C...0FC5fF7b5
0 ETH0.000443078
Claim Ore Only F...68197772018-12-03 17:46:232216 days ago1543859183IN
0x59De2a5C...0FC5fF7b5
0 ETH0.0010121120.1
Launch Ship On M...68197302018-12-03 17:33:572216 days ago1543858437IN
0x59De2a5C...0FC5fF7b5
0 ETH0.001290696
Launch Ship On M...68187032018-12-03 13:23:202216 days ago1543843400IN
0x59De2a5C...0FC5fF7b5
0 ETH0.000790683.51
Launch Ship On M...68187032018-12-03 13:23:202216 days ago1543843400IN
0x59De2a5C...0FC5fF7b5
0 ETH0.000790463.51
Launch Ship On M...68166652018-12-03 5:18:182217 days ago1543814298IN
0x59De2a5C...0FC5fF7b5
0 ETH0.001075585
Withdraw Collect...68156122018-12-03 1:01:102217 days ago1543798870IN
0x59De2a5C...0FC5fF7b5
0 ETH0.000728865
Launch Ship On M...68156092018-12-03 1:00:232217 days ago1543798823IN
0x59De2a5C...0FC5fF7b5
0 ETH0.001126335
Withdraw Collect...68148372018-12-02 21:57:312217 days ago1543787851IN
0x59De2a5C...0FC5fF7b5
0 ETH0.000184625
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:
MEAManager

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

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

pragma solidity ^0.4.19;



/// @title Interface for contracts conforming to ERC-721: Non-Fungible Tokens
/// @author Dieter Shirley <[email protected]> (https://github.com/dete)
contract CSCERC721 {
  // Required methods
  function balanceOf(address _owner) public view returns (uint256 balance) { 
      return 0;
      
  }
  function ownerOf(uint256 _tokenId) public view returns (address owner) { return;}

  function getCollectibleDetails(uint256 _assetId) external view returns(uint256 assetId, uint256 sequenceId, uint256 collectibleType, uint256 collectibleClass, bool isRedeemed, address owner) {
        assetId = 0;
        sequenceId = 0;
        collectibleType = 0;
        collectibleClass = 0;
        owner = 0;
        isRedeemed = false;
  }

   function tokensOfOwner(address _owner) external view returns(uint256[] ownerTokens) {
        return;
   }

}

contract CSCFactoryERC721 {
    
    function ownerOf(uint256 _tokenId) public view returns (address owner) { return;}

    function getCollectibleDetails(uint256 _tokenId) external view returns(uint256 assetId, uint256 sequenceId, uint256 collectibleType, uint256 collectibleClass, bytes32 collectibleName, bool isRedeemed, address owner) {

        assetId = 0;
        sequenceId = 0;
        collectibleType = 0;
        collectibleClass = 0;
        owner = 0;
        collectibleName = 0x0;
        isRedeemed = false;
    }

    function tokensOfOwner(address _owner) external view returns(uint256[] ownerTokens) {
        return;
   }
}

contract ERC20 {
  function balanceOf(address who) public view returns (uint256);
  function transfer(address to, uint256 value) public returns (bool);
}

contract CSCResourceFactory {
    mapping(uint16 => address) public resourceIdToAddress; 
}


contract MEAHiddenLogic {


    function getTotalTonsClaimed() external view returns(uint32) {
        return;
    }

    function getTotalSupply() external view returns(uint32) {
        return;
    }

     function getStarTotalSupply(uint8 _starId) external view returns(uint32) {
        return;
    }

    function getReturnTime(uint256 _assetId) external view returns(uint256 time) {
        return;
    }

    //uint256 iron, uint256 quartz, uint256 nickel, uint256 cobalt, uint256 silver, uint256 titanium, uint256 lucinite, uint256 gold, uint256 cosmethyst, uint256 allurum,  uint256 platinum,  uint256 trilite 
    function setResourceForStar(uint8[5] _resourceTypes, uint16[5] _resourcePer, uint32[5] _resourceAmounts) public returns(uint8 starId) {
    }

    
    /// @dev Method to fetch collected ore details
    function getAssetCollectedOreBallances(uint256 _assetID) external view returns(uint256 iron, uint256 quartz, uint256 nickel, uint256 cobalt, uint256 silver, uint256 titanium, uint256 lucinite, uint256 gold, uint256 cosmethyst, uint256 allurum,  uint256 platinum,  uint256 trilite);

    function getAssetCollectedOreBallancesArray(uint256 _assetID) external view returns(uint256[12] ores);

    function emptyShipCargo(uint32 _assetId) external;

     /// @dev For creating CSC Collectible
    function startMEAMission(uint256 _assetId, uint256 oreMax, uint8 starId, uint256 _travelTime) public returns(uint256);

    
}

/* Controls state and access rights for contract functions
 * @title Operational Control
 * @author Fazri Zubair & Farhan Khwaja (Lucid Sight, Inc.)
 * Inspired and adapted from contract created by OpenZeppelin
 * Ref: https://github.com/OpenZeppelin/zeppelin-solidity/
 */
contract OperationalControl {
    // Facilitates access & control for the game.
    // Roles:
    //  -The Managers (Primary/Secondary): Has universal control of all elements (No ability to withdraw)
    //  -The Banker: The Bank can withdraw funds and adjust fees / prices.
    //  -otherManagers: Contracts that need access to functions for gameplay

    /// @dev Emited when contract is upgraded
    event ContractUpgrade(address newContract);

    /// @dev Emited when other manager is set
    event OtherManagerUpdated(address otherManager, uint256 state);

    // The addresses of the accounts (or contracts) that can execute actions within each roles.
    address public managerPrimary;
    address public managerSecondary;
    address public bankManager;

    // Contracts that require access for gameplay
    mapping(address => uint8) public otherManagers;

    // @dev Keeps track whether the contract is paused. When that is true, most actions are blocked
    bool public paused = false;

    // @dev Keeps track whether the contract erroredOut. When that is true, most actions are blocked & refund can be claimed
    bool public error = false;

    /// @dev Operation modifiers for limiting access
    modifier onlyManager() {
        require(msg.sender == managerPrimary || msg.sender == managerSecondary);
        _;
    }

    modifier onlyBanker() {
        require(msg.sender == bankManager);
        _;
    }

    modifier onlyOtherManagers() {
        require(otherManagers[msg.sender] == 1);
        _;
    }


    modifier anyOperator() {
        require(
            msg.sender == managerPrimary ||
            msg.sender == managerSecondary ||
            msg.sender == bankManager ||
            otherManagers[msg.sender] == 1
        );
        _;
    }

    /// @dev Assigns a new address to act as the Other Manager. (State = 1 is active, 0 is disabled)
    function setOtherManager(address _newOp, uint8 _state) external onlyManager {
        require(_newOp != address(0));

        otherManagers[_newOp] = _state;

        OtherManagerUpdated(_newOp,_state);
    }

    /// @dev Assigns a new address to act as the Primary Manager.
    function setPrimaryManager(address _newGM) external onlyManager {
        require(_newGM != address(0));

        managerPrimary = _newGM;
    }

    /// @dev Assigns a new address to act as the Secondary Manager.
    function setSecondaryManager(address _newGM) external onlyManager {
        require(_newGM != address(0));

        managerSecondary = _newGM;
    }

    /// @dev Assigns a new address to act as the Banker.
    function setBanker(address _newBK) external onlyManager {
        require(_newBK != address(0));

        bankManager = _newBK;
    }

    /*** Pausable functionality adapted from OpenZeppelin ***/

    /// @dev Modifier to allow actions only when the contract IS NOT paused
    modifier whenNotPaused() {
        require(!paused);
        _;
    }

    /// @dev Modifier to allow actions only when the contract IS paused
    modifier whenPaused {
        require(paused);
        _;
    }

    /// @dev Modifier to allow actions only when the contract has Error
    modifier whenError {
        require(error);
        _;
    }

    /// @dev Called by any Operator role to pause the contract.
    /// Used only if a bug or exploit is discovered (Here to limit losses / damage)
    function pause() external onlyManager whenNotPaused {
        paused = true;
    }

    /// @dev Unpauses the smart contract. Can only be called by the Game Master
    /// @notice This is public rather than external so it can be called by derived contracts. 
    function unpause() public onlyManager whenPaused {
        // can't unpause if contract was upgraded
        paused = false;
    }

    /// @dev Unpauses the smart contract. Can only be called by the Game Master
    /// @notice This is public rather than external so it can be called by derived contracts. 
    function hasError() public onlyManager whenPaused {
        error = true;
    }

    /// @dev Unpauses the smart contract. Can only be called by the Game Master
    /// @notice This is public rather than external so it can be called by derived contracts. 
    function noError() public onlyManager whenPaused {
        error = false;
    }
}

contract MEAManager is OperationalControl {

    /*** EVENTS ***/

    /*** CONSTANTS ***/
    uint256 public constant REAPER_INTREPID = 3; 
    uint256 public constant REAPER_INTREPID_EXTRACTION_BASE = 10; // tons per hour of mining
    uint256 public constant REAPER_INTREPID_FTL_SPEED = 900; // Seconds to travel 1 light year
    uint256 public constant REAPER_INTREPID_MAX_CARGO = 320;

    uint256 public constant PHOENIX_CORSAIR = 2;
    uint256 public constant PHOENIX_CORSAIR_EXTRACTION_BASE = 40; // tons per hour of mining
    uint256 public constant PHOENIX_CORSAIR_FTL_SPEED = 1440; // Seconds to travel 1 light year
    uint256 public constant PHOENIX_CORSAIR_MAX_CARGO = 1500;

    uint256 public constant VULCAN_PROMETHEUS = 1;
    uint256 public constant VULCAN_PROMETHEUS_EXTRACTION_BASE = 300; // tons per hour of mining
    uint256 public constant VULCAN_PROMETHEUS_FTL_SPEED = 2057; // Seconds to travel 1 light year
    uint256 public constant VULCAN_PROMETHEUS_MAX_CARGO = 6000; 

    uint256 public constant SIGMA = 4;
    uint256 public constant SIGMA_EXTRACTION_BASE = 150; // tons per hour of mining
    uint256 public constant SIGMA_FTL_SPEED = 4235; // Seconds to travel 1 light year
    uint256 public constant SIGMA_MAX_CARGO = 15000; 

    uint256 public constant HAYATO = 5;
    uint256 public constant HAYATO_EXTRACTION_BASE = 150; // tons per hour of mining
    uint256 public constant HAYATO_FTL_SPEED = 360; // Seconds to travel 1 light year
    uint256 public constant HAYATO_MAX_CARGO = 1500; 

    uint256 public constant CPGPEREGRINE = 6;
    uint256 public constant CPGPEREGRINE_EXTRACTION_BASE = 150; // tons per hour of mining
    uint256 public constant CPGPEREGRINE_FTL_SPEED = 720; // Seconds to travel 1 light year
    uint256 public constant CPGPEREGRINE_MAX_CARGO = 4000; 

    uint256 public constant TACTICALCRUISER = 7;
    uint256 public constant TACTICALCRUISER_EXTRACTION_BASE = 150; // tons per hour of mining
    uint256 public constant TACTICALCRUISER_FTL_SPEED = 720; // Seconds to travel 1 light year
    uint256 public constant TACTICALCRUISER_MAX_CARGO = 1000;

    uint256 public constant OTHERCRUISER = 8;
    uint256 public constant OTHERCRUISER_EXTRACTION_BASE = 100; // tons per hour of mining
    uint256 public constant OTHERCRUISER_FTL_SPEED = 720; // Seconds to travel 1 light year
    uint256 public constant OTHERCRUISER_MAX_CARGO = 1500;  

    uint256 public constant VULCAN_POD = 9;
    uint256 public constant VULCAN_POD_EXTRACTION_BASE = 1; // tons per hour of mining
    uint256 public constant VULCAN_POD_FTL_SPEED = 2000; // Seconds to travel 1 light year
    uint256 public constant VULCAN_POD_MAX_CARGO = 75;  

    //For Devs to Travel Around
    uint256 public constant DEVCLASS = 99;
    uint256 public constant DEVCLASS_EXTRACTION_BASE = 50; // tons per hour of mining
    uint256 public constant DEVCLASS_FTL_SPEED = 10; // Seconds to travel 1 light year
    uint256 public constant DEVCLASS_MAX_CARGO = 500; 
    
    /// @notice Name and symbol of the non fungible token, as defined in ERC721.
    string public constant NAME = "MEAGameManager";

    /*** Mappings ***/

     /// @dev assetID to ore type to qty collected
    mapping(uint32 => mapping(uint8 => uint32)) public collectedOreAssetMapping;

    /// @dev owner address to ore type to qty collected
    mapping(address => mapping(uint8 => uint32)) public collectedOreBalanceMapping;

    /// @dev owner address to ore type to qty collected
    mapping(address => mapping(uint8 => uint32)) public distributedOreBalanceMapping;

    /// @dev assetID to number of MEA trips it has completed
    mapping(uint32 => uint32) public assetIdNumberOfTripsMapping;

    /// @dev assetID to ore type to qty collected
    mapping(uint8 => uint16) public starLightyearDistanceMapping;

    /// @dev assetID to last star visited
    mapping(uint32 => uint8) public assetIdToStarVisitedMapping;

    /// @dev assetID to last star visited
    mapping(uint16 => address) public resourceERC20Address;

    /// @dev assetID to Start Time of Current Trip
    mapping(uint32 => uint32) public assetIdCurrentTripStartTimeMapping;


    /*** Variables ***/
    uint256 public miningTimePerTrip = 3600; // 3600 for 1 hour 10
    uint256 public aimeIncreasePerTrip = 2500; // 25.00

    address cscERC721Address;
    address cscFactoryERC721Address;
    address hiddenLogicAddress;
 

    function MEAManager() public {
        require(msg.sender != address(0));
        paused = true; 
        managerPrimary = msg.sender;
        managerSecondary = msg.sender;
        bankManager = msg.sender;
        cscERC721Address = address(0xe4f5e0d5c033f517a943602df942e794a06bc123);
        cscFactoryERC721Address = address(0xcc9a66acf8574141b0e025202dd57649765a4be7);
    }

    /*** Management Functions ***/

    /// @dev Set HiddenLogic
    function setHiddenLogic(address _hiddenLogicAddress) public onlyManager {
        hiddenLogicAddress = _hiddenLogicAddress;
    }

    /// @dev Set HiddenLogic
    function setResourceERC20Address(uint16 _resId, address _reourceAddress) public onlyManager {
        resourceERC20Address[_resId] = _reourceAddress;
    }

    /// @dev Set HiddenLogic
    function setAllResourceERC20Addresses(address _master) public onlyManager {
        CSCResourceFactory factory = CSCResourceFactory(_master);
        for(uint8 i = 0; i < 12; i++) {
            resourceERC20Address[i] = factory.resourceIdToAddress(i);
        }
    }

    /// @dev Set CSCErc721 Contract
    function setCSCERC721(address _cscERC721Address) public onlyManager {
        cscERC721Address = _cscERC721Address;
    }

     /// @dev Set CSCFactoryErc721 Contract
    function setCSCFactoryERC721(address _cscFactoryERC721Address) public onlyManager {
        cscFactoryERC721Address = _cscFactoryERC721Address;
    }

    /// @dev Set / Modify Lightyear Distance 3.456 ly = 3456
    function setStarDistance(uint8 _starId, uint16 _lightyearsInThousands) public anyOperator {
        starLightyearDistanceMapping[_starId] = _lightyearsInThousands;
    }

    /// @dev Set / Modify MEA Game Attributes
    function setMEAAttributes(uint256 _aime, uint256 _miningTime) public onlyManager {
        aimeIncreasePerTrip = _aime;
        miningTimePerTrip = _miningTime;
    }

    /// @dev Withdraw Remaining Resource Tokens
    function reclaimResourceDeposits(address _withdrawAddress) public onlyManager {
        require(_withdrawAddress != address(0));
        for(uint8 ii = 0; ii < 12; ii++) {
            if(resourceERC20Address[ii] != 0) {
                ERC20 resCont = ERC20(resourceERC20Address[ii]);
                uint256 bal = resCont.balanceOf(this);
                resCont.transfer(_withdrawAddress, bal);
            }
        }
    }

    /*** Public Functions ***/

     /// @dev Get Current Cargo Hold of AssetId (item names)
    function getAssetIdCargo(uint32 _assetId) public view returns(uint256 iron, uint256 quartz, uint256 nickel, uint256 cobalt, uint256 silver, uint256 titanium, uint256 lucinite, uint256 gold, uint256 cosmethyst, uint256 allurum,  uint256 platinum,  uint256 trilite) {
        uint256[12] memory _ores = getAssetIdCargoArray(_assetId);
        iron = _ores[0];
        quartz = _ores[1];
        nickel = _ores[2];
        cobalt = _ores[3];
        silver = _ores[4];
        titanium = _ores[5];
        lucinite = _ores[6];
        gold = _ores[7];
        cosmethyst = _ores[8];
        allurum = _ores[9];
        platinum = _ores[10];
        trilite = _ores[11];
    }

    // function getAllShipStats(uint32[] _shipIds) public view returns(uint32[] results) {
    //     //loop all results
    //     for(uint i = 0; i < _shipIds.length; i++) {
    //         results[]];
    //     }

    // }

    /// @dev Get Current Cargo Hold of AssetId (array)
    function getAssetIdCargoArray (uint32 _assetId) public view returns(uint256[12])  {
        MEAHiddenLogic logic = MEAHiddenLogic(hiddenLogicAddress);
        return logic.getAssetCollectedOreBallancesArray(_assetId);
    }

    /// @dev Get AssetId Trip Completed Time
    function getAssetIdTripCompletedTime(uint256 _assetId) external view returns(uint256 time) {
        MEAHiddenLogic logic = MEAHiddenLogic(hiddenLogicAddress);
        return logic.getReturnTime(uint32(_assetId));
    }

    /// @dev Get AssetId Trip Completed Time
    function getAssetIdTripStartTime(uint256 _assetId) external view returns(uint256 time) {

        return assetIdCurrentTripStartTimeMapping[uint32(_assetId)];
    }

    function getLastStarOfAssetId(uint32 _assetId) public view returns(uint8 starId){
        return assetIdToStarVisitedMapping[_assetId];
    }

    /// @dev Get Resource Address
    function getResourceERC20Address(uint16 _resId) public view returns(address resourceContract) {
        return resourceERC20Address[_resId];
    }

    /// @dev Get Time
    function getMEATime() external view returns(uint256 time) {
        return now;
    }

    /// @dev Method to fetch processed ore details
    function getCollectedOreBalances(address _owner) external view returns(uint256 iron, uint256 quartz, uint256 nickel, uint256 cobalt, uint256 silver, uint256 titanium, uint256 lucinite, uint256 gold, uint256 cosmethyst, uint256 allurum,  uint256 platinum,  uint256 trilite) {

        iron = collectedOreBalanceMapping[_owner][0];
        quartz = collectedOreBalanceMapping[_owner][1];
        nickel = collectedOreBalanceMapping[_owner][2];
        cobalt = collectedOreBalanceMapping[_owner][3];
        silver = collectedOreBalanceMapping[_owner][4];
        titanium = collectedOreBalanceMapping[_owner][5];
        lucinite = collectedOreBalanceMapping[_owner][6];
        gold = collectedOreBalanceMapping[_owner][7];
        cosmethyst = collectedOreBalanceMapping[_owner][8];
        allurum = collectedOreBalanceMapping[_owner][9];
        platinum = collectedOreBalanceMapping[_owner][10];
        trilite = collectedOreBalanceMapping[_owner][11];
    }

    /// @dev Method to fetch processed ore details
    function getDistributedOreBalances(address _owner) external view returns(uint256 iron, uint256 quartz, uint256 nickel, uint256 cobalt, uint256 silver, uint256 titanium, uint256 lucinite, uint256 gold, uint256 cosmethyst, uint256 allurum,  uint256 platinum,  uint256 trilite) {

        iron = distributedOreBalanceMapping[_owner][0];
        quartz = distributedOreBalanceMapping[_owner][1];
        nickel = distributedOreBalanceMapping[_owner][2];
        cobalt = distributedOreBalanceMapping[_owner][3];
        silver = distributedOreBalanceMapping[_owner][4];
        titanium = distributedOreBalanceMapping[_owner][5];
        lucinite = distributedOreBalanceMapping[_owner][6];
        gold = distributedOreBalanceMapping[_owner][7];
        cosmethyst = distributedOreBalanceMapping[_owner][8];
        allurum = distributedOreBalanceMapping[_owner][9];
        platinum = distributedOreBalanceMapping[_owner][10];
        trilite = distributedOreBalanceMapping[_owner][11];
    }

    function withdrawCollectedResources() public {

        for(uint8 ii = 0; ii < 12; ii++) {
            require(resourceERC20Address[ii] != address(0));
            uint32 oreOutstanding = collectedOreBalanceMapping[msg.sender][ii] - distributedOreBalanceMapping[msg.sender][ii];
            if(oreOutstanding > 0) {
                ERC20 resCont = ERC20(resourceERC20Address[ii]);
                distributedOreBalanceMapping[msg.sender][ii] += oreOutstanding;
                resCont.transfer(msg.sender, oreOutstanding);
            }
        }

    }

    //Gets star distance in thousandths of ly
    function getStarDistanceInLyThousandths(uint8 _starId) public view returns (uint32 total) {
        return starLightyearDistanceMapping[_starId];
    }
    
    //Gets total resources already claimed by commanders
    function totalMEATonsClaimed() public view returns (uint32 total) {
        MEAHiddenLogic logic = MEAHiddenLogic(hiddenLogicAddress);
        return logic.getTotalTonsClaimed();
    }

    //Gets total seeded supply commanders
    function totalMEATonsSupply() public view returns (uint32 total) {
        MEAHiddenLogic logic = MEAHiddenLogic(hiddenLogicAddress);
        return logic.getTotalSupply();
    }

     function totalStarSupplyRemaining(uint8 _starId) external view returns(uint32) {
        MEAHiddenLogic logic = MEAHiddenLogic(hiddenLogicAddress);
        return logic.getStarTotalSupply(_starId);
    }

    function claimOreOnlyFromAssetId(uint256 _assetId) {
        uint256 collectibleClass = 0;
        address shipOwner;
        (collectibleClass, shipOwner) = _getShipInfo(_assetId);

         require(shipOwner == msg.sender);

        _claimOreAndClear(uint32(_assetId), 0);
    }
    /// @dev For creating CSC Collectible
    function launchShipOnMEA(uint256 _assetId, uint8 starId) public whenNotPaused returns(uint256) {
        
        MEAHiddenLogic logic = MEAHiddenLogic(hiddenLogicAddress);

        uint256 collectibleClass = 0;
        address shipOwner;

        (collectibleClass, shipOwner) = _getShipInfo(_assetId);

        //Check if the ship owner is sender
        require(shipOwner == msg.sender);

        //Check if ship is back at earth
        require(now > logic.getReturnTime(_assetId));
        
        //Claims ore and clears
        _claimOreAndClear(uint32(_assetId), starId);

        //Get Asset Stats
        uint tripCount = assetIdNumberOfTripsMapping[uint32(_assetId)];
        uint starTripDist = starLightyearDistanceMapping[starId];
        uint256 oreMax = 5;
        uint256 tripSeconds = 10;

        if(collectibleClass == REAPER_INTREPID) {
            oreMax = REAPER_INTREPID_EXTRACTION_BASE + (REAPER_INTREPID_EXTRACTION_BASE * tripCount * aimeIncreasePerTrip / 10000);
            tripSeconds = REAPER_INTREPID_FTL_SPEED * starTripDist / 1000; // 4LPH - 900 seconds per light year
            if(oreMax > REAPER_INTREPID_MAX_CARGO)
                oreMax = REAPER_INTREPID_MAX_CARGO;
        }
        else if(collectibleClass == PHOENIX_CORSAIR) {
            oreMax = PHOENIX_CORSAIR_EXTRACTION_BASE + (PHOENIX_CORSAIR_EXTRACTION_BASE * tripCount * aimeIncreasePerTrip / 10000);
            tripSeconds = PHOENIX_CORSAIR_FTL_SPEED * starTripDist / 1000; // 2.5LPH - 1440 seconds per light year
            if(oreMax > PHOENIX_CORSAIR_MAX_CARGO)
                oreMax = PHOENIX_CORSAIR_MAX_CARGO;
        }
        else if(collectibleClass == VULCAN_PROMETHEUS) {
            oreMax = VULCAN_PROMETHEUS_EXTRACTION_BASE + (VULCAN_PROMETHEUS_EXTRACTION_BASE * tripCount * aimeIncreasePerTrip / 10000);
            tripSeconds = VULCAN_PROMETHEUS_FTL_SPEED * starTripDist / 1000; // 1.75LPH - 2057 seconds per light year
            if(oreMax > VULCAN_PROMETHEUS_MAX_CARGO)
                oreMax = VULCAN_PROMETHEUS_MAX_CARGO;
        }
        else if(collectibleClass == SIGMA) {
            oreMax = SIGMA_EXTRACTION_BASE + (SIGMA_EXTRACTION_BASE * tripCount * aimeIncreasePerTrip / 10000);
            tripSeconds = SIGMA_FTL_SPEED * starTripDist / 1000; // 0.85LPH - 4235 seconds per light year
            if(oreMax > SIGMA_MAX_CARGO)
                oreMax = SIGMA_MAX_CARGO;
        }
        else if(collectibleClass == HAYATO) { //Hayato
            oreMax = HAYATO_EXTRACTION_BASE + (HAYATO_EXTRACTION_BASE * tripCount * aimeIncreasePerTrip / 10000);
            tripSeconds = HAYATO_FTL_SPEED * starTripDist / 1000; // 10LPH - 360 seconds per light year
            if(oreMax > HAYATO_MAX_CARGO)
                oreMax = HAYATO_MAX_CARGO;
        }
        else if(collectibleClass == CPGPEREGRINE) { //CPG Peregrine
            oreMax = CPGPEREGRINE_EXTRACTION_BASE + (CPGPEREGRINE_EXTRACTION_BASE * tripCount * aimeIncreasePerTrip / 10000);
            tripSeconds = CPGPEREGRINE_FTL_SPEED * starTripDist / 1000; // 5LPH -720 seconds per light year
            if(oreMax > CPGPEREGRINE_MAX_CARGO)
                oreMax = CPGPEREGRINE_MAX_CARGO;
        }
        else if(collectibleClass == TACTICALCRUISER) { //TACTICA CRUISER Ships
            oreMax = TACTICALCRUISER_EXTRACTION_BASE + (TACTICALCRUISER_EXTRACTION_BASE * tripCount * aimeIncreasePerTrip / 10000);
            tripSeconds = TACTICALCRUISER_FTL_SPEED * starTripDist / 1000; 
            if(oreMax > TACTICALCRUISER_MAX_CARGO)
                oreMax = TACTICALCRUISER_MAX_CARGO;
        }
        else if(collectibleClass == VULCAN_POD) { //TACTICA CRUISER Ships
            oreMax = VULCAN_POD_EXTRACTION_BASE + (VULCAN_POD_EXTRACTION_BASE * tripCount * aimeIncreasePerTrip / 10000);
            tripSeconds = VULCAN_POD_FTL_SPEED * starTripDist / 1000; 
            if(oreMax > VULCAN_POD_MAX_CARGO)
                oreMax = VULCAN_POD_MAX_CARGO;
        }
        else if(collectibleClass >= DEVCLASS) { //Dev Ships
            oreMax = DEVCLASS_EXTRACTION_BASE + (DEVCLASS_EXTRACTION_BASE * tripCount * aimeIncreasePerTrip / 10000);
            tripSeconds = DEVCLASS_FTL_SPEED * starTripDist / 1000;
            if(oreMax > DEVCLASS_MAX_CARGO)
                oreMax = DEVCLASS_MAX_CARGO;
        } else {
            if(collectibleClass >= OTHERCRUISER) { //Support Other Promo Ships
                oreMax = OTHERCRUISER_EXTRACTION_BASE + (OTHERCRUISER_EXTRACTION_BASE * tripCount * aimeIncreasePerTrip / 10000);
                tripSeconds = OTHERCRUISER_FTL_SPEED * starTripDist / 1000; 
                if(oreMax > OTHERCRUISER_MAX_CARGO)
                    oreMax = OTHERCRUISER_MAX_CARGO;
            }
        }

        //Make Round Trip + Mining
        tripSeconds = ((tripSeconds * 2) + miningTimePerTrip); //3600 for an hour - 0 for testing ***************************

        //calculate travel time
        uint256 returnTime = logic.startMEAMission(_assetId, oreMax, starId, tripSeconds);

        //Confirm trip
        if(returnTime > 0) {
            assetIdNumberOfTripsMapping[uint32(_assetId)] += 1;
            assetIdToStarVisitedMapping[uint32(_assetId)] = starId;
            assetIdCurrentTripStartTimeMapping[uint32(_assetId)] = uint32(now);
        }
        
        return returnTime;
    }


    /*** PRIVATE FUNCTIONS ***/

    /// @dev  Safety check on _to address to prevent against an unexpected 0x0 default.
    function _addressNotNull(address _to) internal pure returns (bool) {
        return _to != address(0);
    }

    /// @dev  Claims and clears cargo -- ONLY INTERNAL
    function _claimOreAndClear (uint32 _assetId, uint8 _starId) internal {
        MEAHiddenLogic logic = MEAHiddenLogic(hiddenLogicAddress);
        uint256[12] memory _ores = logic.getAssetCollectedOreBallancesArray(_assetId);
        bool hasItems = false;

        for(uint8 i = 0; i < 12; i++) {
            if(_ores[i] > 0) {
                collectedOreBalanceMapping[msg.sender][i] += uint32(_ores[i]);
                hasItems = true;
            }
        }

        //Doesn't Let you Travel to empty stars but lets you collect
        if(hasItems == false && _starId > 0) {
            require(logic.getStarTotalSupply(_starId) > 0);
        }

        logic.emptyShipCargo(_assetId);
    }

    function _getShipInfo(uint256 _assetId) internal view returns (uint256 collectibleClass, address owner) {
        
        uint256 nulldata;
        bool nullbool;
        uint256 collectibleType;

        if(_assetId <= 3000) {
            CSCERC721 shipData = CSCERC721(cscERC721Address);
            (nulldata, nulldata, collectibleType, collectibleClass, nullbool, owner) = shipData.getCollectibleDetails(_assetId);
        } else {
            bytes32 nullstring;
            CSCFactoryERC721 shipFData = CSCFactoryERC721(cscFactoryERC721Address);
            (nulldata, nulldata, collectibleType, collectibleClass, nullstring, nullbool, owner) = shipFData.getCollectibleDetails(_assetId);
        }

    }

    
    
    
    
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"","type":"uint16"}],"name":"resourceERC20Address","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SIGMA_EXTRACTION_BASE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_assetId","type":"uint256"}],"name":"claimOreOnlyFromAssetId","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"VULCAN_POD","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CPGPEREGRINE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint8"}],"name":"distributedOreBalanceMapping","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DEVCLASS_EXTRACTION_BASE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"HAYATO_MAX_CARGO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_aime","type":"uint256"},{"name":"_miningTime","type":"uint256"}],"name":"setMEAAttributes","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalMEATonsClaimed","outputs":[{"name":"total","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_assetId","type":"uint32"}],"name":"getAssetIdCargo","outputs":[{"name":"iron","type":"uint256"},{"name":"quartz","type":"uint256"},{"name":"nickel","type":"uint256"},{"name":"cobalt","type":"uint256"},{"name":"silver","type":"uint256"},{"name":"titanium","type":"uint256"},{"name":"lucinite","type":"uint256"},{"name":"gold","type":"uint256"},{"name":"cosmethyst","type":"uint256"},{"name":"allurum","type":"uint256"},{"name":"platinum","type":"uint256"},{"name":"trilite","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"otherManagers","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PHOENIX_CORSAIR_EXTRACTION_BASE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_assetId","type":"uint256"}],"name":"getAssetIdTripCompletedTime","outputs":[{"name":"time","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_starId","type":"uint8"},{"name":"_lightyearsInThousands","type":"uint16"}],"name":"setStarDistance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"DEVCLASS_FTL_SPEED","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TACTICALCRUISER","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"}],"name":"assetIdToStarVisitedMapping","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"miningTimePerTrip","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint8"}],"name":"collectedOreBalanceMapping","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawCollectedResources","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"HAYATO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint8"}],"name":"starLightyearDistanceMapping","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"VULCAN_POD_EXTRACTION_BASE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"REAPER_INTREPID_MAX_CARGO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_assetId","type":"uint32"}],"name":"getAssetIdCargoArray","outputs":[{"name":"","type":"uint256[12]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_assetId","type":"uint256"},{"name":"starId","type":"uint8"}],"name":"launchShipOnMEA","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"VULCAN_PROMETHEUS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PHOENIX_CORSAIR","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"OTHERCRUISER_FTL_SPEED","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMEATime","outputs":[{"name":"time","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TACTICALCRUISER_EXTRACTION_BASE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"VULCAN_POD_MAX_CARGO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_starId","type":"uint8"}],"name":"totalStarSupplyRemaining","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"HAYATO_FTL_SPEED","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"}],"name":"assetIdCurrentTripStartTimeMapping","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"},{"name":"","type":"uint8"}],"name":"collectedOreAssetMapping","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DEVCLASS_MAX_CARGO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DEVCLASS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PHOENIX_CORSAIR_FTL_SPEED","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"REAPER_INTREPID_FTL_SPEED","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"HAYATO_EXTRACTION_BASE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SIGMA_FTL_SPEED","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newGM","type":"address"}],"name":"setSecondaryManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"SIGMA","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"noError","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"PHOENIX_CORSAIR_MAX_CARGO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"VULCAN_PROMETHEUS_EXTRACTION_BASE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"VULCAN_POD_FTL_SPEED","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"OTHERCRUISER_EXTRACTION_BASE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TACTICALCRUISER_MAX_CARGO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"getCollectedOreBalances","outputs":[{"name":"iron","type":"uint256"},{"name":"quartz","type":"uint256"},{"name":"nickel","type":"uint256"},{"name":"cobalt","type":"uint256"},{"name":"silver","type":"uint256"},{"name":"titanium","type":"uint256"},{"name":"lucinite","type":"uint256"},{"name":"gold","type":"uint256"},{"name":"cosmethyst","type":"uint256"},{"name":"allurum","type":"uint256"},{"name":"platinum","type":"uint256"},{"name":"trilite","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_hiddenLogicAddress","type":"address"}],"name":"setHiddenLogic","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_cscERC721Address","type":"address"}],"name":"setCSCERC721","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"OTHERCRUISER_MAX_CARGO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"REAPER_INTREPID_EXTRACTION_BASE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"NAME","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"aimeIncreasePerTrip","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"VULCAN_PROMETHEUS_FTL_SPEED","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"hasError","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_assetId","type":"uint256"}],"name":"getAssetIdTripStartTime","outputs":[{"name":"time","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"managerPrimary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOp","type":"address"},{"name":"_state","type":"uint8"}],"name":"setOtherManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CPGPEREGRINE_FTL_SPEED","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_assetId","type":"uint32"}],"name":"getLastStarOfAssetId","outputs":[{"name":"starId","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CPGPEREGRINE_EXTRACTION_BASE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newGM","type":"address"}],"name":"setPrimaryManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"error","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_starId","type":"uint8"}],"name":"getStarDistanceInLyThousandths","outputs":[{"name":"total","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SIGMA_MAX_CARGO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"getDistributedOreBalances","outputs":[{"name":"iron","type":"uint256"},{"name":"quartz","type":"uint256"},{"name":"nickel","type":"uint256"},{"name":"cobalt","type":"uint256"},{"name":"silver","type":"uint256"},{"name":"titanium","type":"uint256"},{"name":"lucinite","type":"uint256"},{"name":"gold","type":"uint256"},{"name":"cosmethyst","type":"uint256"},{"name":"allurum","type":"uint256"},{"name":"platinum","type":"uint256"},{"name":"trilite","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_withdrawAddress","type":"address"}],"name":"reclaimResourceDeposits","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CPGPEREGRINE_MAX_CARGO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"}],"name":"assetIdNumberOfTripsMapping","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"REAPER_INTREPID","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bankManager","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"OTHERCRUISER","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_resId","type":"uint16"}],"name":"getResourceERC20Address","outputs":[{"name":"resourceContract","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"managerSecondary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newBK","type":"address"}],"name":"setBanker","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"VULCAN_PROMETHEUS_MAX_CARGO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_master","type":"address"}],"name":"setAllResourceERC20Addresses","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_resId","type":"uint16"},{"name":"_reourceAddress","type":"address"}],"name":"setResourceERC20Address","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalMEATonsSupply","outputs":[{"name":"total","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_cscFactoryERC721Address","type":"address"}],"name":"setCSCFactoryERC721","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TACTICALCRUISER_FTL_SPEED","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newContract","type":"address"}],"name":"ContractUpgrade","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"otherManager","type":"address"},{"indexed":false,"name":"state","type":"uint256"}],"name":"OtherManagerUpdated","type":"event"}]

60606040526004805461ffff19169055610e10600d556109c4600e55341561002657600080fd5b33600160a060020a0316151561003b57600080fd5b6004805460ff1916600190811790915560008054600160a060020a033316600160a060020a031991821681179092558254811682179092556002805483169091179055600f8054821673e4f5e0d5c033f517a943602df942e794a06bc1231790556010805490911673cc9a66acf8574141b0e025202dd57649765a4be7179055612503806100ca6000396000f3006060604052600436106103ed5763ffffffff60e060020a60003504166254da0681146103f25780625b7ce81461042857806301c543c21461044d578063079095ae1461046557806308b40dc6146104785780630c9e078c1461048b5780630d5302c4146104c957806316e3cad0146104dc5780631b672154146104ef5780631da98538146105085780631f0fd9051461051b57806323d7af241461059c578063252bb9c3146105d157806328d905e5146105e457806329760657146105fa5780632d94d41e1461061a5780632fa8591e1461062d578063317b7fa41461064057806335a236591461065c57806337a9f8351461066f5780633d944953146106945780633df95fc9146106a75780633f4ba83a146106ba5780634542d45f146106cd5780634a5baa1b146106fd5780634cbfbf4714610710578063503e11de14610723578063515f25ae14610778578063574356b4146106fd578063577f7133146107945780635a95edd9146107a75780635ba83c0d146107ba5780635c975abb146107cd5780635d5d4fab14610428578063627992c7146107f45780636339be39146108075780636596217b1461082057806365e4d640146108335780636a514e131461084f5780636a7dabb9146108715780636b489028146108845780636b88719a1461089757806374d33745146108aa5780637a8f7be614610428578063816d199c146108bd578063825bdb74146108d05780638456cb59146108ef578063860bb34a146109025780638a53f230146109155780638e694807146104dc578063936fddcb14610928578063942802e71461093b578063954704971461094e5780639678fb8814610961578063993254421461097457806399a17344146109935780639d29255b146109b2578063a1857f4a146104dc578063a3358ae41461061a578063a3f4df7e146109d1578063a6fdedef14610a5b578063a7ee323e14610a6e578063ad5e46cb14610a81578063af58957214610a94578063b777cad714610aaa578063bb1d45fc14610abd578063bb86d8fe146107a7578063bfaad84b14610ae2578063c0615f0914610428578063c0619c7014610afe578063c79f8b6214610b1d578063c9c22deb14610b30578063ccb50a2914610b49578063cd423c9914610b5c578063d237b43f14610b7b578063d25f1c3514610b9a578063e1d4bbcc14610bad578063e6824b0d14610bc9578063e9e2990e14610bdc578063ecd59d9b14610bef578063eddd2d3914610c02578063ee70f39214610c1c578063f1ff732b14610c2f578063f232524414610c4e578063f49b728e14610c61578063f54dd97414610c80578063f6a8401314610ca6578063fe9bb2da14610cb9578063fedb6dfd146107a7575b600080fd5b34156103fd57600080fd5b61040c61ffff60043516610cd8565b604051600160a060020a03909116815260200160405180910390f35b341561043357600080fd5b61043b610cf3565b60405190815260200160405180910390f35b341561045857600080fd5b610463600435610cf8565b005b341561047057600080fd5b61043b610d32565b341561048357600080fd5b61043b610d37565b341561049657600080fd5b6104b0600160a060020a036004351660ff60243516610d3c565b60405163ffffffff909116815260200160405180910390f35b34156104d457600080fd5b61043b610d5f565b34156104e757600080fd5b61043b610d64565b34156104fa57600080fd5b610463600435602435610d6a565b341561051357600080fd5b6104b0610dab565b341561052657600080fd5b61053763ffffffff60043516610e0a565b6040519b8c5260208c019a909a526040808c019990995260608b019790975260808a019590955260a089019390935260c088019190915260e0870152610100860152610120850152610140840152610160830191909152610180909101905180910390f35b34156105a757600080fd5b6105bb600160a060020a0360043516610e94565b60405160ff909116815260200160405180910390f35b34156105dc57600080fd5b61043b610ea9565b34156105ef57600080fd5b61043b600435610eae565b341561060557600080fd5b61046360ff6004351661ffff60243516610f1f565b341561062557600080fd5b61043b610fbd565b341561063857600080fd5b61043b610fc2565b341561064b57600080fd5b6105bb63ffffffff60043516610fc7565b341561066757600080fd5b61043b610fdc565b341561067a57600080fd5b6104b0600160a060020a036004351660ff60243516610fe2565b341561069f57600080fd5b610463611005565b34156106b257600080fd5b61043b611157565b34156106c557600080fd5b61046361115c565b34156106d857600080fd5b6106e660ff600435166111af565b60405161ffff909116815260200160405180910390f35b341561070857600080fd5b61043b6111c5565b341561071b57600080fd5b61043b6111ca565b341561072e57600080fd5b61073f63ffffffff600435166111d0565b604051808261018080838360005b8381101561076557808201518382015260200161074d565b5050505090500191505060405180910390f35b341561078357600080fd5b61043b60043560ff6024351661124c565b341561079f57600080fd5b61043b6116e8565b34156107b257600080fd5b61043b6116ed565b34156107c557600080fd5b61043b6116f3565b34156107d857600080fd5b6107e06116f7565b604051901515815260200160405180910390f35b34156107ff57600080fd5b61043b611700565b341561081257600080fd5b6104b060ff60043516611705565b341561082b57600080fd5b61043b611753565b341561083e57600080fd5b6104b063ffffffff60043516611759565b341561085a57600080fd5b6104b063ffffffff6004351660ff60243516611771565b341561087c57600080fd5b61043b611794565b341561088f57600080fd5b61043b61179a565b34156108a257600080fd5b61043b61179f565b34156108b557600080fd5b61043b6117a5565b34156108c857600080fd5b61043b6117ab565b34156108db57600080fd5b610463600160a060020a03600435166117b1565b34156108fa57600080fd5b61046361181e565b341561090d57600080fd5b61043b611873565b341561092057600080fd5b610463611878565b341561093357600080fd5b61043b6118cc565b341561094657600080fd5b61043b6118d2565b341561095957600080fd5b61043b6118d8565b341561096c57600080fd5b61043b6118dd565b341561097f57600080fd5b610537600160a060020a03600435166118e3565b341561099e57600080fd5b610463600160a060020a0360043516611995565b34156109bd57600080fd5b610463600160a060020a03600435166119ed565b34156109dc57600080fd5b6109e4611a45565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610a20578082015183820152602001610a08565b50505050905090810190601f168015610a4d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610a6657600080fd5b61043b611a7c565b3415610a7957600080fd5b61043b611a82565b3415610a8c57600080fd5b610463611a88565b3415610a9f57600080fd5b61043b600435611ae0565b3415610ab557600080fd5b61040c611afb565b3415610ac857600080fd5b610463600160a060020a036004351660ff60243516611b0a565b3415610aed57600080fd5b6105bb63ffffffff60043516611bc8565b3415610b0957600080fd5b610463600160a060020a0360043516611be3565b3415610b2857600080fd5b6107e0611c50565b3415610b3b57600080fd5b6104b060ff60043516611c5e565b3415610b5457600080fd5b61043b611c77565b3415610b6757600080fd5b610537600160a060020a0360043516611c7d565b3415610b8657600080fd5b610463600160a060020a0360043516611d2e565b3415610ba557600080fd5b61043b611eab565b3415610bb857600080fd5b6104b063ffffffff60043516611eb1565b3415610bd457600080fd5b61043b611ec9565b3415610be757600080fd5b61040c611ece565b3415610bfa57600080fd5b61043b611edd565b3415610c0d57600080fd5b61040c61ffff60043516611ee2565b3415610c2757600080fd5b61040c611f01565b3415610c3a57600080fd5b610463600160a060020a0360043516611f10565b3415610c5957600080fd5b61043b611f7d565b3415610c6c57600080fd5b610463600160a060020a0360043516611f83565b3415610c8b57600080fd5b61046361ffff60043516600160a060020a0360243516612065565b3415610cb157600080fd5b6104b06120cf565b3415610cc457600080fd5b610463600160a060020a0360043516612112565b600b60205260009081526040902054600160a060020a031681565b609681565b600080610d048361216a565b909250905033600160a060020a0390811690821614610d2257600080fd5b610d2d8360006122b3565b505050565b600981565b600681565b600760209081526000928352604080842090915290825290205463ffffffff1681565b603281565b6105dc81565b60005433600160a060020a0390811691161480610d95575060015433600160a060020a039081169116145b1515610da057600080fd5b600e91909155600d55565b601154600090600160a060020a03168063542aee376040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610dee57600080fd5b5af11515610dfb57600080fd5b50505060405180519250505090565b600080600080600080600080600080600080610e246124af565b610e2d8e6111d0565b905080519c5060208101519b5060408101519a50606081015199506080810151985060a0810151975060c0810151965060e0810151955061010081015194506101208101519350610140810151925061016081015191505091939597999b5091939597999b565b60036020526000908152604090205460ff1681565b602881565b601154600090600160a060020a031680638ede1817846040518263ffffffff1660e060020a028152600401808263ffffffff168152602001915050602060405180830381600087803b1515610f0257600080fd5b5af11515610f0f57600080fd5b5050506040518051949350505050565b60005433600160a060020a0390811691161480610f4a575060015433600160a060020a039081169116145b80610f63575060025433600160a060020a039081169116145b80610f895750600160a060020a03331660009081526003602052604090205460ff166001145b1515610f9457600080fd5b60ff919091166000908152600960205260409020805461ffff191661ffff909216919091179055565b600a81565b600781565b600a6020526000908152604090205460ff1681565b600d5481565b600660209081526000928352604080842090915290825290205463ffffffff1681565b600080805b600c8360ff161015610d2d5760ff83166000908152600b6020526040902054600160a060020a0316151561103d57600080fd5b600160a060020a033316600081815260076020908152604080832060ff8816808552908352818420549484526006835281842090845290915281205463ffffffff928316908316039350908316111561114c575060ff82166000818152600b602090815260408083205433600160a060020a038181168652600785528386209686529590935292819020805463ffffffff80821688011663ffffffff199091161790559290911691829163a9059cbb9185905163ffffffff84811660e060020a028252600160a060020a0393909316600482015291166024820152604401602060405180830381600087803b151561113457600080fd5b5af1151561114157600080fd5b505050604051805150505b60019092019161100a565b600581565b60005433600160a060020a0390811691161480611187575060015433600160a060020a039081169116145b151561119257600080fd5b60045460ff1615156111a357600080fd5b6004805460ff19169055565b60096020526000908152604090205461ffff1681565b600181565b61014081565b6111d86124af565b601154600160a060020a031680637f9c8974846040518263ffffffff1660e060020a028152600401808263ffffffff16815260200191505061018060405180830381600087803b151561122a57600080fd5b5af1151561123757600080fd5b50505060405161018081016040529392505050565b6000806000806000806000806000600460009054906101000a900460ff1615151561127657600080fd5b601154600160a060020a03169750600096506112918b61216a565b909750955033600160a060020a03908116908716146112af57600080fd5b87600160a060020a0316638ede18178c60405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156112f557600080fd5b5af1151561130257600080fd5b50505060405180514211905061131757600080fd5b6113218b8b6122b3565b63ffffffff808c1660009081526008602090815260408083205460ff8f1684526009909252909120549116955061ffff16935060059250600a9150600387141561139757600e54612710908602600a0204600a0192506103e861038485020491506101408311156113925761014092505b611586565b60028714156113d257600e546127109086026028020460280192506103e86105a085025b0491506105dc831115611392576105dc9250611586565b600187141561140e57600e5461271090860261012c020461012c0192506103e86108098502049150611770831115611392576117709250611586565b600487141561144857600e546127109086026096020460960192506103e861108b8502049150613a9883111561139257613a989250611586565b600587141561147057600e546127109086026096020460960192506103e861016885026113bb565b60068714156114aa57600e546127109086026096020460960192506103e86102d08502049150610fa083111561139257610fa09250611586565b60078714156114e457600e546127109086026096020460960192506103e86102d085020491506103e8831115611392576103e89250611586565b600987141561151957600e546127109086020460010192506103e86107d08502049150604b83111561139257604b9250611586565b6063871061155157600e546127109086026032020460320192506103e8600a85020491506101f4831115611392576101f49250611586565b6008871061158657600e546127109086026064020460640192506103e86102d085020491506105dc831115611586576105dc92505b600d548260020201915087600160a060020a0316634d15642a8c858d8660405160e060020a63ffffffff87160281526004810194909452602484019290925260ff1660448301526064820152608401602060405180830381600087803b15156115ee57600080fd5b5af115156115fb57600080fd5b505050604051805191505060008111156116da576001600860008d63ffffffff1663ffffffff16815260200190815260200160002060008282829054906101000a900463ffffffff160192506101000a81548163ffffffff021916908363ffffffff16021790555089600a60008d63ffffffff1663ffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555042600c60008d63ffffffff1663ffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b9a9950505050505050505050565b600281565b6102d081565b4290565b60045460ff1681565b604b81565b601154600090600160a060020a0316806351cfa44b8460405160e060020a63ffffffff841602815260ff9091166004820152602401602060405180830381600087803b1515610f0257600080fd5b61016881565b600c6020526000908152604090205463ffffffff1681565b600560209081526000928352604080842090915290825290205463ffffffff1681565b6101f481565b606381565b6105a081565b61038481565b61108b81565b60005433600160a060020a03908116911614806117dc575060015433600160a060020a039081169116145b15156117e757600080fd5b600160a060020a03811615156117fc57600080fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60005433600160a060020a0390811691161480611849575060015433600160a060020a039081169116145b151561185457600080fd5b60045460ff161561186457600080fd5b6004805460ff19166001179055565b600481565b60005433600160a060020a03908116911614806118a3575060015433600160a060020a039081169116145b15156118ae57600080fd5b60045460ff1615156118bf57600080fd5b6004805461ff0019169055565b61012c81565b6107d081565b606481565b6103e881565b600160a060020a03166000908152600660208181526040808420848052909152808320546001845281842054600285528285205460038652838620546004875284872054600588528588205496885285882054600789528689205460088a52878a205460098b52888b2054600a8c52898c2054600b8d5299909b205463ffffffff9889169c9789169b9689169a9589169994891698958616979386169692861695918216949282169392821692911690565b60005433600160a060020a03908116911614806119c0575060015433600160a060020a039081169116145b15156119cb57600080fd5b60118054600160a060020a031916600160a060020a0392909216919091179055565b60005433600160a060020a0390811691161480611a18575060015433600160a060020a039081169116145b1515611a2357600080fd5b600f8054600160a060020a031916600160a060020a0392909216919091179055565b60408051908101604052600e81527f4d454147616d654d616e61676572000000000000000000000000000000000000602082015281565b600e5481565b61080981565b60005433600160a060020a0390811691161480611ab3575060015433600160a060020a039081169116145b1515611abe57600080fd5b60045460ff161515611acf57600080fd5b6004805461ff001916610100179055565b63ffffffff9081166000908152600c60205260409020541690565b600054600160a060020a031681565b60005433600160a060020a0390811691161480611b35575060015433600160a060020a039081169116145b1515611b4057600080fd5b600160a060020a0382161515611b5557600080fd5b600160a060020a03821660009081526003602052604090819020805460ff191660ff84161790557fe0546fbe1658c19d0abce113642b889606be7291a861e29191abaaf95ae05bb2908390839051600160a060020a03909216825260ff1660208201526040908101905180910390a15050565b63ffffffff166000908152600a602052604090205460ff1690565b60005433600160a060020a0390811691161480611c0e575060015433600160a060020a039081169116145b1515611c1957600080fd5b600160a060020a0381161515611c2e57600080fd5b60008054600160a060020a031916600160a060020a0392909216919091179055565b600454610100900460ff1681565b60ff1660009081526009602052604090205461ffff1690565b613a9881565b600160a060020a03166000908152600760208181526040808420848052909152808320546001845281842054600285528285205460038652838620546004875284872054600588528588205460068952868920549789528689205460088a52878a205460098b52888b2054600a8c52898c2054600b8d5299909b205463ffffffff9889169c9789169b9689169a95891699948916989384169795841696928416959184169492841693928316921690565b600080548190819033600160a060020a0390811691161480611d5e575060015433600160a060020a039081169116145b1515611d6957600080fd5b600160a060020a0384161515611d7e57600080fd5b600092505b600c8360ff161015611ea55760ff83166000908152600b6020526040902054600160a060020a031615611e9a5760ff83166000908152600b60205260409081902054600160a060020a0316925082906370a082319030905160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611e1657600080fd5b5af11515611e2357600080fd5b5050506040518051915050600160a060020a03821663a9059cbb858360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611e8257600080fd5b5af11515611e8f57600080fd5b505050604051805150505b600190920191611d83565b50505050565b610fa081565b60086020526000908152604090205463ffffffff1681565b600381565b600254600160a060020a031681565b600881565b61ffff166000908152600b6020526040902054600160a060020a031690565b600154600160a060020a031681565b60005433600160a060020a0390811691161480611f3b575060015433600160a060020a039081169116145b1515611f4657600080fd5b600160a060020a0381161515611f5b57600080fd5b60028054600160a060020a031916600160a060020a0392909216919091179055565b61177081565b60008054819033600160a060020a0390811691161480611fb1575060015433600160a060020a039081169116145b1515611fbc57600080fd5b5081905060005b600c8160ff161015610d2d5781600160a060020a031663ce8808ea8260405160e060020a63ffffffff841602815260ff9091166004820152602401602060405180830381600087803b151561201757600080fd5b5af1151561202457600080fd5b505050604051805160ff83166000908152600b602052604090208054600160a060020a031916600160a060020a039290921691909117905550600101611fc3565b60005433600160a060020a0390811691161480612090575060015433600160a060020a039081169116145b151561209b57600080fd5b61ffff919091166000908152600b602052604090208054600160a060020a031916600160a060020a03909216919091179055565b601154600090600160a060020a03168063c4e41b226040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610dee57600080fd5b60005433600160a060020a039081169116148061213d575060015433600160a060020a039081169116145b151561214857600080fd5b60108054600160a060020a031916600160a060020a0392909216919091179055565b600080808080808080610bb8891161221057600f54600160a060020a03169250826370994b318a60405160e060020a63ffffffff8416028152600481019190915260240160c060405180830381600087803b15156121c757600080fd5b5af115156121d457600080fd5b5050506040518051906020018051906020018051906020018051906020018051906020018051929d50919b5093995092975095506122a8915050565b50601054600160a060020a0316806370994b318a60405160e060020a63ffffffff8416028152600481019190915260240160e060405180830381600087803b151561225a57600080fd5b5af1151561226757600080fd5b5050506040518051906020018051906020018051906020018051906020018051906020018051906020018051939e50929c50949a5093985090965091935050505b505050505050915091565b60006122bd6124af565b601154600160a060020a0316915060008083637f9c8974876040518263ffffffff1660e060020a028152600401808263ffffffff16815260200191505061018060405180830381600087803b151561231457600080fd5b5af1151561232157600080fd5b5050506040518061018001604052925060009150600090505b600c8160ff1610156123c65760008360ff8316600c811061235757fe5b602002015111156123be578260ff8216600c811061237157fe5b602002015133600160a060020a0316600090815260066020908152604080832060ff861684529091529020805463ffffffff19811663ffffffff9182169390930116919091179055600191505b60010161233a565b811580156123d7575060008560ff16115b1561244f57600084600160a060020a03166351cfa44b8760405160e060020a63ffffffff841602815260ff9091166004820152602401602060405180830381600087803b151561242657600080fd5b5af1151561243357600080fd5b5050506040518051905063ffffffff1611151561244f57600080fd5b83600160a060020a03166385dc67218760405163ffffffff83811660e060020a028252919091166004820152602401600060405180830381600087803b151561249757600080fd5b5af115156124a457600080fd5b505050505050505050565b610180604051908101604052600c815b60008152602001906001900390816124bf57905050905600a165627a7a72305820e8bf8afd92792b16a1813929b3b842caf5a96539d40fdb1a7de9b55dd40b03610029

Deployed Bytecode

0x6060604052600436106103ed5763ffffffff60e060020a60003504166254da0681146103f25780625b7ce81461042857806301c543c21461044d578063079095ae1461046557806308b40dc6146104785780630c9e078c1461048b5780630d5302c4146104c957806316e3cad0146104dc5780631b672154146104ef5780631da98538146105085780631f0fd9051461051b57806323d7af241461059c578063252bb9c3146105d157806328d905e5146105e457806329760657146105fa5780632d94d41e1461061a5780632fa8591e1461062d578063317b7fa41461064057806335a236591461065c57806337a9f8351461066f5780633d944953146106945780633df95fc9146106a75780633f4ba83a146106ba5780634542d45f146106cd5780634a5baa1b146106fd5780634cbfbf4714610710578063503e11de14610723578063515f25ae14610778578063574356b4146106fd578063577f7133146107945780635a95edd9146107a75780635ba83c0d146107ba5780635c975abb146107cd5780635d5d4fab14610428578063627992c7146107f45780636339be39146108075780636596217b1461082057806365e4d640146108335780636a514e131461084f5780636a7dabb9146108715780636b489028146108845780636b88719a1461089757806374d33745146108aa5780637a8f7be614610428578063816d199c146108bd578063825bdb74146108d05780638456cb59146108ef578063860bb34a146109025780638a53f230146109155780638e694807146104dc578063936fddcb14610928578063942802e71461093b578063954704971461094e5780639678fb8814610961578063993254421461097457806399a17344146109935780639d29255b146109b2578063a1857f4a146104dc578063a3358ae41461061a578063a3f4df7e146109d1578063a6fdedef14610a5b578063a7ee323e14610a6e578063ad5e46cb14610a81578063af58957214610a94578063b777cad714610aaa578063bb1d45fc14610abd578063bb86d8fe146107a7578063bfaad84b14610ae2578063c0615f0914610428578063c0619c7014610afe578063c79f8b6214610b1d578063c9c22deb14610b30578063ccb50a2914610b49578063cd423c9914610b5c578063d237b43f14610b7b578063d25f1c3514610b9a578063e1d4bbcc14610bad578063e6824b0d14610bc9578063e9e2990e14610bdc578063ecd59d9b14610bef578063eddd2d3914610c02578063ee70f39214610c1c578063f1ff732b14610c2f578063f232524414610c4e578063f49b728e14610c61578063f54dd97414610c80578063f6a8401314610ca6578063fe9bb2da14610cb9578063fedb6dfd146107a7575b600080fd5b34156103fd57600080fd5b61040c61ffff60043516610cd8565b604051600160a060020a03909116815260200160405180910390f35b341561043357600080fd5b61043b610cf3565b60405190815260200160405180910390f35b341561045857600080fd5b610463600435610cf8565b005b341561047057600080fd5b61043b610d32565b341561048357600080fd5b61043b610d37565b341561049657600080fd5b6104b0600160a060020a036004351660ff60243516610d3c565b60405163ffffffff909116815260200160405180910390f35b34156104d457600080fd5b61043b610d5f565b34156104e757600080fd5b61043b610d64565b34156104fa57600080fd5b610463600435602435610d6a565b341561051357600080fd5b6104b0610dab565b341561052657600080fd5b61053763ffffffff60043516610e0a565b6040519b8c5260208c019a909a526040808c019990995260608b019790975260808a019590955260a089019390935260c088019190915260e0870152610100860152610120850152610140840152610160830191909152610180909101905180910390f35b34156105a757600080fd5b6105bb600160a060020a0360043516610e94565b60405160ff909116815260200160405180910390f35b34156105dc57600080fd5b61043b610ea9565b34156105ef57600080fd5b61043b600435610eae565b341561060557600080fd5b61046360ff6004351661ffff60243516610f1f565b341561062557600080fd5b61043b610fbd565b341561063857600080fd5b61043b610fc2565b341561064b57600080fd5b6105bb63ffffffff60043516610fc7565b341561066757600080fd5b61043b610fdc565b341561067a57600080fd5b6104b0600160a060020a036004351660ff60243516610fe2565b341561069f57600080fd5b610463611005565b34156106b257600080fd5b61043b611157565b34156106c557600080fd5b61046361115c565b34156106d857600080fd5b6106e660ff600435166111af565b60405161ffff909116815260200160405180910390f35b341561070857600080fd5b61043b6111c5565b341561071b57600080fd5b61043b6111ca565b341561072e57600080fd5b61073f63ffffffff600435166111d0565b604051808261018080838360005b8381101561076557808201518382015260200161074d565b5050505090500191505060405180910390f35b341561078357600080fd5b61043b60043560ff6024351661124c565b341561079f57600080fd5b61043b6116e8565b34156107b257600080fd5b61043b6116ed565b34156107c557600080fd5b61043b6116f3565b34156107d857600080fd5b6107e06116f7565b604051901515815260200160405180910390f35b34156107ff57600080fd5b61043b611700565b341561081257600080fd5b6104b060ff60043516611705565b341561082b57600080fd5b61043b611753565b341561083e57600080fd5b6104b063ffffffff60043516611759565b341561085a57600080fd5b6104b063ffffffff6004351660ff60243516611771565b341561087c57600080fd5b61043b611794565b341561088f57600080fd5b61043b61179a565b34156108a257600080fd5b61043b61179f565b34156108b557600080fd5b61043b6117a5565b34156108c857600080fd5b61043b6117ab565b34156108db57600080fd5b610463600160a060020a03600435166117b1565b34156108fa57600080fd5b61046361181e565b341561090d57600080fd5b61043b611873565b341561092057600080fd5b610463611878565b341561093357600080fd5b61043b6118cc565b341561094657600080fd5b61043b6118d2565b341561095957600080fd5b61043b6118d8565b341561096c57600080fd5b61043b6118dd565b341561097f57600080fd5b610537600160a060020a03600435166118e3565b341561099e57600080fd5b610463600160a060020a0360043516611995565b34156109bd57600080fd5b610463600160a060020a03600435166119ed565b34156109dc57600080fd5b6109e4611a45565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610a20578082015183820152602001610a08565b50505050905090810190601f168015610a4d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610a6657600080fd5b61043b611a7c565b3415610a7957600080fd5b61043b611a82565b3415610a8c57600080fd5b610463611a88565b3415610a9f57600080fd5b61043b600435611ae0565b3415610ab557600080fd5b61040c611afb565b3415610ac857600080fd5b610463600160a060020a036004351660ff60243516611b0a565b3415610aed57600080fd5b6105bb63ffffffff60043516611bc8565b3415610b0957600080fd5b610463600160a060020a0360043516611be3565b3415610b2857600080fd5b6107e0611c50565b3415610b3b57600080fd5b6104b060ff60043516611c5e565b3415610b5457600080fd5b61043b611c77565b3415610b6757600080fd5b610537600160a060020a0360043516611c7d565b3415610b8657600080fd5b610463600160a060020a0360043516611d2e565b3415610ba557600080fd5b61043b611eab565b3415610bb857600080fd5b6104b063ffffffff60043516611eb1565b3415610bd457600080fd5b61043b611ec9565b3415610be757600080fd5b61040c611ece565b3415610bfa57600080fd5b61043b611edd565b3415610c0d57600080fd5b61040c61ffff60043516611ee2565b3415610c2757600080fd5b61040c611f01565b3415610c3a57600080fd5b610463600160a060020a0360043516611f10565b3415610c5957600080fd5b61043b611f7d565b3415610c6c57600080fd5b610463600160a060020a0360043516611f83565b3415610c8b57600080fd5b61046361ffff60043516600160a060020a0360243516612065565b3415610cb157600080fd5b6104b06120cf565b3415610cc457600080fd5b610463600160a060020a0360043516612112565b600b60205260009081526040902054600160a060020a031681565b609681565b600080610d048361216a565b909250905033600160a060020a0390811690821614610d2257600080fd5b610d2d8360006122b3565b505050565b600981565b600681565b600760209081526000928352604080842090915290825290205463ffffffff1681565b603281565b6105dc81565b60005433600160a060020a0390811691161480610d95575060015433600160a060020a039081169116145b1515610da057600080fd5b600e91909155600d55565b601154600090600160a060020a03168063542aee376040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610dee57600080fd5b5af11515610dfb57600080fd5b50505060405180519250505090565b600080600080600080600080600080600080610e246124af565b610e2d8e6111d0565b905080519c5060208101519b5060408101519a50606081015199506080810151985060a0810151975060c0810151965060e0810151955061010081015194506101208101519350610140810151925061016081015191505091939597999b5091939597999b565b60036020526000908152604090205460ff1681565b602881565b601154600090600160a060020a031680638ede1817846040518263ffffffff1660e060020a028152600401808263ffffffff168152602001915050602060405180830381600087803b1515610f0257600080fd5b5af11515610f0f57600080fd5b5050506040518051949350505050565b60005433600160a060020a0390811691161480610f4a575060015433600160a060020a039081169116145b80610f63575060025433600160a060020a039081169116145b80610f895750600160a060020a03331660009081526003602052604090205460ff166001145b1515610f9457600080fd5b60ff919091166000908152600960205260409020805461ffff191661ffff909216919091179055565b600a81565b600781565b600a6020526000908152604090205460ff1681565b600d5481565b600660209081526000928352604080842090915290825290205463ffffffff1681565b600080805b600c8360ff161015610d2d5760ff83166000908152600b6020526040902054600160a060020a0316151561103d57600080fd5b600160a060020a033316600081815260076020908152604080832060ff8816808552908352818420549484526006835281842090845290915281205463ffffffff928316908316039350908316111561114c575060ff82166000818152600b602090815260408083205433600160a060020a038181168652600785528386209686529590935292819020805463ffffffff80821688011663ffffffff199091161790559290911691829163a9059cbb9185905163ffffffff84811660e060020a028252600160a060020a0393909316600482015291166024820152604401602060405180830381600087803b151561113457600080fd5b5af1151561114157600080fd5b505050604051805150505b60019092019161100a565b600581565b60005433600160a060020a0390811691161480611187575060015433600160a060020a039081169116145b151561119257600080fd5b60045460ff1615156111a357600080fd5b6004805460ff19169055565b60096020526000908152604090205461ffff1681565b600181565b61014081565b6111d86124af565b601154600160a060020a031680637f9c8974846040518263ffffffff1660e060020a028152600401808263ffffffff16815260200191505061018060405180830381600087803b151561122a57600080fd5b5af1151561123757600080fd5b50505060405161018081016040529392505050565b6000806000806000806000806000600460009054906101000a900460ff1615151561127657600080fd5b601154600160a060020a03169750600096506112918b61216a565b909750955033600160a060020a03908116908716146112af57600080fd5b87600160a060020a0316638ede18178c60405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156112f557600080fd5b5af1151561130257600080fd5b50505060405180514211905061131757600080fd5b6113218b8b6122b3565b63ffffffff808c1660009081526008602090815260408083205460ff8f1684526009909252909120549116955061ffff16935060059250600a9150600387141561139757600e54612710908602600a0204600a0192506103e861038485020491506101408311156113925761014092505b611586565b60028714156113d257600e546127109086026028020460280192506103e86105a085025b0491506105dc831115611392576105dc9250611586565b600187141561140e57600e5461271090860261012c020461012c0192506103e86108098502049150611770831115611392576117709250611586565b600487141561144857600e546127109086026096020460960192506103e861108b8502049150613a9883111561139257613a989250611586565b600587141561147057600e546127109086026096020460960192506103e861016885026113bb565b60068714156114aa57600e546127109086026096020460960192506103e86102d08502049150610fa083111561139257610fa09250611586565b60078714156114e457600e546127109086026096020460960192506103e86102d085020491506103e8831115611392576103e89250611586565b600987141561151957600e546127109086020460010192506103e86107d08502049150604b83111561139257604b9250611586565b6063871061155157600e546127109086026032020460320192506103e8600a85020491506101f4831115611392576101f49250611586565b6008871061158657600e546127109086026064020460640192506103e86102d085020491506105dc831115611586576105dc92505b600d548260020201915087600160a060020a0316634d15642a8c858d8660405160e060020a63ffffffff87160281526004810194909452602484019290925260ff1660448301526064820152608401602060405180830381600087803b15156115ee57600080fd5b5af115156115fb57600080fd5b505050604051805191505060008111156116da576001600860008d63ffffffff1663ffffffff16815260200190815260200160002060008282829054906101000a900463ffffffff160192506101000a81548163ffffffff021916908363ffffffff16021790555089600a60008d63ffffffff1663ffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555042600c60008d63ffffffff1663ffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b9a9950505050505050505050565b600281565b6102d081565b4290565b60045460ff1681565b604b81565b601154600090600160a060020a0316806351cfa44b8460405160e060020a63ffffffff841602815260ff9091166004820152602401602060405180830381600087803b1515610f0257600080fd5b61016881565b600c6020526000908152604090205463ffffffff1681565b600560209081526000928352604080842090915290825290205463ffffffff1681565b6101f481565b606381565b6105a081565b61038481565b61108b81565b60005433600160a060020a03908116911614806117dc575060015433600160a060020a039081169116145b15156117e757600080fd5b600160a060020a03811615156117fc57600080fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60005433600160a060020a0390811691161480611849575060015433600160a060020a039081169116145b151561185457600080fd5b60045460ff161561186457600080fd5b6004805460ff19166001179055565b600481565b60005433600160a060020a03908116911614806118a3575060015433600160a060020a039081169116145b15156118ae57600080fd5b60045460ff1615156118bf57600080fd5b6004805461ff0019169055565b61012c81565b6107d081565b606481565b6103e881565b600160a060020a03166000908152600660208181526040808420848052909152808320546001845281842054600285528285205460038652838620546004875284872054600588528588205496885285882054600789528689205460088a52878a205460098b52888b2054600a8c52898c2054600b8d5299909b205463ffffffff9889169c9789169b9689169a9589169994891698958616979386169692861695918216949282169392821692911690565b60005433600160a060020a03908116911614806119c0575060015433600160a060020a039081169116145b15156119cb57600080fd5b60118054600160a060020a031916600160a060020a0392909216919091179055565b60005433600160a060020a0390811691161480611a18575060015433600160a060020a039081169116145b1515611a2357600080fd5b600f8054600160a060020a031916600160a060020a0392909216919091179055565b60408051908101604052600e81527f4d454147616d654d616e61676572000000000000000000000000000000000000602082015281565b600e5481565b61080981565b60005433600160a060020a0390811691161480611ab3575060015433600160a060020a039081169116145b1515611abe57600080fd5b60045460ff161515611acf57600080fd5b6004805461ff001916610100179055565b63ffffffff9081166000908152600c60205260409020541690565b600054600160a060020a031681565b60005433600160a060020a0390811691161480611b35575060015433600160a060020a039081169116145b1515611b4057600080fd5b600160a060020a0382161515611b5557600080fd5b600160a060020a03821660009081526003602052604090819020805460ff191660ff84161790557fe0546fbe1658c19d0abce113642b889606be7291a861e29191abaaf95ae05bb2908390839051600160a060020a03909216825260ff1660208201526040908101905180910390a15050565b63ffffffff166000908152600a602052604090205460ff1690565b60005433600160a060020a0390811691161480611c0e575060015433600160a060020a039081169116145b1515611c1957600080fd5b600160a060020a0381161515611c2e57600080fd5b60008054600160a060020a031916600160a060020a0392909216919091179055565b600454610100900460ff1681565b60ff1660009081526009602052604090205461ffff1690565b613a9881565b600160a060020a03166000908152600760208181526040808420848052909152808320546001845281842054600285528285205460038652838620546004875284872054600588528588205460068952868920549789528689205460088a52878a205460098b52888b2054600a8c52898c2054600b8d5299909b205463ffffffff9889169c9789169b9689169a95891699948916989384169795841696928416959184169492841693928316921690565b600080548190819033600160a060020a0390811691161480611d5e575060015433600160a060020a039081169116145b1515611d6957600080fd5b600160a060020a0384161515611d7e57600080fd5b600092505b600c8360ff161015611ea55760ff83166000908152600b6020526040902054600160a060020a031615611e9a5760ff83166000908152600b60205260409081902054600160a060020a0316925082906370a082319030905160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611e1657600080fd5b5af11515611e2357600080fd5b5050506040518051915050600160a060020a03821663a9059cbb858360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611e8257600080fd5b5af11515611e8f57600080fd5b505050604051805150505b600190920191611d83565b50505050565b610fa081565b60086020526000908152604090205463ffffffff1681565b600381565b600254600160a060020a031681565b600881565b61ffff166000908152600b6020526040902054600160a060020a031690565b600154600160a060020a031681565b60005433600160a060020a0390811691161480611f3b575060015433600160a060020a039081169116145b1515611f4657600080fd5b600160a060020a0381161515611f5b57600080fd5b60028054600160a060020a031916600160a060020a0392909216919091179055565b61177081565b60008054819033600160a060020a0390811691161480611fb1575060015433600160a060020a039081169116145b1515611fbc57600080fd5b5081905060005b600c8160ff161015610d2d5781600160a060020a031663ce8808ea8260405160e060020a63ffffffff841602815260ff9091166004820152602401602060405180830381600087803b151561201757600080fd5b5af1151561202457600080fd5b505050604051805160ff83166000908152600b602052604090208054600160a060020a031916600160a060020a039290921691909117905550600101611fc3565b60005433600160a060020a0390811691161480612090575060015433600160a060020a039081169116145b151561209b57600080fd5b61ffff919091166000908152600b602052604090208054600160a060020a031916600160a060020a03909216919091179055565b601154600090600160a060020a03168063c4e41b226040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610dee57600080fd5b60005433600160a060020a039081169116148061213d575060015433600160a060020a039081169116145b151561214857600080fd5b60108054600160a060020a031916600160a060020a0392909216919091179055565b600080808080808080610bb8891161221057600f54600160a060020a03169250826370994b318a60405160e060020a63ffffffff8416028152600481019190915260240160c060405180830381600087803b15156121c757600080fd5b5af115156121d457600080fd5b5050506040518051906020018051906020018051906020018051906020018051906020018051929d50919b5093995092975095506122a8915050565b50601054600160a060020a0316806370994b318a60405160e060020a63ffffffff8416028152600481019190915260240160e060405180830381600087803b151561225a57600080fd5b5af1151561226757600080fd5b5050506040518051906020018051906020018051906020018051906020018051906020018051906020018051939e50929c50949a5093985090965091935050505b505050505050915091565b60006122bd6124af565b601154600160a060020a0316915060008083637f9c8974876040518263ffffffff1660e060020a028152600401808263ffffffff16815260200191505061018060405180830381600087803b151561231457600080fd5b5af1151561232157600080fd5b5050506040518061018001604052925060009150600090505b600c8160ff1610156123c65760008360ff8316600c811061235757fe5b602002015111156123be578260ff8216600c811061237157fe5b602002015133600160a060020a0316600090815260066020908152604080832060ff861684529091529020805463ffffffff19811663ffffffff9182169390930116919091179055600191505b60010161233a565b811580156123d7575060008560ff16115b1561244f57600084600160a060020a03166351cfa44b8760405160e060020a63ffffffff841602815260ff9091166004820152602401602060405180830381600087803b151561242657600080fd5b5af1151561243357600080fd5b5050506040518051905063ffffffff1611151561244f57600080fd5b83600160a060020a03166385dc67218760405163ffffffff83811660e060020a028252919091166004820152602401600060405180830381600087803b151561249757600080fd5b5af115156124a457600080fd5b505050505050505050565b610180604051908101604052600c815b60008152602001906001900390816124bf57905050905600a165627a7a72305820e8bf8afd92792b16a1813929b3b842caf5a96539d40fdb1a7de9b55dd40b03610029

Swarm Source

bzzr://e8bf8afd92792b16a1813929b3b842caf5a96539d40fdb1a7de9b55dd40b0361

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.