我正在使用Ethers.js成功地从BSC获得令牌价格,使用getReserves。
const nodeRandom = !node ? wssNodes() : node;
const provider = new ethers.providers.WebSocketProvider(nodeRandom);
const pairAddress = await pancake.getPair(token0, token1);
if (pairAddress === "0x0000000000000000000000000000000000000000") {
return {
status: "Pair not found",
};
}
const pairContract = new ethers.Contract(pairAddress, pancakePair, provider);
const reserves = await pairContract.getReserves();我想为这个标记创建一个价格图表,但是当我不知道如何从BSC获得历史价格数据时,我就陷入了麻烦。
Ethers.js支持获取令牌价格历史记录,还是应该将获取的价格存储到数据库中?如果是这样的话,当我们的DB中没有令牌时,我们是否可以从第一个块的一开始就构建令牌的价格图表呢?
有什么想法吗?
发布于 2022-02-12 12:40:01
您可以使用blockTag字段的overrides对象- 文档。它查询节点以从特定块返回值,而不是从当前块返回值。
const reserves = await pairContract.getReserves({
blockTag: <blockNumer>
});注意,它取决于节点提供程序是否支持这些历史查询。大多数提供商只在更高层次的计划中支持它,或者根本不支持。
https://stackoverflow.com/questions/71089523
复制相似问题