Web3js

使用元遮罩連接 web3 v 1.2.1 的問題:未定義的“currentProvider”

  • August 13, 2019

我正在使用帶有nodejs v10的****Web3 v1.2.1並遵循此連結。我在連接元遮罩時遇到問題,下面是我的程式碼片段:

const Web3 =  require('web3')  
const window = require('window');
const web3 = new Web3(window.Web3.currentProvider);

錯誤說 TypeError: Cannot read property ‘currentProvider’ of undefined

我想從 metamask 訪問地址,有人可以幫我嗎

Metamask 是一個瀏覽器擴展,因此您只能在瀏覽器中使用它。

您可以通過以下方式執行此操作:

創建一個文件 web3-require.js:

Web3=require('web3');

安裝 web3 和 browserify

npm install web3
npm install browserify

創建 web3 的瀏覽器版本:

browserify web3-require.js -o web3-browserify.js 

創建 test.html:

Test metamask
<script src="./web3-browserify.js"></script>
<script type="text/javascript">
   web3 = new Web3(Web3.givenProvider);    
   ethereum.enable().then ( (x) => {
       alert(`Found address ${x[0]} with web3.js version ${web3.version}`); 
   } );
</script>   

從網路伺服器執行它(否則元遮罩不會插入“乙太坊”)

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