kan inte komma åt ethers.js-leverantörer när man använder import-satsen i TypeScript
Jag kör TypeScript med ts-node och försöker använda ethers.js-provider:
import { ethers } from "ethers";
const provider = new ethers.providers.JsonRpcProvider(url);
det får följande fel:
TSError: ⨯ Kan inte kompilera TypeScript: - fel TS2339: Egenskapen 'providers' finns inte på typen 'typeof import
Koden fungerar med:
const ethers = require("ethers");
men jag behöver es6-format för att köra skriptet eftersom min andra modul körs på es6, annars måste jag konvertera alla andra beroenden till att använda "require"-satsen, vilket är för mycket.
ethers.js-dokumentationen säger att det kan köras på es6. Är det för att jag använder ts-node?
Svar #1
enligt detta ethers.js stängda problem är detta fixat av
utför :
const provider = new ethers.JsonRpcProvider();
istället
Svar #2
FreeCodeCamp Solidity-kursutvecklare
I Ethers v6 ersattes ethers.provider* med ethers.*:
Förutom att alla ethers.providers.* har flyttats till ethers.*, är den största förändringen som utvecklare behöver ha i åtanke att Web3Provider (som historiskt användes för att omsluta link-web3-leverantörer) nu kallas BrowserProvider och är utformad för att omsluta EIP-1193-leverantörer, vilket är standarden som både modern Web3.js och inbäddade leverantörer erbjuder.
Här är GitHub-ärendet som frågar om detta: https://github.com/ethers-io/ethers.js/issues/3794
Här är länken till migrationsguiden: https://docs.ethers.org/v6/migrating/#migrate-providers
