哪些賬戶為 The DAO 的 extraBalance 賬戶做出了貢獻?
在 The DAO 眾籌階段的最後兩週購買 DAO 的任何人每 100 個 The DAO 代幣(DAO)支付超過 1 個乙太幣(ETH)。每 100 個 DAO 超過 1 ETH 的 ETH 數量儲存在 The DAO 的extraBalance賬戶中。extraBalance 賬戶的餘額現已轉入管理員的多重簽名錢包。
為 extraBalance 賬戶做出貢獻的賬戶可能有資格獲得超過為購買 The DAO 代幣支付的 1 ETH = 100 DAO 的部分的退款。
我如何找出哪些賬戶為 The DAO 的 extraBalance 賬戶做出了貢獻?
也可以看看:
概括
您可以在github.com/bokkypoobah/TheDAOData中找到為 Extra Balance 帳戶做出貢獻的帳戶列表:
- 製表符分隔值格式:CreatedTokenEventsWithNonZeroExtraBalance_v3.txt
- Excel 格式:CreatedTokenEventsWithNonZeroExtraBalance_v3.xlsx。使用文件-> 另存為。然後從您的電腦打開。
這已與將在退款過程中使用的Arachnid (
@NickJohnson
) extrabalance.json進行了核對。Arachnid 的結果與 Etherscan 中的結果有一些小的差異(手動檢查):
# Arachnid Etherscan Difference ------ ------------ ------------ ------------ 1 0.52441835 0.49946081 -0.02495753 2 0.72448254 0.49946081 -0.22502173 3 0.56221045 0.23076923 -0.33144122 4 0.74601404 0.13333333 -0.61268071 5 0.00944670 0.00944670 0.00000000 6 0.20000000 0.20000000 0.00000000 7 124.16187229 124.49331351 0.33144122 8 2.94313417 3.55581488 0.61268071 9 11.85088003 11.88919432 0.03831430 10 0.43567698 0.25000000 -0.18567698 11 99.85263732 100.00000000 0.14736268 12 5.74702074 5.99700000 0.24997926 ------ ------------ ------------ ------------ Total 247.75779361 247.75779361 0.00000000 ------ ------------ ------------ ------------
有關詳細資訊,請參閱github.com/bokkypoobah/TheDAOData/ExtraBalanceReconciliation.md報告。
如果您想了解有關退款流程的更多資訊,請參閱如何為我支付的超過 1 乙太幣到 100 The DAO 代幣的金額獲得退款。
細節
點擊extraBalance 非零內部交易,查看貢獻給extraBalance 賬戶的 DAO 購買交易列表。
- 排除塊#1848080的內部交易,因為這是將 extraBalance 賬戶餘額轉移到 DAO 主賬戶。
- 首次向 extraBalance 帳戶購買的 DAO 代幣是在 UTC 時間 2016 年 5 月 15 日上午 09:00:16 區塊#1,520,861。
- 最後一次向 extraBalance 帳戶購買的 DAO 代幣是在 UTC 時間 2016 年 5 月 28 日上午 8:59:47 區塊#1,599,205。
- 在 #1,520,861 和 #1,599,205 區塊之間購買的任何 DAO 代幣都會對 extraBalance 賬戶產生一些貢獻,因此有資格獲得超過 1 ETH = 100 DAO 的超額退款。
- 您可以在下面的數據文件中搜尋您的帳戶。只有在 #1,520,861 和 #1,599,205 塊之間創建的事件向 extraBalance 帳戶貢獻了非零金額。另請注意,有25 筆交易本應為 extraBalance 賬戶提供資金,但由於氣體不足而導致錯誤。
geth
檢索具有非零額外餘額貢獻的已創建令牌事件的腳本2016 年 7 月 25 日更新 - 下面的 v2 腳本現在考慮了
createTokenProxy()
發送交易的帳戶可能與 DAO 代幣的受益所有人不同的呼叫。感謝@Nick Johnson
您指出createTokenProxy()
通話和普通通話之間的區別。2016 年 8 月 5 日更新 - 下面的 v3 腳本現在考慮了電子錢包契約和用氣錯誤。
從github.com/bokkypoobah/TheDAOData/getTheDAOCreatedTokenEventsWithNonZeroExtraBalance_v3:
#!/bin/sh # ------------------------------------------------------------------------------ # Retrieve The DAO CreatedToken events with non-zero extraBalance amounts. # These events are from block 1520861 to 1599205 when the creation phase ended. # # Usage: # 1. Download this script to getTheDAOCreatedTokenEventsWithNonZeroExtraBalance . # 2. `chmod 700 getTheDAOCreatedTokenEventsWithNonZeroExtraBalance` # 3. Run `geth console` in a window. # 4. Then run this script `./getTheDAOCreatedTokenEventsWithNonZeroExtraBalance` # in a separate window. # # Enjoy. (c) BokkyPooBah 2016. The MIT licence. # ------------------------------------------------------------------------------ geth attach << EOF | egrep "Header|Data" var theDAOABIFragment = [{"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":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Transfer","type":"event"}]; var theDAOAddress = "0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413"; // Full non-zero extraBalance contributions var theDAOStartingBlock = 1520861; var theDAOEndingBlock = 1599205; // Test // var theDAOStartingBlock = 1520861; // var theDAOEndingBlock = 1520861; // Test - by proxy // var theDAOStartingBlock = 1599204; // var theDAOEndingBlock = 1599204; // Test - directly // var theDAOStartingBlock = 1521563; // var theDAOEndingBlock = 1521563; // Test - wallet contract // var theDAOStartingBlock = 1547894; // var theDAOEndingBlock = 1547895; // Test - Out of gas // var theDAOStartingBlock = 1594238; // var theDAOEndingBlock = 1594240; var theDAO = web3.eth.contract(theDAOABIFragment).at(theDAOAddress); var theDAOCreatedTokenEvent = theDAO.CreatedToken({}, {fromBlock: theDAOStartingBlock, toBlock: theDAOEndingBlock}); console.log("Header\tFrom\tTokenOwner\tCreatedBy\tBlockNumber\tTxHash\tTimestamp\tGMTDateTime\tAmount\tTheDAOAmount\textraBalanceAmount\tTheDAOTokens\tGasUsed\tGasPrice\tCost\tNonce\tError"); theDAOCreatedTokenEvent.watch(function(error, result){ var tx = eth.getTransaction(result.transactionHash); var txReceipt = eth.getTransactionReceipt(result.transactionHash); var gasUsed = txReceipt.gasUsed; var gasPrice = tx.gasPrice; var cost = gasUsed * gasPrice; var amount = tx.value; // console.log("Data amount: " + amount); var block = eth.getBlock(tx.blockNumber); var d = new Date(block.timestamp * 1000); var status = debug.traceTransaction(result.transactionHash); var extraBalanceAmount = 0; var tokenOwner = tx.from; var createdBy = "Owner"; var error = ""; status.structLogs.forEach(function(e) { if (e.op == "CALL") { var stack = e.stack; extraBalanceAmount = web3.toBigNumber("0x" + stack[stack.length-3]); // baac5300 = createTokenProxy(address) - https://www.4byte.directory/signatures/?bytes4_signature=0xbaac5300 if (stack[0].substring(56) == "baac5300") { tokenOwner = "0x" + stack[2].substring(24); createdBy = "Proxy"; } else if (stack[0].substring(56) == "b61d27f6") { amount = web3.toBigNumber("0x" + stack[stack.length-3]); } else if (stack[0].substring(56) == "00000966") { if (("0x" + stack[3].substring(24)) != tokenOwner) { tokenOwner = "0x" + stack[3].substring(24); createdBy = "Wallet Contract"; } } } if (e.error.length > 0) { error = e.error; } }); var theDAOAmount = amount - extraBalanceAmount; var theDAOTokens = theDAOAmount * 100; console.log("Data\t" + tx.from + "\t" + tokenOwner + "\t" + createdBy + "\t" + tx.blockNumber + "\t" + tx.hash + "\t" + block.timestamp + "\t" + d.toGMTString() + "\t" + web3.fromWei(amount, "ether") + "\t" + web3.fromWei(theDAOAmount, "ether") + "\t" + web3.fromWei(extraBalanceAmount, "ether") + "\t" + web3.fromWei(theDAOTokens, "ether") + "\t" + gasUsed + "\t" + gasPrice + "\t" + web3.fromWei(cost, "ether") + "\t" + tx.nonce + "\t" + error); }); EOF
數據檢索
geth
者 - 創建具有非零額外餘額貢獻的代幣事件流入 extraBalance 賬戶的總金額為 344,917.579923467 ETH。與格林威治標準時間 2016 年 7 月 8 日下午 03:41:06在此內部交易中提取到 DAO 的 344,907.73799008 ETH 的金額相比,該金額存在約 10 ETH 的微小差異。
以下是來自github.com/bokkypoobah/TheDAOData的數據:
- 製表符分隔值格式:CreatedTokenEventsWithNonZeroExtraBalance_v3.txt
- Excel 格式:CreatedTokenEventsWithNonZeroExtraBalance_v3.xlsx。使用文件-> 另存為。然後從您的電腦打開。
樣本數據
Header From TokenOwner CreatedBy BlockNumber TxHash Timestamp GMTDateTime Amount TheDAOAmount extraBalanceAmount TheDAOTokens GasUsed GasPrice Cost Nonce Error Data 0x32be343b94f860124dc4fee278fdcbd38c102d88 0xbad9ab5fd55aff4a8aec47166e1a2894d68cc473 Proxy 1520861 0xb989cba5fad84d78e305909bf97605dc35b3cb6caf0e32a2009c3a2dda876003 1463302816 Sun, 15 May 2016 09:00:16 GMT 134 127.61904761904762 6.380952380952380953 12761.904761904761 83139 30000000000 0.00249417 64340 Data 0x44d7bd707d831f1cb9ae9fd6d129d56d3040564b 0x44d7bd707d831f1cb9ae9fd6d129d56d3040564b Owner 1520866 0xf34ead2d5b1886e1b428082ff621aa2145e0f77b001011d1db99b15d356a26bf 1463302856 Sun, 15 May 2016 09:00:56 GMT 40 38.095238095238095 1.904761904761904762 3809.5238095238096 80960 21000000000 0.00170016 0 Data 0x7727b2afc5a6816452a455e65a6a7dd01d03af4b 0x7727b2afc5a6816452a455e65a6a7dd01d03af4b Owner 1520866 0xafee9c83d41dd151b970f8241e27796db2aceaaace73bf1ecdc2dcc0f53a288f 1463302856 Sun, 15 May 2016 09:00:56 GMT 1 0.9523809523809523 0.04761904761904762 95.23809523809522 50960 20000000000 0.0010192 5 Data 0x3c7b53f4fa75cd9499bd593c37d5b9872151058a 0x3c7b53f4fa75cd9499bd593c37d5b9872151058a Owner 1520870 0xaeca3a70346d726ac77ad598cc5e819acb644317a0bf33c81d2b6c3c8acdcc1a 1463302917 Sun, 15 May 2016 09:01:57 GMT 110 104.76190476190476 5.238095238095238096 10476.190476190475 80960 21000000000 0.00170016 5 Data 0xa8c8b89fd99a25b4a085dff3d967b47b10b37034 0xa8c8b89fd99a25b4a085dff3d967b47b10b37034 Owner 1520870 0xcc146aeea6d229dce6edd463c6d80fdd4e88af0a407ca6e9d72da31775eeb043 1463302917 Sun, 15 May 2016 09:01:57 GMT 0.01 0.009523809523809524 0.000476190476190477 0.9523809523809524 50960 20000000000 0.0010192 29