Ethers.js 代币价格走势图
Ethers.js token price chart
我正在使用 Ethers.js 成功地使用 getReserves
从 BSC 获取代币价格。
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是否支持获取代币历史价格,或者我们应该将获取的价格存储到我们的数据库中吗?那么,当我们的数据库中没有代币时,是否有任何方法可以从第一个区块的最开始构建代币的价格图表?
有什么想法吗?
您可以使用 overrides
对象的 blockTag
字段 - docs。它向节点查询 return 来自特定块而不是当前块的值。
const reserves = await pairContract.getReserves({
blockTag: <blockNumer>
});
请注意,这取决于节点提供商是否支持这些历史查询。大多数提供商仅在更高级别的计划中支持或根本不支持它。
我正在使用 Ethers.js 成功地使用 getReserves
从 BSC 获取代币价格。
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是否支持获取代币历史价格,或者我们应该将获取的价格存储到我们的数据库中吗?那么,当我们的数据库中没有代币时,是否有任何方法可以从第一个区块的最开始构建代币的价格图表?
有什么想法吗?
您可以使用 overrides
对象的 blockTag
字段 - docs。它向节点查询 return 来自特定块而不是当前块的值。
const reserves = await pairContract.getReserves({
blockTag: <blockNumer>
});
请注意,这取决于节点提供商是否支持这些历史查询。大多数提供商仅在更高级别的计划中支持或根本不支持它。