The-Dao
ETC 鏈上的子 DAO #59 中發生了什麼?
來自乙太經典鏈上 The DAO 及其子 DAO 的餘額是多少?我們知道壞人已經從子 DAO #59 中耗盡了 3641694.241898506992612606 ETH。
子 DAO #59 中發生了什麼?
也可以看看:
概括
child DAO #59 的餘額已被 child DAO Proposal #10 轉移到 Grand child DAO 0x10abb5efecdc09581f8b7cb95791fe2936790b4e中,金額為 3642408.52761279270689932 ETC。
以下是提案 #10 的詳細資訊:
--- ChildDAO Proposal 10 --- Proposal Id : 10 Recipient : 0xbe3ae5cb97c253dda67181c6e34e43f5c275e08b Amount : 0 Description : Voting deadlne : 1469072096 Thu, 21 Jul 2016 13:34:56 AEST Open : true Passed : true Deposit : 0 New curator : true (Split) Yea : 1e-16 Nay : 0 Creator : 0x7498bb5749c9801f1f7e490baf5f966dbfe4e97b Address : 0x10abb5efecdc09581f8b7cb95791fe2936790b4e Balance : 3642408.52761279270689932 ExtraBalance Account: 0xfde8d5f77ef48bb7bf5766c7404691b9ee1dfca7 ExtraBalance : 0 Supply : 364240852.7612793 #Proposals : 0
孫子DAO 與 The DAO 具有相同的程式碼(感謝w2qw on reddit)。
reddit上的@DaxClassix注意到主鏈0x10abb5efecdc09581f8b7cb95791fe2936790b4e上有餘額。
合約地址是在分叉前創建的 - https://etherscan.io/txsInternal?a=0x10abb5efecdc09581f8b7cb95791fe2936790b4e&p=12。
來自reddit 上的2xC19LBZ:
分叉後意外發送到 TheDAO 的 38K ETH,最終被轉移到了這個地址。這就是為什麼這個地址現在在分叉鏈上確實有 38K ETH。
細節
這是我用來查詢 ETC 區塊鏈的腳本:
#!/bin/sh # # Copyright (c) 2016 BokkyPooBah. # # Permission is hereby granted, free of charge, to any person obtaining a copy of # this software and associated documentation files (the "Software"), to deal in # the Software without restriction, including without limitation the rights to # use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies # of the Software, and to permit persons to whom the Software is furnished to do # so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in all # copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # geth attach << EOF | grep "DATA" | sed "s/^DATA: //" function printProposal(proposalId, proposal, spaces) { var recipient = proposal[0]; var amount = proposal[1]; var description = proposal[2]; var votingDeadline = proposal[3]; var open = proposal[4]; var proposalPassed = proposal[5]; var proposalDeposit = web3.fromWei(proposal[7], "ether"); var newCurator = proposal[8]; var yea = proposal[9] / 1e16; var nay = proposal[10] / 1e16; var creator = proposal[11]; console.log("DATA: " + spaces + "Proposal Id : " + proposalId); console.log("DATA: " + spaces + "Recipient : " + recipient); console.log("DATA: " + spaces + "Amount : " + amount); console.log("DATA: " + spaces + "Description : " + description); console.log("DATA: " + spaces + "Voting deadlne : " + votingDeadline + " " + new Date(votingDeadline * 1000)); console.log("DATA: " + spaces + "Open : " + open); console.log("DATA: " + spaces + "Passed : " + proposalPassed); console.log("DATA: " + spaces + "Deposit : " + proposalDeposit); console.log("DATA: " + spaces + "New curator : " + newCurator + " " + (newCurator ? "(Split)" : "(Non-Split)")); console.log("DATA: " + spaces + "Yea : " + yea); console.log("DATA: " + spaces + "Nay : " + nay); console.log("DATA: " + spaces + "Creator : " + creator); } function chaseTheChildDAO(proposalId) { var theDAOAddress="0xbb9bc244d798123fde783fcc1c72d3bb8c189413"; var theDAOABI =[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"proposals","outputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"},{"name":"description","type":"string"},{"name":"votingDeadline","type":"uint256"},{"name":"open","type":"bool"},{"name":"proposalPassed","type":"bool"},{"name":"proposalHash","type":"bytes32"},{"name":"proposalDeposit","type":"uint256"},{"name":"newCurator","type":"bool"},{"name":"yea","type":"uint256"},{"name":"nay","type":"uint256"},{"name":"creator","type":"address"}],"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"minTokensToCreate","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"rewardAccount","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":true,"inputs":[],"name":"daoCreator","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"divisor","outputs":[{"name":"divisor","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"extraBalance","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":false,"inputs":[{"name":"_proposalID","type":"uint256"},{"name":"_transactionData","type":"bytes"}],"name":"executeProposal","outputs":[{"name":"_success","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":false,"inputs":[],"name":"unblockMe","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"totalRewardToken","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"actualBalance","outputs":[{"name":"_actualBalance","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"closingTime","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"allowedRecipients","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferWithoutReward","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_description","type":"string"},{"name":"_transactionData","type":"bytes"},{"name":"_debatingPeriod","type":"uint256"},{"name":"_newCurator","type":"bool"}],"name":"newProposal","outputs":[{"name":"_proposalID","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"DAOpaidOut","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"minQuorumDivisor","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_newContract","type":"address"}],"name":"newContract","outputs":[],"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"},{"name":"_allowed","type":"bool"}],"name":"changeAllowedRecipients","outputs":[{"name":"_success","type":"bool"}],"type":"function"},{"constant":false,"inputs":[],"name":"halveMinQuorum","outputs":[{"name":"_success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"paidOut","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_proposalID","type":"uint256"},{"name":"_newCurator","type":"address"}],"name":"splitDAO","outputs":[{"name":"_success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"DAOrewardAccount","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":true,"inputs":[],"name":"proposalDeposit","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"numberOfProposals","outputs":[{"name":"_numberOfProposals","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"lastTimeMinQuorumMet","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_toMembers","type":"bool"}],"name":"retrieveDAOReward","outputs":[{"name":"_success","type":"bool"}],"type":"function"},{"constant":false,"inputs":[],"name":"receiveEther","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"isFueled","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_tokenHolder","type":"address"}],"name":"createTokenProxy","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"_proposalID","type":"uint256"}],"name":"getNewDAOAddress","outputs":[{"name":"_newDAO","type":"address"}],"type":"function"},{"constant":false,"inputs":[{"name":"_proposalID","type":"uint256"},{"name":"_supportsProposal","type":"bool"}],"name":"vote","outputs":[{"name":"_voteID","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[],"name":"getMyReward","outputs":[{"name":"_success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"rewardToken","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFromWithoutReward","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_proposalDeposit","type":"uint256"}],"name":"changeProposalDeposit","outputs":[],"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"blocked","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"curator","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":true,"inputs":[{"name":"_proposalID","type":"uint256"},{"name":"_recipient","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_transactionData","type":"bytes"}],"name":"checkProposalCode","outputs":[{"name":"_codeChecksOut","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"privateCreation","outputs":[{"name":"","type":"address"}],"type":"function"},{"inputs":[{"name":"_curator","type":"address"},{"name":"_daoCreator","type":"address"},{"name":"_proposalDeposit","type":"uint256"},{"name":"_minTokensToCreate","type":"uint256"},{"name":"_closingTime","type":"uint256"},{"name":"_privateCreation","type":"address"}],"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"value","type":"uint256"}],"name":"FuelingToDate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"CreatedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Refund","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"proposalID","type":"uint256"},{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"newCurator","type":"bool"},{"indexed":false,"name":"description","type":"string"}],"name":"ProposalAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"proposalID","type":"uint256"},{"indexed":false,"name":"position","type":"bool"},{"indexed":true,"name":"voter","type":"address"}],"name":"Voted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"proposalID","type":"uint256"},{"indexed":false,"name":"result","type":"bool"},{"indexed":false,"name":"quorum","type":"uint256"}],"name":"ProposalTallied","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_newCurator","type":"address"}],"name":"NewCurator","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_recipient","type":"address"},{"indexed":false,"name":"_allowed","type":"bool"}],"name":"AllowedRecipientChanged","type":"event"}]; var theDAO = web3.eth.contract(theDAOABI).at(theDAOAddress); var numberOfProposals = theDAO.numberOfProposals(); var proposal = theDAO.proposals(proposalId); printProposal(proposalId, proposal, ""); var childDAOAddress = theDAO.getNewDAOAddress(proposalId); console.log("DATA: Address : " + childDAOAddress); var childDAO = web3.eth.contract(theDAOABI).at(childDAOAddress); var childDAOBalance = web3.fromWei(eth.getBalance(childDAOAddress), "ether"); console.log("DATA: Balance : " + childDAOBalance); var childDAOExtraBalanceAccount = childDAO.extraBalance(); console.log("DATA: ExtraBalance Account: " + childDAOExtraBalanceAccount); var childDAOExtraBalance = web3.fromWei(eth.getBalance(childDAOExtraBalanceAccount), "ether"); console.log("DATA: ExtraBalance : " + childDAOExtraBalance); var childDAOTotalSupply = childDAO.totalSupply()/1e16; console.log("DATA: Supply : " + childDAOTotalSupply); var childDAONumberOfProposals = childDAO.numberOfProposals(); console.log("DATA: #Proposals : " + childDAONumberOfProposals); var i; for (i=1; i<=childDAONumberOfProposals; i++) { console.log("DATA: --- ChildDAO Proposal " + i + " ---"); var childDAOProposal = childDAO.proposals(i); printProposal(i, childDAOProposal, " "); var childChildDAOAddress = childDAO.getNewDAOAddress(i); if (childChildDAOAddress != "0x0000000000000000000000000000000000000000") { console.log("DATA: Address : " + childChildDAOAddress); var childChildDAO = web3.eth.contract(theDAOABI).at(childChildDAOAddress); var childChildDAOBalance = web3.fromWei(eth.getBalance(childChildDAOAddress), "ether"); console.log("DATA: Balance : " + childChildDAOBalance); var childChildDAOExtraBalanceAccount = childChildDAO.extraBalance(); console.log("DATA: ExtraBalance Account: " + childChildDAOExtraBalanceAccount); var childChildDAOExtraBalance = web3.fromWei(eth.getBalance(childChildDAOExtraBalanceAccount), "ether"); console.log("DATA: ExtraBalance : " + childChildDAOExtraBalance); var childChildDAOTotalSupply = childChildDAO.totalSupply()/1e16; console.log("DATA: Supply : " + childChildDAOTotalSupply); var childChildDAONumberOfProposals = childChildDAO.numberOfProposals(); console.log("DATA: #Proposals : " + childChildDAONumberOfProposals); } } } chaseTheChildDAO(59); console.log("DATA: Report generated at " + new Date()); exit; EOF
這是生成的數據:
Proposal Id : 59 Recipient : 0xb656b2a9c3b2416437a811e07466ca712f5a5b5a Amount : 0 Description : lonely, so lonely Voting deadlne : 1465969081 Wed, 15 Jun 2016 15:38:01 AEST Open : false Passed : true Deposit : 0 New curator : true (Split) Yea : 2e-16 Nay : 3838629.9999999995 Creator : 0xb656b2a9c3b2416437a811e07466ca712f5a5b5a Address : 0x304a554a310c7e546dfe434669c62820b7d83490 Balance : 1.1e-17 ExtraBalance Account: 0x914d1b8b43e92723e64fd0a06f5bdb8dd9b10c79 ExtraBalance : 285.714295714285714286 Supply : 364240852.7612793 #Proposals : 14 --- ChildDAO Proposal 1 --- Proposal Id : 1 Recipient : 0xbe3ae5cb97c253dda67181c6e34e43f5c275e08b Amount : 0 Description : Voting deadlne : 1469072096 Thu, 21 Jul 2016 13:34:56 AEST Open : true Passed : false Deposit : 0 New curator : true (Split) Yea : 1e-16 Nay : 0 Creator : 0x7498bb5749c9801f1f7e490baf5f966dbfe4e97b --- ChildDAO Proposal 2 --- Proposal Id : 2 Recipient : 0xbe3ae5cb97c253dda67181c6e34e43f5c275e08b Amount : 0 Description : Voting deadlne : 1469072096 Thu, 21 Jul 2016 13:34:56 AEST Open : true Passed : false Deposit : 0 New curator : true (Split) Yea : 1e-16 Nay : 0 Creator : 0x7498bb5749c9801f1f7e490baf5f966dbfe4e97b --- ChildDAO Proposal 3 --- Proposal Id : 3 Recipient : 0xbe3ae5cb97c253dda67181c6e34e43f5c275e08b Amount : 0 Description : Voting deadlne : 1469072096 Thu, 21 Jul 2016 13:34:56 AEST Open : true Passed : false Deposit : 0 New curator : true (Split) Yea : 1e-16 Nay : 0 Creator : 0x7498bb5749c9801f1f7e490baf5f966dbfe4e97b --- ChildDAO Proposal 4 --- Proposal Id : 4 Recipient : 0xbe3ae5cb97c253dda67181c6e34e43f5c275e08b Amount : 0 Description : Voting deadlne : 1469072096 Thu, 21 Jul 2016 13:34:56 AEST Open : true Passed : false Deposit : 0 New curator : true (Split) Yea : 1e-16 Nay : 0 Creator : 0x7498bb5749c9801f1f7e490baf5f966dbfe4e97b --- ChildDAO Proposal 5 --- Proposal Id : 5 Recipient : 0xbe3ae5cb97c253dda67181c6e34e43f5c275e08b Amount : 0 Description : Voting deadlne : 1469072096 Thu, 21 Jul 2016 13:34:56 AEST Open : true Passed : false Deposit : 0 New curator : true (Split) Yea : 1e-16 Nay : 0 Creator : 0x7498bb5749c9801f1f7e490baf5f966dbfe4e97b --- ChildDAO Proposal 6 --- Proposal Id : 6 Recipient : 0xbe3ae5cb97c253dda67181c6e34e43f5c275e08b Amount : 0 Description : Voting deadlne : 1469072096 Thu, 21 Jul 2016 13:34:56 AEST Open : true Passed : false Deposit : 0 New curator : true (Split) Yea : 1e-16 Nay : 0 Creator : 0x7498bb5749c9801f1f7e490baf5f966dbfe4e97b --- ChildDAO Proposal 7 --- Proposal Id : 7 Recipient : 0xbe3ae5cb97c253dda67181c6e34e43f5c275e08b Amount : 0 Description : Voting deadlne : 1469072096 Thu, 21 Jul 2016 13:34:56 AEST Open : true Passed : false Deposit : 0 New curator : true (Split) Yea : 1e-16 Nay : 0 Creator : 0x7498bb5749c9801f1f7e490baf5f966dbfe4e97b --- ChildDAO Proposal 8 --- Proposal Id : 8 Recipient : 0xbe3ae5cb97c253dda67181c6e34e43f5c275e08b Amount : 0 Description : Voting deadlne : 1469072096 Thu, 21 Jul 2016 13:34:56 AEST Open : true Passed : false Deposit : 0 New curator : true (Split) Yea : 1e-16 Nay : 0 Creator : 0x7498bb5749c9801f1f7e490baf5f966dbfe4e97b --- ChildDAO Proposal 9 --- Proposal Id : 9 Recipient : 0xbe3ae5cb97c253dda67181c6e34e43f5c275e08b Amount : 0 Description : Voting deadlne : 1469072096 Thu, 21 Jul 2016 13:34:56 AEST Open : true Passed : false Deposit : 0 New curator : true (Split) Yea : 1e-16 Nay : 0 Creator : 0x7498bb5749c9801f1f7e490baf5f966dbfe4e97b --- ChildDAO Proposal 10 --- Proposal Id : 10 Recipient : 0xbe3ae5cb97c253dda67181c6e34e43f5c275e08b Amount : 0 Description : Voting deadlne : 1469072096 Thu, 21 Jul 2016 13:34:56 AEST Open : true Passed : true Deposit : 0 New curator : true (Split) Yea : 1e-16 Nay : 0 Creator : 0x7498bb5749c9801f1f7e490baf5f966dbfe4e97b Address : 0x10abb5efecdc09581f8b7cb95791fe2936790b4e Balance : 3642408.52761279270689932 ExtraBalance Account: 0xfde8d5f77ef48bb7bf5766c7404691b9ee1dfca7 ExtraBalance : 0 Supply : 364240852.7612793 #Proposals : 0 --- ChildDAO Proposal 11 --- Proposal Id : 11 Recipient : 0x304a554a310c7e546dfe434669c62820b7d83490 Amount : 0 Description : Split for great Justice Voting deadlne : 1469072157 Thu, 21 Jul 2016 13:35:57 AEST Open : true Passed : false Deposit : 0 New curator : true (Split) Yea : 0 Nay : 0 Creator : 0xac80cba14c08f8a1242ebd0fd45881cfee54b0a2 --- ChildDAO Proposal 12 --- Proposal Id : 12 Recipient : 0x304a554a310c7e546dfe434669c62820b7d83490 Amount : 3.642408527612792706899331e+24 Description : Ending this game would be nice Voting deadlne : 1469677227 Thu, 28 Jul 2016 13:40:27 AEST Open : true Passed : false Deposit : 0 New curator : false (Non-Split) Yea : 0 Nay : 0 Creator : 0xac80cba14c08f8a1242ebd0fd45881cfee54b0a2 Address : 0x Report generated at Tue, 02 Aug 2016 19:16:44 AEST