ETH Price: $2,405.07 (+1.31%)

Contract

0x673F0dEc1416803a39D50760C697FB26f4C539b0
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Request74635972019-03-29 13:13:392016 days ago1553865219IN
0x673F0dEc...6f4C539b0
0 ETH0.0005350121
Request69631782018-12-27 17:01:512108 days ago1545930111IN
0x673F0dEc...6f4C539b0
0 ETH0.0002554110
Request64207932018-09-29 10:46:532197 days ago1538218013IN
0x673F0dEc...6f4C539b0
0 ETH0.0004214216.5
Request61526082018-08-15 15:30:522242 days ago1534347052IN
0x673F0dEc...6f4C539b0
0 ETH0.0005363621
Request59940912018-07-19 20:29:592269 days ago1532032199IN
0x673F0dEc...6f4C539b0
0 ETH0.000076623
Request59841672018-07-18 3:22:582271 days ago1531884178IN
0x673F0dEc...6f4C539b0
0 ETH0.0002554110
Request59841502018-07-18 3:19:172271 days ago1531883957IN
0x673F0dEc...6f4C539b0
0 ETH0.0002554110
Request59353062018-07-09 21:31:232279 days ago1531171883IN
0x673F0dEc...6f4C539b0
0 ETH0.000204328
Request59230702018-07-07 18:39:092281 days ago1530988749IN
0x673F0dEc...6f4C539b0
0 ETH0.0007917731
Request59102322018-07-05 13:39:492283 days ago1530797989IN
0x673F0dEc...6f4C539b0
0 ETH0.00327159128.09185001
Request57914422018-06-15 5:16:212303 days ago1529039781IN
0x673F0dEc...6f4C539b0
0 ETH0.0002554110
Request57625382018-06-10 3:43:312309 days ago1528602211IN
0x673F0dEc...6f4C539b0
0 ETH0.000229299
Request57547122018-06-08 18:22:072310 days ago1528482127IN
0x673F0dEc...6f4C539b0
0 ETH0.00257964101
Request57327132018-06-04 20:32:272314 days ago1528144347IN
0x673F0dEc...6f4C539b0
0 ETH0.0005108220
Request57248172018-06-03 11:05:342315 days ago1528023934IN
0x673F0dEc...6f4C539b0
0 ETH0.0005363621
Request56937662018-05-28 22:40:582321 days ago1527547258IN
0x673F0dEc...6f4C539b0
0 ETH0.0002809511
Request56750112018-05-25 15:29:112324 days ago1527262151IN
0x673F0dEc...6f4C539b0
0 ETH0.0003831115
Set Fee56699212018-05-24 17:47:202325 days ago1527184040IN
0x673F0dEc...6f4C539b0
0 ETH0.0002711512
Set Fee56698022018-05-24 17:19:032325 days ago1527182343IN
0x673F0dEc...6f4C539b0
0 ETH0.0003154414
Puzzle56244622018-05-16 16:26:062333 days ago1526487966IN
0x673F0dEc...6f4C539b0
0 ETH0.000594212
Request56120652018-05-14 12:04:362335 days ago1526299476IN
0x673F0dEc...6f4C539b0
0 ETH0.0003064912
Confirm56094032018-05-14 0:34:152336 days ago1526258055IN
0x673F0dEc...6f4C539b0
0 ETH0.000241557.88125
Confirm56093302018-05-14 0:17:032336 days ago1526257023IN
0x673F0dEc...6f4C539b0
0 ETH0.000241557.88125
Confirm56092122018-05-13 23:48:102336 days ago1526255290IN
0x673F0dEc...6f4C539b0
0 ETH0.000190867.88125
Confirm56090332018-05-13 23:06:342336 days ago1526252794IN
0x673F0dEc...6f4C539b0
0 ETH0.000217969
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ProofOfEmail

Compiler Version
v0.4.8+commit.60cc1668

Optimization Enabled:
Yes with 200 runs

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

//! E-mail verification contract
//! By Gav Wood, 2016.

pragma solidity ^0.4.0;

contract Owned {
	modifier only_owner { if (msg.sender != owner) return; _; }

	event NewOwner(address indexed old, address indexed current);

	function setOwner(address _new) only_owner { NewOwner(owner, _new); owner = _new; }

	address public owner = msg.sender;
}

contract Certifier {
	event Confirmed(address indexed who);
	event Revoked(address indexed who);
	function certified(address _who) constant returns (bool);
	function get(address _who, string _field) constant returns (bytes32) {}
	function getAddress(address _who, string _field) constant returns (address) {}
	function getUint(address _who, string _field) constant returns (uint) {}
}

contract ProofOfEmail is Owned, Certifier {
	modifier when_fee_paid { if (msg.value < fee) return; _; }

	event Requested(address indexed who, bytes32 indexed emailHash);
	event Puzzled(address indexed who, bytes32 indexed emailHash, bytes32 puzzle);

	function request(bytes32 _emailHash) payable when_fee_paid {
		Requested(msg.sender, _emailHash);
	}

	function puzzle(address _who, bytes32 _puzzle, bytes32 _emailHash) only_owner {
		puzzles[_puzzle] = _emailHash;
		Puzzled(_who, _emailHash, _puzzle);
	}

	function confirm(bytes32 _code) returns (bool) {
		var emailHash = puzzles[sha3(_code)];
		if (emailHash == 0)
			return;
		delete puzzles[sha3(_code)];
		if (reverse[emailHash] != 0)
			return;
		entries[msg.sender] = emailHash;
		reverse[emailHash] = msg.sender;
		Confirmed(msg.sender);
		return true;
	}

	function setFee(uint _new) only_owner {
		fee = _new;
	}

	function drain() only_owner {
		if (!msg.sender.send(this.balance))
			throw;
	}

	function certified(address _who) constant returns (bool) {
		return entries[_who] != 0;
	}

	function get(address _who, string _field) constant returns (bytes32) {
		entries[_who];
	}

	mapping (address => bytes32) entries;
	mapping (bytes32 => address) public reverse;
	mapping (bytes32 => bytes32) puzzles;

	uint public fee = 0 finney;
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_new","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"reverse","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_who","type":"address"},{"name":"_puzzle","type":"bytes32"},{"name":"_emailHash","type":"bytes32"}],"name":"puzzle","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"},{"name":"_field","type":"string"}],"name":"getAddress","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_emailHash","type":"bytes32"}],"name":"request","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"_new","type":"uint256"}],"name":"setFee","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_code","type":"bytes32"}],"name":"confirm","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"drain","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"},{"name":"_field","type":"string"}],"name":"getUint","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"}],"name":"certified","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"fee","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"},{"name":"_field","type":"string"}],"name":"get","outputs":[{"name":"","type":"bytes32"}],"payable":false,"type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"who","type":"address"},{"indexed":true,"name":"emailHash","type":"bytes32"}],"name":"Requested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"who","type":"address"},{"indexed":true,"name":"emailHash","type":"bytes32"},{"indexed":false,"name":"puzzle","type":"bytes32"}],"name":"Puzzled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"who","type":"address"}],"name":"Confirmed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"who","type":"address"}],"name":"Revoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"old","type":"address"},{"indexed":true,"name":"current","type":"address"}],"name":"NewOwner","type":"event"}]

606060405260008054600160a060020a03191633600160a060020a031617815560045534610000575b610677806100376000396000f300606060405236156100a95763ffffffff60e060020a60003504166313af403581146100ae57806337b34974146100c95780634b59e880146100f55780635283f3391461011657806359c87d701461018f57806369fe0e2d1461019c578063797af627146101ae5780638da5cb5b146101d25780639890220b146101fb578063ca4cbf671461020a578063cc1d4c0214610279578063ddca3f43146102a6578063fc2525ab146102c5575b610000565b34610000576100c7600160a060020a0360043516610334565b005b34610000576100d96004356103b5565b60408051600160a060020a039092168252519081900360200190f35b34610000576100c7600160a060020a03600435166024356044356103d0565b005b346100005760408051602060046024803582810135601f81018590048502860185019096528585526100d9958335600160a060020a0316959394604494939290920191819084018382808284375094965061044495505050505050565b60408051600160a060020a039092168252519081900360200190f35b6100c760043561044d565b005b34610000576100c7600435610497565b005b34610000576101be6004356104bc565b604080519115158252519081900360200190f35b34610000576100d961059e565b60408051600160a060020a039092168252519081900360200190f35b34610000576100c76105ad565b005b346100005760408051602060046024803582810135601f8101859004850286018501909652858552610267958335600160a060020a0316959394604494939290920191819084018382808284375094965061044495505050505050565b60408051918252519081900360200190f35b34610000576101be600160a060020a0360043516610609565b604080519115158252519081900360200190f35b346100005761026761062a565b60408051918252519081900360200190f35b346100005760408051602060046024803582810135601f8101859004850286018501909652858552610267958335600160a060020a0316959394604494939290920191819084018382808284375094965061063095505050505050565b60408051918252519081900360200190f35b60005433600160a060020a0390811691161461034f576103b1565b60008054604051600160a060020a03808516939216917f70aea8d848e8a90fb7661b227dc522eb6395c3dac71b63cb59edd5c9899b236491a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600260205260009081526040902054600160a060020a031681565b60005433600160a060020a039081169116146103eb5761043e565b600082815260036020908152604091829020839055815184815291518392600160a060020a038716927f76babef7e9f1065118be3f9d7094016a1cc06dd12811501c7712deb22144f37b92918290030190a35b5b505050565b60005b92915050565b60045434101561045c576103b1565b6040518190600160a060020a033316907f070669e6be82aa9b077a096b0f9617893a4dc5cb05897e27fd7a6112c8e6629e90600090a35b5b50565b60005433600160a060020a039081169116146104b2576103b1565b60048190555b5b50565b6040805182815281516020918190038201902060009081526003909152908120548015156104e957610598565b6040805184815281516020918190038201902060009081526003825282812081905583815260029091522054600160a060020a03161561052857610598565b600160a060020a03331660008181526001602090815260408083208590558483526002909152808220805473ffffffffffffffffffffffffffffffffffffffff191684179055517fd415b905d4dd806bfba99a7a0e6351bd0c9db3a9912add21c0e6bef4479f673f9190a2600191505b50919050565b600054600160a060020a031681565b60005433600160a060020a039081169116146105c8576105fc565b604051600160a060020a0333811691309091163180156108fc02916000818181858888f1935050505015156105fc57610000565b5b5b565b60005b92915050565b600160a060020a03811660009081526001602052604090205415155b919050565b60045481565b600160a060020a038216600090815260016020525b929150505600a165627a7a72305820ce78dc629099873e94d6439d2c41a0f4899c0758018c2cf1beee10bef96e7eed0029

Deployed Bytecode

0x606060405236156100a95763ffffffff60e060020a60003504166313af403581146100ae57806337b34974146100c95780634b59e880146100f55780635283f3391461011657806359c87d701461018f57806369fe0e2d1461019c578063797af627146101ae5780638da5cb5b146101d25780639890220b146101fb578063ca4cbf671461020a578063cc1d4c0214610279578063ddca3f43146102a6578063fc2525ab146102c5575b610000565b34610000576100c7600160a060020a0360043516610334565b005b34610000576100d96004356103b5565b60408051600160a060020a039092168252519081900360200190f35b34610000576100c7600160a060020a03600435166024356044356103d0565b005b346100005760408051602060046024803582810135601f81018590048502860185019096528585526100d9958335600160a060020a0316959394604494939290920191819084018382808284375094965061044495505050505050565b60408051600160a060020a039092168252519081900360200190f35b6100c760043561044d565b005b34610000576100c7600435610497565b005b34610000576101be6004356104bc565b604080519115158252519081900360200190f35b34610000576100d961059e565b60408051600160a060020a039092168252519081900360200190f35b34610000576100c76105ad565b005b346100005760408051602060046024803582810135601f8101859004850286018501909652858552610267958335600160a060020a0316959394604494939290920191819084018382808284375094965061044495505050505050565b60408051918252519081900360200190f35b34610000576101be600160a060020a0360043516610609565b604080519115158252519081900360200190f35b346100005761026761062a565b60408051918252519081900360200190f35b346100005760408051602060046024803582810135601f8101859004850286018501909652858552610267958335600160a060020a0316959394604494939290920191819084018382808284375094965061063095505050505050565b60408051918252519081900360200190f35b60005433600160a060020a0390811691161461034f576103b1565b60008054604051600160a060020a03808516939216917f70aea8d848e8a90fb7661b227dc522eb6395c3dac71b63cb59edd5c9899b236491a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600260205260009081526040902054600160a060020a031681565b60005433600160a060020a039081169116146103eb5761043e565b600082815260036020908152604091829020839055815184815291518392600160a060020a038716927f76babef7e9f1065118be3f9d7094016a1cc06dd12811501c7712deb22144f37b92918290030190a35b5b505050565b60005b92915050565b60045434101561045c576103b1565b6040518190600160a060020a033316907f070669e6be82aa9b077a096b0f9617893a4dc5cb05897e27fd7a6112c8e6629e90600090a35b5b50565b60005433600160a060020a039081169116146104b2576103b1565b60048190555b5b50565b6040805182815281516020918190038201902060009081526003909152908120548015156104e957610598565b6040805184815281516020918190038201902060009081526003825282812081905583815260029091522054600160a060020a03161561052857610598565b600160a060020a03331660008181526001602090815260408083208590558483526002909152808220805473ffffffffffffffffffffffffffffffffffffffff191684179055517fd415b905d4dd806bfba99a7a0e6351bd0c9db3a9912add21c0e6bef4479f673f9190a2600191505b50919050565b600054600160a060020a031681565b60005433600160a060020a039081169116146105c8576105fc565b604051600160a060020a0333811691309091163180156108fc02916000818181858888f1935050505015156105fc57610000565b5b5b565b60005b92915050565b600160a060020a03811660009081526001602052604090205415155b919050565b60045481565b600160a060020a038216600090815260016020525b929150505600a165627a7a72305820ce78dc629099873e94d6439d2c41a0f4899c0758018c2cf1beee10bef96e7eed0029

Swarm Source

bzzr://ce78dc629099873e94d6439d2c41a0f4899c0758018c2cf1beee10bef96e7eed

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.