Go-Ethereum

dapp 的“錯誤:無效地址”,適用於 geth (Ganache)

  • April 2, 2018

我有一個在函式中創建另一個契約的契約。我正在使用 Ganache 測試契約。使用 geth 呼叫此函式時,它工作正常。但是當使用我的 dapp(yeoman、gulp、bower 等)呼叫它時,它會通過瀏覽器控制台給我“錯誤:無效地址”。

我已將 dapp 中的邏輯複製並粘貼到 geth 中,它在 geth 上按預期工作,Ganache UI 顯示了交易。

以下是程式碼:

web3 = new Web3(new Web3.providers.HttpProvider("HTTP://127.0.0.1:7545"));

web3.eth.defaultAccount = web3.eth.accounts[0];

var myContract = web3.eth.contract([abi left out for readability]);    
var contractAddress = '0xae01c97dc970ad45f7be5d23ba72ae24640e90b1';
var contract = myContract.at(contractAddress);

function sendPurchaseTrade() {
   contract.makePurchaseTrade('0x427d25b7c0B71C1944df51765c55Bea1961e0a44', {value: 200000, gas: 3000000});
}

相應的 HTML 頁面有一個帶有onclick=“sendPurchaseTrade();“的按鈕 .

對合約的非狀態更改呼叫與 dapp 一起使用。

關於為什麼完全相同的程式碼可以在 geth 上執行但不能在我的 dapp 上執行的任何想法?

包含合約交易的函式必須有*web3.eth.default = web3.eth.accounts$$ 0 $$*裡面的說法。

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