Ethereum Wallet "The DAO" token watch widget muestra más token de lo que realmente tengo

Estoy usando Ethereum Wallet 0.7.3 en OSX el capitan. Cuando voy a la página central de DAO para verificar el saldo de mi token, aparece

Tokens DAO en propiedad: 3591.5

En Ethereum Wallet, el widget de token muestra 3701.5 tokens DAO.Captura de pantalla del widget de token DAO

Pero cuando voy a la vista de mi cuenta DAO en Ethereum Wallet, me muestra el recuento correcto de tokens (3591.5).

Captura de pantalla de la cuenta de Ethereum Wallet

Solo tengo dos cuentas cargadas en mi Ethereum Wallet, una con la que envié ETH al DAO y mi cuenta de minería. Verifiqué que la cuenta de minería no está asociada con ningún token DAO en la página del concentrador DAO . Entonces, todos los tokens que tengo y que deberían mostrarse en ese widget están asociados con la primera cuenta.

Utilicé un explorador de blockchain para verificar nuevamente la cantidad enviada (usando 3 tx) al DAO y es 35,915 ETH, por lo que 3591.5 tokens DAO es el conteo correcto.

¿Alguien experimenta esta cosa extraña? ¿Cómo explicar la diferencia?

Gracias.

Respuestas (4)

De hecho, la dirección DAO ahora posee 100 (¿110?) tokens. Esto probablemente se deba a que alguien usó el campo de datos al enviar una transacción para enviar los tokens a la dirección de la DAO.

Básicamente, hay una función destinada a los usuarios que desean enviar desde un intercambio. Como (con suerte) sabe, no puede enviar directamente desde un intercambio, ya que los tokens DAO se enviarán de vuelta a la dirección de envío que, en este caso, sería la billetera caliente de Kraken o Poloniex o de quien sea. No recibirías tus tokens.

Sin embargo, puede agregar algunos datos al campo de datos que dice "¡Oye, contrato! ¡No envíes los tokens a esta dirección! ¡Envíalos a esta dirección en su lugar!". El usuario puede ingresar cualquier dirección en este campo de datos, y parece que alguien ingresó la dirección del DAO en lugar de una dirección que controlan.

Puede haber sido un error o puede haber sido alguien que se preguntaba: "¿Qué pasaría si enviara tokens DAO al DAO? ¡LOL!"

La respuesta a la última pregunta: todos ahora están súper confundidos sobre por qué tienen más tokens DOA de los que pensaban. (¡JAJAJA!)

Entonces, supongo que el propietario del contrato DAO podría transferir estos tokens después de que finalice la financiación DAO y hacer que el saldo de la cuenta de todos vuelva a la normalidad. Les dejaría conservar estos tokens para su propio beneficio si restablecen el equilibrio correcto. ¿Cómo posee estas llaves?
No hay llaves. es un contrato Si bien el contrato tiene medidas para enviar ETH (proporcionar una propuesta aceptada, etc., etc.), no estoy seguro de si se podría interactuar con los tokens y cómo.
se pierden para siempre?

Si hace clic en Contratos -> "El DAO", debería mostrarle que "El DAO" tiene un saldo de fichas de 110 Ð.

Este saldo de token está asociado con la cuenta "The DAO" 0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413y Ethereum Wallet ha agregado esta cantidad a su saldo total.

3.591,5 + 110 = 3.701,5 .



No he podido encontrar una fuente definitiva que explique los tokens adicionales asociados con la 0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413cuenta, pero de https://forum.daohub.org/t/help-why-i-have-more-dao-than-i-actually -comprado/1560/2 :

Está todo correcto. Esos son sus tokens de 7.6k de cuentas y la dirección del contrato de token posee 100 tokens (alguien usó la función de proxy con 1 eth para hacer que el DAO se compre 100 tokens, no tengo idea de por qué). La pantalla principal de la dirección del contrato no mostrará sus tokens, mostrará los tokens de esa dirección. Pero cuando mire, verá la suma total de todas las cuentas que está rastreando, por lo tanto, 7.7k

Este 110 Ð era 100 Ð hace unos días. Alguien debe haber agregado otros 0.1 ETH por la función de proxy.



EDITAR 16/05/2016 - A raíz de la respuesta del miembro del equipo @tayvano.

Fichas asignadas a la dirección del remitente

Cuando envía ethers a TheDAO de la manera normal, la función predeterminada dentro del contrato DAO llamará a la createTokenProxy()función con la dirección del remitente .

// The DAO contract itself
contract DAO is DAOInterface, Token, TokenCreation {
    ...
    function () returns (bool success) {
        if (now < closingTime + creationGracePeriod && msg.sender != address(extraBalance))
            return createTokenProxy(msg.sender);
        else
            return receiveEther();
    }
    ...


Fichas asignadas a la dirección especificada

Si, en cambio, llama createTokenProxy()con una dirección que no sea la del remitente del mensaje, el token TheDAO se asignará a la dirección especificada .

Aquí está la TokenCreationInterfaceinterfaz con el comentario que explica cómo se puede especificar una dirección diferente como propietario del token:

contract TokenCreationInterface {
    ...
    /// @notice Create Token with `_tokenHolder` as the initial owner of the Token
    /// @param _tokenHolder The address of the Tokens's recipient
    /// @return Whether the token creation was successful
    function createTokenProxy(address _tokenHolder) returns (bool success);
    ...

Y aquí está la implementación de createTokenProxy(_tokenHolder)con la declaración balances[_tokenHolder] += token;:

contract TokenCreation is TokenCreationInterface, Token {
    ...
    function createTokenProxy(address _tokenHolder) returns (bool success) {
        if (now < closingTime && msg.value > 0
            && (privateCreation == 0 || privateCreation == msg.sender)) {

            uint token = (msg.value * 20) / divisor();
            extraBalance.call.value(msg.value - token)();
            balances[_tokenHolder] += token;
            totalSupply += token;
            ...
            return true;
        }
        throw;
    }
    ...

Como señaló @Tjaden, los datos adicionales que se envían con la transacción son una llamada a la función createTokenProxy()con la dirección de DAO que probablemente haya creado los 110 tokens adicionales.

Y todavía son 110 tokens. De The DAO - Creación :ingrese la descripción de la imagen aquí


Ejemplo de createTokenProxy()uso

Por casualidad, estaba viendo la siguiente transacción 0xfb2d580342988f20c9bd4b756555d6139f55ab2e5df2c5f99886c6195221faee en mi respuesta a ¿Cuál es la dirección y el saldo de la cuenta extraBalance de DAO ?ingrese la descripción de la imagen aquí

La transacción es de la billetera Poloniex e incluye los datos adicionales 0xbaac530000000000000000000000000003f59b7e25819a64fc2f7199e89457593fe3500d.

Ingresé el siguiente comando gethpara encontrar que los primeros 4 bytes de sha3()la función createTokenProxy()coinciden con la primera parte de los datos adicionales, que es cómo se llaman las funciones en las transacciones.

> web3.sha3('createTokenProxy(address)').substr(0, 10)
"0xbaac5300"

Poloniex utiliza esta llamada de función cuando las personas compran tokens DAO a través de la pantalla Poloniex - Create DAO Token .

Gracias. Me pregunto por qué alguien hizo eso y cuál será el uso de estas fichas... El dao es dueño de sí mismo, extraño.
Para ser claros, llamar a una función de un contrato son solo datos adicionales enviados con la transacción.

ingrese la descripción de la imagen aquí

TheDAO ahora posee 52174.8 tokens DAO.

Aquí hay una hoja de cálculo de todas las transacciones realizadas a The DAO. Sería interesante averiguar de dónde provienen estos tokens adicionales. EthSlurp - Datos descargables de Excel Blockchain
¿Hay alguna forma de volver a ponerlos en el circuito real, como venderlos para dar el éter para alguna caridad? De lo contrario, estas fichas se perderán de todos modos.
Esto es realmente un comentario, no una respuesta. Con un poco más de representante, podrá publicar comentarios .

Este error de IU se resolvió en la última versión de Mist (0.7.5). Si todavía ve este problema, actualice a la última versión.