ETH Price: $2,020.45 (-2.62%)

Contract

0xf8314584346fc84E96b36113784f6B562E5B01af
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Add New Upgradea...78621142019-05-30 16:51:202127 days ago1559235080IN
0xf8314584...62E5B01af
0 ETH0.005972098
Add New Upgradea...78616502019-05-30 15:05:072127 days ago1559228707IN
0xf8314584...62E5B01af
0 ETH0.006967743.3
Add New Upgradea...71505022019-01-30 20:40:562247 days ago1548880856IN
0xf8314584...62E5B01af
0 ETH0.003994433

Latest 6 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
-78621142019-05-30 16:51:202127 days ago1559235080
0xf8314584...62E5B01af
 Contract Creation0 ETH
-78621142019-05-30 16:51:202127 days ago1559235080
0xf8314584...62E5B01af
 Contract Creation0 ETH
-78616502019-05-30 15:05:072127 days ago1559228707
0xf8314584...62E5B01af
 Contract Creation0 ETH
-78616502019-05-30 15:05:072127 days ago1559228707
0xf8314584...62E5B01af
 Contract Creation0 ETH
-71505022019-01-30 20:40:562247 days ago1548880856
0xf8314584...62E5B01af
 Contract Creation0 ETH
-71505022019-01-30 20:40:562247 days ago1548880856
0xf8314584...62E5B01af
 Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AraRegistry

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2019-01-30
*/

pragma solidity ^0.4.24;

// File: contracts/AraProxy.sol

/**
 * @title AraProxy
 * @dev Gives the possibility to delegate any call to a foreign implementation.
 */
contract AraProxy {

  bytes32 private constant registryPosition_ = keccak256("io.ara.proxy.registry");
  bytes32 private constant implementationPosition_ = keccak256("io.ara.proxy.implementation");

  modifier restricted() {
    bytes32 registryPosition = registryPosition_;
    address registryAddress;
    assembly {
      registryAddress := sload(registryPosition)
    }
    require(
      msg.sender == registryAddress,
      "Only the AraRegistry can upgrade this proxy."
    );
    _;
  }

  /**
  * @dev the constructor sets the AraRegistry address
  */
  constructor(address _registryAddress, address _implementationAddress) public {
    bytes32 registryPosition = registryPosition_;
    bytes32 implementationPosition = implementationPosition_;
    assembly {
      sstore(registryPosition, _registryAddress)
      sstore(implementationPosition, _implementationAddress)
    }
  }

  function setImplementation(address _newImplementation) public restricted {
    require(_newImplementation != address(0));
    bytes32 implementationPosition = implementationPosition_;
    assembly {
      sstore(implementationPosition, _newImplementation)
    }
  }

  /**
  * @dev Fallback function allowing to perform a delegatecall to the given implementation.
  * This function will return whatever the implementation call returns
  */
  function () payable public {
    bytes32 implementationPosition = implementationPosition_;
    address _impl;
    assembly {
      _impl := sload(implementationPosition)
    }

    assembly {
      let ptr := mload(0x40)
      calldatacopy(ptr, 0, calldatasize)
      let result := delegatecall(gas, _impl, ptr, calldatasize, 0, 0)
      let size := returndatasize
      returndatacopy(ptr, 0, size)

      switch result
      case 0 { revert(ptr, size) }
      default { return(ptr, size) }
    }
  }
}

// File: contracts/AraRegistry.sol

contract AraRegistry {
  address public owner_;
  mapping (bytes32 => UpgradeableContract) private contracts_; // keccak256(contractname) => struct

  struct UpgradeableContract {
    bool initialized_;

    address proxy_;
    string latestVersion_;
    mapping (string => address) versions_;
  }

  event UpgradeableContractAdded(bytes32 _contractName, string _version, address _address);
  event ContractUpgraded(bytes32 _contractName, string _version, address _address);
  event ProxyDeployed(bytes32 _contractName, address _address);

  constructor() public {
    owner_ = msg.sender;
  }

  modifier restricted() {
    require (
      msg.sender == owner_,
      "Sender not authorized."
    );
    _;
  }

  function getLatestVersionAddress(bytes32 _contractName) public view returns (address) {
    return contracts_[_contractName].versions_[contracts_[_contractName].latestVersion_];
  }

  function getUpgradeableContractAddress(bytes32 _contractName, string _version) public view returns (address) {
    return contracts_[_contractName].versions_[_version];
  }

  function addNewUpgradeableContract(bytes32 _contractName, string _version, bytes _code, bytes _data) public restricted {
    require(!contracts_[_contractName].initialized_, "Upgradeable contract already exists. Try upgrading instead.");
    address deployedAddress;
    assembly {
      deployedAddress := create(0, add(_code, 0x20), mload(_code))
    }

    contracts_[_contractName].initialized_ = true;
    contracts_[_contractName].latestVersion_ = _version;
    contracts_[_contractName].versions_[_version] = deployedAddress;
    _deployProxy(_contractName, deployedAddress, _data);

    emit UpgradeableContractAdded(_contractName, _version, deployedAddress);
  }

  function upgradeContract(bytes32 _contractName, string _version, bytes _code) public restricted {
    require(contracts_[_contractName].initialized_, "Upgradeable contract must exist before it can be upgraded. Try adding one instead.");
    address deployedAddress;
    assembly {
      deployedAddress := create(0, add(_code, 0x20), mload(_code))
    }

    AraProxy proxy = AraProxy(contracts_[_contractName].proxy_);
    proxy.setImplementation(deployedAddress);

    contracts_[_contractName].latestVersion_ = _version;
    contracts_[_contractName].versions_[_version] = deployedAddress;

    emit ContractUpgraded(_contractName, _version, deployedAddress);
  }

  function _deployProxy(bytes32 _contractName, address _implementationAddress, bytes _data) private {
    require(contracts_[_contractName].proxy_ == address(0), "Only one proxy can exist per upgradeable contract.");
    AraProxy proxy = new AraProxy(address(this), _implementationAddress);
    require(address(proxy).call(abi.encodeWithSignature("init(bytes)", _data)), "Init failed.");
    contracts_[_contractName].proxy_ = proxy;

    emit ProxyDeployed(_contractName, proxy);
  }
}

Contract Security Audit

Contract ABI

API
[{"constant":false,"inputs":[{"name":"_contractName","type":"bytes32"},{"name":"_version","type":"string"},{"name":"_code","type":"bytes"},{"name":"_data","type":"bytes"}],"name":"addNewUpgradeableContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_contractName","type":"bytes32"}],"name":"getLatestVersionAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_contractName","type":"bytes32"},{"name":"_version","type":"string"},{"name":"_code","type":"bytes"}],"name":"upgradeContract","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":"_contractName","type":"bytes32"},{"name":"_version","type":"string"}],"name":"getUpgradeableContractAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_contractName","type":"bytes32"},{"indexed":false,"name":"_version","type":"string"},{"indexed":false,"name":"_address","type":"address"}],"name":"UpgradeableContractAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_contractName","type":"bytes32"},{"indexed":false,"name":"_version","type":"string"},{"indexed":false,"name":"_address","type":"address"}],"name":"ContractUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_contractName","type":"bytes32"},{"indexed":false,"name":"_address","type":"address"}],"name":"ProxyDeployed","type":"event"}]

608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061164c806100606000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630726755b14610072578063a9a2f2eb14610175578063d4520d22146101e6578063e7663079146102a3578063f8df27b1146102fa575b600080fd5b34801561007e57600080fd5b506101736004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506103b1565b005b34801561018157600080fd5b506101a4600480360381019080803560001916906020019092919050505061076a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101f257600080fd5b506102a16004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061083e565b005b3480156102af57600080fd5b506102b8610cd0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561030657600080fd5b5061036f6004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610cf5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610477576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b60016000866000191660001916815260200190815260200160002060000160009054906101000a900460ff1615151561053e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001807f5570677261646561626c6520636f6e747261637420616c72656164792065786981526020017f7374732e2054727920757067726164696e6720696e73746561642e000000000081525060400191505060405180910390fd5b8251602084016000f090506001806000876000191660001916815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508360016000876000191660001916815260200190815260200160002060010190805190602001906105b1929190611205565b5080600160008760001916600019168152602001908152602001600020600201856040518082805190602001908083835b60208310151561060757805182526020820191506020810190506020830392506105e2565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610683858284610da7565b7f931f56ddf3dd3773b55ba19012b5eed0c84937b72b693d6bf57ac3986143295a858583604051808460001916600019168152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561072757808201518184015260208101905061070c565b50505050905090810190601f1680156107545780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050505050565b600060016000836000191660001916815260200190815260200160002060020160016000846000191660001916815260200190815260200160002060010160405180828054600181600116156101000203166002900480156108035780601f106107e1576101008083540402835291820191610803565b820191906000526020600020905b8154815290600101906020018083116107ef575b5050915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610905576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b60016000866000191660001916815260200190815260200160002060000160009054906101000a900460ff1615156109f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260528152602001807f5570677261646561626c6520636f6e7472616374206d7573742065786973742081526020017f6265666f72652069742063616e2062652075706772616465642e20547279206181526020017f6464696e67206f6e6520696e73746561642e000000000000000000000000000081525060600191505060405180910390fd5b8251602084016000f0915060016000866000191660001916815260200190815260200160002060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663d784d426836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015610ad857600080fd5b505af1158015610aec573d6000803e3d6000fd5b50505050836001600087600019166000191681526020019081526020016000206001019080519060200190610b22929190611205565b5081600160008760001916600019168152602001908152602001600020600201856040518082805190602001908083835b602083101515610b785780518252602082019150602081019050602083039250610b53565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f6d4b7661ad48c3dedcdd78313e4ae8888ee40a2e08ee256b9e33c2d5f749dbeb858584604051808460001916600019168152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015610c8d578082015181840152602081019050610c72565b50505050905090810190601f168015610cba5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008460001916600019168152602001908152602001600020600201826040518082805190602001908083835b602083101515610d4b5780518252602082019150602081019050602083039250610d26565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff1660016000866000191660001916815260200190815260200160002060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610eb0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f4f6e6c79206f6e652070726f78792063616e206578697374207065722075706781526020017f7261646561626c6520636f6e74726163742e000000000000000000000000000081525060400191505060405180910390fd5b3083610eba611285565b808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604051809103906000f080158015610f3f573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff16826040516024018080602001828103825283818151815260200191508051906020019080838360005b83811015610f9d578082015181840152602081019050610f82565b50505050905090810190601f168015610fca5780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040527f4ddf47d4000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405180828051906020019080838360005b8381101561107957808201518184015260208101905061105e565b50505050905090810190601f1680156110a65780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af1915050151561112f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f496e6974206661696c65642e000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060016000866000191660001916815260200190815260200160002060000160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f90f293438888f9eb36cfc860a1bccfc3da50bef1e3e97422deadaede67c93a9f84826040518083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061124657805160ff1916838001178555611274565b82800160010185558215611274579182015b82811115611273578251825591602001919060010190611258565b5b5090506112819190611295565b5090565b604051610366806112bb83390190565b6112b791905b808211156112b357600081600090555060010161129b565b5090565b905600608060405234801561001057600080fd5b50604051604080610366833981018060405281019080805190602001909291908051906020019092919050505060008060405180807f696f2e6172612e70726f78792e7265676973747279000000000000000000000081525060150190506040518091039020915060405180807f696f2e6172612e70726f78792e696d706c656d656e746174696f6e0000000000815250601b019050604051809103902090508382558281555050505061029d806100c96000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063d784d426146100a7575b60008060405180807f696f2e6172612e70726f78792e696d706c656d656e746174696f6e0000000000815250601b019050604051809103902091508154905060405136600082376000803683855af43d806000843e81600081146100a3578184f35b8184fd5b3480156100b357600080fd5b506100e8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506100ea565b005b600080600060405180807f696f2e6172612e70726f78792e72656769737472790000000000000000000000815250601501905060405180910390209150815490508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4f6e6c79207468652041726152656769737472792063616e207570677261646581526020017f20746869732070726f78792e000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561023057600080fd5b60405180807f696f2e6172612e70726f78792e696d706c656d656e746174696f6e0000000000815250601b01905060405180910390209250838355505050505600a165627a7a7230582005642ac97894b238b61c8ffa819c5dc691441cccd53318629232345ba3846b4a0029a165627a7a723058207d3419398c4d599785e79eecefec172631e086031ce6074caf141272207de3080029

Deployed Bytecode

0x60806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630726755b14610072578063a9a2f2eb14610175578063d4520d22146101e6578063e7663079146102a3578063f8df27b1146102fa575b600080fd5b34801561007e57600080fd5b506101736004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506103b1565b005b34801561018157600080fd5b506101a4600480360381019080803560001916906020019092919050505061076a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101f257600080fd5b506102a16004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061083e565b005b3480156102af57600080fd5b506102b8610cd0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561030657600080fd5b5061036f6004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610cf5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610477576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b60016000866000191660001916815260200190815260200160002060000160009054906101000a900460ff1615151561053e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001807f5570677261646561626c6520636f6e747261637420616c72656164792065786981526020017f7374732e2054727920757067726164696e6720696e73746561642e000000000081525060400191505060405180910390fd5b8251602084016000f090506001806000876000191660001916815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508360016000876000191660001916815260200190815260200160002060010190805190602001906105b1929190611205565b5080600160008760001916600019168152602001908152602001600020600201856040518082805190602001908083835b60208310151561060757805182526020820191506020810190506020830392506105e2565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610683858284610da7565b7f931f56ddf3dd3773b55ba19012b5eed0c84937b72b693d6bf57ac3986143295a858583604051808460001916600019168152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561072757808201518184015260208101905061070c565b50505050905090810190601f1680156107545780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050505050565b600060016000836000191660001916815260200190815260200160002060020160016000846000191660001916815260200190815260200160002060010160405180828054600181600116156101000203166002900480156108035780601f106107e1576101008083540402835291820191610803565b820191906000526020600020905b8154815290600101906020018083116107ef575b5050915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610905576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b60016000866000191660001916815260200190815260200160002060000160009054906101000a900460ff1615156109f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260528152602001807f5570677261646561626c6520636f6e7472616374206d7573742065786973742081526020017f6265666f72652069742063616e2062652075706772616465642e20547279206181526020017f6464696e67206f6e6520696e73746561642e000000000000000000000000000081525060600191505060405180910390fd5b8251602084016000f0915060016000866000191660001916815260200190815260200160002060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663d784d426836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015610ad857600080fd5b505af1158015610aec573d6000803e3d6000fd5b50505050836001600087600019166000191681526020019081526020016000206001019080519060200190610b22929190611205565b5081600160008760001916600019168152602001908152602001600020600201856040518082805190602001908083835b602083101515610b785780518252602082019150602081019050602083039250610b53565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f6d4b7661ad48c3dedcdd78313e4ae8888ee40a2e08ee256b9e33c2d5f749dbeb858584604051808460001916600019168152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015610c8d578082015181840152602081019050610c72565b50505050905090810190601f168015610cba5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008460001916600019168152602001908152602001600020600201826040518082805190602001908083835b602083101515610d4b5780518252602082019150602081019050602083039250610d26565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff1660016000866000191660001916815260200190815260200160002060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610eb0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f4f6e6c79206f6e652070726f78792063616e206578697374207065722075706781526020017f7261646561626c6520636f6e74726163742e000000000000000000000000000081525060400191505060405180910390fd5b3083610eba611285565b808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604051809103906000f080158015610f3f573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff16826040516024018080602001828103825283818151815260200191508051906020019080838360005b83811015610f9d578082015181840152602081019050610f82565b50505050905090810190601f168015610fca5780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040527f4ddf47d4000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405180828051906020019080838360005b8381101561107957808201518184015260208101905061105e565b50505050905090810190601f1680156110a65780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af1915050151561112f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f496e6974206661696c65642e000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060016000866000191660001916815260200190815260200160002060000160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f90f293438888f9eb36cfc860a1bccfc3da50bef1e3e97422deadaede67c93a9f84826040518083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061124657805160ff1916838001178555611274565b82800160010185558215611274579182015b82811115611273578251825591602001919060010190611258565b5b5090506112819190611295565b5090565b604051610366806112bb83390190565b6112b791905b808211156112b357600081600090555060010161129b565b5090565b905600608060405234801561001057600080fd5b50604051604080610366833981018060405281019080805190602001909291908051906020019092919050505060008060405180807f696f2e6172612e70726f78792e7265676973747279000000000000000000000081525060150190506040518091039020915060405180807f696f2e6172612e70726f78792e696d706c656d656e746174696f6e0000000000815250601b019050604051809103902090508382558281555050505061029d806100c96000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063d784d426146100a7575b60008060405180807f696f2e6172612e70726f78792e696d706c656d656e746174696f6e0000000000815250601b019050604051809103902091508154905060405136600082376000803683855af43d806000843e81600081146100a3578184f35b8184fd5b3480156100b357600080fd5b506100e8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506100ea565b005b600080600060405180807f696f2e6172612e70726f78792e72656769737472790000000000000000000000815250601501905060405180910390209150815490508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4f6e6c79207468652041726152656769737472792063616e207570677261646581526020017f20746869732070726f78792e000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561023057600080fd5b60405180807f696f2e6172612e70726f78792e696d706c656d656e746174696f6e0000000000815250601b01905060405180910390209250838355505050505600a165627a7a7230582005642ac97894b238b61c8ffa819c5dc691441cccd53318629232345ba3846b4a0029a165627a7a723058207d3419398c4d599785e79eecefec172631e086031ce6074caf141272207de3080029

Swarm Source

bzzr://7d3419398c4d599785e79eecefec172631e086031ce6074caf141272207de308

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  ]
[ 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.