Latest 2 txns

TxHash Age From To Value [TxFee]
0x93aab5dcfe866dc66f74346ca7266a55dc7bad35403907ba89c7085492f7f27196 days 19 hrs ago0xaebbd80fd7dae979d965a3a5b09bbcd23eb40e5f  IN   0xda1cee2ea91e6ff15c2c3759d5a235b9b4366a640 Ether0.001705911
0x67f73353f2d8dc5c5d703ea966a1d25822dc0725a60e8e751153d6f7a09f022698 days 19 hrs ago0xaebbd80fd7dae979d965a3a5b09bbcd23eb40e5f  IN    Contract Creation0 Ether0.002115594


[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 2 Internal Transactions

ParentTxHash Block Age From To Value
0x67f73353f2d8dc5c5d703ea966a1d25822dc0725a60e8e751153d6f7a09f0226441808398 days 19 hrs ago0xda1cee2ea91e6ff15c2c3759d5a235b9b4366a640xda42a690cb4510581fa6de7e94f8fb4ea431aced0 Ether
0x67f73353f2d8dc5c5d703ea966a1d25822dc0725a60e8e751153d6f7a09f0226441808398 days 19 hrs ago0xda1cee2ea91e6ff15c2c3759d5a235b9b4366a64  Contract Creation0 Ether
[ Download CSV Export  ] 
Contract Source Code Verified (Exact Match)
Contract Name: EtherAsteroid
Compiler Version: v0.4.25+commit.59dbf8f1
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.25; // solhint-disable-line


contract EtherAsteroid{
  using SafeMath for uint;
  uint16 public xPos;//position of eth transport ship in space
  uint16 public yPos;
  int256 public xVel=0;//units ship will travel per hour, can be negative
  int256 public yVel=0;
  uint public Nfuel=0;//north fuel, accelerates ship downward
  uint public Sfuel=0;//south fuel, up
  uint public Efuel=0;//east, left
  uint public Wfuel=0;//west, right
  uint public FUEL_BURN_PERCENT=15;//percent of current fuel burned every hour
  uint16 public MAXVALUE=0;//max uint (set in constructor)
  uint16 public MAX_VELOCITY=1000;//maximum velocity
  int public MAX_RAW_VELOCITY=10000;//maximum velocity before transformation
  int256 private PSN=10000;//variable used to compensate for lack of floats
  uint public constant NUM_SECTORS=64;//how many sectors across and vertically the universe is divided into
  uint16 public sectorDivisor;
  uint public lastBurn;//the last recorded time fuel was burned to generate thrust.
  uint public BURN_INTERVAL=1 hours;//how long between fuel burns
  address public ceo;
  FuelBuys public fuelMarket;
  bool public initialized=false;
  uint public constant PLANET_START_PRICE=0.05 ether;
  struct Planet{
    address owner;
    uint price;
  }
  uint[NUM_SECTORS][NUM_SECTORS] public planetLocations;// X,Y  contains index of planet
  Planet[10] public planets;//contains info on the various planets. Array starts at 1 (because planetLocations has to use zero for default value).

  uint public additionalTime=0;//used for testing, artificially advance time

  event FuelBurn(int256 xAccel,int256 yAccel);


  function EtherAsteroid(){
      //set xPos and yPos to half of the maximum uint256 value
      MAXVALUE-=1;
      xPos=MAXVALUE/2;
      yPos=MAXVALUE/2;
      sectorDivisor=uint16(MAXVALUE/NUM_SECTORS);
      lastBurn=now;
      ceo=msg.sender;
      fuelMarket=new FuelBuys();
      fuelMarket.setFuelDestination(address(this));
      for(uint i=1;i<planets.length;i++){
        planets[i]=Planet({owner:address(0),price:PLANET_START_PRICE});
      }
      //fuelContract=address(0x555555555555555);
  }
  function setFuelContract(address fuel) public{
    require(msg.sender==ceo);
    fuelMarket=FuelBuys(fuel);
  }
  /*






    FOR USE IN TESTING ONLY IF THIS IS STILL IN MAINNET TELL ME BC I FUCKED UP







  */
  function addFuelFree(uint n,uint s,uint e,uint w) public{
    Nfuel+=n;
    Sfuel+=s;
    Efuel+=e;
    Wfuel+=w;
    updatePosition();
  }
  function addCurrentTime(uint8 steps) public {
    additionalTime+=steps*BURN_INTERVAL;
  }


  function addFuel(uint n,uint s,uint e,uint w,uint fuelBought) public payable{
    require(msg.sender==address(fuelMarket));
    require(initialized);
    updatePosition();//update position before adding new fuel
    //uint fuelBought=fuelMarket.buyFuel(fuelPay);
    require(fuelBought>=n.add(s).add(e).add(w)); //ensure all fuel is paid for
    Nfuel+=n;
    Sfuel+=s;
    Efuel+=e;
    Wfuel+=w;


  }
  //allow sending eth to the contract (used internally, don't send eth directly to this contract or it will be loset forever)
  function () public payable {}

  function positionAtIteration(uint iteration) public view returns(uint16 x,uint16 y){
    uint16 tempx=xPos;
    uint16 tempy=yPos;
    int256 tempvelx=xVel;
    int256 tempvely=yVel;
    uint Nfueltemp=Nfuel;//north fuel, accelerates ship downward
    uint Sfueltemp=Sfuel;//south fuel, up
    uint Efueltemp=Efuel;//east, left
    uint Wfueltemp=Wfuel;//west, right
    uint count=0;
    while(count<iteration){
      count++;
      tempx=uint16(tempx+velReduction(tempvelx));//these can underflow and overflow, that is intended, classic arcade rules
      tempy=uint16(tempy+velReduction(tempvely));
      processCollision();

      //update velocity and fuel
      uint wBurn=Wfueltemp.mul(FUEL_BURN_PERCENT).div(100);
      uint eBurn=Efueltemp.mul(FUEL_BURN_PERCENT).div(100);
      uint nBurn=Nfueltemp.mul(FUEL_BURN_PERCENT).div(100);
      uint sBurn=Sfueltemp.mul(FUEL_BURN_PERCENT).div(100);
      tempvelx=min(MAX_RAW_VELOCITY,tempvelx+int(wBurn)-int(eBurn));
      tempvely=min(MAX_RAW_VELOCITY,tempvely+int(sBurn)-int(nBurn));

      Wfueltemp=Wfueltemp.sub(wBurn);
      Efueltemp=Efueltemp.sub(eBurn);
      Nfueltemp=Nfueltemp.sub(nBurn);
      Sfueltemp=Sfueltemp.sub(sBurn);

      lastBurn=lastBurn.add(BURN_INTERVAL);
    }
    return (tempx,tempy);
  }
  function currentTime() public view returns(uint){
    return now+additionalTime;
  }
  function updatePosition() public{
    uint16 tempx=xPos;
    uint16 tempy=yPos;
    int256 tempvelx=xVel;
    int256 tempvely=yVel;
    uint Nfueltemp=Nfuel;//north fuel, accelerates ship downward
    uint Sfueltemp=Sfuel;//south fuel, up
    uint Efueltemp=Efuel;//east, left
    uint Wfueltemp=Wfuel;//west, right
    while(lastBurn.add(BURN_INTERVAL)<currentTime()){
      tempx=uint16(tempx+velReduction(tempvelx));//these can underflow and overflow, that is intended, classic arcade rules
      tempy=uint16(tempy+velReduction(tempvely));
      processCollision();

      //update velocity and fuel
      uint wBurn=Wfueltemp.mul(FUEL_BURN_PERCENT).div(100);
      uint eBurn=Efueltemp.mul(FUEL_BURN_PERCENT).div(100);
      uint nBurn=Nfueltemp.mul(FUEL_BURN_PERCENT).div(100);
      uint sBurn=Sfueltemp.mul(FUEL_BURN_PERCENT).div(100);
      tempvelx=tempvelx+int(wBurn)-int(eBurn);
      tempvely=tempvely+int(sBurn)-int(nBurn);
      if(tempvelx>MAX_RAW_VELOCITY){
        tempvelx=MAX_RAW_VELOCITY;
      }
      if(tempvelx<-1*MAX_RAW_VELOCITY){
        tempvelx=-1*MAX_RAW_VELOCITY;
      }
      if(tempvely>MAX_RAW_VELOCITY){
        tempvely=MAX_RAW_VELOCITY;
      }
      if(tempvely<-1*MAX_RAW_VELOCITY){
        tempvely=-1*MAX_RAW_VELOCITY;
      }
      emit FuelBurn(tempvelx,tempvely);
      Wfueltemp=Wfueltemp.sub(wBurn);
      Efueltemp=Efueltemp.sub(eBurn);
      Nfueltemp=Nfueltemp.sub(nBurn);
      Sfueltemp=Sfueltemp.sub(sBurn);

      lastBurn=lastBurn.add(BURN_INTERVAL);
    }
    //write at the end to save gas
    xPos=tempx;
    yPos=tempy;
    xVel=tempvelx;
    yVel=tempvely;
    Nfuel=Nfueltemp;
    Sfuel=Sfueltemp;
    Efuel=Efueltemp;
    Wfuel=Wfueltemp;
  }
  function processCollision() public{
    uint planetId=planetLocations[xPos/sectorDivisor][yPos/sectorDivisor];
    if(planetId!=0){
      //Game is over! distribute eth package to the winner
      planets[planetId].owner.send(this.balance);
      initialized=false;
    }
  }
  function purchasePlanet(uint index) public payable{
    Planet storage planet=planets[index];
    require(msg.value >= planet.price);
    uint256 sellingPrice=planet.price;
    uint256 purchaseExcess = SafeMath.sub(msg.value, sellingPrice);
    uint256 payment = uint256(SafeMath.div(SafeMath.mul(sellingPrice, 90), 100));
    //10 percent remaining in the contract goes to the pot
    //if the owner is 0, this is the first purchase, and payment should go to the pot
    if(planet.owner!=0x0){
        planet.owner.send(payment);
    }
    planet.price= SafeMath.div(SafeMath.mul(sellingPrice, 120), 90); //purchaser gets 120% of sent eth if it is purchased again
    planet.owner=msg.sender;//transfer ownership
    msg.sender.transfer(purchaseExcess);//returns excess eth
  }
  function velReduction(int256 velocity) public view returns(int256){
    int velmul=1;
    if(velocity<0){
      velocity=velocity*-1;
      velmul=-1;
    }
    assert(PSN*(velocity+MAX_VELOCITY)>velocity);

    //this formula gives a value lower than the input velocity, increasing up to a maximum of MAX_VELOCITY in a curve with increasingly diminishing returns.
    velocity=(PSN*velocity)/((PSN*(velocity+MAX_VELOCITY))/MAX_VELOCITY);
    return velmul*velocity;
  }
  function min(int256 a, int256 b) private pure returns (int256) {
      return a < b ? a : b;
  }
  function getBalance() public view returns(uint){
    return this.balance;
  }
}
contract FuelBuys{
  using SafeMath for uint;
  mapping(address => uint256) public tokenBalanceLedger_;
  mapping(address => int256) public payoutsTo_;
  uint256 public tokenSupply_ = 0;
  uint256 public profitPerShare_;
  uint8 constant public decimals = 18;
  uint256 constant internal magnitude = 2**64;
  uint256 constant internal tokenPriceInitial_ = 0.0000001 ether;
  uint256 constant internal tokenPriceIncremental_ = 0.00000001 ether;
  //uint8 constant internal dividendFee_ = 10;
  uint public constant POT_TAKE=20;//percent of fuel buys that go to the pot
  uint public constant DEV_FEE=3;//percent of buys that go to dev
  uint public constant REF_FEE=2;//percent of buys that go to referral address
  EtherAsteroid fuelDestination;

  event onTokenPurchase(
      address indexed customerAddress,
      uint256 incomingEthereum,
      uint256 tokensMinted,
      address indexed referredBy
  );

  function setFuelDestination(address dest){
    fuelDestination=EtherAsteroid(dest);
  }
  function buyFuel(uint n,uint s,uint e,uint w, address referral) public payable{
    uint dfee=msg.value.mul(DEV_FEE).div(100);
    uint rfee=msg.value.mul(REF_FEE).div(100);
    uint pfee=msg.value.mul(POT_TAKE).div(100);
    uint fuelPay=msg.value.sub(dfee).sub(rfee).sub(pfee);

    uint fuelBought=purchaseTokens(fuelPay);//msg.value);

    fuelDestination.addFuel(n,s,e,w,fuelBought);

    //pay fees
    fuelDestination.send(pfee);
    fuelDestination.ceo().send(dfee);
    if(referral!=0x0){
      referral.send(rfee);
    }
    else{
      fuelDestination.ceo().send(rfee);
    }
  }
  function purchaseTokens(uint _incomingEthereum) private returns(uint256)
    {
        address _customerAddress = msg.sender;
        //uint256 _undividedDividends = SafeMath.div(_incomingEthereum, dividendFee_);
        uint256 _dividends = _incomingEthereum;//_undividedDividends;
        //uint256 _taxedEthereum = SafeMath.sub(_incomingEthereum, _undividedDividends);
        uint256 _amountOfTokens = ethereumToTokens_(_incomingEthereum);//_taxedEthereum);
        uint256 _fee = _dividends * magnitude;

        require(_amountOfTokens.add(tokenSupply_) > tokenSupply_);

        // we can't give people infinite ethereum
        if(tokenSupply_ > 0){

            // add tokens to the pool
            tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens);

            // take the amount of dividends gained through this transaction, and allocates them evenly to each shareholder
            profitPerShare_ += (_dividends * magnitude / (tokenSupply_));

            // calculate the amount of tokens the customer receives over his purchase
            _fee = _fee - (_fee-(_amountOfTokens * (_dividends * magnitude / (tokenSupply_))));

        } else {
            // add tokens to the pool
            tokenSupply_ = _amountOfTokens;
        }

        // update circulating supply & the ledger address for the customer
        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfTokens);

        //remove divs from before buy
        int256 _updatedPayouts = (int256) ((profitPerShare_ * _amountOfTokens) - _fee);
        payoutsTo_[_customerAddress] += _updatedPayouts;

        // fire event
        onTokenPurchase(_customerAddress, _incomingEthereum, _amountOfTokens, 0);

        return _amountOfTokens;
    }
  function withdraw() public
{
    // setup data
    address _customerAddress = msg.sender;
    uint256 _dividends = myDividends();
    require(_dividends>0);

    // update dividend tracker
    payoutsTo_[_customerAddress] +=  (int256) (_dividends * magnitude);

    // lambo delivery service
    _customerAddress.transfer(_dividends);
}
function myDividends()
    public
    view
    returns(uint256)
{
    return dividendsOf(msg.sender) ;
}
  function dividendsOf(address _customerAddress)
    view
    public
    returns(uint256)
{
    return (uint256) ((int256)(profitPerShare_ * tokenBalanceLedger_[_customerAddress]) - payoutsTo_[_customerAddress]) / magnitude;
}
  function ethereumToTokens_(uint256 _ethereum)
    public
    view
    returns(uint256)
{
    uint256 _tokenPriceInitial = tokenPriceInitial_ * 1e18;
    uint256 _tokensReceived =
     (
        (
            // underflow attempts BTFO
            SafeMath.sub(
                (sqrt
                    (
                        (_tokenPriceInitial**2)
                        +
                        (2*(tokenPriceIncremental_ * 1e18)*(_ethereum * 1e18))
                        +
                        (((tokenPriceIncremental_)**2)*(tokenSupply_**2))
                        +
                        (2*(tokenPriceIncremental_)*_tokenPriceInitial*tokenSupply_)
                    )
                ), _tokenPriceInitial
            )
        )/(tokenPriceIncremental_)
    )-(tokenSupply_)
    ;

    return _tokensReceived;
}
function sqrt(uint x) internal pure returns (uint y) {
    uint z = (x + 1) / 2;
    y = x;
    while (z < y) {
        y = z;
        z = (x / z + z) / 2;
    }
}

}
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  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;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  /**
  * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"FUEL_BURN_PERCENT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"initialized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"xPos","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"velocity","type":"int256"}],"name":"velReduction","outputs":[{"name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"fuel","type":"address"}],"name":"setFuelContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"planets","outputs":[{"name":"owner","type":"address"},{"name":"price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"xVel","outputs":[{"name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAX_RAW_VELOCITY","outputs":[{"name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"name":"planetLocations","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"yPos","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Sfuel","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"n","type":"uint256"},{"name":"s","type":"uint256"},{"name":"e","type":"uint256"},{"name":"w","type":"uint256"}],"name":"addFuelFree","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"yVel","outputs":[{"name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BURN_INTERVAL","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"steps","type":"uint8"}],"name":"addCurrentTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ceo","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"NUM_SECTORS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fuelMarket","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAXVALUE","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Wfuel","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"index","type":"uint256"}],"name":"purchasePlanet","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"lastBurn","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sectorDivisor","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLANET_START_PRICE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"updatePosition","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Nfuel","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"processCollision","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MAX_VELOCITY","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"additionalTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Efuel","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"iteration","type":"uint256"}],"name":"positionAtIteration","outputs":[{"name":"x","type":"uint16"},{"name":"y","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"n","type":"uint256"},{"name":"s","type":"uint256"},{"name":"e","type":"uint256"},{"name":"w","type":"uint256"},{"name":"fuelBought","type":"uint256"}],"name":"addFuel","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"xAccel","type":"int256"},{"indexed":false,"name":"yAccel","type":"int256"}],"name":"FuelBurn","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60806040526000600181905560028190556003819055600481905560058190556006819055600f60078190556008805463ffffffff19166303e800001790556127106009819055600a55610e10600d55805460a060020a60ff02191690556110245534801561006d57600080fd5b506008805461ffff1980821661ffff92831660001901831617928390556000805462010000600295851695860485169081029184161763ffff00001916178155600b805460409095049093169390911692909217905542600c55600e8054600160a060020a031916331790556100e1610206565b604051809103906000f0801580156100fd573d6000803e3d6000fd5b50600f8054600160a060020a031916600160a060020a039283161790819055604080517f772ce10b0000000000000000000000000000000000000000000000000000000081523060048201529051919092169163772ce10b91602480830192600092919082900301818387803b15801561017657600080fd5b505af115801561018a573d6000803e3d6000fd5b50505050600190505b600a81101561020057604080518082019091526000815266b1a2bc2ec50000602082015261101082600a81106101c557fe5b8251600291909102919091018054600160a060020a031916600160a060020a0390921691909117815560209091015160019182015501610193565b50610216565b60405161095c8061105a83390190565b610e35806102256000396000f3006080604052600436106101ab5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630e45424881146101ad57806312065fe0146101d4578063158ef93e146101e95780631d0258c414610212578063240529271461023e5780632656da301461025657806326c1e750146102775780632a85c3a6146102b25780632fb50665146102c75780635b3b888a146102dc5780635efeebaf146102f7578063642e57601461030c5780636eff80711461032157806372c44e65146103425780637b1648e2146103575780638d003a0f1461036c578063908921fc14610387578063a2124263146103b8578063a364baa1146103cd578063a64a799c146103e2578063a9b08c93146103f7578063b7a40f211461040c578063bbce2c1714610417578063be0a1eb71461042c578063bf91cc4f14610441578063c8bb32e014610456578063d18e81b31461046b578063d4958b4014610480578063d5ae79ea14610495578063db90210d146104aa578063df119948146104bf578063e5d87ccc146104d4578063f1797233146104e9578063f1cf8d2714610522575b005b3480156101b957600080fd5b506101c2610539565b60408051918252519081900360200190f35b3480156101e057600080fd5b506101c261053f565b3480156101f557600080fd5b506101fe610544565b604080519115158252519081900360200190f35b34801561021e57600080fd5b50610227610565565b6040805161ffff9092168252519081900360200190f35b34801561024a57600080fd5b506101c260043561056f565b34801561026257600080fd5b506101ab600160a060020a03600435166105da565b34801561028357600080fd5b5061028f600435610620565b60408051600160a060020a03909316835260208301919091528051918290030190f35b3480156102be57600080fd5b506101c261064a565b3480156102d357600080fd5b506101c2610650565b3480156102e857600080fd5b506101c2600435602435610656565b34801561030357600080fd5b5061022761067d565b34801561031857600080fd5b506101c261068d565b34801561032d57600080fd5b506101ab600435602435604435606435610693565b34801561034e57600080fd5b506101c26106c1565b34801561036357600080fd5b506101c26106c7565b34801561037857600080fd5b506101ab60ff600435166106cd565b34801561039357600080fd5b5061039c6106e5565b60408051600160a060020a039092168252519081900360200190f35b3480156103c457600080fd5b506101c26106f4565b3480156103d957600080fd5b5061039c6106f9565b3480156103ee57600080fd5b50610227610708565b34801561040357600080fd5b506101c2610712565b6101ab600435610718565b34801561042357600080fd5b506101c2610814565b34801561043857600080fd5b5061022761081a565b34801561044d57600080fd5b506101c2610824565b34801561046257600080fd5b506101ab61082f565b34801561047757600080fd5b506101c2610a6d565b34801561048c57600080fd5b506101c2610a76565b3480156104a157600080fd5b506101ab610a7c565b3480156104b657600080fd5b50610227610b48565b3480156104cb57600080fd5b506101c2610b58565b3480156104e057600080fd5b506101c2610b5f565b3480156104f557600080fd5b50610501600435610b65565b6040805161ffff938416815291909216602082015281519081900390910190f35b6101ab600435602435604435606435608435610ce4565b60075481565b303190565b600f5474010000000000000000000000000000000000000000900460ff1681565b60005461ffff1681565b6000600181831215610588578260001902925060001990505b600854600a546201000090910461ffff1684010283126105a457fe5b600854600a546201000090910461ffff1690848201028115156105c357fe5b0583600a54028115156105d257fe5b050292915050565b600e54600160a060020a031633146105f157600080fd5b600f805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b61101081600a811061062e57fe5b600202018054600190910154600160a060020a03909116915082565b60015481565b60095481565b6010826040811061066357fe5b604002018160408110151561067457fe5b01549150829050565b60005462010000900461ffff1681565b60045481565b60038054850190556004805484019055600580548301905560068054820190556106bb61082f565b50505050565b60025481565b600d5481565b600d54611024805460ff909316909102919091019055565b600e54600160a060020a031681565b604081565b600f54600160a060020a031681565b60085461ffff1681565b60065481565b600080808061101085600a811061072b57fe5b6002020193508360010154341015151561074457600080fd5b836001015492506107553484610d83565b915061076c61076584605a610d95565b6064610dcb565b8454909150600160a060020a0316156107a8578354604051600160a060020a039091169082156108fc029083906000818181858888f150505050505b6107bd6107b6846078610d95565b605a610dcb565b6001850155835473ffffffffffffffffffffffffffffffffffffffff191633908117855560405183156108fc029084906000818181858888f1935050505015801561080c573d6000803e3d6000fd5b505050505050565b600c5481565b600b5461ffff1681565b66b1a2bc2ec5000081565b6000805460015460025460035460045460055460065461ffff808816986201000090980416968080805b610861610a6d565b600d54600c546108769163ffffffff610de216565b1015610a22576108858a61056f565b8c61ffff16019b506108968961056f565b8b61ffff16019a506108a6610a7c565b6108cc60646108c060075488610d9590919063ffffffff16565b9063ffffffff610dcb16565b93506108e860646108c060075489610d9590919063ffffffff16565b925061090460646108c06007548b610d9590919063ffffffff16565b915061092060646108c06007548a610d9590919063ffffffff16565b905082848b0103995081818a010398506009548a13156109405760095499505b600954600019028a1215610958576009546000190299505b6009548913156109685760095498505b60095460001902891215610980576009546000190298505b604080518b8152602081018b905281517f780aee953e19a6da948741c53891021af5b7d16c0964eaa4b0375e866a11f212929181900390910190a16109cb858563ffffffff610d8316565b94506109dd868463ffffffff610d8316565b95506109ef888363ffffffff610d8316565b9750610a01878263ffffffff610d8316565b9650610a1a600d54600c54610de290919063ffffffff16565b600c55610859565b50506000805461ffff191661ffff9b8c161763ffff00001916620100009a909b1699909902999099179097556001959095556002939093556003919091556004556005556006555050565b61102454420190565b60035481565b600b5460008054909160109161ffff9182169116811515610a9957fe5b0461ffff16604081101515610aaa57fe5b600b54600054604092909202929092019161ffff9081169162010000900416811515610ad257fe5b0461ffff16604081101515610ae357fe5b015490508015610b455761101081600a8110610afb57fe5b6002020154604051600160a060020a0390911690303180156108fc02916000818181858888f15050600f805474ff0000000000000000000000000000000000000000191690555050505b50565b60085462010000900461ffff1681565b6110245481565b60055481565b60008054600154600254600354600454600554600654879661ffff80821697620100009092041695909490939092909188808080805b8f851015610cce57600190940193610bb28b61056f565b8d61ffff16019c50610bc38a61056f565b8c61ffff16019b50610bd3610a7c565b610bed60646108c060075489610d9590919063ffffffff16565b9350610c0960646108c06007548a610d9590919063ffffffff16565b9250610c2560646108c06007548c610d9590919063ffffffff16565b9150610c4160646108c06007548b610d9590919063ffffffff16565b9050610c5360095484868e0103610df1565b9a50610c6560095483838d0103610df1565b9950610c77868563ffffffff610d8316565b9550610c89878463ffffffff610d8316565b9650610c9b898363ffffffff610d8316565b9850610cad888263ffffffff610d8316565b9750610cc6600d54600c54610de290919063ffffffff16565b600c55610b9b565b509a9e999d50989b505050505050505050505050565b600f54600160a060020a03163314610cfb57600080fd5b600f5474010000000000000000000000000000000000000000900460ff161515610d2457600080fd5b610d2c61082f565b610d4e82610d428581898963ffffffff610de216565b9063ffffffff610de216565b811015610d5a57600080fd5b506003805490940190935560048054909201909155600580549091019055600680549091019055565b600082821115610d8f57fe5b50900390565b600080831515610da85760009150610dc4565b50828202828482811515610db857fe5b0414610dc057fe5b8091505b5092915050565b6000808284811515610dd957fe5b04949350505050565b600082820183811015610dc057fe5b6000818312610e005781610e02565b825b93925050505600a165627a7a72305820164b4d1e1cb7d346889d9b3d9fb042228d58769af699c94f8d35bb4b76134e8000296080604052600060025534801561001557600080fd5b50610937806100256000396000f3006080604052600436106100ce5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166265318b81146100d35780632a9121c714610106578063313ce5671461011e5780633151ecfc146101495780633c875a351461015e5780633ccfd60b14610180578063436a88c1146101955780635c5a0a9d146101aa578063651fe611146101cb578063710b318b146101e0578063772ce10b146101f5578063ca3333d114610216578063d3e91a5e1461022b578063e1456cb414610240575b600080fd5b3480156100df57600080fd5b506100f4600160a060020a0360043516610261565b60408051918252519081900360200190f35b34801561011257600080fd5b506100f460043561029b565b34801561012a57600080fd5b50610133610339565b6040805160ff9092168252519081900360200190f35b34801561015557600080fd5b506100f461033e565b61017e600435602435604435606435600160a060020a036084351661034e565b005b34801561018c57600080fd5b5061017e61063e565b3480156101a157600080fd5b506100f46106af565b3480156101b657600080fd5b506100f4600160a060020a03600435166106b4565b3480156101d757600080fd5b506100f46106c6565b3480156101ec57600080fd5b506100f46106cc565b34801561020157600080fd5b5061017e600160a060020a03600435166106d2565b34801561022257600080fd5b506100f4610701565b34801561023757600080fd5b506100f4610706565b34801561024c57600080fd5b506100f4600160a060020a036004351661070b565b600160a060020a03166000908152600160209081526040808320549183905290912054600354680100000000000000009102919091030490565b600280546000916c01431e0fae6d7217caa00000009183916402540be400906103269061032090730380d4bd8a8678c1bb542c80deb4800000000000890268056bc75e2d6310000091860a91909102017005e0a1fd2712875988becaad0000000000850201780197d4df19d605767337e9f14d3eec8920e4000000000000000161071d565b85610758565b81151561032f57fe5b0403949350505050565b601281565b600061034933610261565b905090565b600080808080610376606461036a34600363ffffffff61076a16565b9063ffffffff6107a016565b945061038e606461036a34600263ffffffff61076a16565b93506103a6606461036a34601463ffffffff61076a16565b92506103ca836103be8681348a63ffffffff61075816565b9063ffffffff61075816565b91506103d5826107b7565b60048054604080517ff1cf8d270000000000000000000000000000000000000000000000000000000081529283018e9052602483018d9052604483018c9052606483018b90526084830184905251929350600160a060020a03169163f1cf8d279160a48082019260009290919082900301818387803b15801561045757600080fd5b505af115801561046b573d6000803e3d6000fd5b5050600454604051600160a060020a03909116925085156108fc02915085906000818181858888f1505060048054604080517f908921fc0000000000000000000000000000000000000000000000000000000081529051600160a060020a03909216955063908921fc94508083019350602092908290030181600087803b1580156104f557600080fd5b505af1158015610509573d6000803e3d6000fd5b505050506040513d602081101561051f57600080fd5b5051604051600160a060020a039091169086156108fc029087906000818181858888f150505050600160a060020a03871615905061058257604051600160a060020a0387169085156108fc029086906000818181858888f1935050505050610632565b60048054604080517f908921fc0000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169263908921fc9282820192602092908290030181600087803b1580156105df57600080fd5b505af11580156105f3573d6000803e3d6000fd5b505050506040513d602081101561060957600080fd5b5051604051600160a060020a039091169085156108fc029086906000818181858888f150505050505b50505050505050505050565b33600061064961033e565b90506000811161065857600080fd5b600160a060020a03821660008181526001602052604080822080546801000000000000000086020190555183156108fc0291849190818181858888f193505050501580156106aa573d6000803e3d6000fd5b505050565b600381565b60006020819052908152604090205481565b60025481565b60035481565b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600281565b601481565b60016020526000908152604090205481565b80600260018201045b8181101561075257809150600281828581151561073f57fe5b040181151561074a57fe5b049050610726565b50919050565b60008282111561076457fe5b50900390565b60008083151561077d5760009150610799565b5082820282848281151561078d57fe5b041461079557fe5b8091505b5092915050565b60008082848115156107ae57fe5b04949350505050565b600033828280806107c78461029b565b60025490935068010000000000000000850292506107eb848263ffffffff6108fc16565b116107f557600080fd5b600060025411156108595761080c600254846108fc565b600281905568010000000000000000850281151561082657fe5b6003805492909104909101905560025468010000000000000000850281151561084b57fe5b04830282038203915061085f565b60028390555b600160a060020a03851660009081526020819052604090205461088290846108fc565b600160a060020a03861660008181526020818152604080832094909455600354600182528483208054918902889003918201905584518c8152918201889052845190955091937f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d592918290030190a3509095945050505050565b60008282018381101561079557fe00a165627a7a72305820fbe66f65eb8e4dc56b540181ed8d7980782b0d9e617293eba3323bd00cae024b0029

   Swarm Source:
bzzr://fbe66f65eb8e4dc56b540181ed8d7980782b0d9e617293eba3323bd00cae024b

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward