Transferí tokens DAO de una billetera Mist a otra dirección y obtuve este error:
Se encontraron los siguientes errores: [323] destino de salto no válido (PUSH1) 2
El TxHash es 0x368317115429c87184e9413e4777d7e986850cff339700ffe5f4a8e5db978af4
y el error [323] invalid jump destination (PUSH1) 2
se muestra en el VMTrace .
¿Por qué una simple transferencia de token de billetera Mist haría esto, y puedo volver a transferir de manera segura sin preocuparme por la ejecución futura de este primer intento (es decir, esta transacción está muerta para siempre)?
NOTA: Vi esto en ESE, pero no parecía hablar de mi situación: Error durante la ejecución del contrato de token .
Su transacción se canceló porque su token The DAO está bloqueado por la Propuesta n.º 17 por la que votó. Este bloqueo estará vigente hasta el martes 14 de junio a las 11:39:18 de 2016 (AEST), cuando venza el plazo de la Propuesta n.º 17.
Su gas máximo de 121000 (0.00242 éteres) se gastó debido a que se lanzó esta excepción.
P : ¿Por qué una simple transferencia de token de billetera Mist haría esto?
R : Este es el error que se genera cuando llamas a la transfer(address _to, uint256 _value)
función y arroja un error porque tus tokens están bloqueados.
P : ¿Y puedo volver a transferir de forma segura sin preocuparme por la ejecución futura de este primer intento (es decir, este txn está muerto para siempre)?
R : Puede volver a ejecutar su transacción de forma segura. Si lo hace antes de que se desbloqueen sus tokens DAO, solo gastará más gasolina ya que activará el mismo bloqueo, así que espere hasta que expire el bloqueo.
Desde EtherScan.io - 0x368317115429c87184e9413e4777d7e986850cff339700ffe5f4a8e5db978af4 , su cuenta es 0xc472806a7f4a0eba1f0142ccc62ac4373b785d3f.
He usado el theDAOVoter
script Perl de Github - BokkyPooBah/TheDAOVoter que se describe en ¿Cómo puedo enumerar las propuestas de DAO y votar desde la línea de comandos? para verificar el estado del token DAO para su cuenta. Tenga en cuenta que sus cantidades y preferencia de voto han sido enmascaradas:
user@Kumquat:~$ theDAOVoter --listaccounts --account=0xc472806a7f4a0eba1f0142ccc62ac4373b785d3f
# Account ETH DAO The DAO transfer blocked by OPEN proposal?
--- ------------------------------------------ --------------------------- -------------------------- ------------------------------------------
0 0xc472806a7f4a0eba1f0142ccc62ac4373b785d3f 1.111111111111111111 2.2222222222222222 #17 OPEN until Tue Jun 14 11:39:18 2016
--- ------------------------------------------ --------------------------- -------------------------- ------------------------------------------
1 Total 1.111111111111111111 2.2222222222222222
Y
user@Kumquat:$ theDAOVoter --listproposals --id=17 --account=0xc472806a7f4a0eba1f0142ccc62ac4373b785d3f --checkvotingstatus --checkpastvotes
====================================================================================================================================================================================================================
Proposal 17. OPEN until Tue Jun 14 11:39:18 2016
Votes Yea 49159666 (89.96%) Nay 5484074 (10.04%) Quorum 4.66% of 20%
Creator 0x6fc4d393bcebc69dbc8a6877e098babd19504e3b
Recipient 0xbb9bc244d798123fde783fcc1c72d3bb8c189413
Deposit 2 ETH
Amount 0 ETH
New curator N
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Raising the Proposal Deposit to 11 ETH
This Proposal will raise the deposit required to make a Proposal to The DAO from 2 ETH to 11 ETH.
An increase of the Proposal Deposit to **11 ETH** is expected to:
- decrease the number of poorly thought-out proposals.
- help avoid the confusion and concern that could be caused by hundreds of proposals that cannot be adequately assessed by DAO Token Holders.
- reduce the number of spam proposals and amount of proposal-graffiti on The DAO.
Moreover, the time spent on reviewing proposals by DAO Token Holders should be valued. Therefore, additional value will accrue to The DAO because of this Proposal from the proposal deposits that stay with
The DAO when proposals fail to reach quorum.
While an increase is necessary, **11 ETH is still within reach for small start-ups and individuals** that will want to offer services to The DAO.
[Join the conversation about this proposal on DAOhub.org](https://forum.daohub.org/t/raising-the-proposal-deposit-to-11-eth/4106)
![Graphic: decrease proposals, increase quality](https://ipfs.pics/ipfs/Qmcg2geJ2eCSMEBBSbP8Z56AZgg6mnfTHo56t4SBC74873)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# Account ETH DAO (Est)Gas Voting Status
--- ------------------------------------------ --------------------------- -------------------------- -------- -------------
0 0xc472806a7f4a0eba1f0142ccc62ac4373b785d3f 1.111111111111111111 2.2222222222222222 70925 Voted XXX
--- ------------------------------------------ --------------------------- -------------------------- -------- -------------
====================================================================================================================================================================================================================
Y a partir de los datos de la transacción 0xa9059cbb000000000000000000000000062e2cb3bdaeb58c79ff2dc43d37a5b99ce0cf1d000000000000000000000000000000000000000000000000002386f26fc10000
y el geth
comando web3.sha3('transfer(address,uint256)').substr(0,10)
resultante "0xa9059cbb"
, intentó ejecutar la transfer(address _to, uint256 _value)
función The DAO.
A continuación se muestra el código para esta función (de EtherScan.io - The DAO Contract Source ). El error es probablemente causado por la !isBlocked(msg.sender)
declaración.
function transfer(address _to, uint256 _value) returns (bool success) {
if (isFueled
&& now > closingTime
&& !isBlocked(msg.sender)
&& transferPaidOut(msg.sender, _to, _value)
&& super.transfer(_to, _value)) {
return true;
} else {
throw;
}
}
La isBlocked(msg.sender)
función tiene el siguiente código que verifica si su cuenta está registrada con una identificación de propuesta y, de ser así, ¿ha vencido la fecha límite de la propuesta?
function isBlocked(address _account) internal returns (bool) {
if (blocked[_account] == 0)
return false;
Proposal p = proposals[blocked[_account]];
if (now > p.votingDeadline) {
blocked[_account] = 0;
return false;
} else {
return true;
}
}
Cuando haya votado por cualquier propuesta, se colocará un bloqueo en su cuenta en relación con la identificación de la propuesta desde la que votó. Esta es una de las dos blocked[msg.sender] = _proposalID;
declaraciones en la vote()
siguiente función:
function vote(
uint _proposalID,
bool _supportsProposal
) onlyTokenholders noEther returns (uint _voteID) {
Proposal p = proposals[_proposalID];
if (p.votedYes[msg.sender]
|| p.votedNo[msg.sender]
|| now >= p.votingDeadline) {
throw;
}
if (_supportsProposal) {
p.yea += balances[msg.sender];
p.votedYes[msg.sender] = true;
} else {
p.nay += balances[msg.sender];
p.votedNo[msg.sender] = true;
}
if (blocked[msg.sender] == 0) {
blocked[msg.sender] = _proposalID;
} else if (p.votingDeadline > proposals[blocked[msg.sender]].votingDeadline) {
// this proposal's voting deadline is further into the future than
// the proposal that blocks the sender so make it the blocker
blocked[msg.sender] = _proposalID;
}
Voted(_proposalID, _supportsProposal, msg.sender);
}
Bill La Prise
privacidadisahumanright.eth
theDAOVoter
comando CLI que se usageth
en github.com/bokkypoobah/TheDAOVoter . Feliz de recibir comentarios si encuentra algún problema con él. De forma predeterminada, procesará todas sus cuentas en el almacén degeth
claves.Bill La Prise