Skip to content

Instantly share code, notes, and snippets.

@alexvandesande
Last active February 19, 2017 13:36
Show Gist options
  • Save alexvandesande/b83ed848d201910b1a4535879e0097d2 to your computer and use it in GitHub Desktop.
Save alexvandesande/b83ed848d201910b1a4535879e0097d2 to your computer and use it in GitHub Desktop.

Donation move

I have been contacted by the account that donated 5k ether to the Doge coin bounty contract [1][2].

They were unhappy with the slow progress of the doge-connection and felt that Doge had also lost a lot of its steam and would like to donate to other ethereum related donation projects.

I was able to verify that the person contacted me indeed held the private key to the account 0x841145B44840C946E21dbC190264b8E0D5029369 and that it was their intention to do so by deploying this attest contract below, which they used to say: "I'd like 5000 ether to be donated to Giveth". These can be independently verified by using mist and using the abi pasted below.

Since I consider the Donors should hold power on how their donation is spent, I will submit a proposal to move the funds back to the donor and ask other keyholders to support this.

To Verify his claim

Add this address to the Mist wallet and then check the recent events:

Address: 0xE743Ba0186909D9Fd2D0B06cE3Ed987472D0608D

abi:

[ { "constant": false, "inputs": [ { "name": "saySomething", "type": "string" } ], "name": "attest", "outputs": [], "payable": false, "type": "function" }, { "constant": true, "inputs": [ { "name": "sha", "type": "bytes32" }, { "name": "attestation", "type": "string" }, { "name": "attester", "type": "address" } ], "name": "checkAttest", "outputs": [ { "name": "checked", "type": "bool", "value": false } ], "payable": false, "type": "function" }, { "constant": false, "inputs": [ { "name": "saySomething", "type": "string" } ], "name": "secretAttest", "outputs": [], "payable": false, "type": "function" }, { "inputs": [], "payable": false, "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "attester", "type": "address" }, { "indexed": false, "name": "attestation", "type": "string" } ], "name": "Attest", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "attester", "type": "address" }, { "indexed": false, "name": "attestation", "type": "bytes32" } ], "name": "SecretAttest", "type": "event" } ]

sol version:

v0.4.9 364da425

code:

pragma solidity 0.4.9;

contract AttestThis {
    event Attest(address attester, string attestation);
    event SecretAttest(address attester, bytes32 attestation);
    
    /* Constructor */
    function AttestThis() {
    }
    
    function attest(string saySomething) {
        Attest(msg.sender, saySomething);
    }
    
    function secretAttest(string saySomething) {
        SecretAttest(msg.sender, sha3(saySomething, msg.sender));
    }
    
    function checkAttest(bytes32 sha, string attestation, address attester)
        constant returns (bool checked) {
        return sha == sha3(attestation, attester);
    }
}

To vote for the proposal

Add this address to Mist and then pick "vote" from the Write menu. Choose proposal 7, click "yes" to vote and execute it from the address you own. You can verify the proposal and addresses on the left side bar.

Address: 0xdbf03b407c01e7cd3cbea99509d93f8dddc8c6fb

ABI:

 [ { "constant": true, "inputs": [ { "name": "", "type": "uint256", "typeShort": "uint", "bits": "256", "displayName": "", "template": "elements_input_uint", "value": "" } ], "name": "proposals", "outputs": [ { "name": "recipient", "type": "address" }, { "name": "amount", "type": "uint256" }, { "name": "description", "type": "string" }, { "name": "votingDeadline", "type": "uint256" }, { "name": "executed", "type": "bool" }, { "name": "proposalPassed", "type": "bool" }, { "name": "numberOfVotes", "type": "uint256" }, { "name": "currentResult", "type": "int256" }, { "name": "proposalHash", "type": "bytes32" } ], "type": "function", "displayName": "proposals" }, { "constant": false, "inputs": [ { "name": "proposalNumber", "type": "uint256", "typeShort": "uint", "bits": "256", "displayName": "proposal Number", "template": "elements_input_uint" }, { "name": "transactionBytecode", "type": "bytes", "typeShort": "bytes", "bits": "", "displayName": "transaction Bytecode", "template": "elements_input_bytes" } ], "name": "executeProposal", "outputs": [ { "name": "result", "type": "int256" } ], "type": "function", "displayName": "execute Proposal" }, { "constant": true, "inputs": [ { "name": "", "type": "address", "typeShort": "address", "bits": "", "displayName": "", "template": "elements_input_address", "value": "" } ], "name": "memberId", "outputs": [ { "name": "", "type": "uint256", "value": "0", "displayName": "" } ], "type": "function", "displayName": "member Id" }, { "constant": true, "inputs": [], "name": "numProposals", "outputs": [ { "name": "", "type": "uint256", "value": "0", "displayName": "" } ], "type": "function", "displayName": "num Proposals" }, { "constant": true, "inputs": [ { "name": "", "type": "uint256", "typeShort": "uint", "bits": "256", "displayName": "", "template": "elements_input_uint", "value": "1" } ], "name": "members", "outputs": [ { "name": "member", "type": "address", "value": "0xd1220a0cf47c7b9be7a2e6ba89f429762e7b9adb", "displayName": "member" }, { "name": "canVote", "type": "bool", "value": true, "displayName": "can Vote" }, { "name": "name", "type": "string", "value": "AvsA", "displayName": "name" }, { "name": "memberSince", "type": "uint256", "value": "1451337584", "displayName": "member Since" } ], "type": "function", "displayName": "members" }, { "constant": true, "inputs": [], "name": "debatingPeriodInMinutes", "outputs": [ { "name": "", "type": "uint256", "value": "10000", "displayName": "" } ], "type": "function", "displayName": "debating Period In Minutes" }, { "constant": true, "inputs": [], "name": "minimumQuorum", "outputs": [ { "name": "", "type": "uint256", "value": "0", "displayName": "" } ], "type": "function", "displayName": "minimum Quorum" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd1220a0cf47c7b9be7a2e6ba89f429762e7b9adb", "displayName": "" } ], "type": "function", "displayName": "owner" }, { "constant": false, "inputs": [ { "name": "targetMember", "type": "address", "typeShort": "address", "bits": "", "displayName": "target Member", "template": "elements_input_address", "value": "0x1db3439a222c519ab44bb1144fc28167b4fa6ee6" }, { "name": "canVote", "type": "bool", "typeShort": "bool", "bits": "", "displayName": "can Vote", "template": "elements_input_bool", "value": true }, { "name": "memberName", "type": "string", "typeShort": "string", "bits": "", "displayName": "member Name", "template": "elements_input_string", "value": "Vitalik (Personal)" } ], "name": "changeMembership", "outputs": [], "type": "function", "displayName": "change Membership" }, { "constant": true, "inputs": [], "name": "majorityMargin", "outputs": [ { "name": "", "type": "int256", "value": "0", "displayName": "" } ], "type": "function", "displayName": "majority Margin" }, { "constant": false, "inputs": [ { "name": "beneficiary", "type": "address", "typeShort": "address", "bits": "", "displayName": "beneficiary", "template": "elements_input_address" }, { "name": "etherAmount", "type": "uint256", "typeShort": "uint", "bits": "256", "displayName": "ether Amount", "template": "elements_input_uint" }, { "name": "JobDescription", "type": "string", "typeShort": "string", "bits": "", "displayName": " Job Description", "template": "elements_input_string" }, { "name": "transactionBytecode", "type": "bytes", "typeShort": "bytes", "bits": "", "displayName": "transaction Bytecode", "template": "elements_input_bytes" } ], "name": "newProposal", "outputs": [ { "name": "proposalID", "type": "uint256" } ], "type": "function", "displayName": "new Proposal" }, { "constant": false, "inputs": [ { "name": "minimumQuorumForProposals", "type": "uint256", "typeShort": "uint", "bits": "256", "displayName": "minimum Quorum For Proposals", "template": "elements_input_uint" }, { "name": "minutesForDebate", "type": "uint256", "typeShort": "uint", "bits": "256", "displayName": "minutes For Debate", "template": "elements_input_uint" }, { "name": "marginOfVotesForMajority", "type": "int256", "typeShort": "int", "bits": "256", "displayName": "margin Of Votes For Majority", "template": "elements_input_int" } ], "name": "changeVotingRules", "outputs": [], "type": "function", "displayName": "change Voting Rules" }, { "constant": false, "inputs": [ { "name": "proposalNumber", "type": "uint256", "typeShort": "uint", "bits": "256", "displayName": "proposal Number", "template": "elements_input_uint" }, { "name": "supportsProposal", "type": "bool", "typeShort": "bool", "bits": "", "displayName": "supports Proposal", "template": "elements_input_bool" }, { "name": "justificationText", "type": "string", "typeShort": "string", "bits": "", "displayName": "justification Text", "template": "elements_input_string" } ], "name": "vote", "outputs": [ { "name": "voteID", "type": "uint256" } ], "type": "function", "displayName": "vote" }, { "constant": true, "inputs": [ { "name": "proposalNumber", "type": "uint256", "typeShort": "uint", "bits": "256", "displayName": "proposal Number", "template": "elements_input_uint", "value": "" }, { "name": "beneficiary", "type": "address", "typeShort": "address", "bits": "", "displayName": "beneficiary", "template": "elements_input_address", "value": "" }, { "name": "etherAmount", "type": "uint256", "typeShort": "uint", "bits": "256", "displayName": "ether Amount", "template": "elements_input_uint", "value": "" }, { "name": "transactionBytecode", "type": "bytes", "typeShort": "bytes", "bits": "", "displayName": "transaction Bytecode", "template": "elements_input_bytes", "value": "" } ], "name": "checkProposalCode", "outputs": [ { "name": "codeChecksOut", "type": "bool", "value": false, "displayName": "code Checks Out" } ], "type": "function", "displayName": "check Proposal Code" }, { "constant": false, "inputs": [ { "name": "newOwner", "type": "address", "typeShort": "address", "bits": "", "displayName": "new Owner", "template": "elements_input_address" } ], "name": "transferOwnership", "outputs": [], "type": "function", "displayName": "transfer Ownership" }, { "inputs": [ { "name": "minimumQuorumForProposals", "type": "uint256", "typeShort": "uint", "bits": "256", "displayName": "minimum Quorum For Proposals", "template": "elements_input_uint", "value": "" }, { "name": "minutesForDebate", "type": "uint256", "typeShort": "uint", "bits": "256", "displayName": "minutes For Debate", "template": "elements_input_uint", "value": "10000" }, { "name": "marginOfVotesForMajority", "type": "int256", "typeShort": "int", "bits": "256", "displayName": "margin Of Votes For Majority", "template": "elements_input_int", "value": "" }, { "name": "congressLeader", "type": "address", "typeShort": "address", "bits": "", "displayName": "congress Leader", "template": "elements_input_address", "value": "" } ], "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "proposalID", "type": "uint256" }, { "indexed": false, "name": "recipient", "type": "address" }, { "indexed": false, "name": "amount", "type": "uint256" }, { "indexed": false, "name": "description", "type": "string" } ], "name": "ProposalAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "proposalID", "type": "uint256" }, { "indexed": false, "name": "position", "type": "bool" }, { "indexed": false, "name": "voter", "type": "address" }, { "indexed": false, "name": "justification", "type": "string" } ], "name": "Voted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "proposalID", "type": "uint256" }, { "indexed": false, "name": "result", "type": "int256" }, { "indexed": false, "name": "quorum", "type": "uint256" }, { "indexed": false, "name": "active", "type": "bool" } ], "name": "ProposalTallied", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "member", "type": "address" }, { "indexed": false, "name": "isMember", "type": "bool" } ], "name": "MembershipChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "minimumQuorum", "type": "uint256" }, { "indexed": false, "name": "debatingPeriodInMinutes", "type": "uint256" }, { "indexed": false, "name": "majorityMargin", "type": "int256" } ], "name": "ChangeOfRules", "type": "event" } ]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment