Ton*_*ony 1 blockchain ethereum ethers.js
我在 transactionContext.jsx 文件中是这样的,
import React, {useState, useEffect} from 'react';
import {BrowserProvider,ethers} from "ethers";
import { contractABI, contractAddr } from '../utils/constants';
const {ethereum} = window;
export const TransactionContext = React.createContext();
const getEthereumContract = () => {
console.log("get contract start");
const provider = new ethers.providers.Web3Provider(ethereum);
console.log(provider);
const signer = provider.getSigner();
const transactionsContract = new ethers.Contract(contractAddr, contractABI,
signer);
console.log(provider,signer,transactionsContract);
};
// code ...
Run Code Online (Sandbox Code Playgroud)
我正在创建一个反应上下文,我将其传递给我的其他组件。但问题是,const provider = new ethers.providers.Web3Provider(ethereum);根本不起作用。就好像执行到这一行后就停止了。我知道这一点是因为“开始”日志正在打印,但仅此而已。没有错误,没有例外,它只是在那之后停止。我尝试在网上搜索,但没有找到与此相关的任何问题。那么这是怎么回事呢?我搞砸了什么?
请询问是否需要更多上下文或代码示例。
小智 9
是的,确实如此,ethers v6 现在有这个:
// v5
provider = new ethers.providers.Web3Provider(window.ethereum)
// v6:
provider = new ethers.BrowserProvider(window.ethereum)
Run Code Online (Sandbox Code Playgroud)
BrowserProvider 替换providers.Web3Provider
来源: https: //docs.ethers.org/v6/migrate/#migrate-contracts
| 归档时间: |
|
| 查看次数: |
1698 次 |
| 最近记录: |