Ungültiger Sprungzielfehler beim Versuch, The DAO-Token zu übertragen

Ich habe DAO-Token von einer Mist-Wallet an eine andere Adresse übertragen und diesen Fehler erhalten:

Folgende Fehler sind aufgetreten: [323] Ungültiges Sprungziel (PUSH1) 2

Der TxHash ist 0x368317115429c87184e9413e4777d7e986850cff339700ffe5f4a8e5db978af4und der Fehler [323] invalid jump destination (PUSH1) 2wird im VMTrace angezeigt .

Warum sollte eine einfache Mist-Wallet-Token-Übertragung dies tun, und kann ich sicher einfach erneut übertragen, ohne mir Gedanken über die zukünftige Ausführung dieses ersten Versuchs zu machen (d. h. ist diese Transaktion für immer tot)?

HINWEIS: Ich habe dies auf ESE gesehen, schien aber nicht zu meiner Situation zu passen: Error While Token Contract Execution .

Antworten (1)

Zusammenfassung

Ihre Transaktion wurde abgebrochen, weil Ihr DAO-Token durch den Vorschlag Nr. 17, über den Sie abgestimmt haben, gesperrt ist. Diese Sperrung gilt bis Di, 14. Juni 11:39:18 (AEST), wenn die Frist für Vorschlag Nr. 17 abläuft.

Ihr maximales Gas von 121000 (0,00242 Ether) wurde ausgegeben, weil diese Ausnahme ausgelöst wurde.

F : Warum sollte eine einfache Mist-Wallet-Token-Übertragung dies tun?

A : Dies ist der Fehler, der beim Aufrufen der transfer(address _to, uint256 _value)Funktion generiert wird und einen Fehler auslöst, weil Ihre Token blockiert sind.

F : Und kann ich ohne Sorge über die zukünftige Ausführung dieses ersten Versuchs einfach erneut übertragen (dh ist dieser TXN für immer tot)?

A : Sie können Ihre Transaktion sicher erneut ausführen. Wenn Sie dies tun, bevor Ihre The DAO-Token entsperrt sind, geben Sie einfach mehr Gas aus, da Sie denselben Block auslösen. Warten Sie also, bis der Block abläuft.



Einzelheiten

Von EtherScan.io - 0x368317115429c87184e9413e4777d7e986850cff339700ffe5f4a8e5db978af4 lautet Ihr Konto 0xc472806a7f4a0eba1f0142ccc62ac4373b785d3f.

Ich habe das theDAOVoterPerl-Skript von Github – BokkyPooBah/TheDAOVoter verwendet , das in Wie kann ich die DAO-Vorschläge auflisten und über die Befehlszeile abstimmen? um den DAO-Token-Status für Ihr Konto zu überprüfen. Beachten Sie, dass Ihre Beträge und Abstimmungspräferenzen maskiert wurden:

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

Und

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    
--- ------------------------------------------ --------------------------- -------------------------- -------- -------------
====================================================================================================================================================================================================================

Und anhand der Transaktionsdaten 0xa9059cbb000000000000000000000000062e2cb3bdaeb58c79ff2dc43d37a5b99ce0cf1d000000000000000000000000000000000000000000000000002386f26fc10000und des gethBefehls , der web3.sha3('transfer(address,uint256)').substr(0,10)zu führt , haben Sie versucht, die DAO-Funktion "0xa9059cbb"auszuführen .transfer(address _to, uint256 _value)

Der Code für diese Funktion folgt (von EtherScan.io - The DAO Contract Source ). Der Fehler wird wahrscheinlich durch die !isBlocked(msg.sender)Anweisung verursacht.

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;
    }
}

Die isBlocked(msg.sender)Funktion hat den folgenden Code, der prüft, ob Ihr Konto mit einer Vorschlags-ID registriert ist und wenn ja, ob die Vorschlagsfrist abgelaufen ist?

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;
    }
}

Wenn Sie für einen Vorschlag gestimmt haben, wird Ihr Konto in Bezug auf die Vorschlags-ID, für die Sie gestimmt haben, gesperrt. Dies ist eine der beiden blocked[msg.sender] = _proposalID;Anweisungen in der vote()folgenden Funktion:

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);
}
Na sicher. Habe den Überblick verloren, welche meiner Adressen für was gestimmt haben. Gibt es eine Schnittstelle (oder einen cli/geth-Befehl), um gesperrte Adressen anzuzeigen? Gerne neues Q posten, wenn das besser ist.
Sehen Sie sich den theDAOVoterCLI-Befehl an, der gethvon github.com/bokkypoobah/TheDAOVoter verwendet wird . Freue mich über Feedback, wenn Sie irgendwelche Probleme damit finden. Standardmäßig werden alle Ihre Konten im Schlüsselspeicher verarbeitet geth.
Das Skript funktioniert großartig, aber ich bemerke, dass die Nachricht isblocked nicht verschwindet, wenn ein Angebot abläuft (dh # 17 OPEN until Mo Jun 13 20:39:18 2016 wird immer noch angezeigt). Bedeutet das, dass ich immer noch blockiert bin, oder muss ich etwas tun, damit die abgelaufene Nachricht verschwindet?