Latest 25 txns From a total of 54 Transactions

TxHash Age From To Value [TxFee]
0x85ec25e8f1bcba9840f4f0a0ae87d123c9ad002536a3d6a63e2107ff8b37d9ec9 days 2 hrs ago0x6f9c5203048e611d70f1a7981e0e925a6f25527d  IN   0xf1e48f13768bd8114a530070b43257a63f24bb120 Ether0.0003823038
0x5c74b5bbcd25ea6d3c2fb67e0e60ffa8c0d78205fac2a99a443df5e38f6f3ab011 days 17 hrs ago0x0a1e1130fba7d3b7552358330fcc2a62f72fcb70  IN   0xf1e48f13768bd8114a530070b43257a63f24bb120 Ether0.001321544
0x79a587bb63a1a6633da5f2bd67c122bb36ddabbb902b2e33ceee43898b37bf2f52 days 14 hrs ago0x7a8cb9fee12b96326a8b6b082a8907bc2a9cdee3  IN   0xf1e48f13768bd8114a530070b43257a63f24bb120 Ether0.000094396
0x08270ad8b5f67e6a02ed6f416cd18b515d3fb224e2c2c448f37916bb3f10f3ff96 days 13 hrs ago0x7893f576a18e188ff2caf5cac2b323061438762d  IN   0xf1e48f13768bd8114a530070b43257a63f24bb120 Ether0.00123564
0x1307d3ca88f1b1672ae323bde3e69075f2211aae2d8e420145e69472983f39f497 days 13 hrs ago0x7893f576a18e188ff2caf5cac2b323061438762d  IN   0xf1e48f13768bd8114a530070b43257a63f24bb120 Ether0.00154423
0x429d2dee0229504005dfbb4d5cb2e493a8c2f5a209b234d77a6ebf89c3959dc697 days 14 hrs ago0x7893f576a18e188ff2caf5cac2b323061438762d  IN   0xf1e48f13768bd8114a530070b43257a63f24bb120 Ether0.000146424
0xc3c61a7b385c7389552575687e7de1a200ea68f0f338f316fb05a25eb25daf7d97 days 14 hrs ago0x7893f576a18e188ff2caf5cac2b323061438762d  IN   0xf1e48f13768bd8114a530070b43257a63f24bb120 Ether0.000137592
0x64d6696f8d802f7a1b620c7bafff6c574f8fe2039250afad242385fbc4f0585a97 days 15 hrs ago0x7893f576a18e188ff2caf5cac2b323061438762d  IN   0xf1e48f13768bd8114a530070b43257a63f24bb120 Ether0.000097616
0xbca5755f4c3505987b1e034d61a0d0ca8d3eaa0dd5323ba104792102862565fa97 days 15 hrs ago0x7893f576a18e188ff2caf5cac2b323061438762d  IN   0xf1e48f13768bd8114a530070b43257a63f24bb120 Ether0.000091728
0x4af9d7eafbc706ef736c2e8d84872bb293f353812860ce6ae70d686498503fbc97 days 16 hrs ago0x7893f576a18e188ff2caf5cac2b323061438762d  IN   0xf1e48f13768bd8114a530070b43257a63f24bb120 Ether0.000799252
0x70e647e058ec411ca22bbf1721533776b84fd140eb7a161acb4064a9b950844e104 days 21 hrs ago0x928f6e1869958c587da9236be32553b05c1044f1  IN   0xf1e48f13768bd8114a530070b43257a63f24bb120 Ether0.000283188
0x8eb2d62fba4b46add2d7cd981fd106e2488015767d257a4276ad4f2591f2fe4b110 days 17 hrs ago0xaa6585f9ca328dd1525dcda051824bb83e4829bc  IN   0xf1e48f13768bd8114a530070b43257a63f24bb120 Ether0.0010061688
0xbf9cc4081f655be6dce4b0ce37e4f29d3ecb56ca6dcce801971f5cd620208460127 days 23 hrs ago0x153685a03c2025b6825ae164e2ff5681ee487667  IN   0xf1e48f13768bd8114a530070b43257a63f24bb120 Ether0.000519178
0xf351458f4ea2989ba80f0e58f03cb136f0b04912f72861e6599ae412f5c3182b135 days 7 hrs ago0xb9d800cf1e46eeb00cd1c15a887a2c2e049c30eb  IN   0xf1e48f13768bd8114a530070b43257a63f24bb120 Ether0.00023599
0xc2411b8bdc70b68e95cb2e1f79ec5c4e7182d5c5f67b1c2e6525850649f1c4c6139 days 13 hrs ago0xe8354ad5032ae924942d56db0b94552841e0ccb4  IN   0xf1e48f13768bd8114a530070b43257a63f24bb120 Ether0.00047198
0xe67df6a8788a51c8ffba82401ca358288fb7c34a27e2ea1a689554d2361fee45140 days 16 hrs ago0x8832597391d19c5a58baf62bb85bdec9ae3f24c5  IN   0xf1e48f13768bd8114a530070b43257a63f24bb120 Ether0.00023599
0x43775bf425c7358d80eef7a176d7e7e789c175826fc69b3410209b2ee737d344142 days 11 hrs ago0x5ff10bb9d98b984ef41776106358ac9b17893e5d  IN   0xf1e48f13768bd8114a530070b43257a63f24bb120 Ether0.000519178
0x657ca56aae4fb2e7b6b5655897d2d0ebf151576994ba6d6eb527e24fa96a5e02144 days 15 hrs ago0xed759b7383678ec56f2826cf3af586e594fc9f72  IN   0xf1e48f13768bd8114a530070b43257a63f24bb120 Ether0.0007126898
0x0241d5f22508b09055a1abc19ffc4a684dd948b34369a5eaea41fb27b75bdc2a144 days 23 hrs ago0xbc5eea869e6a7a30aa41b3b83111aedf23846e33  IN   0xf1e48f13768bd8114a530070b43257a63f24bb120 Ether0.001085554
0x7bb8e61faa5be417cfb8fb94c416190415ff62d99029afcc747de8fd77692e5b144 days 23 hrs ago0x1114fa65a2f3d01b045dc2c22cfb224af4f16198  IN   0xf1e48f13768bd8114a530070b43257a63f24bb120 Ether0.00074384
0x3de1cae48e50a39effbf0ecde23b17448f003ffdc853c999581d5d7cd6185876145 days 10 hrs ago0x1114fa65a2f3d01b045dc2c22cfb224af4f16198  IN   0xf1e48f13768bd8114a530070b43257a63f24bb120 Ether0.00337272
0x3f3659b1d7bf6336cf74db8f20afcb4d294a93a07661e941770d51e848536b17145 days 12 hrs ago0x1114fa65a2f3d01b045dc2c22cfb224af4f16198  IN   0xf1e48f13768bd8114a530070b43257a63f24bb120 Ether0.00359868
0xeceaace4e440d99da3a011927133cb3d9463bbc12640d679398489a8e7c56721145 days 13 hrs ago0x657e619d79facd2864b69fb102e5b47257f33ab2  IN   0xf1e48f13768bd8114a530070b43257a63f24bb120 Ether0.000288496
0xa1c5504e2a085988e2229c3ca99e0932d0dbf585faada96058c7704705c0d6ce146 days 5 hrs ago0x6d7bb715327981c7d7c1c7f40f8086d99b5d798e  IN   0xf1e48f13768bd8114a530070b43257a63f24bb120 Ether0.000660772
0x5273ecb4891336fc2b61b31cbb1d41a2ff29eb87d103e817331507b99223da08146 days 6 hrs ago0x1d11cbabdf4bccfee67d606c6c9c6c75e037aad0  IN   0xf1e48f13768bd8114a530070b43257a63f24bb120 Ether0.000660772
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: BsktToken
Compiler Text: v0.4.21+commit.dfe3193c
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity 0.4.21;

// File: zeppelin-solidity/contracts/ReentrancyGuard.sol

/**
 * @title Helps contracts guard agains reentrancy attacks.
 * @author Remco Bloemen <[email protected]π.com>
 * @notice If you mark a function `nonReentrant`, you should also
 * mark it `external`.
 */
contract ReentrancyGuard {

  /**
   * @dev We use a single lock for the whole contract.
   */
  bool private reentrancy_lock = false;

  /**
   * @dev Prevents a contract from calling itself, directly or indirectly.
   * @notice If you mark a function `nonReentrant`, you should also
   * mark it `external`. Calling one nonReentrant function from
   * another is not supported. Instead, you can implement a
   * `private` function doing the actual work, and a `external`
   * wrapper marked as `nonReentrant`.
   */
  modifier nonReentrant() {
    require(!reentrancy_lock);
    reentrancy_lock = true;
    _;
    reentrancy_lock = false;
  }

}

// File: zeppelin-solidity/contracts/ownership/Ownable.sol

/**
 * @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.
   */
  function Ownable() 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;
  }

}

// File: zeppelin-solidity/contracts/lifecycle/Pausable.sol

/**
 * @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();
  }
}

// File: zeppelin-solidity/contracts/math/SafeMath.sol

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

// File: zeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol

/**
 * @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);
}

// File: zeppelin-solidity/contracts/token/ERC20/ERC20.sol

/**
 * @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);
}

// File: zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol

contract DetailedERC20 is ERC20 {
  string public name;
  string public symbol;
  uint8 public decimals;

  function DetailedERC20(string _name, string _symbol, uint8 _decimals) public {
    name = _name;
    symbol = _symbol;
    decimals = _decimals;
  }
}

// File: zeppelin-solidity/contracts/token/ERC20/BasicToken.sol

/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is ERC20Basic {
  using SafeMath for uint256;

  mapping(address => uint256) balances;

  uint256 totalSupply_;

  /**
  * @dev total number of tokens in existence
  */
  function totalSupply() public view returns (uint256) {
    return totalSupply_;
  }

  /**
  * @dev transfer token for a specified address
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function transfer(address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));
    require(_value <= balances[msg.sender]);

    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    emit Transfer(msg.sender, _to, _value);
    return true;
  }

  /**
  * @dev Gets the balance of the specified address.
  * @param _owner The address to query the the balance of.
  * @return An uint256 representing the amount owned by the passed address.
  */
  function balanceOf(address _owner) public view returns (uint256 balance) {
    return balances[_owner];
  }

}

// File: zeppelin-solidity/contracts/token/ERC20/StandardToken.sol

/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20, BasicToken {

  mapping (address => mapping (address => uint256)) internal allowed;


  /**
   * @dev Transfer tokens from one address to another
   * @param _from address The address which you want to send tokens from
   * @param _to address The address which you want to transfer to
   * @param _value uint256 the amount of tokens to be transferred
   */
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));
    require(_value <= balances[_from]);
    require(_value <= allowed[_from][msg.sender]);

    balances[_from] = balances[_from].sub(_value);
    balances[_to] = balances[_to].add(_value);
    allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
    emit Transfer(_from, _to, _value);
    return true;
  }

  /**
   * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
   *
   * Beware that changing an allowance with this method brings the risk that someone may use both the old
   * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
   * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
   * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   * @param _spender The address which will spend the funds.
   * @param _value The amount of tokens to be spent.
   */
  function approve(address _spender, uint256 _value) public returns (bool) {
    allowed[msg.sender][_spender] = _value;
    emit Approval(msg.sender, _spender, _value);
    return true;
  }

  /**
   * @dev Function to check the amount of tokens that an owner allowed to a spender.
   * @param _owner address The address which owns the funds.
   * @param _spender address The address which will spend the funds.
   * @return A uint256 specifying the amount of tokens still available for the spender.
   */
  function allowance(address _owner, address _spender) public view returns (uint256) {
    return allowed[_owner][_spender];
  }

  /**
   * @dev Increase the amount of tokens that an owner allowed to a spender.
   *
   * approve should be called when allowed[_spender] == 0. To increment
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   * @param _spender The address which will spend the funds.
   * @param _addedValue The amount of tokens to increase the allowance by.
   */
  function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
    allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
    emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

  /**
   * @dev Decrease the amount of tokens that an owner allowed to a spender.
   *
   * approve should be called when allowed[_spender] == 0. To decrement
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   * @param _spender The address which will spend the funds.
   * @param _subtractedValue The amount of tokens to decrease the allowance by.
   */
  function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
    uint oldValue = allowed[msg.sender][_spender];
    if (_subtractedValue > oldValue) {
      allowed[msg.sender][_spender] = 0;
    } else {
      allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
    }
    emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

}

// File: contracts/BsktToken.sol

library AddressArrayUtils {

    /// @return Returns index and ok for the first occurrence starting from
    /// index 0
    function index(address[] addresses, address a)
        internal pure returns (uint, bool)
    {
        for (uint i = 0; i < addresses.length; i++) {
            if (addresses[i] == a) {
                return (i, true);
            }
        }
        return (0, false);
    }

}


/// @title BsktToken
/// @notice Bskt tokens are transferable, and can be created and redeemed by
/// anyone. To create, a user must approve the contract to move the underlying
/// tokens, then call `create`.
/// @author CryptoFin
contract BsktToken is StandardToken, DetailedERC20, Pausable, ReentrancyGuard {
    using SafeMath for uint256;
    using AddressArrayUtils for address[];

    struct TokenInfo {
        address addr;
        uint256 quantity;
    }
    uint256 public creationUnit;
    TokenInfo[] public tokens;

    event Create(address indexed creator, uint256 amount);
    event Redeem(address indexed redeemer, uint256 amount, address[] skippedTokens);

    /// @notice Requires value to be divisible by creationUnit
    /// @param value Number to be checked
    modifier requireMultiple(uint256 value) {
        require((value % creationUnit) == 0);
        _;
    }

    /// @notice Requires value to be non-zero
    /// @param value Number to be checked
    modifier requireNonZero(uint256 value) {
        require(value > 0);
        _;
    }

    /// @notice Initializes contract with a list of ERC20 token addresses and
    /// corresponding minimum number of units required for a creation unit
    /// @param addresses Addresses of the underlying ERC20 token contracts
    /// @param quantities Number of token base units required per creation unit
    /// @param _creationUnit Number of base units per creation unit
    function BsktToken(
        address[] addresses,
        uint256[] quantities,
        uint256 _creationUnit,
        string _name,
        string _symbol
    ) DetailedERC20(_name, _symbol, 18) public {
        require(addresses.length > 0);
        require(addresses.length == quantities.length);
        require(_creationUnit >= 1);

        for (uint256 i = 0; i < addresses.length; i++) {
            tokens.push(TokenInfo({
                addr: addresses[i],
                quantity: quantities[i]
            }));
        }

        creationUnit = _creationUnit;
        name = _name;
        symbol = _symbol;
    }

    /// @notice Creates Bskt tokens in exchange for underlying tokens. Before
    /// calling, underlying tokens must be approved to be moved by the Bskt
    /// contract. The number of approved tokens required depends on baseUnits.
    /// @dev If any underlying tokens' `transferFrom` fails (eg. the token is
    /// frozen), create will no longer work. At this point a token upgrade will
    /// be necessary.
    /// @param baseUnits Number of base units to create. Must be a multiple of
    /// creationUnit.
    function create(uint256 baseUnits)
        external
        whenNotPaused()
        requireNonZero(baseUnits)
        requireMultiple(baseUnits)
    {
        // Check overflow
        require((totalSupply_ + baseUnits) > totalSupply_);

        for (uint256 i = 0; i < tokens.length; i++) {
            TokenInfo memory token = tokens[i];
            ERC20 erc20 = ERC20(token.addr);
            uint256 amount = baseUnits.div(creationUnit).mul(token.quantity);
            require(erc20.transferFrom(msg.sender, address(this), amount));
        }

        mint(msg.sender, baseUnits);
        emit Create(msg.sender, baseUnits);
    }

    /// @notice Redeems Bskt tokens in exchange for underlying tokens
    /// @param baseUnits Number of base units to redeem. Must be a multiple of
    /// creationUnit.
    /// @param tokensToSkip Underlying token addresses to skip redemption for.
    /// Intended to be used to skip frozen or broken tokens which would prevent
    /// all underlying tokens from being withdrawn due to a revert. Skipped
    /// tokens are left in the Bskt contract and are unclaimable.
    function redeem(uint256 baseUnits, address[] tokensToSkip)
        external
        requireNonZero(baseUnits)
        requireMultiple(baseUnits)
    {
        require(baseUnits <= totalSupply_);
        require(baseUnits <= balances[msg.sender]);
        require(tokensToSkip.length <= tokens.length);
        // Total supply check not required since a user would have to have
        // balance greater than the total supply

        // Burn before to prevent re-entrancy
        burn(msg.sender, baseUnits);

        for (uint256 i = 0; i < tokens.length; i++) {
            TokenInfo memory token = tokens[i];
            ERC20 erc20 = ERC20(token.addr);
            uint256 index;
            bool ok;
            (index, ok) = tokensToSkip.index(token.addr);
            if (ok) {
                continue;
            }
            uint256 amount = baseUnits.div(creationUnit).mul(token.quantity);
            require(erc20.transfer(msg.sender, amount));
        }
        emit Redeem(msg.sender, baseUnits, tokensToSkip);
    }

    /// @return addresses Underlying token addresses
    function tokenAddresses() external view returns (address[]){
        address[] memory addresses = new address[](tokens.length);
        for (uint256 i = 0; i < tokens.length; i++) {
            addresses[i] = tokens[i].addr;
        }
        return addresses;
    }

    /// @return quantities Number of token base units required per creation unit
    function tokenQuantities() external view returns (uint256[]){
        uint256[] memory quantities = new uint256[](tokens.length);
        for (uint256 i = 0; i < tokens.length; i++) {
            quantities[i] = tokens[i].quantity;
        }
        return quantities;
    }

    // @dev Mints new Bskt tokens
    // @param to Address to mint to
    // @param amount Amount to mint
    // @return ok Whether the operation was successful
    function mint(address to, uint256 amount) internal returns (bool) {
        totalSupply_ = totalSupply_.add(amount);
        balances[to] = balances[to].add(amount);
        emit Transfer(address(0), to, amount);
        return true;
    }

    // @dev Burns Bskt tokens
    // @param from Address to burn from
    // @param amount Amount to burn
    // @return ok Whether the operation was successful
    function burn(address from, uint256 amount) internal returns (bool) {
        totalSupply_ = totalSupply_.sub(amount);
        balances[from] = balances[from].sub(amount);
        emit Transfer(from, address(0), amount);
        return true;
    }

    // @notice Look up token quantity and whether token exists
    // @param token Token address to look up
    // @return (quantity, ok) Units of underlying token, and whether the
    // token was found
    function getQuantity(address token) internal view returns (uint256, bool) {
        for (uint256 i = 0; i < tokens.length; i++) {
            if (tokens[i].addr == token) {
                return (tokens[i].quantity, true);
            }
        }
        return (0, false);
    }

    /// @notice Owner: Withdraw excess funds which don't belong to Bskt token
    /// holders
    /// @param token ERC20 token address to withdraw
    function withdrawExcessToken(address token)
        external
        onlyOwner
        nonReentrant
    {
        ERC20 erc20 = ERC20(token);
        uint256 withdrawAmount;
        uint256 amountOwned = erc20.balanceOf(address(this));
        uint256 quantity;
        bool ok;
        (quantity, ok) = getQuantity(token);
        if (ok) {
            withdrawAmount = amountOwned.sub(
                totalSupply_.div(creationUnit).mul(quantity)
            );
        } else {
            withdrawAmount = amountOwned;
        }
        require(erc20.transfer(owner, withdrawAmount));
    }

    /// @dev Prevent Bskt tokens from being sent to the Bskt contract
    /// @param _to The address to transfer tokens to
    /// @param _value the amount of tokens to be transferred
    function transfer(address _to, uint256 _value) public returns (bool) {
        require(_to != address(this));
        return super.transfer(_to, _value);
    }

    /// @dev Prevent Bskt tokens from being sent to the Bskt contract
    /// @param _from The address to transfer tokens from
    /// @param _to The address to transfer to
    /// @param _value The amount of tokens to be transferred
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
        require(_to != address(this));
        return super.transferFrom(_from, _to, _value);
    }

}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"baseUnits","type":"uint256"},{"name":"tokensToSkip","type":"address[]"}],"name":"redeem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"creationUnit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenQuantities","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokens","outputs":[{"name":"addr","type":"address"},{"name":"quantity","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"baseUnits","type":"uint256"}],"name":"create","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenAddresses","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"}],"name":"withdrawExcessToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"addresses","type":"address[]"},{"name":"quantities","type":"uint256[]"},{"name":"_creationUnit","type":"uint256"},{"name":"_name","type":"string"},{"name":"_symbol","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"creator","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Create","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"redeemer","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"skippedTokens","type":"address[]"}],"name":"Redeem","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"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60606040526000600560156101000a81548160ff0219169083151502179055506000600560166101000a81548160ff02191690831515021790555034156200004657600080fd5b60405162002c4238038062002c42833981016040528080518201919060200180518201919060200180519060200190919080518201919060200180518201919050506000828260128260039080519060200190620000a69291906200028e565b508160049080519060200190620000bf9291906200028e565b5080600560006101000a81548160ff021916908360ff16021790555050505033600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600086511115156200013057600080fd5b845186511415156200014157600080fd5b600184101515156200015257600080fd5b600090505b855181101562000249576007805480600101828162000177919062000315565b9160005260206000209060020201600060408051908101604052808a86815181101515620001a157fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1681526020018986815181101515620001d557fe5b90602001906020020151815250909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505050808060010191505062000157565b836006819055508260039080519060200190620002689291906200028e565b508160049080519060200190620002819291906200028e565b50505050505050620003c3565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002d157805160ff191683800117855562000302565b8280016001018555821562000302579182015b8281111562000301578251825591602001919060010190620002e4565b5b5090506200031191906200034a565b5090565b815481835581811511620003455760020281600202836000526020600020918201910162000344919062000372565b5b505050565b6200036f91905b808211156200036b57600081600090555060010162000351565b5090565b90565b620003c091905b80821115620003bc57600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600090555060020162000379565b5090565b90565b61286f80620003d36000396000f300606060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146101385780630959bd1a146101c6578063095ea7b3146101fd578063119e5cdf1461025757806318160ddd146102805780632075eec6146102a957806323b872dd14610313578063313ce5671461038c5780633f4ba83a146103bb5780634f64b2be146103d05780635c975abb1461043a578063661884631461046757806370a08231146104c1578063780900dc1461050e5780638456cb59146105315780638da5cb5b1461054657806395d89b411461059b578063a9059cbb14610629578063a9989b9314610683578063ce6b3467146106ed578063d73dd62314610726578063dd62ed3e14610780578063f2fde38b146107ec575b600080fd5b341561014357600080fd5b61014b610825565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018b578082015181840152602081019050610170565b50505050905090810190601f1680156101b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101d157600080fd5b6101fb600480803590602001909190803590602001908201803590602001919091929050506108c3565b005b341561020857600080fd5b61023d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610bfb565b604051808215151515815260200191505060405180910390f35b341561026257600080fd5b61026a610ced565b6040518082815260200191505060405180910390f35b341561028b57600080fd5b610293610cf3565b6040518082815260200191505060405180910390f35b34156102b457600080fd5b6102bc610cfd565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102ff5780820151818401526020810190506102e4565b505050509050019250505060405180910390f35b341561031e57600080fd5b610372600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610d99565b604051808215151515815260200191505060405180910390f35b341561039757600080fd5b61039f610dea565b604051808260ff1660ff16815260200191505060405180910390f35b34156103c657600080fd5b6103ce610dfd565b005b34156103db57600080fd5b6103f16004808035906020019091905050610ebd565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b341561044557600080fd5b61044d610f10565b604051808215151515815260200191505060405180910390f35b341561047257600080fd5b6104a7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610f23565b604051808215151515815260200191505060405180910390f35b34156104cc57600080fd5b6104f8600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506111b4565b6040518082815260200191505060405180910390f35b341561051957600080fd5b61052f60048080359060200190919050506111fc565b005b341561053c57600080fd5b61054461149d565b005b341561055157600080fd5b61055961155e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105a657600080fd5b6105ae611584565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105ee5780820151818401526020810190506105d3565b50505050905090810190601f16801561061b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561063457600080fd5b610669600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611622565b604051808215151515815260200191505060405180910390f35b341561068e57600080fd5b610696611671565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106d95780820151818401526020810190506106be565b505050509050019250505060405180910390f35b34156106f857600080fd5b610724600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061175b565b005b341561073157600080fd5b610766600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611a12565b604051808215151515815260200191505060405180910390f35b341561078b57600080fd5b6107d6600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c0e565b6040518082815260200191505060405180910390f35b34156107f757600080fd5b610823600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c95565b005b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108bb5780601f10610890576101008083540402835291602001916108bb565b820191906000526020600020905b81548152906001019060200180831161089e57829003601f168201915b505050505081565b60006108cd6127eb565b600080600080886000811115156108e357600080fd5b896000600654828115156108f357fe5b0614151561090057600080fd5b6001548b1115151561091157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548b1115151561095e57600080fd5b6007805490508a8a90501115151561097557600080fd5b61097f338c611ded565b50600097505b600780549050881015610b7b576007888154811015156109a157fe5b90600052602060002090600202016040805190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015481525050965086600001519550610a6987600001518b8b80806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050611f0d90919063ffffffff16565b80955081965050508315610a7c57610b6e565b610aa78760200151610a996006548e611f9690919063ffffffff16565b611fac90919063ffffffff16565b92508573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610b4b57600080fd5b5af11515610b5857600080fd5b505050604051805190501515610b6d57600080fd5b5b8780600101985050610985565b3373ffffffffffffffffffffffffffffffffffffffff167f952b7243b53bb61160c8547e81432b1e2dd414de42f06b34aee5436e08d1bbcf8c8c8c60405180848152602001806020018281038252848482818152602001925060200280828437820191505094505050505060405180910390a25050505050505050505050565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60065481565b6000600154905090565b610d0561281b565b610d0d61281b565b6000600780549050604051805910610d225750595b90808252806020026020018201604052509150600090505b600780549050811015610d9157600781815481101515610d5657fe5b9060005260206000209060020201600101548282815181101515610d7657fe5b90602001906020020181815250508080600101915050610d3a565b819250505090565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610dd657600080fd5b610de1848484611fe7565b90509392505050565b600560009054906101000a900460ff1681565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e5957600080fd5b600560159054906101000a900460ff161515610e7457600080fd5b6000600560156101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600781815481101515610ecc57fe5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b600560159054906101000a900460ff1681565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611034576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110c8565b61104783826123a190919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006112066127eb565b600080600560159054906101000a900460ff1615151561122557600080fd5b8460008111151561123557600080fd5b8560006006548281151561124557fe5b0614151561125257600080fd5b600154876001540111151561126657600080fd5b600095505b60078054905086101561143b5760078681548110151561128757fe5b90600052602060002090600202016040805190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152505094508460000151935061133485602001516113266006548a611f9690919063ffffffff16565b611fac90919063ffffffff16565b92508373ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561140c57600080fd5b5af1151561141957600080fd5b50505060405180519050151561142e57600080fd5b858060010196505061126b565b61144533886123ba565b503373ffffffffffffffffffffffffffffffffffffffff167fcc9018de05b5f497ee7618d8830568d8ac2d45d0671b73d8f71c67e824122ec7886040518082815260200191505060405180910390a250505050505050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114f957600080fd5b600560159054906101000a900460ff1615151561151557600080fd5b6001600560156101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561161a5780601f106115ef5761010080835404028352916020019161161a565b820191906000526020600020905b8154815290600101906020018083116115fd57829003601f168201915b505050505081565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561165f57600080fd5b61166983836124da565b905092915050565b61167961282f565b61168161282f565b60006007805490506040518059106116965750595b90808252806020026020018201604052509150600090505b600780549050811015611753576007818154811015156116ca57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110151561170a57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505080806001019150506116ae565b819250505090565b6000806000806000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117bf57600080fd5b600560169054906101000a900460ff161515156117db57600080fd5b6001600560166101000a81548160ff0219169083151502179055508594508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561189357600080fd5b5af115156118a057600080fd5b5050506040518051905092506118b5866126f9565b80925081935050508015611905576118fe6118ef836118e1600654600154611f9690919063ffffffff16565b611fac90919063ffffffff16565b846123a190919063ffffffff16565b9350611909565b8293505b8473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156119cd57600080fd5b5af115156119da57600080fd5b5050506040518051905015156119ef57600080fd5b6000600560166101000a81548160ff021916908315150217905550505050505050565b6000611aa382600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127cd90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cf157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611d2d57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611e04826001546123a190919063ffffffff16565b600181905550611e5b826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123a190919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008060008090505b8451811015611f83578373ffffffffffffffffffffffffffffffffffffffff168582815181101515611f4457fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff161415611f765780600192509250611f8e565b8080600101915050611f16565b600080819150925092505b509250929050565b60008183811515611fa357fe5b04905092915050565b6000806000841415611fc15760009150611fe0565b8284029050828482811515611fd257fe5b04141515611fdc57fe5b8091505b5092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561202457600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561207157600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156120fc57600080fd5b61214d826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123a190919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121e0826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127cd90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122b182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123a190919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008282111515156123af57fe5b818303905092915050565b60006123d1826001546127cd90919063ffffffff16565b600181905550612428826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127cd90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561251757600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561256457600080fd5b6125b5826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123a190919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612648826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127cd90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008060008090505b6007805490508110156127bc578373ffffffffffffffffffffffffffffffffffffffff1660078281548110151561273557fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156127af5760078181548110151561279257fe5b9060005260206000209060020201600101546001925092506127c7565b8080600101915050612702565b600080819150925092505b50915091565b60008082840190508381101515156127e157fe5b8091505092915050565b6040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b602060405190810160405280600081525090565b6020604051908101604052806000815250905600a165627a7a72305820b0f05353907f0e36f112352afa24bdd17feed83b95c2ffad6bec199d26183160002900000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000e8d4a51000000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000003a0000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000d26114cd6ee289accf82350c8d8487fedb8a0c07000000000000000000000000d4fa1460f537bb9085d22c7bccb5dd450ef28e3a0000000000000000000000009f8f72aa9304c8b593d555f12ef6589cc3a579a2000000000000000000000000e0b7927c4af23765cb51314a0e0521a9645f0e2a000000000000000000000000744d70fdbe2ba4cf95131626614a1763df805b9e000000000000000000000000e41d2489571d322189246dafa5ebde1f4699f498000000000000000000000000e94327d07fc17907b4db788e5adf2ed424addff60000000000000000000000000d8775f648430679a709e98d2b0cb6250d2887ef000000000000000000000000dd974d5c2e2928dea5f71b9825b8b646686bd200000000000000000000000000d4c435f5b09f855c3317c8524cb1f586e42795fa000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000131eae609a0000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000001da791ca00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000028a44e71e5a0000000000000000000000000000000000000000000000000000006255805a84000000000000000000000000000000000000000000000000000000020fa33d64000000000000000000000000000000000000000000000000000000bb5f0f41470000000000000000000000000000000000000000000000000000001921f3796b0000000000000000000000000000000000000000000000000000010eef3ec6e90000000000000000000000000000000000000000000000000000000000000012457468657265756d31302051322d32303138000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034531300000000000000000000000000000000000000000000000000000000000

    Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000e8d4a51000000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000003a0000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000d26114cd6ee289accf82350c8d8487fedb8a0c07000000000000000000000000d4fa1460f537bb9085d22c7bccb5dd450ef28e3a0000000000000000000000009f8f72aa9304c8b593d555f12ef6589cc3a579a2000000000000000000000000e0b7927c4af23765cb51314a0e0521a9645f0e2a000000000000000000000000744d70fdbe2ba4cf95131626614a1763df805b9e000000000000000000000000e41d2489571d322189246dafa5ebde1f4699f498000000000000000000000000e94327d07fc17907b4db788e5adf2ed424addff60000000000000000000000000d8775f648430679a709e98d2b0cb6250d2887ef000000000000000000000000dd974d5c2e2928dea5f71b9825b8b646686bd200000000000000000000000000d4c435f5b09f855c3317c8524cb1f586e42795fa000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000131eae609a0000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000001da791ca00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000028a44e71e5a0000000000000000000000000000000000000000000000000000006255805a84000000000000000000000000000000000000000000000000000000020fa33d64000000000000000000000000000000000000000000000000000000bb5f0f41470000000000000000000000000000000000000000000000000000001921f3796b0000000000000000000000000000000000000000000000000000010eef3ec6e90000000000000000000000000000000000000000000000000000000000000012457468657265756d31302051322d32303138000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034531300000000000000000000000000000000000000000000000000000000000

-----Encoded View---------------
31 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000200
Arg [2] : 000000000000000000000000000000000000000000000000000000e8d4a51000
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000360
Arg [4] : 00000000000000000000000000000000000000000000000000000000000003a0
Arg [5] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [6] : 000000000000000000000000d26114cd6ee289accf82350c8d8487fedb8a0c07
Arg [7] : 000000000000000000000000d4fa1460f537bb9085d22c7bccb5dd450ef28e3a
Arg [8] : 0000000000000000000000009f8f72aa9304c8b593d555f12ef6589cc3a579a2
Arg [9] : 000000000000000000000000e0b7927c4af23765cb51314a0e0521a9645f0e2a
Arg [10] : 000000000000000000000000744d70fdbe2ba4cf95131626614a1763df805b9e
Arg [11] : 000000000000000000000000e41d2489571d322189246dafa5ebde1f4699f498
Arg [12] : 000000000000000000000000e94327d07fc17907b4db788e5adf2ed424addff6
Arg [13] : 0000000000000000000000000d8775f648430679a709e98d2b0cb6250d2887ef
Arg [14] : 000000000000000000000000dd974d5c2e2928dea5f71b9825b8b646686bd200
Arg [15] : 000000000000000000000000d4c435f5b09f855c3317c8524cb1f586e42795fa
Arg [16] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [17] : 000000000000000000000000000000000000000000000000000000131eae609a
Arg [18] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [19] : 000000000000000000000000000000000000000000000000000000001da791ca
Arg [20] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [21] : 0000000000000000000000000000000000000000000000000000028a44e71e5a
Arg [22] : 0000000000000000000000000000000000000000000000000000006255805a84
Arg [23] : 000000000000000000000000000000000000000000000000000000020fa33d64
Arg [24] : 000000000000000000000000000000000000000000000000000000bb5f0f4147
Arg [25] : 0000000000000000000000000000000000000000000000000000001921f3796b
Arg [26] : 0000000000000000000000000000000000000000000000000000010eef3ec6e9
Arg [27] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [28] : 457468657265756d31302051322d323031380000000000000000000000000000
Arg [29] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [30] : 4531300000000000000000000000000000000000000000000000000000000000


   Swarm Source:
bzzr://b0f05353907f0e36f112352afa24bdd17feed83b95c2ffad6bec199d26183160

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.