使用以太坊錢包小狐貍踩過的坑

MetaMask是什么? 錢包! 是一款在瀏覽器(Chrome, Firefox)上使用的插件類型的以太坊錢包,當(dāng)我們通過web3.js與以太坊交互的時候,我們可以使用MetaMask(小狐貍)來實現(xiàn).記錄一下在使用小狐貍過程中踩過的坑...


Metamask.png
場景1:當(dāng)在remix編輯器界面產(chǎn)生交易的時候,出現(xiàn):
 transact to xxxx pending ...

可別癡傻地等著,抬頭看看小狐貍,有1個待處理的提示,點擊就可以看到交易了.

image.png

場景2:出現(xiàn)json-rpc錯誤的時候,要記得 setting-reset account
creation of Ballot errored: Internal JSON-RPC error.

導(dǎo)入了新的助記詞之后, 或者切換了環(huán)境(Main, Ropsten或者私鏈)之后, 一定要 Setting ----> Reset Account,避免不必要的麻煩.


場景3:
Transaction Error. Exception thrown in contract code

或者:

Error:MetaMask Tx Signatrue: User denied transaction signatrue

明明合約的代碼沒有問題,小狐貍卻彈出上面的錯誤!
解決辦法:小狐貍中 Setting ----> Reset Account, 若是 Setting ----> Reset Account 仍不成功, 重新打開一個網(wǎng)頁, 然后再切換一下網(wǎng)絡(luò)環(huán)境試試,比如Private和Ropsten進(jìn)行切換!!

場景4:在小狐貍上切換地址后,在remix編輯器界面上(Injected Web3環(huán)境)并沒有切換過來
image.png
image.png

切換地址的時候一定要在remix編輯器上看看有沒有真的切換過來,如果沒有的話, 手動點擊一下環(huán)境即可.如果還是不行,重啟Chrome

若是使用小狐貍和本地ganache配合, 那么在remix中使用Web3 Provider環(huán)境, 那就不會像用Injected Web3那樣每次都得手動切換賬號!!!


場景5:當(dāng)web3.js和以太坊交互的時候,console中出現(xiàn)下面的情況:
inpage.js:1 MetaMask - RPC Error: Internal JSON-RPC error. {code: -32603, message: "Internal JSON-RPC error."}

很明顯: Metamask沒有連上我們的本地區(qū)塊鏈網(wǎng)絡(luò),在小狐貍中連接一下本地區(qū)塊鏈網(wǎng)絡(luò)即可.

場景6:
ALERT: Transaction Error. Exception thrown in contract code.
image.png

出現(xiàn)這個情況是因為: 合約代碼中的require或其他條件觸發(fā)了. 點擊CONFIRM之后不會成功的,會報錯的. 如下示例:

inpage.js:1 MetaMask - RPC Error: Error: Error: [ethjs-rpc] rpc error with payload {"id":2557247165649,"jsonrpc":"2.0",
"params["0xf86f188504a817c800836170d4941d485090a1dbac56517b63158714056f047e17c40184119f87478602cdbcacfa0aa016d23c83051129c01c7377fabd5193cedf243af53e281845775a9fbcec311bb4a03f0de4432507584ab93e42d38d02bc68a74f2e81693f774e372b4ef81f92e859"],
"method":"eth_sendRawTransaction"} 
Error: VM Exception while processing transaction: revert err: 您還不是投資人  {code: -32603, message: "Error: Error: [ethjs-rpc] rpc error with payload {…rocessing transaction: revert err: 您還不是投資人 "}

場景7:部署到Ropsten網(wǎng)絡(luò)的時候,賬戶沒eth
Error encountered, bailing. Network state unknown. Review successful transactions manually.
insufficient funds for gas * price + value

報錯原因: 要么是小狐貍沒有切換到Ropsten, 要么是小狐貍的Ropsten賬戶沒錢,解決辦法是 給當(dāng)前賬戶來點錢, 或者退出小狐貍,重新登錄一個有錢的小狐貍賬號(使用助記詞登錄).

場景8:使用Truffle框架部署合約的時候, 在瀏覽器控制臺會報錯
Error: Contract has not been deployed to detected network (network/artifact mismatch)
    at contract.js:454

報錯原因是小狐貍沒有切換到對應(yīng)的網(wǎng)絡(luò)環(huán)境!!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容