Contract Overview
ETH Balance: 0 Ether
No Of Transactions: 2159 txns
  Latest 25 txns from a total Of 2159 transactions View All

TxHash Block Age From To Value [TxFee]
0x3d9a0afed7d0501c40f8c5f4588ddf2f2f821f2304f71544f7f821e70f155bac1 day 16 hrs ago0x50858f2c7873fac9398ed9c195d185089caa7967  IN   0xd7dc3926bc6089a5be4815215ceaa6e7075910230 Ether0.08386875
0x956375092a64513955c02fc2eb3dab7fe150183b678286592f4ec1b53bd182b11 day 20 hrs ago0x50858f2c7873fac9398ed9c195d185089caa7967  IN   0xd7dc3926bc6089a5be4815215ceaa6e7075910230 Ether0.07455
0xf2df43dd2a607a7efad588a910e7f048b2d04d3a4e6b3597c14896afcb354e1e2 days 13 hrs ago0x50858f2c7873fac9398ed9c195d185089caa7967  IN   0xd7dc3926bc6089a5be4815215ceaa6e7075910230 Ether0.07454488
0x2bafbd6045709608a081b19ede1ff841d9c1f80b519b20240628388b8c34a7652 days 15 hrs ago0x50858f2c7873fac9398ed9c195d185089caa7967  IN   0xd7dc3926bc6089a5be4815215ceaa6e7075910230 Ether0.07455
0xddc7c055df3de4b36dc37b26dc946b58b8ea60485345f974493d02bd437f5edf2 days 16 hrs ago0x50858f2c7873fac9398ed9c195d185089caa7967  IN   0xd7dc3926bc6089a5be4815215ceaa6e7075910230 Ether0.07455
0x08982df97b6c013165b9893a53f5674943321b52db2ab06dbfb6ff8b4c9b73833 days 5 hrs ago0x50858f2c7873fac9398ed9c195d185089caa7967  IN   0xd7dc3926bc6089a5be4815215ceaa6e7075910230 Ether0.07455
0x54fd6d441050d6a03b557cc6816b33614ccf1b9c97843039cbed7b951a2ed8084 days 1 hr ago0x50858f2c7873fac9398ed9c195d185089caa7967  IN   0xd7dc3926bc6089a5be4815215ceaa6e7075910230 Ether0.07454488
0xec6400dbacdea4fb4a4c34d0a4922d9734358d3cdba442a8bf01dd75fac2512a4 days 1 hr ago0x50858f2c7873fac9398ed9c195d185089caa7967  IN   0xd7dc3926bc6089a5be4815215ceaa6e7075910230 Ether0.07455
0x89f9ea9b194064bbf2ed3e9cce0a6bace78254620dff5fb33003749f3ca6471f4 days 11 hrs ago0x50858f2c7873fac9398ed9c195d185089caa7967  IN   0xd7dc3926bc6089a5be4815215ceaa6e7075910230 Ether0.07455
0x6885c1e65256b1789796e862ac93f746778ad7ab9c856abba3095080efbda28b4 days 22 hrs ago0x50858f2c7873fac9398ed9c195d185089caa7967  IN   0xd7dc3926bc6089a5be4815215ceaa6e7075910230 Ether0.07455
0x9e350935d1f15c9376affa2d70f9f98a9492d3642a2145d7c2f0020ee49caeca5 days 1 hr ago0x50858f2c7873fac9398ed9c195d185089caa7967  IN   0xd7dc3926bc6089a5be4815215ceaa6e7075910230 Ether0.007455
0x980f70859a396c6f2342e14e9bbfc7bf552912275fabf7561958faeb9ec87aad5 days 5 hrs ago0x50858f2c7873fac9398ed9c195d185089caa7967  IN   0xd7dc3926bc6089a5be4815215ceaa6e7075910230 Ether0.007455
0x1e30a031910f56d13c1d91d3c8c97ab18aa8a196db0b42453bc9f87b24f1b39e5 days 9 hrs ago0x50858f2c7873fac9398ed9c195d185089caa7967  IN   0xd7dc3926bc6089a5be4815215ceaa6e7075910230 Ether0.005590866
0x4fcf6a81a8ff0d403eb0a277d959cbe3fd8e43f335e5643b9fd1dc371003f65e5 days 9 hrs ago0x50858f2c7873fac9398ed9c195d185089caa7967  IN   0xd7dc3926bc6089a5be4815215ceaa6e7075910230 Ether0.00559125
0xce37a805c43d261f423aadb305752d15ba0ad3dda5c2c95af73f8eb8477951d15 days 11 hrs ago0x50858f2c7873fac9398ed9c195d185089caa7967  IN   0xd7dc3926bc6089a5be4815215ceaa6e7075910230 Ether0.00559125
0xef081db0e5820bbbcb5c5f8faff3e9017739c860388edab08cf3eb3d5b71c1ec5 days 12 hrs ago0x50858f2c7873fac9398ed9c195d185089caa7967  IN   0xd7dc3926bc6089a5be4815215ceaa6e7075910230 Ether0.00559125
0x38da9c3ac92d083db01d863cc2ff9369cefa9bb17c924e5750430b46a7a5bc205 days 12 hrs ago0x50858f2c7873fac9398ed9c195d185089caa7967  IN   0xd7dc3926bc6089a5be4815215ceaa6e7075910230 Ether0.00559125
0x4b995cd3a7f163b0ead4e3b0df6315c6d22f7c62ac91e30c57fdcd2620b871a15 days 13 hrs ago0x50858f2c7873fac9398ed9c195d185089caa7967  IN   0xd7dc3926bc6089a5be4815215ceaa6e7075910230 Ether0.005590866
0xe6b2ef328426747cd92ec1b6b90b6760282a2f8a735fc2a80af197a1ec3fcd0c5 days 15 hrs ago0x50858f2c7873fac9398ed9c195d185089caa7967  IN   0xd7dc3926bc6089a5be4815215ceaa6e7075910230 Ether0.00559125
0x72ad80f4b7e96e396c2ae89edce5c5383734db463ee01ea776d91ea5c1cb4d0c5 days 15 hrs ago0x50858f2c7873fac9398ed9c195d185089caa7967  IN   0xd7dc3926bc6089a5be4815215ceaa6e7075910230 Ether0.00559125
0x595beeefe7e56e63548dab117c42f3b243455ce01c7139792647c94a6c3fbf445 days 16 hrs ago0x50858f2c7873fac9398ed9c195d185089caa7967  IN   0xd7dc3926bc6089a5be4815215ceaa6e7075910230 Ether0.00559125
0x84eaa728cb7870147c1b4512344f6383c55b25a8ddc862cee9e401ae70ecc6565 days 18 hrs ago0x50858f2c7873fac9398ed9c195d185089caa7967  IN   0xd7dc3926bc6089a5be4815215ceaa6e7075910230 Ether0.00559125
0x958883b77e198be78e3d0bbcfbaee3c8ece3381c3571154eabc6450d83fcfac35 days 19 hrs ago0x50858f2c7873fac9398ed9c195d185089caa7967  IN   0xd7dc3926bc6089a5be4815215ceaa6e7075910230 Ether0.00559125
0x2af78683b96c2b1f5c20c76b5f9392359363fbd17f7831d5bbf726b416cb85105 days 21 hrs ago0x50858f2c7873fac9398ed9c195d185089caa7967  IN   0xd7dc3926bc6089a5be4815215ceaa6e7075910230 Ether0.005590866
0x9632cbf1572920dbca049c9f226b8f57fd094ad833c9fde6c7b87e44e8af8c495 days 21 hrs ago0x50858f2c7873fac9398ed9c195d185089caa7967  IN   0xd7dc3926bc6089a5be4815215ceaa6e7075910230 Ether0.00559125
[ 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 DelegateCallReturnValue (low-severity), ECRecoverMalformedInput (medium-severity), SkipEmptyStringLiteral (low-severity), ConstantOptimizerSubtraction (low-severity) Solidity compiler bugs.

Contract Source Code Verified
Contract Name: IdentityFactoryWithRecoveryKey
Compiler Version: v0.4.8+commit.60cc1668
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts
pragma solidity ^0.4.4;

contract Owned {
  address public owner;
  modifier onlyOwner(){ if (isOwner(msg.sender)) _; }
  modifier ifOwner(address sender) { if(isOwner(sender)) _; }

  function Owned(){ owner = msg.sender; }

  function isOwner(address addr) public returns(bool) { return addr == owner; }

  function transfer(address _owner) onlyOwner { owner = _owner; }
}

contract Proxy is Owned {
  event Forwarded (address indexed destination, uint value, bytes data );
  event Received (address indexed sender, uint value);

  function () payable { Received(msg.sender, msg.value); }

  function forward(address destination, uint value, bytes data) onlyOwner {
    if (!destination.call.value(value)(data)) { throw; }
    Forwarded(destination, value, data);
  }
}

contract RecoverableController {
  uint    public version;
  Proxy   public proxy;

  address public userKey;
  address public proposedUserKey;
  uint    public proposedUserKeyPendingUntil;

  address public recoveryKey;
  address public proposedRecoveryKey;
  uint    public proposedRecoveryKeyPendingUntil;

  address public proposedController;
  uint    public proposedControllerPendingUntil;

  uint    public shortTimeLock;// use 900 for 15 minutes
  uint    public longTimeLock; // use 259200 for 3 days

  event RecoveryEvent(string action, address initiatedBy);

  modifier onlyUserKey() { if (msg.sender == userKey) _; }
  modifier onlyRecoveryKey() { if (msg.sender == recoveryKey) _; }

  function RecoverableController(address proxyAddress, address _userKey, uint _longTimeLock, uint _shortTimeLock) {
    version = 1;
    proxy = Proxy(proxyAddress);
    userKey = _userKey;
    shortTimeLock = _shortTimeLock;
    longTimeLock = _longTimeLock;
    recoveryKey = msg.sender;
  }

  function forward(address destination, uint value, bytes data) onlyUserKey {
    proxy.forward(destination, value, data);
  }
  //pass 0x0 to cancel 
  function signRecoveryChange(address _proposedRecoveryKey) onlyUserKey{
    proposedRecoveryKeyPendingUntil = now + longTimeLock;
    proposedRecoveryKey = _proposedRecoveryKey;
    RecoveryEvent("signRecoveryChange", msg.sender);
  }
  function changeRecovery() {
    if(proposedRecoveryKeyPendingUntil < now && proposedRecoveryKey != 0x0){
      recoveryKey = proposedRecoveryKey;
      delete proposedRecoveryKey;
    }
  }
  //pass 0x0 to cancel 
  function signControllerChange(address _proposedController) onlyUserKey{
    proposedControllerPendingUntil = now + longTimeLock;
    proposedController = _proposedController;
    RecoveryEvent("signControllerChange", msg.sender);
  }
  function changeController() {
    if(proposedControllerPendingUntil < now && proposedController != 0x0){
      proxy.transfer(proposedController);
      suicide(proposedController);
    }
  }
  //pass 0x0 to cancel 
  function signUserKeyChange(address _proposedUserKey) onlyUserKey{
    proposedUserKeyPendingUntil = now + shortTimeLock;
    proposedUserKey = _proposedUserKey;
    RecoveryEvent("signUserKeyChange", msg.sender);
  }
  function changeUserKey(){
    if(proposedUserKeyPendingUntil < now && proposedUserKey != 0x0){
      userKey = proposedUserKey;
      delete proposedUserKey;
      RecoveryEvent("changeUserKey", msg.sender);
    }
  }
  
  function changeRecoveryFromRecovery(address _recoveryKey) onlyRecoveryKey{ recoveryKey = _recoveryKey; }
  function changeUserKeyFromRecovery(address _userKey) onlyRecoveryKey{
    delete proposedUserKey;
    userKey = _userKey;
  }
}

contract IdentityFactoryWithRecoveryKey {
    event IdentityCreated(
        address indexed userKey,
        address proxy,
        address controller,
        address indexed recoveryKey);

    mapping(address => address) public senderToProxy;
    mapping(address => address) public recoveryToProxy;

    //cost ~2.4M gas
    function CreateProxyWithControllerAndRecoveryKey(address userKey, address _recoveryKey, uint longTimeLock, uint shortTimeLock) {
        Proxy proxy = new Proxy();
        RecoverableController controller = new RecoverableController(proxy, userKey, longTimeLock, shortTimeLock);
        proxy.transfer(controller);
        controller.changeRecoveryFromRecovery(_recoveryKey);

        IdentityCreated(userKey, proxy, controller, _recoveryKey);
        senderToProxy[msg.sender] = proxy;
        recoveryToProxy[_recoveryKey] = proxy;
    }
}

  Contract ABI  
[{"constant":false,"inputs":[{"name":"userKey","type":"address"},{"name":"_recoveryKey","type":"address"},{"name":"longTimeLock","type":"uint256"},{"name":"shortTimeLock","type":"uint256"}],"name":"CreateProxyWithControllerAndRecoveryKey","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"recoveryToProxy","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"senderToProxy","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"userKey","type":"address"},{"indexed":false,"name":"proxy","type":"address"},{"indexed":false,"name":"controller","type":"address"},{"indexed":true,"name":"recoveryKey","type":"address"}],"name":"IdentityCreated","type":"event"}]

  Contract Creation Code Switch To Opcodes View
606060405234610000575b61109d806100196000396000f300606060405263ffffffff60e060020a6000350416634a3a87e2811461003a5780636738bd4e14610061578063e90bcb3214610096575b610000565b346100005761005f600160a060020a03600435811690602435166044356064356100cb565b005b346100005761007a600160a060020a03600435166102a6565b60408051600160a060020a039092168252519081900360200190f35b346100005761007a600160a060020a03600435166102c1565b60408051600160a060020a039092168252519081900360200190f35b60006000604051610382806102dd83396040519101819003906000f0801561000057915081868585604051610a138061065f8339600160a060020a0395861691019081529290931660208301526040808301919091526060820192909252905190819003608001906000f0801561000057905081600160a060020a0316631a695230826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b156100005760325a03f1156100005750505080600160a060020a031663a08df770866040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b156100005760325a03f11561000057505060408051600160a060020a03858116825284811660208301528251818a169450908a16927fc36800ebd6079fdafc3a7100d0d1172815751804a6d1b7eb365b85f6c9c80e61928290030190a3600160a060020a03338116600090815260208181526040808320805485881673ffffffffffffffffffffffffffffffffffffffff199182168117909255948a168452600190925290912080549092161790555b505050505050565b600160205260009081526040902054600160a060020a031681565b600060208190529081526040902054600160a060020a031681560060606040525b60008054600160a060020a03191633600160a060020a03161790555b5b610351806100316000396000f300606060405236156100465763ffffffff60e060020a6000350416631a695230811461008e5780632f54bf6e146100a95780638da5cb5b146100d6578063d7f31eb9146100ff575b61008c5b604080513481529051600160a060020a033316917f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874919081900360200190a25b565b005b346100005761008c600160a060020a0360043516610161565b005b34610000576100c2600160a060020a036004351661019d565b604080519115158252519081900360200190f35b34610000576100e36101b4565b60408051600160a060020a039092168252519081900360200190f35b3461000057604080516020600460443581810135601f810184900484028501840190955284845261008c948235600160a060020a03169460248035956064949293919092019181908401838280828437509496506101c395505050505050565b005b61016a3361019d565b15610198576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b600054600160a060020a038281169116145b919050565b600054600160a060020a031681565b6101cc3361019d565b1561031e5782600160a060020a0316828260405180828051906020019080838360008314610215575b80518252602083111561021557601f1990920191602091820191016101f5565b505050905090810190601f1680156102415780820380516001836020036101000a031916815260200191505b5091505060006040518083038185876185025a03f192505050151561026557610000565b82600160a060020a03167fc1de93dfa06362c6a616cde73ec17d116c0d588dd1df70f27f91b500de207c41838360405180838152602001806020018281038252838181518152602001915080519060200190808383600083146102e3575b8051825260208311156102e357601f1990920191602091820191016102c3565b505050905090810190601f16801561030f5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25b5b5b5050505600a165627a7a723058201d08dfdc10daed12ae0a5bfec3c85fac4143262d2bd01733fa3346596904f36a002960606040523461000057604051608080610a1383398101604090815281516020830151918301516060909301519092905b600160008190558054600160a060020a03808716600160a060020a03199283161790925560028054868416908316179055600a839055600b8490556005805433909316929091169190911790555b505050505b610981806100926000396000f300606060405236156101015763ffffffff60e060020a60003504166309b8f77a81146101065780631c1c22891461012f5780631de0e877146101585780631ec9f7b51461017757806334c7dcf8146101965780634893ed5b146101bf57806354fd4d50146101de5780637a5d5345146101fd5780637ab0b9981461021857806384191f62146102335780638ac0eef91461024257806397905a8814610251578063a08df7701461027a578063c998e9dd14610295578063cbd2c73b146102b0578063d1c484f6146102cb578063d233fc0b146102ea578063d7f31eb9146102f9578063ec5568891461035b578063f60edb0e14610384578063f66c6691146103ad575b610000565b34610000576101136103cc565b60408051600160a060020a039092168252519081900360200190f35b34610000576101136103db565b60408051600160a060020a039092168252519081900360200190f35b34610000576101656103ea565b60408051918252519081900360200190f35b34610000576101656103f0565b60408051918252519081900360200190f35b34610000576101136103f6565b60408051600160a060020a039092168252519081900360200190f35b3461000057610165610405565b60408051918252519081900360200190f35b346100005761016561040b565b60408051918252519081900360200190f35b3461000057610216600160a060020a0360043516610411565b005b3461000057610216600160a060020a03600435166104ac565b005b3461000057610216610547565b005b34610000576102166105e9565b005b346100005761011361068c565b60408051600160a060020a039092168252519081900360200190f35b3461000057610216600160a060020a036004351661069b565b005b3461000057610216600160a060020a03600435166106d3565b005b3461000057610216600160a060020a0360043516610717565b005b34610000576101656107b2565b60408051918252519081900360200190f35b34610000576102166107b8565b005b3461000057604080516020600460443581810135601f8101849004840285018401909552848452610216948235600160a060020a031694602480359560649492939190920191819084018382808284375094965061080195505050505050565b005b3461000057610113610911565b60408051600160a060020a039092168252519081900360200190f35b3461000057610113610920565b60408051600160a060020a039092168252519081900360200190f35b346100005761016561092f565b60408051918252519081900360200190f35b600654600160a060020a031681565b600254600160a060020a031681565b60095481565b600b5481565b600354600160a060020a031681565b60045481565b60005481565b60025433600160a060020a03908116911614156104a757600b54420160095560088054600160a060020a031916600160a060020a0383811691909117909155604080513390921660208301528082526014828201527f7369676e436f6e74726f6c6c65724368616e6765000000000000000000000000606083015251600080516020610936833981519152916080908290030190a15b5b5b50565b60025433600160a060020a03908116911614156104a757600b54420160075560068054600160a060020a031916600160a060020a0383811691909117909155604080513390921660208301528082526012828201527f7369676e5265636f766572794368616e67650000000000000000000000000000606083015251600080516020610936833981519152916080908290030190a15b5b5b50565b426009541080156105625750600854600160a060020a031615155b156105e657600154600854604080517f1a695230000000000000000000000000000000000000000000000000000000008152600160a060020a03928316600482015290519190921691631a69523091602480830192600092919082900301818387803b156100005760325a03f115610000575050600854600160a060020a03169050ff5b5b565b426004541080156106045750600354600160a060020a031615155b156105e6576003805460028054600160a060020a03808416600160a060020a03199283161790925590911690915560408051339092166020830152808252600d828201527f6368616e6765557365724b657900000000000000000000000000000000000000606083015251600080516020610936833981519152916080908290030190a15b5b565b600554600160a060020a031681565b60055433600160a060020a03908116911614156104a75760058054600160a060020a031916600160a060020a0383161790555b5b5b50565b60055433600160a060020a03908116911614156104a75760038054600160a060020a031990811690915560028054909116600160a060020a0383161790555b5b5b50565b60025433600160a060020a03908116911614156104a757600a54420160045560038054600160a060020a031916600160a060020a0383811691909117909155604080513390921660208301528082526011828201527f7369676e557365724b65794368616e6765000000000000000000000000000000606083015251600080516020610936833981519152916080908290030190a15b5b5b50565b60075481565b426007541080156107d35750600654600160a060020a031615155b156105e6576006805460058054600160a060020a0319908116600160a060020a038416179091551690555b5b565b60025433600160a060020a039081169116141561090a576001546040517fd7f31eb9000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830190815260248301869052606060448401908152855160648501528551929094169363d7f31eb99388938893889390929091608490910190602085019080838382156108b6575b8051825260208311156108b657601f199092019160209182019101610896565b505050905090810190601f1680156108e25780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b156100005760325a03f115610000575050505b5b5b505050565b600154600160a060020a031681565b600854600160a060020a031681565b600a54815600ea8e84a162c4602ea0c61acf85fa1242db8ce550e7a448d613e3c7dff2f06793a165627a7a7230582055dd5e79ac17387077c5f0283d2c23a9a796b29b0b8e40631c3d8ca89c9121690029a165627a7a723058206487a3117e249333dc025a547e0b1c1c1c8b3c07c0e2a0448543a187148f94db0029

   Swarm Source:
bzzr://6487a3117e249333dc025a547e0b1c1c1c8b3c07c0e2a0448543a187148f94db
View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward