ETH Price: $2,806.48 (+1.15%)

Contract

0x4FCe5178346Fc58a0A1261eC2306ACc39ED801AB
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer193691432024-03-05 13:04:11355 days ago1709643851IN
0x4FCe5178...39ED801AB
0 ETH0.001955272.76548038
Transfer193686872024-03-05 11:32:35355 days ago1709638355IN
0x4FCe5178...39ED801AB
0 ETH0.0013871751.62549727
Withdraw193684902024-03-05 10:53:11355 days ago1709635991IN
0x4FCe5178...39ED801AB
0 ETH0.0015216458.71667626
Register123366782021-04-29 17:21:581395 days ago1619716918IN
0x4FCe5178...39ED801AB
0 ETH0.0033003107
Register122818922021-04-21 6:12:511404 days ago1618985571IN
0x4FCe5178...39ED801AB
0 ETH0.0047436150
Register122524532021-04-16 17:24:201408 days ago1618593860IN
0x4FCe5178...39ED801AB
0 ETH0.00601926195
Register122081772021-04-09 21:51:391415 days ago1618005099IN
0x4FCe5178...39ED801AB
0 ETH0.0027424695
Register122081772021-04-09 21:51:391415 days ago1618005099IN
0x4FCe5178...39ED801AB
0 ETH0.0026558592
Register121981052021-04-08 8:33:231417 days ago1617870803IN
0x4FCe5178...39ED801AB
0 ETH0.0027713296
Register121977772021-04-08 7:21:011417 days ago1617866461IN
0x4FCe5178...39ED801AB
0 ETH0.0026847293
Register121974432021-04-08 6:02:461417 days ago1617861766IN
0x4FCe5178...39ED801AB
0 ETH0.0025981290
Register121963942021-04-08 2:07:531417 days ago1617847673IN
0x4FCe5178...39ED801AB
0 ETH0.0026558592.00000145
Register121963832021-04-08 2:05:311417 days ago1617847531IN
0x4FCe5178...39ED801AB
0 ETH0.0026558592.00000145
Register98071132020-04-04 18:22:421785 days ago1586024562IN
0x4FCe5178...39ED801AB
0 ETH0.000029641
Register90508292019-12-04 19:00:121907 days ago1575486012IN
0x4FCe5178...39ED801AB
0 ETH0.000057722
Register90508292019-12-04 19:00:121907 days ago1575486012IN
0x4FCe5178...39ED801AB
0 ETH0.000090922
Register90508272019-12-04 18:59:501907 days ago1575485990IN
0x4FCe5178...39ED801AB
0 ETH0.000120922
Register90507442019-12-04 18:38:541907 days ago1575484734IN
0x4FCe5178...39ED801AB
0 ETH0.000057722
Register90330972019-12-01 15:26:241911 days ago1575213984IN
0x4FCe5178...39ED801AB
0 ETH0.000086593
Register89231612019-11-12 23:22:411929 days ago1573600961IN
0x4FCe5178...39ED801AB
0 ETH0.000115454
Register89049032019-11-09 22:36:281932 days ago1573338988IN
0x4FCe5178...39ED801AB
0 ETH0.000028861
Register89043542019-11-09 20:24:161932 days ago1573331056IN
0x4FCe5178...39ED801AB
0 ETH0.000028861
Register86971072019-10-07 20:35:451965 days ago1570480545IN
0x4FCe5178...39ED801AB
0 ETH0.000028861
Register85949012019-09-21 20:55:481981 days ago1569099348IN
0x4FCe5178...39ED801AB
0 ETH0.000317511
Register85301322019-09-11 18:36:071991 days ago1568226967IN
0x4FCe5178...39ED801AB
0 ETH0.0003463612
View all transactions

Advanced mode:
Parent Transaction Hash Block
From
To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
HubCulture

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-12-01
*/

pragma solidity ^0.4.24;

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

  /**
  * @dev Multiplies two numbers, reverts on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
    // benefit is lost if 'b' is also tested.
    // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
    if (a == 0) {
      return 0;
    }

    uint256 c = a * b;
    require(c / a == b);

    return c;
  }

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

    return c;
  }

  /**
  * @dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b <= a);
    uint256 c = a - b;

    return c;
  }

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

    return c;
  }

  /**
  * @dev Divides two numbers and returns the remainder (unsigned integer modulo),
  * reverts when dividing by zero.
  */
  function mod(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b != 0);
    return a % b;
  }
}

/**
* @dev This is a library based implementation of the ERC20 token standard.
* This library allows all values to be set by interface logic. This includes
* the ability to set msg.sender. This allows two distinct advantages:
*  - Access control logic may be layered without the need to change the
*    core logic of the ERC20 system in any way.
*  - Tokens that require administrative action, under some conditions,
*    may take administrative action on an account, without having to
*    create fragile backdoors into the transfer logic of the token. This
*    system makes such administrative priveledge clear, apparent, and
*    more easily auditable to ensure reasonable limitations of power.
*/
library ERC20Lib {


  ////////////////////////////////////////////////////////////////////////////
  //Imports

  /**
  * @dev Prevents underflow and overflow attacks..
  */
  using SafeMath for uint256;
  ///////////////////////////////////////////////////////////////////////////


  ////////////////////////////////////////////////////////////////////////////
  //Events

  /**
  * @dev Transfer event emitted in 3 cases; transfers, minting, and burning.
  * for transfers, all fields set as normal
  * for minting from is set to address(0)
  * for burning is set to address(0)
  */
  event Transfer(address indexed from, address indexed to, uint256 value);

  /**
  * @dev Specifies an approval being granted from an owner to a spender
  * for the amount specified.
  */
  event Approval(address indexed owner, address indexed spender, uint256 value);
  ////////////////////////////////////////////////////////////////////////////

  ////////////////////////////////////////////////////////////////////////////
  //Declarations

  /**
  * @dev Struct like representation of ERC20 state vairiables.
  * this allows the ERC20 logic to become a library under using for syntax
  */
  struct Token{
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowed;
    uint256 _totalSupply;
  }
  ////////////////////////////////////////////////////////////////////////////


  ////////////////////////////////////////////////////////////////////////////
  //Logic

  /**
  * @dev Returns the total supply of the token.
  */
  function totalSupply(Token storage self)
  internal
  view
  returns (uint256) {
    return self._totalSupply;
  }

  /**
  * @dev Returns the balance of an account.
  */
  function balances(Token storage self, address account)
  internal
  view
  returns (uint256) {
    return self._balances[account];
  }

  /**
  * @dev Returns the total allowance from the account to the spender..
  */
  function allowance(Token storage self, address account, address spender)
  internal
  view
  returns (uint256) {
    return self._allowed[account][spender];
  }

  /**
  * @dev Issues an allowance from an account to another.
  */
  function approve(Token storage self, address sender, address spender, uint256 value)
  internal {
    require(spender != address(0));
    self._allowed[sender][spender] = value;
    emit Approval(sender, spender, value);
  }

  /**
  * @dev Cause a transfer to occur based on an existing allowance.
  */
  function transferFrom(Token storage self, address sender, address from, address to, uint256 value)
  internal {
    require(value <= self._allowed[from][sender]);
    self._allowed[from][sender] = self._allowed[from][sender].sub(value);
    transfer(self,from, to, value);
  }

  /**
  * @dev Increase the allowance from one account to another. Prevents
  * change allowance attack.
  */
  function increaseAllowance(Token storage self, address sender, address spender, uint256 addedValue)
  internal {
    require(spender != address(0));
    self._allowed[sender][spender] = self._allowed[sender][spender].add(addedValue);
    emit Approval(sender, spender, self._allowed[sender][spender]);
  }

  /**
  * @dev Decrease the allowance from one account to another. Prevents
  * the change allowance attack.
  */
  function decreaseAllowance(Token storage self, address sender, address spender, uint256 subtractedValue)
  internal {
    require(spender != address(0));
    self._allowed[sender][spender] = self._allowed[sender][spender].sub(subtractedValue);
    emit Approval(sender, spender, self._allowed[sender][spender]);
  }

  /**
  * @dev Transfer tokens from one account to another.
  */
  function transfer(Token storage self, address sender, address to, uint256 value)
  internal {
    require(value <= self._balances[sender]);
    require(to != address(0));
    self._balances[sender] = self._balances[sender].sub(value);
    self._balances[to] = self._balances[to].add(value);
    emit Transfer(sender, to, value);
  }

  /**
  * @dev Mint new tokens to an account.
  */
  function mint(Token storage self, address account, uint256 value)
  internal {
    require(account != 0);
    self._totalSupply = self._totalSupply.add(value);
    self._balances[account] = self._balances[account].add(value);
    emit Transfer(address(0), account, value);
  }

  /**
  * @dev Burn tokens from an account.
  */
  function burn(Token storage self, address account, uint256 value)
  internal {
    require(account != 0);
    require(value <= self._balances[account]);
    self._totalSupply = self._totalSupply.sub(value);
    self._balances[account] = self._balances[account].sub(value);
    emit Transfer(account, address(0), value);
  }
  ////////////////////////////////////////////////////////////////////////////

}



contract HubCulture{

  ////////////////////////////////////////////////////////////////////////////
  //Imports
  using ERC20Lib for ERC20Lib.Token;
  using SafeMath for uint256;
  ///////////////////////////////////////////////////////////////////////////

  ///////////////////////////////////////////////////////////////////////////
  //Events
  event Pending(address indexed account, uint256 indexed value, uint256 indexed nonce);
  event Deposit(address indexed account, uint256 indexed value, uint256 indexed nonce);
  event Withdraw(address indexed account, uint256 indexed value, uint256 indexed nonce);
  event Decline(address indexed account, uint256 indexed value, uint256 indexed nonce);
  event Registration(address indexed account, bytes32 indexed uuid, uint256 indexed nonce);
  event Unregistered(address indexed account, uint256 indexed nonce);
  ////////////////////////////////////////////////////////////////////////////

  ////////////////////////////////////////////////////////////////////////////
  //Declarations
  mapping(address=>bool) authorities;
  mapping(address=>bool) registered;
  mapping(address=>bool) vaults;
  ERC20Lib.Token token;
  ERC20Lib.Token pending;
  uint256 eventNonce;
  address failsafe;
  address owner;
  bool paused;
  ////////////////////////////////////////////////////////////////////////////

  ////////////////////////////////////////////////////////////////////////////
  //Constructor
  constructor(address _owner,address _failsafe)
  public {
    failsafe = _failsafe;
    owner = _owner;
  }
  ////////////////////////////////////////////////////////////////////////////

  ////////////////////////////////////////////////////////////////////////////
  //Modifiers
  modifier onlyFailsafe(){
    require(msg.sender == failsafe);
    _;
  }

  modifier onlyAdmin(){
    require(msg.sender == owner || msg.sender == failsafe);
    _;
  }

  modifier onlyAuthority(){
    require(authorities[msg.sender]);
    _;
  }

  modifier onlyVault(){
    require(vaults[msg.sender]);
    _;
  }

  modifier notPaused(){
    require(!paused);
    _;
  }
  ////////////////////////////////////////////////////////////////////////////

  ////////////////////////////////////////////////////////////////////////////
  //Failsafe Logic
  function isFailsafe(address _failsafe)
  public
  view
  returns (bool){
    return (failsafe == _failsafe);
  }

  function setFailsafe(address _failsafe)
  public
  onlyFailsafe{
    failsafe = _failsafe;
  }
  ////////////////////////////////////////////////////////////////////////////

  ////////////////////////////////////////////////////////////////////////////
  //Owner Logic
  function isOwner(address _owner)
  public
  view
  returns (bool){
    return (owner == _owner);
  }

  function setOwner(address _owner)
  public
  onlyAdmin{
    owner = _owner;
  }
  ////////////////////////////////////////////////////////////////////////////

  ////////////////////////////////////////////////////////////////////////////
  //Vault Logic
  function isVault(address vault)
  public
  view
  returns (bool) {
    return vaults[vault];
  }

  function addVault(address vault)
  public
  onlyAdmin
  notPaused
  returns (bool) {
    vaults[vault] = true;
    return true;
  }

  function removeVault(address vault)
  public
  onlyAdmin
  returns (bool) {
    vaults[vault] = false;
    return true;
  }
  ////////////////////////////////////////////////////////////////////////////

  ////////////////////////////////////////////////////////////////////////////
  //Authority Logic
  function isAuthority(address authority)
  public
  view
  returns (bool) {
    return authorities[authority];
  }

  function addAuthority(address authority)
  public
  onlyAdmin
  notPaused
  returns (bool) {
    authorities[authority] = true;
    return true;
  }

  function removeAuthority(address authority)
  public
  onlyAdmin
  returns (bool) {
    authorities[authority] = false;
    return true;
  }
  ////////////////////////////////////////////////////////////////////////////

  ////////////////////////////////////////////////////////////////////////////
  //Pause Logic

  /**
  * @dev Administrative lockdown check.
  **/
  function isPaused()
  public
  view
  returns (bool) {
    return paused;
  }

  /**
  * @dev Locks down all actions except administrative actions. Should be used
  * to address security flaws. If this contract has a critical bug, This method
  * should be called to allow for a hault of operations and a migration to occur
  * If this method is called due to a loss of server keys, it will hault
  * operation until root cause may be found.
  **/
  function pause()
  public
  onlyAdmin
  notPaused
  returns (bool) {
    paused = true;
    return true;
  }

  /**
  * @dev Releases system from administrative lockdown. Requires retrieval of
  * failsafe coldwallet.
  **/
  function unpause()
  public
  onlyFailsafe
  returns (bool) {
    paused = false;
    return true;
  }

  /**
  * @dev Locks down all actions FOREVER! This should only be used in
  * manual contract migration due to critical bug. This will halt all
  *operations and allow a new contract to be built by transfering all balances.
  **/
  function lockForever()
  public
  onlyFailsafe
  returns (bool) {
    pause();
    setOwner(address(this));
    setFailsafe(address(this));
    return true;
  }
  ////////////////////////////////////////////////////////////////////////////

  ////////////////////////////////////////////////////////////////////////////
  //Panic Logic

  /**
  * @dev Lets everyone know if something catastrophic has occured. The owner,
  * and failsafe should not ever be the same entity. This combined with a paused
  * state indicates that panic has most likely been called or this contract has
  * been permanently locked for migration.
  */
  function isBadDay()
  public
  view
  returns (bool) {
    return (isPaused() && (owner == failsafe));
  }
  ////////////////////////////////////////////////////////////////////////////

  ////////////////////////////////////////////////////////////////////////////
  //ERC20Lib Wrappers

  /**
  * @dev These methods act as transparent wrappers around the ERC20Lib. The
  * only changes in logic are as follows:
  *  - The msg.sender must be explicitly set by the wrapper
  *  - The totalSupply has been broken up into 3 functions as totalSupply
  *    pendingSupply, and activeSupply.
  * Pending supply is the supply that has been deposited but not released
  * Active supply is the released deposited supply
  * Total supply is the sum of active and pending.
  */
  function totalSupply()
  public
  view
  returns (uint256) {
    uint256 supply = 0;
    supply = supply.add(pending.totalSupply());
    supply = supply.add(token.totalSupply());
    return supply;
  }

  function pendingSupply()
  public
  view
  returns (uint256) {
    return pending.totalSupply();
  }

  function availableSupply()
  public
  view
  returns (uint256) {
    return token.totalSupply();
  }

  function balanceOf(address account)
  public
  view
  returns (uint256) {
    return token.balances(account);
  }

  function allowance(address account, address spender)
  public
  view
  returns (uint256) {
    return token.allowance(account,spender);
  }

  function transfer(address to, uint256 value)
  public
  notPaused
  returns (bool) {
    token.transfer(msg.sender, to, value);
    return true;
  }

  function approve(address spender, uint256 value)
  public
  notPaused
  returns (bool) {
    token.approve(msg.sender,spender,value);
    return true;
  }

  function transferFrom(address from, address to, uint256 value)
  public
  notPaused
  returns (bool) {
    token.transferFrom(msg.sender,from,to,value);
    return true;
  }

  function increaseAllowance(address spender, uint256 addedValue)
  public
  notPaused
  returns (bool) {
    token.increaseAllowance(msg.sender,spender,addedValue);
    return true;
  }

  function decreaseAllowance(address spender, uint256 subtractedValue)
  public
  notPaused
  returns (bool) {
    token.decreaseAllowance(msg.sender,spender,subtractedValue);
    return true;
  }
  ////////////////////////////////////////////////////////////////////////////

  ////////////////////////////////////////////////////////////////////////////
  //Deposit Logic

  /**
  * @dev This logic allows for a delay between a deposit
  * and the release of funds. This is accomplished by maintaining
  * two independant ERC20 contracts in this one contract by using
  * the ERC20Lib library.
  * The first is the token contract that is used to transfer value
  * as is normally expected of an ERC20. The second is the system
  * that allows Ven to be dposited and withdrawn from the
  * blockchain such that no extra priveledge is given to HubCulture
  * for on blockchain actions. This system also allows for the time
  * delay based approval of deposits. Further, the entity that
  * creates a deposit request is an authority, but only a vault
  * may release the deposit into the active balances of the ERC20
  * token.
  */


  /**
  * @dev Deposit value from HubCulture into ERC20
  * This is a pending deposit that must be released.
  * Only an authority may request a deposit.
  */
  function deposit(address account, uint256 value)
  public
  notPaused
  onlyAuthority
  returns (bool) {
    pending.mint(account,value);
    eventNonce+=1;
    emit Pending(account,value,eventNonce);
    return true;
  }

  /**
  * @dev Release a deposit from pending state and credit
  * account with the balance due.
  */
  function releaseDeposit(address account, uint256 value)
  public
  notPaused
  onlyVault
  returns (bool) {
    pending.burn(account,value);
    token.mint(account,value);
    eventNonce+=1;
    emit Deposit(account,value,eventNonce);
    return true;
  }

  /**
  * @dev Cancel a deposit. This prevents the deposit from
  * being released.
  */
  function revokeDeposit(address account, uint256 value)
  public
  notPaused
  onlyVault
  returns (bool) {
    pending.burn(account,value);
    eventNonce+=1;
    emit Decline(account,value,eventNonce);
    return true;
  }
  ////////////////////////////////////////////////////////////////////////////

  ////////////////////////////////////////////////////////////////////////////
  //Withdraw Logic

  /**
  * @dev Withdraw tokens by burning the balance and emitting the event.
  * In order to withdraw the account must be a registered wallet. This is
  * to prevent loss of funds.
  */
  function withdraw(uint256 value)
  public
  notPaused
  returns (bool) {
    require(registered[msg.sender]);
    token.burn(msg.sender,value);
    eventNonce+=1;
    emit Withdraw(msg.sender,value,eventNonce);
    return true;
  }
  ////////////////////////////////////////////////////////////////////////////

  ////////////////////////////////////////////////////////////////////////////
  //Wallet Registration Logic

  /**
  * @dev Allows the registration state of a wallet to be queried.
  */
  function isRegistered(address wallet)
  public
  view
  returns (bool) {
    return registered[wallet];
  }

  /**
  * @dev Allows a HubCulture user to claim thier wallet. This system works
  * as follows:
  *  - User must enter the address they wish to claim on HubCulture
  *  - The user will be provided with a UUID that will be a randomly
  *      generated value (salt) hashed with the user ID for this user.
  *  -  The keccak256 of the uuid and account address will then be
  *      signed by an authority to ensure authenticity.
  *  -  The user must submit a transaction, from the claimed account, with
  *      the uuid, proof, and signature from the authority as arguments to
  *      this method.
  * If all checks pass, the account registration event should be emitted,
  * and this account may now withdraw Ven to HubCulture.
  */
  function register(bytes32 uuid, uint8 v, bytes32 r, bytes32 s)
  public
  notPaused
  returns (bool) {
    require(authorities[ecrecover(keccak256(abi.encodePacked(msg.sender,uuid)),v,r,s)]);
    registered[msg.sender]=true;
    eventNonce+=1;
    emit Registration(msg.sender, uuid, eventNonce);
    return true;
  }

  /**
  * @dev Allows an authority to unregister an account. This will prevent
  * a withdraw comand from being issued by this account unless it is
  * re-registered. This is not a security feature. This is a cleanup
  * function to ensure that closed accounts become zeroed out to minimize
  * chain bloat.
  */
  function unregister(address wallet)
  public
  notPaused
  onlyAuthority
  returns (bool) {
    registered[wallet] = false;
    eventNonce+=1;
    emit Unregistered(wallet, eventNonce);
    return true;
  }
  ////////////////////////////////////////////////////////////////////////////

}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"value","type":"uint256"}],"name":"revokeDeposit","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"authority","type":"address"}],"name":"isAuthority","outputs":[{"name":"","type":"bool"}],"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":false,"inputs":[{"name":"vault","type":"address"}],"name":"addVault","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"authority","type":"address"}],"name":"addAuthority","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"withdraw","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"wallet","type":"address"}],"name":"unregister","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pendingSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isBadDay","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"value","type":"uint256"}],"name":"deposit","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_failsafe","type":"address"}],"name":"setFailsafe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"value","type":"uint256"}],"name":"releaseDeposit","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"vault","type":"address"}],"name":"isVault","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_failsafe","type":"address"}],"name":"isFailsafe","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"availableSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"lockForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":"isPaused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"uuid","type":"bytes32"},{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"}],"name":"register","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"wallet","type":"address"}],"name":"isRegistered","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"vault","type":"address"}],"name":"removeVault","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"authority","type":"address"}],"name":"removeAuthority","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_owner","type":"address"},{"name":"_failsafe","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"},{"indexed":true,"name":"value","type":"uint256"},{"indexed":true,"name":"nonce","type":"uint256"}],"name":"Pending","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"},{"indexed":true,"name":"value","type":"uint256"},{"indexed":true,"name":"nonce","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"},{"indexed":true,"name":"value","type":"uint256"},{"indexed":true,"name":"nonce","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"},{"indexed":true,"name":"value","type":"uint256"},{"indexed":true,"name":"nonce","type":"uint256"}],"name":"Decline","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"},{"indexed":true,"name":"uuid","type":"bytes32"},{"indexed":true,"name":"nonce","type":"uint256"}],"name":"Registration","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"},{"indexed":true,"name":"nonce","type":"uint256"}],"name":"Unregistered","type":"event"}]

608060405234801561001057600080fd5b50604051604080611509833981016040528051602090910151600a8054600160a060020a03928316600160a060020a031991821617909155600b80549290931691161790556114a5806100646000396000f3006080604052600436106101955763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663095ea7b3811461019a5780630975f4dd146101d257806313af4035146101f657806318160ddd146102195780632330f2471461024057806323b872dd14610261578063256b5a021461028b57806326defa73146102ac5780632e1a7d4d146102cd5780632ec2c246146102e55780632f54bf6e1461030657806335dd5dfb14610327578063395093511461033c5780633f4ba83a14610360578063404b33b11461037557806347e7ef241461038a5780634abf8bd2146103ae578063524dd059146103cf578063652b9b41146103f357806370a08231146104145780637e8dac4a146104355780637ecc2b56146104565780638456cb591461046b57806390f3173b14610480578063a457c2d714610495578063a9059cbb146104b9578063b187bd26146104dd578063baee1d1d146104f2578063c3c5a54714610516578063ceb68c2314610537578063d544e01014610558578063dd62ed3e14610579575b600080fd5b3480156101a657600080fd5b506101be600160a060020a03600435166024356105a0565b604080519115158252519081900360200190f35b3480156101de57600080fd5b506101be600160a060020a03600435166024356105d6565b34801561020257600080fd5b50610217600160a060020a036004351661066a565b005b34801561022557600080fd5b5061022e6106c7565b60408051918252519081900360200190f35b34801561024c57600080fd5b506101be600160a060020a03600435166106f9565b34801561026d57600080fd5b506101be600160a060020a0360043581169060243516604435610717565b34801561029757600080fd5b506101be600160a060020a036004351661074f565b3480156102b857600080fd5b506101be600160a060020a03600435166107c0565b3480156102d957600080fd5b506101be600435610831565b3480156102f157600080fd5b506101be600160a060020a03600435166108bb565b34801561031257600080fd5b506101be600160a060020a0360043516610950565b34801561033357600080fd5b5061022e610964565b34801561034857600080fd5b506101be600160a060020a0360043516602435610975565b34801561036c57600080fd5b506101be6109a2565b34801561038157600080fd5b506101be6109e0565b34801561039657600080fd5b506101be600160a060020a0360043516602435610a09565b3480156103ba57600080fd5b50610217600160a060020a0360043516610a9d565b3480156103db57600080fd5b506101be600160a060020a0360043516602435610ae3565b3480156103ff57600080fd5b506101be600160a060020a0360043516610b89565b34801561042057600080fd5b5061022e600160a060020a0360043516610ba7565b34801561044157600080fd5b506101be600160a060020a0360043516610bba565b34801561046257600080fd5b5061022e610bce565b34801561047757600080fd5b506101be610bda565b34801561048c57600080fd5b506101be610c4c565b3480156104a157600080fd5b506101be600160a060020a0360043516602435610c87565b3480156104c557600080fd5b506101be600160a060020a0360043516602435610cb4565b3480156104e957600080fd5b506101be610ce1565b3480156104fe57600080fd5b506101be60043560ff60243516604435606435610cf1565b34801561052257600080fd5b506101be600160a060020a0360043516610e82565b34801561054357600080fd5b506101be600160a060020a0360043516610ea0565b34801561056457600080fd5b506101be600160a060020a0360043516610ef6565b34801561058557600080fd5b5061022e600160a060020a0360043581169060243516610f4c565b600b5460009060a060020a900460ff16156105ba57600080fd5b6105cd600333858563ffffffff610f6716565b50600192915050565b600b5460009060a060020a900460ff16156105f057600080fd5b3360009081526002602052604090205460ff16151561060e57600080fd5b6106206006848463ffffffff610fe116565b60098054600101908190556040518390600160a060020a038616907f36d6fb92b6d268f5240d9474033e6331c70937573bb9a9f1c7afbb95a15b704590600090a450600192915050565b600b54600160a060020a031633148061068d5750600a54600160a060020a031633145b151561069857600080fd5b600b805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000806106e46106d760066110b4565b829063ffffffff6110bb16565b90506106f36106d760036110b4565b92915050565b600160a060020a031660009081526020819052604090205460ff1690565b600b5460009060a060020a900460ff161561073157600080fd5b61074560033386868663ffffffff6110cd16565b5060019392505050565b600b54600090600160a060020a03163314806107755750600a54600160a060020a031633145b151561078057600080fd5b600b5460a060020a900460ff161561079757600080fd5b50600160a060020a03166000908152600260205260409020805460ff1916600190811790915590565b600b54600090600160a060020a03163314806107e65750600a54600160a060020a031633145b15156107f157600080fd5b600b5460a060020a900460ff161561080857600080fd5b50600160a060020a03166000908152602081905260409020805460ff1916600190811790915590565b600b5460009060a060020a900460ff161561084b57600080fd5b3360009081526001602052604090205460ff16151561086957600080fd5b61087b6003338463ffffffff610fe116565b6009805460010190819055604051839033907ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56890600090a4506001919050565b600b5460009060a060020a900460ff16156108d557600080fd5b3360009081526020819052604090205460ff1615156108f357600080fd5b600160a060020a0382166000818152600160208190526040808320805460ff191690556009805490920191829055519092917f15f7469572dc44ee54c08cc4adf4e1031d7b6254626e8894015195a560039d0991a3506001919050565b600b54600160a060020a0391821691161490565b600061097060066110b4565b905090565b600b5460009060a060020a900460ff161561098f57600080fd5b6105cd600333858563ffffffff61117416565b600a54600090600160a060020a031633146109bc57600080fd5b50600b805474ff000000000000000000000000000000000000000019169055600190565b60006109ea610ce1565b8015610970575050600a54600b54600160a060020a0391821691161490565b600b5460009060a060020a900460ff1615610a2357600080fd5b3360009081526020819052604090205460ff161515610a4157600080fd5b610a536006848463ffffffff61122a16565b60098054600101908190556040518390600160a060020a038616907fa379518b98caa65e8a819cbd566044593ad5ae1eb3d1dae3565c78a3a52346c390600090a450600192915050565b600a54600160a060020a03163314610ab457600080fd5b600a805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600b5460009060a060020a900460ff1615610afd57600080fd5b3360009081526002602052604090205460ff161515610b1b57600080fd5b610b2d6006848463ffffffff610fe116565b610b3f6003848463ffffffff61122a16565b60098054600101908190556040518390600160a060020a038616907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1590600090a450600192915050565b600160a060020a031660009081526002602052604090205460ff1690565b60006106f360038363ffffffff6112d916565b600a54600160a060020a0391821691161490565b600061097060036110b4565b600b54600090600160a060020a0316331480610c005750600a54600160a060020a031633145b1515610c0b57600080fd5b600b5460a060020a900460ff1615610c2257600080fd5b50600b805474ff0000000000000000000000000000000000000000191660a060020a179055600190565b600a54600090600160a060020a03163314610c6657600080fd5b610c6e610bda565b50610c783061066a565b610c8130610a9d565b50600190565b600b5460009060a060020a900460ff1615610ca157600080fd5b6105cd600333858563ffffffff6112f516565b600b5460009060a060020a900460ff1615610cce57600080fd5b6105cd600333858563ffffffff61134216565b600b5460a060020a900460ff1690565b600b5460009060a060020a900460ff1615610d0b57600080fd5b604080516c01000000000000000000000000330260208083019190915260348083018990528351808403909101815260549092019283905281516000938493600193909282918401908083835b60208310610d775780518252601f199092019160209182019101610d58565b51815160209384036101000a60001901801990921691161790526040805192909401829003822060008084528383018087529190915260ff8e1683860152606083018d9052608083018c9052935160a08084019750919550601f1981019492819003909101925090865af1158015610df3573d6000803e3d6000fd5b505060408051601f190151600160a060020a03168352602083019390935250016000205460ff161515610e2557600080fd5b336000818152600160208190526040808320805460ff1916831790556009805490920191829055519092889290917f365c8f0eae5b0ae25f511df9c6e1a6853020a8020c5d6b2c7557c797e81ae1619190a4506001949350505050565b600160a060020a031660009081526001602052604090205460ff1690565b600b54600090600160a060020a0316331480610ec65750600a54600160a060020a031633145b1515610ed157600080fd5b50600160a060020a03166000908152600260205260409020805460ff19169055600190565b600b54600090600160a060020a0316331480610f1c5750600a54600160a060020a031633145b1515610f2757600080fd5b50600160a060020a03166000908152602081905260409020805460ff19169055600190565b6000610f606003848463ffffffff61143516565b9392505050565b600160a060020a0382161515610f7c57600080fd5b600160a060020a038084166000818152600187016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a350505050565b600160a060020a0382161515610ff657600080fd5b600160a060020a03821660009081526020849052604090205481111561101b57600080fd5b6002830154611030908263ffffffff61146216565b6002840155600160a060020a03821660009081526020849052604090205461105e908263ffffffff61146216565b600160a060020a038316600081815260208681526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3505050565b6002015490565b600082820183811015610f6057600080fd5b600160a060020a03808416600090815260018701602090815260408083209388168352929052205481111561110157600080fd5b600160a060020a038084166000908152600187016020908152604080832093881683529290522054611139908263ffffffff61146216565b600160a060020a03808516600090815260018801602090815260408083209389168352929052205561116d85848484611342565b5050505050565b600160a060020a038216151561118957600080fd5b600160a060020a0380841660009081526001860160209081526040808320938616835292905220546111c1908263ffffffff6110bb16565b600160a060020a03848116600081815260018801602090815260408083209488168084529482529182902085905581519485529051929391927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a350505050565b600160a060020a038216151561123f57600080fd5b6002830154611254908263ffffffff6110bb16565b6002840155600160a060020a038216600090815260208490526040902054611282908263ffffffff6110bb16565b600160a060020a0383166000818152602086815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505050565b600160a060020a03166000908152602091909152604090205490565b600160a060020a038216151561130a57600080fd5b600160a060020a0380841660009081526001860160209081526040808320938616835292905220546111c1908263ffffffff61146216565b600160a060020a03831660009081526020859052604090205481111561136757600080fd5b600160a060020a038216151561137c57600080fd5b600160a060020a0383166000908152602085905260409020546113a5908263ffffffff61146216565b600160a060020a0380851660009081526020879052604080822093909355908416815220546113da908263ffffffff6110bb16565b600160a060020a038084166000818152602088815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350505050565b600160a060020a039182166000908152600193909301602090815260408085209290931684525290205490565b6000808383111561147257600080fd5b50509003905600a165627a7a7230582006b974ed5c46dc1a26d6bf07e5a0eb110d77d58f956bf3d04e34cb26ce8702350029000000000000000000000000b2cae47cb1fd1eaef61a68f74258cd953e3fc362000000000000000000000000b2cae47cb1fd1eaef61a68f74258cd953e3fc362

Deployed Bytecode

0x6080604052600436106101955763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663095ea7b3811461019a5780630975f4dd146101d257806313af4035146101f657806318160ddd146102195780632330f2471461024057806323b872dd14610261578063256b5a021461028b57806326defa73146102ac5780632e1a7d4d146102cd5780632ec2c246146102e55780632f54bf6e1461030657806335dd5dfb14610327578063395093511461033c5780633f4ba83a14610360578063404b33b11461037557806347e7ef241461038a5780634abf8bd2146103ae578063524dd059146103cf578063652b9b41146103f357806370a08231146104145780637e8dac4a146104355780637ecc2b56146104565780638456cb591461046b57806390f3173b14610480578063a457c2d714610495578063a9059cbb146104b9578063b187bd26146104dd578063baee1d1d146104f2578063c3c5a54714610516578063ceb68c2314610537578063d544e01014610558578063dd62ed3e14610579575b600080fd5b3480156101a657600080fd5b506101be600160a060020a03600435166024356105a0565b604080519115158252519081900360200190f35b3480156101de57600080fd5b506101be600160a060020a03600435166024356105d6565b34801561020257600080fd5b50610217600160a060020a036004351661066a565b005b34801561022557600080fd5b5061022e6106c7565b60408051918252519081900360200190f35b34801561024c57600080fd5b506101be600160a060020a03600435166106f9565b34801561026d57600080fd5b506101be600160a060020a0360043581169060243516604435610717565b34801561029757600080fd5b506101be600160a060020a036004351661074f565b3480156102b857600080fd5b506101be600160a060020a03600435166107c0565b3480156102d957600080fd5b506101be600435610831565b3480156102f157600080fd5b506101be600160a060020a03600435166108bb565b34801561031257600080fd5b506101be600160a060020a0360043516610950565b34801561033357600080fd5b5061022e610964565b34801561034857600080fd5b506101be600160a060020a0360043516602435610975565b34801561036c57600080fd5b506101be6109a2565b34801561038157600080fd5b506101be6109e0565b34801561039657600080fd5b506101be600160a060020a0360043516602435610a09565b3480156103ba57600080fd5b50610217600160a060020a0360043516610a9d565b3480156103db57600080fd5b506101be600160a060020a0360043516602435610ae3565b3480156103ff57600080fd5b506101be600160a060020a0360043516610b89565b34801561042057600080fd5b5061022e600160a060020a0360043516610ba7565b34801561044157600080fd5b506101be600160a060020a0360043516610bba565b34801561046257600080fd5b5061022e610bce565b34801561047757600080fd5b506101be610bda565b34801561048c57600080fd5b506101be610c4c565b3480156104a157600080fd5b506101be600160a060020a0360043516602435610c87565b3480156104c557600080fd5b506101be600160a060020a0360043516602435610cb4565b3480156104e957600080fd5b506101be610ce1565b3480156104fe57600080fd5b506101be60043560ff60243516604435606435610cf1565b34801561052257600080fd5b506101be600160a060020a0360043516610e82565b34801561054357600080fd5b506101be600160a060020a0360043516610ea0565b34801561056457600080fd5b506101be600160a060020a0360043516610ef6565b34801561058557600080fd5b5061022e600160a060020a0360043581169060243516610f4c565b600b5460009060a060020a900460ff16156105ba57600080fd5b6105cd600333858563ffffffff610f6716565b50600192915050565b600b5460009060a060020a900460ff16156105f057600080fd5b3360009081526002602052604090205460ff16151561060e57600080fd5b6106206006848463ffffffff610fe116565b60098054600101908190556040518390600160a060020a038616907f36d6fb92b6d268f5240d9474033e6331c70937573bb9a9f1c7afbb95a15b704590600090a450600192915050565b600b54600160a060020a031633148061068d5750600a54600160a060020a031633145b151561069857600080fd5b600b805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000806106e46106d760066110b4565b829063ffffffff6110bb16565b90506106f36106d760036110b4565b92915050565b600160a060020a031660009081526020819052604090205460ff1690565b600b5460009060a060020a900460ff161561073157600080fd5b61074560033386868663ffffffff6110cd16565b5060019392505050565b600b54600090600160a060020a03163314806107755750600a54600160a060020a031633145b151561078057600080fd5b600b5460a060020a900460ff161561079757600080fd5b50600160a060020a03166000908152600260205260409020805460ff1916600190811790915590565b600b54600090600160a060020a03163314806107e65750600a54600160a060020a031633145b15156107f157600080fd5b600b5460a060020a900460ff161561080857600080fd5b50600160a060020a03166000908152602081905260409020805460ff1916600190811790915590565b600b5460009060a060020a900460ff161561084b57600080fd5b3360009081526001602052604090205460ff16151561086957600080fd5b61087b6003338463ffffffff610fe116565b6009805460010190819055604051839033907ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56890600090a4506001919050565b600b5460009060a060020a900460ff16156108d557600080fd5b3360009081526020819052604090205460ff1615156108f357600080fd5b600160a060020a0382166000818152600160208190526040808320805460ff191690556009805490920191829055519092917f15f7469572dc44ee54c08cc4adf4e1031d7b6254626e8894015195a560039d0991a3506001919050565b600b54600160a060020a0391821691161490565b600061097060066110b4565b905090565b600b5460009060a060020a900460ff161561098f57600080fd5b6105cd600333858563ffffffff61117416565b600a54600090600160a060020a031633146109bc57600080fd5b50600b805474ff000000000000000000000000000000000000000019169055600190565b60006109ea610ce1565b8015610970575050600a54600b54600160a060020a0391821691161490565b600b5460009060a060020a900460ff1615610a2357600080fd5b3360009081526020819052604090205460ff161515610a4157600080fd5b610a536006848463ffffffff61122a16565b60098054600101908190556040518390600160a060020a038616907fa379518b98caa65e8a819cbd566044593ad5ae1eb3d1dae3565c78a3a52346c390600090a450600192915050565b600a54600160a060020a03163314610ab457600080fd5b600a805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600b5460009060a060020a900460ff1615610afd57600080fd5b3360009081526002602052604090205460ff161515610b1b57600080fd5b610b2d6006848463ffffffff610fe116565b610b3f6003848463ffffffff61122a16565b60098054600101908190556040518390600160a060020a038616907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1590600090a450600192915050565b600160a060020a031660009081526002602052604090205460ff1690565b60006106f360038363ffffffff6112d916565b600a54600160a060020a0391821691161490565b600061097060036110b4565b600b54600090600160a060020a0316331480610c005750600a54600160a060020a031633145b1515610c0b57600080fd5b600b5460a060020a900460ff1615610c2257600080fd5b50600b805474ff0000000000000000000000000000000000000000191660a060020a179055600190565b600a54600090600160a060020a03163314610c6657600080fd5b610c6e610bda565b50610c783061066a565b610c8130610a9d565b50600190565b600b5460009060a060020a900460ff1615610ca157600080fd5b6105cd600333858563ffffffff6112f516565b600b5460009060a060020a900460ff1615610cce57600080fd5b6105cd600333858563ffffffff61134216565b600b5460a060020a900460ff1690565b600b5460009060a060020a900460ff1615610d0b57600080fd5b604080516c01000000000000000000000000330260208083019190915260348083018990528351808403909101815260549092019283905281516000938493600193909282918401908083835b60208310610d775780518252601f199092019160209182019101610d58565b51815160209384036101000a60001901801990921691161790526040805192909401829003822060008084528383018087529190915260ff8e1683860152606083018d9052608083018c9052935160a08084019750919550601f1981019492819003909101925090865af1158015610df3573d6000803e3d6000fd5b505060408051601f190151600160a060020a03168352602083019390935250016000205460ff161515610e2557600080fd5b336000818152600160208190526040808320805460ff1916831790556009805490920191829055519092889290917f365c8f0eae5b0ae25f511df9c6e1a6853020a8020c5d6b2c7557c797e81ae1619190a4506001949350505050565b600160a060020a031660009081526001602052604090205460ff1690565b600b54600090600160a060020a0316331480610ec65750600a54600160a060020a031633145b1515610ed157600080fd5b50600160a060020a03166000908152600260205260409020805460ff19169055600190565b600b54600090600160a060020a0316331480610f1c5750600a54600160a060020a031633145b1515610f2757600080fd5b50600160a060020a03166000908152602081905260409020805460ff19169055600190565b6000610f606003848463ffffffff61143516565b9392505050565b600160a060020a0382161515610f7c57600080fd5b600160a060020a038084166000818152600187016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a350505050565b600160a060020a0382161515610ff657600080fd5b600160a060020a03821660009081526020849052604090205481111561101b57600080fd5b6002830154611030908263ffffffff61146216565b6002840155600160a060020a03821660009081526020849052604090205461105e908263ffffffff61146216565b600160a060020a038316600081815260208681526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3505050565b6002015490565b600082820183811015610f6057600080fd5b600160a060020a03808416600090815260018701602090815260408083209388168352929052205481111561110157600080fd5b600160a060020a038084166000908152600187016020908152604080832093881683529290522054611139908263ffffffff61146216565b600160a060020a03808516600090815260018801602090815260408083209389168352929052205561116d85848484611342565b5050505050565b600160a060020a038216151561118957600080fd5b600160a060020a0380841660009081526001860160209081526040808320938616835292905220546111c1908263ffffffff6110bb16565b600160a060020a03848116600081815260018801602090815260408083209488168084529482529182902085905581519485529051929391927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a350505050565b600160a060020a038216151561123f57600080fd5b6002830154611254908263ffffffff6110bb16565b6002840155600160a060020a038216600090815260208490526040902054611282908263ffffffff6110bb16565b600160a060020a0383166000818152602086815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505050565b600160a060020a03166000908152602091909152604090205490565b600160a060020a038216151561130a57600080fd5b600160a060020a0380841660009081526001860160209081526040808320938616835292905220546111c1908263ffffffff61146216565b600160a060020a03831660009081526020859052604090205481111561136757600080fd5b600160a060020a038216151561137c57600080fd5b600160a060020a0383166000908152602085905260409020546113a5908263ffffffff61146216565b600160a060020a0380851660009081526020879052604080822093909355908416815220546113da908263ffffffff6110bb16565b600160a060020a038084166000818152602088815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350505050565b600160a060020a039182166000908152600193909301602090815260408085209290931684525290205490565b6000808383111561147257600080fd5b50509003905600a165627a7a7230582006b974ed5c46dc1a26d6bf07e5a0eb110d77d58f956bf3d04e34cb26ce8702350029

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

000000000000000000000000b2cae47cb1fd1eaef61a68f74258cd953e3fc362000000000000000000000000b2cae47cb1fd1eaef61a68f74258cd953e3fc362

-----Decoded View---------------
Arg [0] : _owner (address): 0xB2caE47Cb1fd1eaef61A68F74258Cd953e3Fc362
Arg [1] : _failsafe (address): 0xB2caE47Cb1fd1eaef61A68F74258Cd953e3Fc362

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000b2cae47cb1fd1eaef61a68f74258cd953e3fc362
Arg [1] : 000000000000000000000000b2cae47cb1fd1eaef61a68f74258cd953e3fc362


Swarm Source

bzzr://06b974ed5c46dc1a26d6bf07e5a0eb110d77d58f956bf3d04e34cb26ce870235

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.