Contract 0x7328b31825ac9b46dff6bFC092391156cFB6E1F2

 
Txn Hash
Block
From
To
Value
0x66b9b807cb0216685cb313a3e078c8dd0adc5911897317f441c8551893e580ca116599892021-01-15 13:36:2945 days 12 hrs ago0x2e8c031326adb555c3532510de3297c143e56839 IN  0x7328b31825ac9b46dff6bfc092391156cfb6e1f20 Ether0.0018018770
0xc40849902b133e168755af3f767c4a22811626a5997006a76dc3c0831d8cd73a116599622021-01-15 13:30:5745 days 12 hrs ago0x2e8c031326adb555c3532510de3297c143e56839 IN  0x7328b31825ac9b46dff6bfc092391156cfb6e1f20 Ether0.0023919280
0xf665583af9894771c2d873ee6b6962b5a4ada4cf3e2fb8d58a021acd0ada4a3089083732019-11-10 12:20:43477 days 14 hrs ago0xbb3515f753b0172fe464f2c4d7193840c08b77c7 IN  0x7328b31825ac9b46dff6bfc092391156cfb6e1f20 Ether0.0006401710
0x68b549ba90aff2bbab2711474da86304f5f5f725d49cae731ffda7c9f0fc190f89083092019-11-10 12:02:53477 days 14 hrs ago0xbb3515f753b0172fe464f2c4d7193840c08b77c7 IN  0x7328b31825ac9b46dff6bfc092391156cfb6e1f20 Ether0.0000640171
0x5c1de7408e27ea7af2189c0fac25848579e9e7393569bf915d2afbdc39e369a589083092019-11-10 12:02:53477 days 14 hrs ago0xbb3515f753b0172fe464f2c4d7193840c08b77c7 IN  0x7328b31825ac9b46dff6bfc092391156cfb6e1f20 Ether0.0000264791
0x1117fa4e1f962bf425047db692b2a47f6747b75efc40e4a1dd6d2f762a4c7a0489082382019-11-10 11:44:55477 days 14 hrs ago0xbb3515f753b0172fe464f2c4d7193840c08b77c7 IN  0x7328b31825ac9b46dff6bfc092391156cfb6e1f20.0125 Ether0.00055964751211.500000256
0xf10cf8bf3ca1475f228f9f0a3a31f3afccef22444194ecc82c3e037429871e0b89082362019-11-10 11:44:05477 days 14 hrs ago0xbb3515f753b0172fe464f2c4d7193840c08b77c7 IN  0x7328b31825ac9b46dff6bfc092391156cfb6e1f20.0125 Ether0.00055964751211.500000256
0xa3caf149703c88fe739503a03bc6e37699dc746564f3f2baac3e882af3784c5b89082292019-11-10 11:43:08477 days 14 hrs ago0xbb3515f753b0172fe464f2c4d7193840c08b77c7 IN  0x7328b31825ac9b46dff6bfc092391156cfb6e1f20 Ether0.00073619551611.500000256
0xcf6d76b6cacd3cfdbbbcbe1fb35a87d32d9515e3d8347a00c82322c96764415b80618462019-06-30 22:20:13610 days 4 hrs ago0x024203e8afc3c2c8681d8e5def2c614a4ac81c40 IN  0x7328b31825ac9b46dff6bfc092391156cfb6e1f20.00125 Ether0.0000636651
0x421aadf80f29a992137c5043a734fd96f09a7a22e617c81ee7c48a969d18a73861071752018-08-07 23:20:14937 days 3 hrs ago0x7b96d9713151ee21d36076c1e79c228543fd26fa IN  0x7328b31825ac9b46dff6bfc092391156cfb6e1f20.005 Ether0.000194664
0xf0fe5c23d9bcf595464e9c6f00a1cb375e84db6f0478bc3e23fc11f44f004fec58301142018-06-21 19:32:21984 days 6 hrs ago0xcf085317456133e93d72ab5fc56025d8d3802c38 IN  0x7328b31825ac9b46dff6bfc092391156cfb6e1f20 Ether0.0002560684
0x193687f48c0b5d8b534168abfbaf5299f53a90d8accab160011b8b2aabe56edd58300872018-06-21 19:24:59984 days 7 hrs ago0xcf085317456133e93d72ab5fc56025d8d3802c38 IN  0x7328b31825ac9b46dff6bfc092391156cfb6e1f20.0125 Ether0.0003183255
0xfd49d177bddda94b045ecc09e8dc7a8ec4139a64bc1bd9ea9e05fbd7549e9f9d56761322018-05-25 20:17:561011 days 6 hrs ago0x9f9350d4fea0c89cff3d31cf724a68f1eb7e4329 IN  0x7328b31825ac9b46dff6bfc092391156cfb6e1f20.00125 Ether0.0003933255
0xca209e0f26e38bd8823b55f835155155448bf222155e384dce299c564b3bf59c56760772018-05-25 20:06:291011 days 6 hrs ago0x2e8c031326adb555c3532510de3297c143e56839 IN  0x7328b31825ac9b46dff6bfc092391156cfb6e1f20.01 Ether0.000105235
0xc2f169faf586de7fca5778a88068f8a3ff144b5ac91720f39db8abcd3a925ffb56758812018-05-25 19:12:311011 days 7 hrs ago0x2e8c031326adb555c3532510de3297c143e56839 IN  Contract Creation0 Ether0.0105544155
[ Download CSV Export 
Latest 5 internal transactions
Parent Txn Hash Block From To Value
0x66b9b807cb0216685cb313a3e078c8dd0adc5911897317f441c8551893e580ca116599892021-01-15 13:36:2945 days 12 hrs ago 0x7328b31825ac9b46dff6bfc092391156cfb6e1f20x2e8c031326adb555c3532510de3297c143e568390.017307692307692309 Ether
0xf665583af9894771c2d873ee6b6962b5a4ada4cf3e2fb8d58a021acd0ada4a3089083732019-11-10 12:20:43477 days 14 hrs ago 0x7328b31825ac9b46dff6bfc092391156cfb6e1f20xbb3515f753b0172fe464f2c4d7193840c08b77c70.010769230769230769 Ether
0x68b549ba90aff2bbab2711474da86304f5f5f725d49cae731ffda7c9f0fc190f89083092019-11-10 12:02:53477 days 14 hrs ago 0x7328b31825ac9b46dff6bfc092391156cfb6e1f20xbb3515f753b0172fe464f2c4d7193840c08b77c70.004615384615384615 Ether
0xa3caf149703c88fe739503a03bc6e37699dc746564f3f2baac3e882af3784c5b89082292019-11-10 11:43:08477 days 14 hrs ago 0x7328b31825ac9b46dff6bfc092391156cfb6e1f20xbb3515f753b0172fe464f2c4d7193840c08b77c70.004615384615384615 Ether
0xf0fe5c23d9bcf595464e9c6f00a1cb375e84db6f0478bc3e23fc11f44f004fec58301142018-06-21 19:32:21984 days 6 hrs ago 0x7328b31825ac9b46dff6bfc092391156cfb6e1f20xcf085317456133e93d72ab5fc56025d8d3802c380.007692307692307692 Ether
[ Download CSV Export 
Loading
Contract Self Destruct called at Txn Hash 0x66b9b807cb0216685cb313a3e078c8dd0adc5911897317f441c8551893e580ca


Contract Source Code Verified (Exact Match)

Contract Name:
BitWichLoom

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

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

pragma solidity ^0.4.23;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
    if (a == 0) {
      return 0;
    }
    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 a / b;
  }

  /**
  * @dev Subtracts 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 c) {
    c = a + b;
    assert(c >= a);
    return c;
  }
}

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;

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

  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor() public {
    owner = msg.sender;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) public onlyOwner {
    require(newOwner != address(0));
    emit OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }
}

/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Ownable {
  event Pause();
  event Unpause();

  bool public paused = false;

  /**
   * @dev Modifier to make a function callable only when the contract is not paused.
   */
  modifier whenNotPaused() {
    require(!paused);
    _;
  }

  /**
   * @dev Modifier to make a function callable only when the contract is paused.
   */
  modifier whenPaused() {
    require(paused);
    _;
  }

  /**
   * @dev called by the owner to pause, triggers stopped state
   */
  function pause() onlyOwner whenNotPaused public {
    paused = true;
    emit Pause();
  }

  /**
   * @dev called by the owner to unpause, returns to normal state
   */
  function unpause() onlyOwner whenPaused public {
    paused = false;
    emit Unpause();
  }
}

/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
  function totalSupply() public view returns (uint256);
  function balanceOf(address who) public view returns (uint256);
  function transfer(address to, uint256 value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) public view returns (uint256);
  function transferFrom(address from, address to, uint256 value) public returns (bool);
  function approve(address spender, uint256 value) public returns (bool);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @title SafeERC20
 * @dev Wrappers around ERC20 operations that throw on failure.
 * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,
 * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
 */
library SafeERC20 {
  function safeTransfer(ERC20Basic token, address to, uint256 value) internal {
    require(token.transfer(to, value));
  }

  function safeTransferFrom(ERC20 token, address from, address to, uint256 value) internal {
    require(token.transferFrom(from, to, value));
  }

  function safeApprove(ERC20 token, address spender, uint256 value) internal {
    require(token.approve(spender, value));
  }
}

contract NamedToken is ERC20 {
   string public name;
   string public symbol;
}

contract BitWich is Pausable {
    using SafeMath for uint;
    using SafeERC20 for ERC20;
    
    event LogBought(address indexed buyer, uint buyCost, uint amount);
    event LogSold(address indexed seller, uint sellValue, uint amount);
    event LogPriceChanged(uint newBuyCost, uint newSellValue);

    // ERC20 contract to operate over
    ERC20 public erc20Contract;

    // amount bought - amount sold = amount willing to buy from others
    uint public netAmountBought;
    
    // number of tokens that can be bought from contract per wei sent
    uint public buyCost;
    
    // number of tokens that can be sold to contract per wei received
    uint public sellValue;
    
    constructor(uint _buyCost, 
                uint _sellValue,
                address _erc20ContractAddress) public {
        require(_buyCost > 0);
        require(_sellValue > 0);
        
        buyCost = _buyCost;
        sellValue = _sellValue;
        erc20Contract = NamedToken(_erc20ContractAddress);
    }
    
    /* ACCESSORS */
    function tokenName() external view returns (string) {
        return NamedToken(erc20Contract).name();
    }
    
    function tokenSymbol() external view returns (string) {
        return NamedToken(erc20Contract).symbol();
    }
    
    function amountForSale() external view returns (uint) {
        return erc20Contract.balanceOf(address(this));
    }
    
    // Accessor for the cost in wei of buying a certain amount of tokens.
    function getBuyCost(uint _amount) external view returns(uint) {
        uint cost = _amount.div(buyCost);
        if (_amount % buyCost != 0) {
            cost = cost.add(1); // Handles truncating error for odd buyCosts
        }
        return cost;
    }
    
    // Accessor for the value in wei of selling a certain amount of tokens.
    function getSellValue(uint _amount) external view returns(uint) {
        return _amount.div(sellValue);
    }
    
    /* PUBLIC FUNCTIONS */
    // Perform the buy of tokens for ETH and add to the net amount bought
    function buy(uint _minAmountDesired) external payable whenNotPaused {
        processBuy(msg.sender, _minAmountDesired);
    }
    
    // Perform the sell of tokens, send ETH to the seller, and reduce the net amount bought
    // NOTE: seller must call ERC20.approve() first before calling this,
    //       unless they can use ERC20.approveAndCall() directly
    function sell(uint _amount, uint _weiExpected) external whenNotPaused {
        processSell(msg.sender, _amount, _weiExpected);
    }
    
    /* INTERNAL FUNCTIONS */
    // NOTE: _minAmountDesired protects against cost increase between send time and process time
    function processBuy(address _buyer, uint _minAmountDesired) internal {
        uint amountPurchased = msg.value.mul(buyCost);
        require(erc20Contract.balanceOf(address(this)) >= amountPurchased);
        require(amountPurchased >= _minAmountDesired);
        
        netAmountBought = netAmountBought.add(amountPurchased);
        emit LogBought(_buyer, buyCost, amountPurchased);

        erc20Contract.safeTransfer(_buyer, amountPurchased);
    }
    
    // NOTE: _weiExpected protects against a value decrease between send time and process time
    function processSell(address _seller, uint _amount, uint _weiExpected) internal {
        require(netAmountBought >= _amount);
        require(erc20Contract.allowance(_seller, address(this)) >= _amount);
        uint value = _amount.div(sellValue); // tokens divided by (tokens per wei) equals wei
        require(value >= _weiExpected);
        assert(address(this).balance >= value); // contract should always have enough wei
        _amount = value.mul(sellValue); // in case of rounding down, reduce the _amount sold
        
        netAmountBought = netAmountBought.sub(_amount);
        emit LogSold(_seller, sellValue, _amount);
        
        erc20Contract.safeTransferFrom(_seller, address(this), _amount);
        _seller.transfer(value);
    }
    
    // NOTE: this should never return true unless this contract has a bug 
    function lacksFunds() external view returns(bool) {
        return address(this).balance < getRequiredBalance(sellValue);
    }
    
    /* OWNER FUNCTIONS */
    // Owner function to check how much extra ETH is available to cash out
    function amountAvailableToCashout() external view onlyOwner returns (uint) {
        return address(this).balance.sub(getRequiredBalance(sellValue));
    }

    // Owner function for cashing out extra ETH not needed for buying tokens
    function cashout() external onlyOwner {
        uint requiredBalance = getRequiredBalance(sellValue);
        assert(address(this).balance >= requiredBalance);
        
        owner.transfer(address(this).balance.sub(requiredBalance));
    }
    
    // Owner function for closing the paused contract and cashing out all tokens and ETH
    function close() public onlyOwner whenPaused {
        erc20Contract.transfer(owner, erc20Contract.balanceOf(address(this)));
        selfdestruct(owner);
    }
    
    // Owner accessor to get how much ETH is needed to send 
    // in order to change sell price to proposed price
    function extraBalanceNeeded(uint _proposedSellValue) external view onlyOwner returns (uint) {
        uint requiredBalance = getRequiredBalance(_proposedSellValue);
        return (requiredBalance > address(this).balance) ? requiredBalance.sub(address(this).balance) : 0;
    }
    
    // Owner function for adjusting prices (might need to add ETH if raising sell price)
    function adjustPrices(uint _buyCost, uint _sellValue) external payable onlyOwner whenPaused {
        buyCost = _buyCost == 0 ? buyCost : _buyCost;
        sellValue = _sellValue == 0 ? sellValue : _sellValue;
        
        uint requiredBalance = getRequiredBalance(sellValue);
        require(msg.value.add(address(this).balance) >= requiredBalance);
        
        emit LogPriceChanged(buyCost, sellValue);
    }
    
    function getRequiredBalance(uint _proposedSellValue) internal view returns (uint) {
        return netAmountBought.div(_proposedSellValue).add(1);
    }
    
    // Owner can transfer out any accidentally sent ERC20 tokens
    // excluding the token intended for this contract
    function transferAnyERC20Token(address _address, uint _tokens) external onlyOwner {
        require(_address != address(erc20Contract));
        
        ERC20(_address).safeTransfer(owner, _tokens);
    }
}

contract BitWichLoom is BitWich {
    constructor() 
            BitWich(800, 1300, 0xA4e8C3Ec456107eA67d3075bF9e3DF3A75823DB0) public {
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_amount","type":"uint256"}],"name":"getBuyCost","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sellValue","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"close","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_proposedSellValue","type":"uint256"}],"name":"extraBalanceNeeded","outputs":[{"name":"","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":"tokenName","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_amount","type":"uint256"}],"name":"getSellValue","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenSymbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"cashout","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"amountForSale","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_buyCost","type":"uint256"},{"name":"_sellValue","type":"uint256"}],"name":"adjustPrices","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"netAmountBought","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"erc20Contract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"buyCost","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lacksFunds","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"amountAvailableToCashout","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_weiExpected","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_minAmountDesired","type":"uint256"}],"name":"buy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"_tokens","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"buyer","type":"address"},{"indexed":false,"name":"buyCost","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogBought","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"seller","type":"address"},{"indexed":false,"name":"sellValue","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogSold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newBuyCost","type":"uint256"},{"indexed":false,"name":"newSellValue","type":"uint256"}],"name":"LogPriceChanged","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

608060405260008060146101000a81548160ff02191690831515021790555034801561002a57600080fd5b5061032061051473a4e8c3ec456107ea67d3075bf9e3df3a75823db0336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008311151561009557600080fd5b6000821115156100a457600080fd5b826003819055508160048190555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050611cf5806101056000396000f300608060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630ae66820146101385780632a9043e4146101795780633f4ba83a146101a457806343d726d6146101bb57806359fd510a146101d25780635c975abb146102135780636c02a931146102425780637939a10b146102d25780637b61c3201461031357806384054d3d146103a35780638456cb59146103ba5780638473e55f146103d15780638da5cb5b146103fc578063993090d0146104535780639e890cb31461047d578063a8f6c913146104a8578063ac0a7223146104ff578063c2083f551461052a578063d4e7b9cf14610559578063d79875eb14610584578063d96a094a146105bb578063dc39d06d146105db578063f2fde38b14610628575b600080fd5b34801561014457600080fd5b506101636004803603810190808035906020019092919050505061066b565b6040518082815260200191505060405180910390f35b34801561018557600080fd5b5061018e6106bc565b6040518082815260200191505060405180910390f35b3480156101b057600080fd5b506101b96106c2565b005b3480156101c757600080fd5b506101d0610780565b005b3480156101de57600080fd5b506101fd60048036038101908080359060200190929190505050610a49565b6040518082815260200191505060405180910390f35b34801561021f57600080fd5b50610228610b0a565b604051808215151515815260200191505060405180910390f35b34801561024e57600080fd5b50610257610b1d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561029757808201518184015260208101905061027c565b50505050905090810190601f1680156102c45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102de57600080fd5b506102fd60048036038101908080359060200190929190505050610c3b565b6040518082815260200191505060405180910390f35b34801561031f57600080fd5b50610328610c59565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561036857808201518184015260208101905061034d565b50505050905090810190601f1680156103955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103af57600080fd5b506103b8610d77565b005b3480156103c657600080fd5b506103cf610e98565b005b3480156103dd57600080fd5b506103e6610f58565b6040518082815260200191505060405180910390f35b34801561040857600080fd5b50610411611057565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61047b600480360381019080803590602001909291908035906020019092919050505061107c565b005b34801561048957600080fd5b506104926111b1565b6040518082815260200191505060405180910390f35b3480156104b457600080fd5b506104bd6111b7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561050b57600080fd5b506105146111dd565b6040518082815260200191505060405180910390f35b34801561053657600080fd5b5061053f6111e3565b604051808215151515815260200191505060405180910390f35b34801561056557600080fd5b5061056e61120e565b6040518082815260200191505060405180910390f35b34801561059057600080fd5b506105b960048036038101908080359060200190929190803590602001909291905050506112a4565b005b6105d9600480360381019080803590602001909291905050506112cf565b005b3480156105e757600080fd5b50610626600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112f8565b005b34801561063457600080fd5b50610669600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611400565b005b6000806106836003548461155590919063ffffffff16565b905060006003548481151561069457fe5b061415156106b3576106b060018261156b90919063ffffffff16565b90505b80915050919050565b60045481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561071d57600080fd5b600060149054906101000a900460ff16151561073857600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107db57600080fd5b600060149054906101000a900460ff1615156107f657600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561091357600080fd5b505af1158015610927573d6000803e3d6000fd5b505050506040513d602081101561093d57600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156109d357600080fd5b505af11580156109e7573d6000803e3d6000fd5b505050506040513d60208110156109fd57600080fd5b8101908080519060200190929190505050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610aa757600080fd5b610ab083611587565b90503073ffffffffffffffffffffffffffffffffffffffff16318111610ad7576000610b02565b610b013073ffffffffffffffffffffffffffffffffffffffff1631826115b890919063ffffffff16565b5b915050919050565b600060149054906101000a900460ff1681565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015610ba557600080fd5b505af1158015610bb9573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015610be357600080fd5b810190808051640100000000811115610bfb57600080fd5b82810190506020810184811115610c1157600080fd5b8151856001820283011164010000000082111715610c2e57600080fd5b5050929190505050905090565b6000610c526004548361155590919063ffffffff16565b9050919050565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015610ce157600080fd5b505af1158015610cf5573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015610d1f57600080fd5b810190808051640100000000811115610d3757600080fd5b82810190506020810184811115610d4d57600080fd5b8151856001820283011164010000000082111715610d6a57600080fd5b5050929190505050905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610dd457600080fd5b610ddf600454611587565b9050803073ffffffffffffffffffffffffffffffffffffffff163110151515610e0457fe5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc610e69833073ffffffffffffffffffffffffffffffffffffffff16316115b890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015610e94573d6000803e3d6000fd5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ef357600080fd5b600060149054906101000a900460ff16151515610f0f57600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561101757600080fd5b505af115801561102b573d6000803e3d6000fd5b505050506040513d602081101561104157600080fd5b8101908080519060200190929190505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110d957600080fd5b600060149054906101000a900460ff1615156110f457600080fd5b600083146111025782611106565b6003545b6003819055506000821461111a578161111e565b6004545b60048190555061112f600454611587565b90508061115c3073ffffffffffffffffffffffffffffffffffffffff16313461156b90919063ffffffff16565b1015151561116957600080fd5b7fc3ae4d05a23526d863c1db9f30859dec463447da15d77d1345daec3ed995d3c1600354600454604051808381526020018281526020019250505060405180910390a1505050565b60025481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60006111f0600454611587565b3073ffffffffffffffffffffffffffffffffffffffff163110905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561126b57600080fd5b61129f611279600454611587565b3073ffffffffffffffffffffffffffffffffffffffff16316115b890919063ffffffff16565b905090565b600060149054906101000a900460ff161515156112c057600080fd5b6112cb3383836115d1565b5050565b600060149054906101000a900460ff161515156112eb57600080fd5b6112f5338261188d565b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561135357600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156113b057600080fd5b6113fc6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16611a809092919063ffffffff16565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561145b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561149757600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000818381151561156257fe5b04905092915050565b6000818301905082811015151561157e57fe5b80905092915050565b60006115b160016115a38460025461155590919063ffffffff16565b61156b90919063ffffffff16565b9050919050565b60008282111515156115c657fe5b818303905092915050565b600082600254101515156115e457600080fd5b82600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e86306040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156116d657600080fd5b505af11580156116ea573d6000803e3d6000fd5b505050506040513d602081101561170057600080fd5b81019080805190602001909291905050501015151561171e57600080fd5b6117336004548461155590919063ffffffff16565b905081811015151561174457600080fd5b803073ffffffffffffffffffffffffffffffffffffffff16311015151561176757fe5b61177c60045482611b6e90919063ffffffff16565b9250611793836002546115b890919063ffffffff16565b6002819055508373ffffffffffffffffffffffffffffffffffffffff167f946ed66061b6232665d608ecbd0fa25047412a213b2fb0c2175b98c59a66801960045485604051808381526020018281526020019250505060405180910390a2611840843085600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611ba6909392919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611886573d6000803e3d6000fd5b5050505050565b60006118a460035434611b6e90919063ffffffff16565b905080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561196457600080fd5b505af1158015611978573d6000803e3d6000fd5b505050506040513d602081101561198e57600080fd5b8101908080519060200190929190505050101515156119ac57600080fd5b8181101515156119bb57600080fd5b6119d08160025461156b90919063ffffffff16565b6002819055508273ffffffffffffffffffffffffffffffffffffffff167fb0d70c35aba242808f01a11075ea974ae27db631710498471f8eb8b6f0d8c98460035483604051808381526020018281526020019250505060405180910390a2611a7b8382600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a809092919063ffffffff16565b505050565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611b2357600080fd5b505af1158015611b37573d6000803e3d6000fd5b505050506040513d6020811015611b4d57600080fd5b81019080805190602001909291905050501515611b6957600080fd5b505050565b600080831415611b815760009050611ba0565b8183029050818382811515611b9257fe5b04141515611b9c57fe5b8090505b92915050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611c7d57600080fd5b505af1158015611c91573d6000803e3d6000fd5b505050506040513d6020811015611ca757600080fd5b81019080805190602001909291905050501515611cc357600080fd5b505050505600a165627a7a72305820bf04941f348a130eecfc1ce467e196729971c028a0c72392f6e243413ecbc59f0029

Swarm Source

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