The 2016 EtherVote contract redeployed by Alex Van de Sande on 10 July 2017, recompiled on a 0.4 compiler.
Historical Significance
The code compiles exactly from the source published for the 2016 deployment on v0.4.10+commit.f0d539ae with the optimizer off. Only the 43 byte metadata trailer differs, because its swarm hash is a digest of the source text and file name and the EthereumHistory attribution line changes both.
Context
Deployed on 10 July 2017 and used once, four minutes later. A year earlier the same account had put three versions of this contract on chain in four days during the argument over the response to the attack on The DAO.
Key Facts
Description
The same one function voting contract as 0x8b803d9f2bd4aeaa2a7c5265fb5684fe3e68c879, deployed again a year later from the same account and from the same source text. vote(bytes32 proposalHash, bool pro) emits LogVote with the proposal hash indexed, the yes or no choice, and the caller, and does nothing else. What changed is the compiler: built on a 0.4 series release with the optimizer off, so the deployed code carries the CBOR metadata trailer that 0.3 compilers did not emit, and the non payable check the 0.4 compilers insert on their own now stands where the handwritten ether guard stood in the 2016 versions.
Source Verified
Code section matches exactly (267 bytes). CBOR hash differs — original source file encoding not recovered. Source from ethereum/stake-voice GitHub repo (July 2017). This deployment omits the fallback function() { throw; } present in the upstream repo.
Spurious Dragon Era
Continued DoS protection. State trie clearing.
Bytecode Overview
Verified Source Available
Source verified through compiler archaeology (near-exact bytecode match).
View Verification ProofShow source code (Solidity)
pragma solidity ^0.4.11;
contract EtherVote {
event LogVote(bytes32 indexed proposalHash, bool pro, address addr);
/// @notice I `pro? agree : disagree` with the statement whose hash is `proposalHash`
/// @param proposalHash hash of the proposal
/// @param pro do you support it or not?
function vote(bytes32 proposalHash, bool pro) {
// Log the vote
LogVote(proposalHash, pro, msg.sender);
}
}External Links
Related contracts
Association (Mist D.A.O.)
Same deployerA token-weighted governance contract deployed by Avsa on Dec 3, 2015, using MistCoin as voting shares. 0.1 ETH remains locked after 10 years.
0x8d554c...d9b8dcDecember 3, 2015Congress
Same deployerAlex Van de Sande's Congress DAO from Dec 28, 2015: on-chain voting with member registry (mapping) and configurable quorum.
0xb3d47f...7c6c0cDecember 28, 2015Congress
Same deployerAlex Van de Sande's Congress DAO from Dec 28, 2015: on-chain voting system for proposals with configurable quorum and majority threshold.
0x7f6b46...03f101December 28, 2015Congress
Same deployerAlex Van de Sande's Congress DAO from Dec 28, 2015: on-chain voting system for proposals with configurable quorum and majority threshold.
0x1e5cbb...b7ff63December 28, 2015Congress
Same deployerA Congress DAO from the ethereum.org tutorial, deployed 28 December 2015, 23 minutes before the tutorial revision it came from was published.
0xe8e80d...4ed2daDecember 28, 2015Doge-ETH Bounty DAO
Same deployerThe Doge-Ethereum Bounty DAO created by avsa on Dec 28, 2015. Funded over 5,400 ETH in bridge development, holds 50,000 MistCoin. Active 2015-2021.
0xdbf03b...c8c6fbDecember 28, 2015