Web3js
如何為多邊形主網設置提供者?
如果我安裝了元遮罩,我的程式碼可以工作,但如果沒有安裝,我會收到此錯誤:
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 這樣的提供程序。