ETH Price: $3,312.08 (-1.24%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer*98707402020-04-14 13:02:321730 days ago1586869352IN
0x4f416E92...B1f5B3f36
0 ETH0.00025310
Transfer*98399852020-04-09 19:42:531735 days ago1586461373IN
0x4f416E92...B1f5B3f36
0 ETH0.000037951.5
Transfer*98399732020-04-09 19:40:151735 days ago1586461215IN
0x4f416E92...B1f5B3f36
0 ETH0.000034781.5
Transfer94761552020-02-13 17:55:371791 days ago1581616537IN
0x4f416E92...B1f5B3f36
0.00000026 ETH0.0001688
Transfer*93905762020-01-31 14:35:011804 days ago1580481301IN
0x4f416E92...B1f5B3f36
0 ETH0.00007593
Transfer93396012020-01-23 18:30:291812 days ago1579804229IN
0x4f416E92...B1f5B3f36
0 ETH0.000185088
Transfer*93352712020-01-23 2:45:091813 days ago1579747509IN
0x4f416E92...B1f5B3f36
0 ETH0.00002531
Transfer*90836602019-12-10 14:42:371856 days ago1575988957IN
0x4f416E92...B1f5B3f36
0 ETH0.00012655
Transfer*90834322019-12-10 13:43:091856 days ago1575985389IN
0x4f416E92...B1f5B3f36
0 ETH0.00012655
Transfer*90828542019-12-10 11:25:101856 days ago1575977110IN
0x4f416E92...B1f5B3f36
0 ETH0.00025310
Transfer*90384302019-12-02 13:58:411864 days ago1575295121IN
0x4f416E92...B1f5B3f36
0 ETH0.0004356718
Transfer*89515862019-11-17 17:00:441879 days ago1574010044IN
0x4f416E92...B1f5B3f36
0 ETH0.0003630615
Transfer86946852019-10-07 11:32:551920 days ago1570447975IN
0x4f416E92...B1f5B3f36
0 ETH0.0000422
Transfer*86897122019-10-06 16:55:071921 days ago1570380907IN
0x4f416E92...B1f5B3f36
0 ETH0.00002421
Transfer*86896502019-10-06 16:42:121921 days ago1570380132IN
0x4f416E92...B1f5B3f36
0 ETH0.00002421
Transfer*86241172019-09-26 11:05:241931 days ago1569495924IN
0x4f416E92...B1f5B3f36
0 ETH0.0002904412
Transfer*85306272019-09-11 20:28:041946 days ago1568233684IN
0x4f416E92...B1f5B3f36
0 ETH0.0002662411
Transfer*84622032019-09-01 4:15:191957 days ago1567311319IN
0x4f416E92...B1f5B3f36
0 ETH0.00002421
Transfer83440942019-08-13 19:42:211975 days ago1565725341IN
0x4f416E92...B1f5B3f36
0.00000228 ETH0.0001899
Transfer83440402019-08-13 19:28:381975 days ago1565724518IN
0x4f416E92...B1f5B3f36
0.00000228 ETH0.0002110
Transfer*82927932019-08-05 20:31:531983 days ago1565037113IN
0x4f416E92...B1f5B3f36
0 ETH0.0005082821
Transfer*82810952019-08-04 0:53:101985 days ago1564879990IN
0x4f416E92...B1f5B3f36
0 ETH0.00004842
Transfer*81939062019-07-21 12:00:421998 days ago1563710442IN
0x4f416E92...B1f5B3f36
0.00000263 ETH0.000096514.5
Transfer81937822019-07-21 11:33:201998 days ago1563708800IN
0x4f416E92...B1f5B3f36
0.00000263 ETH0.000106215
Transfer*81928092019-07-21 7:56:391998 days ago1563695799IN
0x4f416E92...B1f5B3f36
0 ETH0.00002421
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:
SignatureChallenge

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

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

/**
 * SignatureChallenge.sol

 * The links below will provide more information about the MtPelerin's Bridge protocol:
 * https://www.mtpelerin.com
 * https://github.com/MtPelerin/MtPelerin-protocol

 * The unflattened code is available through this github tag:
 * https://github.com/MtPelerin/MtPelerin-protocol/tree/etherscan-verify-batch-3

 * @notice Copyright © 2016 - 2019 Mt Pelerin Group SA - All Rights Reserved

 * @notice All matters regarding the intellectual property of this code 
 * @notice or software are subject to Swiss Law without reference to its 
 * @notice conflicts of law rules.

 * @notice License for each contract is available in the respective file
 * @notice or in the LICENSE.md file.
 * @notice https://github.com/MtPelerin/

 * @notice Code by OpenZeppelin is copyrighted and licensed on their repository:
 * @notice https://github.com/OpenZeppelin/openzeppelin-solidity
 */

pragma solidity ^0.4.24;

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

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


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


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

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

  /**
   * @dev Allows the current owner to relinquish control of the contract.
   */
  function renounceOwnership() public onlyOwner {
    emit OwnershipRenounced(owner);
    owner = address(0);
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function transferOwnership(address _newOwner) public onlyOwner {
    _transferOwnership(_newOwner);
  }

  /**
   * @dev Transfers control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function _transferOwnership(address _newOwner) internal {
    require(_newOwner != address(0));
    emit OwnershipTransferred(owner, _newOwner);
    owner = _newOwner;
  }
}

// File: contracts/SignatureChallenge.sol

/**
 * @title SignatureChallenge
 * @dev SignatureChallenge accept anyone to send a transaction with a challenge in it.
 * Any Oracle which creates a challenge, may use it to assess that someone does really
 * own a given address.
 *
 * @notice Copyright © 2016 - 2019 Mt Pelerin Group SA - All Rights Reserved
 * @notice This content cannot be used, copied or reproduced in part or in whole
 * @notice without the express and written permission of Mt Pelerin Group SA.
 * @notice Written by *Mt Pelerin Group SA*, <[email protected]>
 * @notice All matters regarding the intellectual property of this code or software
 * @notice are subjects to Swiss Law without reference to its conflicts of law rules.
 *
 * Error messages
 * SC01: No ETH must be provided for the challenge
 * SC02: Target must not be null
 * SC03: Execution call must be successful
 * SC04: Challenges are not active
 * SC05: Challenge must not be longer than challengeBytes
 *
 * @author Cyril Lapinte - <[email protected]>
 */
contract SignatureChallenge is Ownable {

  bool public active = true;
  uint8 public challengeBytes = 2;

  function () external payable {
    require(msg.value == 0, "SC01");
    acceptCode(msg.data);
  }

  /**
   * @dev Update Challenge
   */
  function updateChallenge(
    bool _active,
    uint8 _challengeBytes,
    bytes _testCode) public onlyOwner
  {
    if(!signChallengeWhenValid()) {
      active = _active;
      challengeBytes = _challengeBytes;
      emit ChallengeUpdated(_active, _challengeBytes);

      if (active) {
        acceptCode(_testCode);
      }
    }
  }

  /**
   * @dev execute
   */
  function execute(address _target, bytes _data)
    public payable
  {
    if (!signChallengeWhenValid()) {
      executeOwnerRestricted(_target, _data);
    }
  }

  /**
   * @dev Makes sure to accept the code even it matches a valid function signature.
   */
  function signChallengeWhenValid() private returns (bool)
  {
    // Prevent any loophole against the default function
    // SignatureChallenge may be set inactive to bypass this feature
    if (active && msg.data.length == challengeBytes) {
      require(msg.value == 0, "SC01");
      acceptCode(msg.data);
      return true;
    }
    return false;
  }

  /**
   * @dev execute restricted to owner
   */
  function executeOwnerRestricted(address _target, bytes _data)
    private onlyOwner
  {
    require(_target != address(0), "SC02");
    // solium-disable-next-line security/no-call-value
    require(_target.call.value(msg.value)(_data), "SC03");
  }

  /**
   * @dev accept code
   */
  function acceptCode(bytes _code) private {
    require(active, "SC04");
    require(_code.length == challengeBytes, "SC05");
    emit ChallengeSigned(msg.sender, _code);
  }

  event ChallengeUpdated(bool active, uint8 length);
  event ChallengeSigned(address indexed signer, bytes code);
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"active","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"},{"name":"_data","type":"bytes"}],"name":"execute","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_active","type":"bool"},{"name":"_challengeBytes","type":"uint8"},{"name":"_testCode","type":"bytes"}],"name":"updateChallenge","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":"challengeBytes","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"active","type":"bool"},{"indexed":false,"name":"length","type":"uint8"}],"name":"ChallengeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"signer","type":"address"},{"indexed":false,"name":"code","type":"bytes"}],"name":"ChallengeSigned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

608060405260008054337401000000000000000000000000000000000000000060a060020a60ff02199092169190911760a860020a60ff021916750200000000000000000000000000000000000000000017600160a060020a0319161781556108ac90819061006e90396000f3006080604052600436106100825763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302fb0c5e81146101165780631cff79cd1461013f578063715018a6146101995780637944662a146101ae5780638da5cb5b14610213578063e1fadc4b14610244578063f2fde38b1461026f575b34156100da576040805160e560020a62461bcd028152602060048083019190915260248201527f5343303100000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6101146000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750610290945050505050565b005b34801561012257600080fd5b5061012b61040a565b604080519115158252519081900360200190f35b60408051602060046024803582810135601f8101859004850286018501909652858552610114958335600160a060020a031695369560449491939091019190819084018382808284375094975061041a9650505050505050565b3480156101a557600080fd5b50610114610436565b3480156101ba57600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101149482351515946024803560ff16953695946064949201919081908401838280828437509497506104a29650505050505050565b34801561021f57600080fd5b50610228610589565b60408051600160a060020a039092168252519081900360200190f35b34801561025057600080fd5b50610259610598565b6040805160ff9092168252519081900360200190f35b34801561027b57600080fd5b50610114600160a060020a03600435166105ba565b60005460a060020a900460ff1615156102f5576040805160e560020a62461bcd028152602060048083019190915260248201527f5343303400000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000548151750100000000000000000000000000000000000000000090910460ff161461036e576040805160e560020a62461bcd028152602060048083019190915260248201527f5343303500000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020808252835181830152835133937f428f379c059659aeed80fe8f1aaa0e12d1bc519c8b1233a4ab6853a4696b49409386939092839283019185019080838360005b838110156103cd5781810151838201526020016103b5565b50505050905090810190601f1680156103fa5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250565b60005460a060020a900460ff1681565b6104226105dd565b15156104325761043282826106ba565b5050565b600054600160a060020a0316331461044d57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031633146104b957600080fd5b6104c16105dd565b1515610584576000805460ff84167501000000000000000000000000000000000000000000810275ff0000000000000000000000000000000000000000001987151560a060020a810274ff00000000000000000000000000000000000000001990951694909417161790925560408051918252602082019290925281517f4dde0099e8b905911a150bc10734deab87cd89fc13729cb13a486b48e4bdf147929181900390910190a160005460a060020a900460ff16156105845761058481610290565b505050565b600054600160a060020a031681565b6000547501000000000000000000000000000000000000000000900460ff1681565b600054600160a060020a031633146105d157600080fd5b6105da81610803565b50565b6000805460a060020a900460ff16801561061457506000547501000000000000000000000000000000000000000000900460ff1636145b156106b3573415610671576040805160e560020a62461bcd028152602060048083019190915260248201527f5343303100000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6106ab6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750610290945050505050565b5060016106b7565b5060005b90565b600054600160a060020a031633146106d157600080fd5b600160a060020a0382161515610733576040805160e560020a62461bcd028152602060048083019190915260248201527f5343303200000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b81600160a060020a0316348260405180828051906020019080838360005b83811015610769578181015183820152602001610751565b50505050905090810190601f1680156107965780820380516001836020036101000a031916815260200191505b5091505060006040518083038185875af1925050501515610432576040805160e560020a62461bcd028152602060048083019190915260248201527f5343303300000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116151561081857600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a723058208b3fcc3f9cfe74a220cf6d8b0a4a39d1c6dda796ab4cefae741e7a4db177f0f10029

Deployed Bytecode

0x6080604052600436106100825763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302fb0c5e81146101165780631cff79cd1461013f578063715018a6146101995780637944662a146101ae5780638da5cb5b14610213578063e1fadc4b14610244578063f2fde38b1461026f575b34156100da576040805160e560020a62461bcd028152602060048083019190915260248201527f5343303100000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6101146000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750610290945050505050565b005b34801561012257600080fd5b5061012b61040a565b604080519115158252519081900360200190f35b60408051602060046024803582810135601f8101859004850286018501909652858552610114958335600160a060020a031695369560449491939091019190819084018382808284375094975061041a9650505050505050565b3480156101a557600080fd5b50610114610436565b3480156101ba57600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101149482351515946024803560ff16953695946064949201919081908401838280828437509497506104a29650505050505050565b34801561021f57600080fd5b50610228610589565b60408051600160a060020a039092168252519081900360200190f35b34801561025057600080fd5b50610259610598565b6040805160ff9092168252519081900360200190f35b34801561027b57600080fd5b50610114600160a060020a03600435166105ba565b60005460a060020a900460ff1615156102f5576040805160e560020a62461bcd028152602060048083019190915260248201527f5343303400000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000548151750100000000000000000000000000000000000000000090910460ff161461036e576040805160e560020a62461bcd028152602060048083019190915260248201527f5343303500000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020808252835181830152835133937f428f379c059659aeed80fe8f1aaa0e12d1bc519c8b1233a4ab6853a4696b49409386939092839283019185019080838360005b838110156103cd5781810151838201526020016103b5565b50505050905090810190601f1680156103fa5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250565b60005460a060020a900460ff1681565b6104226105dd565b15156104325761043282826106ba565b5050565b600054600160a060020a0316331461044d57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031633146104b957600080fd5b6104c16105dd565b1515610584576000805460ff84167501000000000000000000000000000000000000000000810275ff0000000000000000000000000000000000000000001987151560a060020a810274ff00000000000000000000000000000000000000001990951694909417161790925560408051918252602082019290925281517f4dde0099e8b905911a150bc10734deab87cd89fc13729cb13a486b48e4bdf147929181900390910190a160005460a060020a900460ff16156105845761058481610290565b505050565b600054600160a060020a031681565b6000547501000000000000000000000000000000000000000000900460ff1681565b600054600160a060020a031633146105d157600080fd5b6105da81610803565b50565b6000805460a060020a900460ff16801561061457506000547501000000000000000000000000000000000000000000900460ff1636145b156106b3573415610671576040805160e560020a62461bcd028152602060048083019190915260248201527f5343303100000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6106ab6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750610290945050505050565b5060016106b7565b5060005b90565b600054600160a060020a031633146106d157600080fd5b600160a060020a0382161515610733576040805160e560020a62461bcd028152602060048083019190915260248201527f5343303200000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b81600160a060020a0316348260405180828051906020019080838360005b83811015610769578181015183820152602001610751565b50505050905090810190601f1680156107965780820380516001836020036101000a031916815260200191505b5091505060006040518083038185875af1925050501515610432576040805160e560020a62461bcd028152602060048083019190915260248201527f5343303300000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116151561081857600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a723058208b3fcc3f9cfe74a220cf6d8b0a4a39d1c6dda796ab4cefae741e7a4db177f0f10029

Swarm Source

bzzr://8b3fcc3f9cfe74a220cf6d8b0a4a39d1c6dda796ab4cefae741e7a4db177f0f1

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.