我正在尝试使用ethers导入合同。我收到一个错误:
..\node_modules@ethersproject\abi\src.ts\interface.ts:100定义只读(此,“片段”,abi.map((片段)=〉{
我的源文件如下所示:
import { ethers } from 'ethers';
import IUniswapV3PoolABI from '@uniswap/v3-core/artifacts/contracts/interfaces/IUniswapV3Pool.sol/IUniswapV3Pool.json'
import env from 'dotenv'
env.config();
const poolAddress = '0x7109C674e52b14FCFb8A04ffe254f454f9C61C18'
const INFURA_URL_MAINNET = process.env.INFURA_URL_MAINNET
const provider = new ethers.providers.JsonRpcProvider(INFURA_URL_MAINNET);
const poolContract = new ethers.Contract(
poolAddress,
IUniswapV3PoolABI as any,
provider
)
这些是我在package.json中的依赖项
"dependencies": {
"@uniswap/sdk-core": "^3.0.1",
"@uniswap/v3-sdk": "^3.8.2",
"dotenv": "^16.0.0",
"ethers": "^5.1.4"
},
"devDependencies": {
"@ethersproject/experimental": "^5.4.0",
"@typechain/ethers-v5": "^7.0.0",
"@types/node": "^18.11.9",
"typechain": "^5.0.0",
"typescript": "^4.8.4"
}
**注意:**我也尝试过使用较新版本的软件包执行此操作,当我最初遇到错误时,我认为这可能是由于uniswap使用了旧版本的ABI文件,因此我从uniswap/interface
克隆了依赖版本
如何创建以太契约?
1条答案
按热度按时间qlvxas9a1#
原来Json比abi更重要,所以我需要调用json上的abi属性