Go-Ethereum
dapp 的“錯誤:無效地址”,適用於 geth (Ganache)
我有一個在函式中創建另一個契約的契約。我正在使用 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 $$*裡面的說法。