Web3js

如何為多邊形主網設置提供者?

  • April 12, 2022

如果我安裝了元遮罩,我的程式碼可以工作,但如果沒有安裝,我會收到此錯誤:

chovy, [12/12/21 10:58 AM]
Uncaught (in promise) Error: Provider not set or invalid
   at Object.InvalidProvider (web3-core-helpers.js:2)
   at r.c.send (web3-core-requestmanager.js:2)
   at k (web3-core-method.js:2)
   at n (web3-core-method.js:2)
   at Object.l._executeMethod (web3-eth-contract.js:2)
   at HTMLElement.getTotal (tip-me.js:92)
   at HTMLElement.connectedCallback (tip-me.js:256)

如果我理解正確,我應該能夠在沒有安裝元遮罩的情況下查詢契約……

這是導致錯誤的程式碼:

 async getTotal() {
   const web3 = new Web3(window.ethereum);
   const NameContract = new web3.eth.Contract(this.abi, this.contractAddr);
   this.totals = {
     amount: Number(web3.utils.fromWei((await NameContract.methods.getTotalValueProcessed().call()), 'ether')).toFixed(8),
     fees: Number(web3.utils.fromWei((await  NameContract.methods.getFees().call()), 'ether')).toFixed(8),
     released: Number(web3.utils.fromWei((await NameContract.methods.getReleased().call()), 'ether')).toFixed(8)
   };

   console.log('total: ', this.totals);

   await this.render();
 }

不,如果沒有 Metamask,它將無法工作。

視窗.ethereum

正在嘗試獲取 Metamask 在您的瀏覽器中註入的對象。如果您希望它在沒有元遮罩的情況下工作,您將需要像 Infura 或 Alchemy 這樣的提供程序。

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