экспорт 'utils' (импортированный как 'utils') не был найден в 'ethers'
Я пытаюсь создать веб-приложение, которое может взаимодействовать с блокчейном, я использую брауни в качестве основы прочности и реагирую. Я установил useDapp для подключения к своему кошельку. но при первом простом использовании я получил эту ошибку:
Собран с проблемами:
ОШИБКА в ./node_modules/@usedapp/core/dist/esm/src/abi/multicall/constants.js 3:29–44
экспорт утилит (импортированных как утилиты) не найден в эфирах (возможные экспорты: AbiCoder, AbstractProvider, AbstractSigner, AlchemyProvider, AnkrProvider, BaseContract, BaseWallet, Block, BrowserProvider, CloudflareProvider, ConstructorFragment, Contract, ContractEventPayload, ContractFactory, ContractTransactionReceipt, ContractTransactionResponse, EnsResolver, ErrorFragment, EtherSymbol, EtherscanProvider, EventFragment, EventLog, FallbackProvider, FeeData, FetchCancelSignal, FetchRequest, FetchResponse, FixedNumber, Fragment, FunctionFragment, HDNodeVoidWallet, HDNodeWallet, Indexed, InfuraProvider, Interface, IpcSocketProvider, JsonRpcApiProvider, JsonRpcApiProvider, JsonRpcApiProvider, JsonRpcApiProvider, JsonRpcApiProvider, JsonRpcApiProvider LangEn, Log, LogDescription, MaxInt256, MaxUint256, MessagePrefix, MinInt256, Мнемоника, N, Сеть, NonceManager, ParamType, PocketProvider,QuickNodeProvider, Result, Signature, SigningKey, SocketProvider, Transaction, TransactionDescription, TransactionReceipt, TransactionResponse, TypedDataEncoder, Utf8ErrorFuncs, VoidSigner, Wallet, WebSocketProvider, WeiPerEther, Wordlist, WordlistOwl, WordlistOwlA, ZeroAddress, ZeroHash, accessListify, assert, assertArgument, assertArgumentCount, assertNormalize, assertPrivate, checkResultErrors, computeAddress, computeHmac, concat, dataLength, dataSlice, decodeBase58, decodeBase64, decodeBytes32String, decodeRlp, decryptCrowdsaleJson, decryptKeystoreJson, decryptKeystoreJsonSync, defaultPath, defineProperties, dnsEncode, encodeBase58, encodeBase64, encodeBytes32String, encodeRlp, encryptKeystoreJson, encryptKeystoreJsonSync, ensNormalize, эфиры, formatEther, formatUnits, fromTwos, getAccountPath, getAddress, getBigInt, getBytes,getBytesCopy, getCreate2Address, getCreateAddress, getDefaultProvider, getIcapAddress, getNumber, getUint, hashMessage, hexlify, id, isAddress, isAddressable, isBytesLike, isCallException, isCrowdsaleJson, isError, isHexString, isKeystoreJson, isValidName, keccak256, lock, makeError, mask, namehash, parseEther, parseUnits, pbkdf2, randomBytes, recoverAddress, resolveAddress, ripemd160, scrypt, scryptSync, sha256, sha512, solidityPacked, solidityPackedKeccak256, solidityPackedSha256, stripZerosLeft, toBeArray, toBeHex, toBigInt, toNumber, toQuantity, toTwos, toUtf8Bytes, toUtf8CodePoints, toUtf8String, verifyMessage, version, нулепадбайтес, нулепадвалуе)isError, isHexString, isKeystoreJson, isValidName, keccak256, lock, makeError, mask, namehash, parseEther, parseUnits, pbkdf2, randomBytes, recoveryAddress, resolveAddress, ripemd160, scrypt, scryptSync, sha256, sha512, solidityPacked, solidityPackedKeccak256, solidityZarLeft, toBeeroPackedSha256, toBeHex, toBigInt, toNumber, toQuantity, toTwos, toUtf8Bytes, toUtf8CodePoints, toUtf8String, verifyMessage, version, zeroPadBytes, zeroPadValue)isError, isHexString, isKeystoreJson, isValidName, keccak256, lock, makeError, mask, namehash, parseEther, parseUnits, pbkdf2, randomBytes, recoveryAddress, resolveAddress, ripemd160, scrypt, scryptSync, sha256, sha512, solidityPacked, solidityPackedKeccak256, solidityZarLeft, toBeeroPackedSha256, toBeHex, toBigInt, toNumber, toQuantity, toTwos, toUtf8Bytes, toUtf8CodePoints, toUtf8String, verifyMessage, version, zeroPadBytes, zeroPadValue)verifyMessage, версия, ZeroPadBytes, ZeroPadValue)verifyMessage, версия, ZeroPadBytes, ZeroPadValue)
ОШИБКА в ./node_modules/@usedapp/core/dist/esm/src/abi/multicall2/constants.js 3:29–44
экспорт утилит (импортированных как утилиты) не найден в эфирах (возможные экспорты: AbiCoder, AbstractProvider, AbstractSigner, AlchemyProvider, AnkrProvider, BaseContract, BaseWallet, Block, BrowserProvider, CloudflareProvider, ConstructorFragment, Contract, ContractEventPayload, ContractFactory, ContractTransactionReceipt, ContractTransactionResponse, EnsResolver, ErrorFragment, EtherSymbol, EtherscanProvider, EventFragment, EventLog, FallbackProvider, FeeData, FetchCancelSignal, FetchRequest, FetchResponse, FixedNumber, Fragment, FunctionFragment, HDNodeVoidWallet, HDNodeWallet, Indexed, InfuraProvider, Interface, IpcSocketProvider, JsonRpcApiProvider, JsonRpcApiProvider, JsonRpcApiProvider, JsonRpcApiProvider, JsonRpcApiProvider, JsonRpcApiProvider LangEn, Log, LogDescription, MaxInt256, MaxUint256, MessagePrefix, MinInt256, Мнемоника, N, Сеть, NonceManager, ParamType, PocketProvider,QuickNodeProvider, Result, Signature, SigningKey, SocketProvider, Transaction, TransactionDescription, TransactionReceipt, TransactionResponse, TypedDataEncoder, Utf8ErrorFuncs, VoidSigner, Wallet, WebSocketProvider, WeiPerEther, Wordlist, WordlistOwl, WordlistOwlA, ZeroAddress, ZeroHash, accessListify, assert, assertArgument, assertArgumentCount, assertNormalize, assertPrivate, checkResultErrors, computeAddress, computeHmac, concat, dataLength, dataSlice, decodeBase58, decodeBase64, decodeBytes32String, decodeRlp, decryptCrowdsaleJson, decryptKeystoreJson, decryptKeystoreJsonSync, defaultPath, defineProperties, dnsEncode, encodeBase58, encodeBase64, encodeBytes32String, encodeRlp, encryptKeystoreJson, encryptKeystoreJsonSync, ensNormalize, эфиры, formatEther, formatUnits, fromTwos, getAccountPath, getAddress, getBigInt, getBytes,getBytesCopy, getCreate2Address, getCreateAddress, getDefaultProvider, getIcapAddress, getNumber, getUint, hashMessage, hexlify, id, isAddress, isAddressable, isBytesLike, isCallException, isCrowdsaleJson, isError, isHexString, isKeystoreJson, isValidName, keccak256, lock, makeError, mask, namehash, parseEther, parseUnits, pbkdf2, randomBytes, recoverAddress, resolveAddress, ripemd160, scrypt, scryptSync, sha256, sha512, solidityPacked, solidityPackedKeccak256, solidityPackedSha256, stripZerosLeft, toBeArray, toBeHex, toBigInt, toNumber, toQuantity, toTwos, toUtf8Bytes, toUtf8CodePoints, toUtf8String, verifyMessage, version, нулепадбайтес, нулепадвалуе)isError, isHexString, isKeystoreJson, isValidName, keccak256, lock, makeError, mask, namehash, parseEther, parseUnits, pbkdf2, randomBytes, recoveryAddress, resolveAddress, ripemd160, scrypt, scryptSync, sha256, sha512, solidityPacked, solidityPackedKeccak256, solidityZarLeft, toBeeroPackedSha256, toBeHex, toBigInt, toNumber, toQuantity, toTwos, toUtf8Bytes, toUtf8CodePoints, toUtf8String, verifyMessage, version, zeroPadBytes, zeroPadValue)isError, isHexString, isKeystoreJson, isValidName, keccak256, lock, makeError, mask, namehash, parseEther, parseUnits, pbkdf2, randomBytes, recoveryAddress, resolveAddress, ripemd160, scrypt, scryptSync, sha256, sha512, solidityPacked, solidityPackedKeccak256, solidityZarLeft, toBeeroPackedSha256, toBeHex, toBigInt, toNumber, toQuantity, toTwos, toUtf8Bytes, toUtf8CodePoints, toUtf8String, verifyMessage, version, zeroPadBytes, zeroPadValue)verifyMessage, версия, ZeroPadBytes, ZeroPadValue)verifyMessage, версия, ZeroPadBytes, ZeroPadValue)
ОШИБКА в ./node_modules/@usedapp/core/dist/esm/src/constants/abi/index.js 7:18-33
экспорт утилит (импортированных как утилиты) не найден в эфирах (возможные экспорты: AbiCoder, AbstractProvider, AbstractSigner, AlchemyProvider, AnkrProvider, BaseContract, BaseWallet, Block, BrowserProvider, CloudflareProvider, ConstructorFragment, Contract, ContractEventPayload, ContractFactory, ContractTransactionReceipt, ContractTransactionResponse, EnsResolver, ErrorFragment, EtherSymbol, EtherscanProvider, EventFragment, EventLog, FallbackProvider, FeeData, FetchCancelSignal, FetchRequest, FetchResponse, FixedNumber, Fragment, FunctionFragment, HDNodeVoidWallet, HDNodeWallet, Indexed, InfuraProvider, Interface, IpcSocketProvider, JsonRpcApiProvider, JsonRpcApiProvider, JsonRpcApiProvider, JsonRpcApiProvider, JsonRpcApiProvider, JsonRpcApiProvider LangEn, Log, LogDescription, MaxInt256, MaxUint256, MessagePrefix, MinInt256, Мнемоника, N, Сеть, NonceManager, ParamType, PocketProvider,QuickNodeProvider, Result, Signature, SigningKey, SocketProvider, Transaction, TransactionDescription, TransactionReceipt, TransactionResponse, TypedDataEncoder, Utf8ErrorFuncs, VoidSigner, Wallet, WebSocketProvider, WeiPerEther, Wordlist, WordlistOwl, WordlistOwlA, ZeroAddress, ZeroHash, accessListify, assert, assertArgument, assertArgumentCount, assertNormalize, assertPrivate, checkResultErrors, computeAddress, computeHmac, concat, dataLength, dataSlice, decodeBase58, decodeBase64, decodeBytes32String, decodeRlp, decryptCrowdsaleJson, decryptKeystoreJson, decryptKeystoreJsonSync, defaultPath, defineProperties, dnsEncode, encodeBase58, encodeBase64, encodeBytes32String, encodeRlp, encryptKeystoreJson, encryptKeystoreJsonSync, ensNormalize, эфиры, formatEther, formatUnits, fromTwos, getAccountPath, getAddress, getBigInt, getBytes,getBytesCopy, getCreate2Address, getCreateAddress, getDefaultProvider, getIcapAddress, getNumber, getUint, hashMessage, hexlify, id, isAddress, isAddressable, isBytesLike, isCallException, isCrowdsaleJson, isError, isHexString, isKeystoreJson, isValidName, keccak256, lock, makeError, mask, namehash, parseEther, parseUnits, pbkdf2, randomBytes, recoverAddress, resolveAddress, ripemd160, scrypt, scryptSync, sha256, sha512, solidityPacked, solidityPackedKeccak256, solidityPackedSha256, stripZerosLeft, toBeArray, toBeHex, toBigInt, toNumber, toQuantity, toTwos, toUtf8Bytes, toUtf8CodePoints, toUtf8String, verifyMessage, version, нулепадбайтес, нулепадвалуе)isError, isHexString, isKeystoreJson, isValidName, keccak256, lock, makeError, mask, namehash, parseEther, parseUnits, pbkdf2, randomBytes, recoveryAddress, resolveAddress, ripemd160, scrypt, scryptSync, sha256, sha512, solidityPacked, solidityPackedKeccak256, solidityZarLeft, toBeeroPackedSha256, toBeHex, toBigInt, toNumber, toQuantity, toTwos, toUtf8Bytes, toUtf8CodePoints, toUtf8String, verifyMessage, version, zeroPadBytes, zeroPadValue)isError, isHexString, isKeystoreJson, isValidName, keccak256, lock, makeError, mask, namehash, parseEther, parseUnits, pbkdf2, randomBytes, recoveryAddress, resolveAddress, ripemd160, scrypt, scryptSync, sha256, sha512, solidityPacked, solidityPackedKeccak256, solidityZarLeft, toBeeroPackedSha256, toBeHex, toBigInt, toNumber, toQuantity, toTwos, toUtf8Bytes, toUtf8CodePoints, toUtf8String, verifyMessage, version, zeroPadBytes, zeroPadValue)verifyMessage, версия, ZeroPadBytes, ZeroPadValue)verifyMessage, версия, ZeroPadBytes, ZeroPadValue)
ОШИБКА в ./node_modules/@usedapp/core/dist/esm/src/helpers/address.js 9:29-45
экспорт утилит (импортированных как утилиты) не найден в эфирах (возможные экспорты: AbiCoder, AbstractProvider, AbstractSigner, AlchemyProvider, AnkrProvider, BaseContract, BaseWallet, Block, BrowserProvider, CloudflareProvider, ConstructorFragment, Contract, ContractEventPayload, ContractFactory, ContractTransactionReceipt, ContractTransactionResponse, EnsResolver, ErrorFragment, EtherSymbol, EtherscanProvider, EventFragment, EventLog, FallbackProvider, FeeData, FetchCancelSignal, FetchRequest, FetchResponse, FixedNumber, Fragment, FunctionFragment, HDNodeVoidWallet, HDNodeWallet, Indexed, InfuraProvider, Interface, IpcSocketProvider, JsonRpcApiProvider, JsonRpcApiProvider, JsonRpcApiProvider, JsonRpcApiProvider, JsonRpcApiProvider, JsonRpcApiProvider LangEn, Log, LogDescription, MaxInt256, MaxUint256, MessagePrefix, MinInt256, Мнемоника, N, Сеть, NonceManager, ParamType, PocketProvider,QuickNodeProvider, Result, Signature, SigningKey, SocketProvider, Transaction, TransactionDescription, TransactionReceipt, TransactionResponse, TypedDataEncoder, Utf8ErrorFuncs, VoidSigner, Wallet, WebSocketProvider, WeiPerEther, Wordlist, WordlistOwl, WordlistOwlA, ZeroAddress, ZeroHash, accessListify, assert, assertArgument, assertArgumentCount, assertNormalize, assertPrivate, checkResultErrors, computeAddress, computeHmac, concat, dataLength, dataSlice, decodeBase58, decodeBase64, decodeBytes32String, decodeRlp, decryptCrowdsaleJson, decryptKeystoreJson, decryptKeystoreJsonSync, defaultPath, defineProperties, dnsEncode, encodeBase58, encodeBase64, encodeBytes32String, encodeRlp, encryptKeystoreJson, encryptKeystoreJsonSync, ensNormalize, эфиры, formatEther, formatUnits, fromTwos, getAccountPath, getAddress, getBigInt, getBytes,getBytesCopy, getCreate2Address, getCreateAddress, getDefaultProvider, getIcapAddress, getNumber, getUint, hashMessage, hexlify, id, isAddress, isAddressable, isBytesLike, isCallException, isCrowdsaleJson, isError, isHexString, isKeystoreJson, isValidName, keccak256, lock, makeError, mask, namehash, parseEther, parseUnits, pbkdf2, randomBytes, recoverAddress, resolveAddress, ripemd160, scrypt, scryptSync, sha256, sha512, solidityPacked, solidityPackedKeccak256, solidityPackedSha256, stripZerosLeft, toBeArray, toBeHex, toBigInt, toNumber, toQuantity, toTwos, toUtf8Bytes, toUtf8CodePoints, toUtf8String, verifyMessage, version, нулепадбайтес, нулепадвалуе)isError, isHexString, isKeystoreJson, isValidName, keccak256, lock, makeError, mask, namehash, parseEther, parseUnits, pbkdf2, randomBytes, recoveryAddress, resolveAddress, ripemd160, scrypt, scryptSync, sha256, sha512, solidityPacked, solidityPackedKeccak256, solidityZarLeft, toBeeroPackedSha256, toBeHex, toBigInt, toNumber, toQuantity, toTwos, toUtf8Bytes, toUtf8CodePoints, toUtf8String, verifyMessage, version, zeroPadBytes, zeroPadValue)isError, isHexString, isKeystoreJson, isValidName, keccak256, lock, makeError, mask, namehash, parseEther, parseUnits, pbkdf2, randomBytes, recoveryAddress, resolveAddress, ripemd160, scrypt, scryptSync, sha256, sha512, solidityPacked, solidityPackedKeccak256, solidityZarLeft, toBeeroPackedSha256, toBeHex, toBigInt, toNumber, toQuantity, toTwos, toUtf8Bytes, toUtf8CodePoints, toUtf8String, verifyMessage, version, zeroPadBytes, zeroPadValue)verifyMessage, версия, ZeroPadBytes, ZeroPadValue)verifyMessage, версия, ZeroPadBytes, ZeroPadValue)
вот мой файл App.tsx:
import React from 'react';
import logo from './logo.svg';
import './App.css';
import { DAppProvider, ChainId } from "@usedapp/core";
function App() {
return (
<DAppProvider config={{ supportedChains: [ChainId.Goerli] }}>
<div>
Hello!
</div>
</DAppProvider>
);
}
export default App;
пожалуйста, какие-либо предложения, чтобы исправить эту ошибку?
4 ответа
наконец, я понял проблему. Я удалил пакет «эфиры», а затем вручную установил версию 5.6.9 с помощью следующих команд:
$ yarn remove ethers
$ yarn add ethers@5.6.9
это сработало хорошо для меня
ethers.js перенесен с версии 5 на версию 6. Многие вещи из версии 5 больше не поддерживаются в версии 6, включая утилиты. https://docs.ethers.org/v6/migrating/
Ваша проблема имеет два решения:
- Понизьте версию ethers.js до «5.7.2». Если вы используете npm, выполните эту команду
npm i ethers@5.7.2
- Если вы решите использовать v6, используйте следующее:
ethers.formatEthers(value)
Вот и все... последнее решение для просмотра документации по миграции для ethers v6 работает. Понижение версии v5 вызвало у меня другие проблемы.
Итак, это сработало для меня:
- Исправление следования рекомендациям по переходу на версию 6 на docs.ethers.org https://docs.ethers.org/v6/migrating/#migrate-utils.
используйте последнюю версию "эфиров": "^6.6.4",
изменить расширение файла .js -> .mjs(Файл с расширением .mjs — это файл исходного кода JavaScript, который используется в качестве модуля ECMA (модуль ECMAScript) в приложениях Node.js.)https://docs.fileformat.com /веб/мджс/
менять скрипты
// импортирует старые:
import { ethers } from "ethers";
import { keccak256, toUtf8Bytes } from "ethers/lib/utils.js";
новый:
import { ethers, keccak256, toUtf8Bytes } from "ethers";
// getProvider старый:
function gp() {return new ethers.providers.JsonRpcProvider(endpoint);
}
новый:
function gp() {return new ethers.JsonRpcProvider(endpoint);}
Вероятно, вы используете эфиры v6.
Пытаться:
ethers.formatEther(value);
Документация здесь:ethers v6 #formatEther