Cualquiera que haya comprado DAO en las últimas dos semanas de la fase de financiación colectiva de The DAO pagó más de 1 ether (ETH) por cada 100 tokens de The DAO (DAO). La cantidad de ETH superior a 1 ETH por cada 100 DAO se almacenó en la cuenta extraBalance de la DAO. El saldo de la cuenta extraBalance ahora se ha transferido a la billetera multisig del curador.
Las cuentas que contribuyeron a la cuenta extraBalance pueden ser elegibles para un reembolso por la parte que exceda los 1 ETH = 100 DAO pagados para comprar tokens The DAO.
¿Cómo averiguo qué cuentas contribuyeron a la cuenta extraBalance de la DAO?
Ver también:
Puede encontrar la lista de cuentas que contribuyeron a la cuenta Saldo adicional en github.com/bokkypoobah/TheDAOData :
Esto se concilió con el extrabalance.json de Arachnid ( @NickJohnson
) que se usará en el proceso de reembolso .
Los resultados de Arachnid tienen algunas pequeñas diferencias con los resultados de Etherscan (verificación manual):
# 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
------ ------------ ------------ ------------
Para obtener más información, consulte el informe github.com/bokkypoobah/TheDAOData/ExtraBalanceReconciliation.md .
Consulte ¿Cómo obtengo un reembolso por el monto que pagué en exceso de 1 éter a 100 tokens DAO si desea obtener más información sobre el proceso de reembolso?
Haga clic en la transacción interna distinta de cero de extraBalance para ver la lista de transacciones de compra de DAO que contribuyeron a la cuenta de extraBalance .
geth
Script para recuperar eventos de token creados con contribución de saldo adicional distinta de ceroACTUALIZACIÓN 25 de julio de 2016: la secuencia de comandos v2 a continuación ahora tiene en cuenta las createTokenProxy()
llamadas en las que la cuenta que envía la transacción puede ser diferente al propietario beneficiario de los tokens DAO. Gracias @Nick Johnson
por señalar la diferencia entre las createTokenProxy()
llamadas y las normales.
ACTUALIZACIÓN 5 de agosto de 2016: la secuencia de comandos v3 a continuación ahora tiene en cuenta los contratos de billetera y los errores de falta de combustible.
Desde 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
: eventos de token creados con una contribución de saldo adicional distinta de ceroLa suma del monto que ingresa a la cuenta extraBalance es 344,917.579923467 ETH. Hay una pequeña discrepancia de ~ 10 ETH en este monto en comparación con el monto retirado en The DAO de 344,907.73799008 ETH en esta transacción interna el 8 de julio de 2016 03:41:06 p. m. GMT.
Aquí están los datos de github.com/bokkypoobah/TheDAOData en:
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
Compré con tokens DAO en las últimas dos semanas de la fase de creación, y después de verificar mi dirección con las que están dentro de extrabalance.json, aparece cuando lo busco. Sin embargo, cuando configuro el contrato inteligente en mi billetera ethereum para retirar el saldo extra, hay 0ETH para retirar. Por favor, ¿podría arrojar algo de luz sobre esto?
Saludos RuthlessAmmo
nick johnson
privacidadisahumanright.eth
privacidadisahumanright.eth
privacidadisahumanright.eth
privacidadisahumanright.eth
nick johnson