Contract-Debugging

警告!合約執行過程中遇到的錯誤巴德__instruction乙一種d一世ns噸r在C噸一世這nBad instruction

  • February 14, 2018

我創建了一個智能合約來發行 ERC20 代幣,但是當我嘗試將代幣從一個地址發送到另一個地址時,我收到“警告!在合約執行期間遇到錯誤

$$ Bad instruction $$" etherscan.io 上的消息。令牌已創建並且契約已驗證。 此外,我可以從持有代幣的地址發送代幣,但是一旦我嘗試從接收方地址發送,我就會收到錯誤消息。

您可以在此處查看失敗的交易。

你的合約有錯誤

/* Internal transfer, only can be called by this contract */
   function _transfer(address _from, address _to, uint _value) internal {
       require (_to != 0x0);                               // Prevent transfer to 0x0 address. Use burn() instead
       require (balanceOf[_from] > _value);                // Check if the sender has enough
       require (balanceOf[_to] + _value > balanceOf[_to]); // Check for overflows
       balanceOf[_from] -= _value;                         // Subtract from the sender
       balanceOf[_to] += _value;                            // Add the same to the recipient
       Transfer(_from, _to, _value);
   }

它不允許轉移全部代幣,它必須嚴格減少。嘗試 11999,而不是 12000。

您必須將契約修改為

require (balanceOf[_from] >= _value);

引用自:https://ethereum.stackexchange.com/questions/28428