Yes. Here Is theDAOVoter

Description

theDAOVoter v1.0000000000000003 is a little Perl script (~808 lines, 738 source lines) that will allow you to:

List The DAO proposals.

List your accounts, displaying whether The DAO transfers are blocked due to opened votes and expiry time.

List the DAO proposals with a listing of your accounts showing which accounts have already voted on each proposal. Past votes can also be listed along with the actual gas used.

Vote on The DAO proposals from your accounts.

The script will run in Linux, should run on Mac OS/X and may run on Windows using one of the Perl distributions including Cygwin and Active State Perl.

You will need geth to be installed, and the blockchain to be synced.





Where Can I Find theDAOVoter

theDAOVoter can be found on Github - BokkyPooBah/TheDAOVoter.





How Does theDAOVoter Work?

The script calls the geth with the attach option, running the Go Ethereum JavaScript API to query the Ethereum blockchain.

Read the Perl script - it's only 808 lines. And use the --verbose option if you want to see the exact commands executed by this script.

You only have to enter your geth keystore password when you use the --vote command to vote on proposals.

See below for the list of the Go Ethereum JavaScript API commands used and The DAO functions called.





Sample

# List all your accounts including the totals user@Kumquat:~$ theDAOVoter --listaccounts # Account ETH DAO The DAO transfer blocked by OPEN proposal? --- ------------------------------------------ --------------------------- -------------------------- ------------------------------------------ 0 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 111.111111111111111111 111.0000000000000000 #2 OPEN until Sun Jun 12 03:18:37 2016 1 0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 222.222222222222222222 222.0000000000000000 --- ------------------------------------------ --------------------------- -------------------------- 3 Total 333.333333333333333333 333.0000000000000000 # List proposal #2 checking the voting status of this proposal from your accounts user@Kumquat:~$ theDAOVoter --listproposals --id=2 --checkvotingstatus --checkpastvotes ========================================================================================================================================= Proposal 2. OPEN until Sun Jun 12 03:18:37 2016 Votes Yea 2473115 (44.20%) Nay 3122385 (55.80%) Quorum 0.48% of 20% Creator 0x5a8e70f2d75c1468db4a2241fdd70e5a84f028b8 Recipient 0xbb9bc244d798123fde783fcc1c72d3bb8c189413 Deposit 2 ETH Amount 0 ETH New curator N ----------------------------------------------------------------------------------------------------------------------------------------- Do you believe in god? ----------------------------------------------------------------------------------------------------------------------------------------- # Account ETH DAO Est Gas Voting Status --- ------------------------------------------ --------------------------- -------------------------- -------- ------------- 0 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 111.111111111111111111 111.0000000000000000 56287 Voted Nay 1 0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 222.222222222222222222 222.0000000000000000 70851 Not voted yet --- ------------------------------------------ --------------------------- -------------------------- -------- ------------- ========================================================================================================================================= # A NO vote on proposal #2 from account #1 user@Kumquat:~$ theDAOVoter --vote --id=2 --account=1 --support=0 Enter password for 0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb to vote: Transaction Id 0x5555555555555555555555555555555555555555555555555555555555555555





The More Frequently Used Commands

Instructions are on the main page, and here are the more frequently used commands:

Help

theDAOVoter

List accounts and display whether the account is blocked by votes in progress

theDAOVoter --listaccounts

List proposals (excluding splits, open proposals only)

theDAOVoter --listproposals

List proposals (excluding splits, open proposals only) and check voting status for your accounts

theDAOVoter --listproposals --checkvotingstatus

List proposals #2 and check voting status for your accounts

theDAOVoter --listproposals --id=2 --checkvotingstatus

List open proposals and check voting status and past votes for your accounts

theDAOVoter --listproposals --checkvotingstatus --checkpastvotes

Vote on proposal #2 from account #1, not supporting this vote

theDAOVoter --vote --id=2 --account=1 --support=0





Go Ethereum ( geth ) JavaScript API Commands Used And The DAO Functions Called

Listing Balance

eth.getBalance(account)

theDAO.balanceOf(account)

theDAO.blocked(account)

theDAO.proposals(proposalId)

Listing Proposals

theDAO.numberOfProposals()

theDAO.proposals(proposalId)

theDAO.minQuorumDivisor()

theDAO.totalSupply()

Check Voting Status

eth.estimateGas(theDAO.vote(...))

Check Voting History

theDAO.Voted.watch(...)

eth.getTransactionReceipt(...)

Voting

personal.unlockAccount(...)

theDAO.vote(...)





Warning

This script uses the same method as the Ethereum Wallet (Mist) to unlock your account in geth when you are sending your vote to the Ethereum blockchain. Make sure that you start geth without the --rpc option when using geth with this script. See the following URL about the security issues with this keystore unlocking methodology: How to reduce the chances of your Ethereum wallet getting hacked?





See Also





Enjoy, and vote well. BokkyPooBah 2016.