Metamask

使用純 JS/HTML 設置呼叫 Metamask

  • January 9, 2021

我是前端 Web3 的新手,我正在嘗試使用一個簡單的 SIGN 按鈕來呼叫元遮罩來簽署“消息”。我似乎無法讓它工作。我使用的是純 HTML/JS,沒有任何框架,如 React 等。

這段程式碼:

function sign(){
   window.web3 = new Web3(web3.currentProvider);
   console.log(web3.version);
   web3.eth.sign(("dinosaur"), owner, console.log);
}

返回:

錯誤:返回錯誤:無法簽署數據;沒有私鑰

這另一個嘗試:

function sign(){

   web3.eth.personal.sign('message to sign', owner)
   .then(signature => {
       // whatever
   });
}

返回:

未擷取(承諾)錯誤:返回錯誤:不支持方法personal_sign。

我在 Chrome 中使用 localhost ganache 和 metamask 連接到 ganache 並使用以下命令啟動 web3:

web3 = new Web3(new Web3.providers.HttpProvider(provider));

有任何想法嗎?

我遇到的問題是我使用 chrome 中的 file:// 提供 html 和 js 文件。Metamask 不支持這裡,所以我必須使用以下步驟安裝 HTTP 伺服器:

1> 在您的系統中安裝 Node.js。

2> 在 CMD 中,執行命令 npm install http-server -g

3> 在 CMD 中導航到您的文件夾的特定路徑並執行命令 http-server

4> 轉到您的瀏覽器並輸入 localhost:8080。您的應用程序應該在那裡執行。

在這個 Metamask 出現之後

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