无法使用 Uniswap SDK 在 node.js 中使用以太币连接到本地以太坊节点(主网)
Cannot Connect to local Ethereum node (Mainnet) using Ethers in node.js with Uniswap SDK
我在本地环境安装了Geth,并成功同步到ETH主网。我用来启动Geth的命令如下:
geth --ethash.dagdir F:\Ethereum\Ethash --datadir F:\Ethereum --http --graphql --http --http.corsdomain "*" --http.api personal,eth,net,web3
但是,当我尝试使用 ethers 提供商连接到这个本地以太坊节点时:
let provider = new ethers.providers.JsonRpcProvider();
然后尝试使用此提供程序通过 Uniswap SDK 获取配对信息:
var pair = await uniswap.Fetcher.fetchPairData(tokens.WETH, tokens.DAI, provider);
显示了以下错误消息:
(node:32252) UnhandledPromiseRejectionWarning: Error: call revert exception (method="getReserves()", errorArgs=null, errorName=null, errorSignature=null, reason=null, code=CALL_EXCEPTION, version=abi/5.4.0)
有人可以帮助告知它是否与 Geth Ethereum 节点的错误设置有关,或者与 uniswap SDK 错误使用 ethers 本地 ETH 节点提供商有关(当我使用 Infura 时,上述工作非常正常)端点)?
我找到了解决方案!
原来我的 Geth 以太坊节点没有完全同步,因此无论我通过 ethers 库进行什么 API 调用,它都会像以太坊链是空的一样。
我通过以下方式连接到我的 Geth 以太坊节点:
geth attach http://localhost:8545
然后 运行 命令:
eth.syncing
检查同步是否完成。如果完成,那么它将 return "false"。
我在本地环境安装了Geth,并成功同步到ETH主网。我用来启动Geth的命令如下:
geth --ethash.dagdir F:\Ethereum\Ethash --datadir F:\Ethereum --http --graphql --http --http.corsdomain "*" --http.api personal,eth,net,web3
但是,当我尝试使用 ethers 提供商连接到这个本地以太坊节点时:
let provider = new ethers.providers.JsonRpcProvider();
然后尝试使用此提供程序通过 Uniswap SDK 获取配对信息:
var pair = await uniswap.Fetcher.fetchPairData(tokens.WETH, tokens.DAI, provider);
显示了以下错误消息:
(node:32252) UnhandledPromiseRejectionWarning: Error: call revert exception (method="getReserves()", errorArgs=null, errorName=null, errorSignature=null, reason=null, code=CALL_EXCEPTION, version=abi/5.4.0)
有人可以帮助告知它是否与 Geth Ethereum 节点的错误设置有关,或者与 uniswap SDK 错误使用 ethers 本地 ETH 节点提供商有关(当我使用 Infura 时,上述工作非常正常)端点)?
我找到了解决方案!
原来我的 Geth 以太坊节点没有完全同步,因此无论我通过 ethers 库进行什么 API 调用,它都会像以太坊链是空的一样。
我通过以下方式连接到我的 Geth 以太坊节点:
geth attach http://localhost:8545
然后 运行 命令:
eth.syncing
检查同步是否完成。如果完成,那么它将 return "false"。