bsc20 token 实时买入/卖出价

如何通过web3的方法获得bsc20 token 实时买入/卖出价?

目前能通过合约中的getReserves()方法得到amount0,amount1然后计算,但我想得到的是类似于下图的价格:

img

eg:
from addr to token_addr 1BNB
from token_addr to addr 400USDT
addr_1卖出1 BNB 此时BNB的价格为400U

from addr to token_addr 500U
from token_addr to addr 1BNB
addr_1买入1 BNB 此时BNB的价格为500U

想要获得上面这种数据,是需要通过web3调用合约的某个方法,还是通过监听合约的topic log获得,或是其它的方法,希望能有个具体的思路

监听合约的topic log获得,或查询该合约交易记录

web3 是一种去中心化的方式 目前你想要的答案只能去官网看看 参考:https://learnblockchain.cn/docs/web3.js/glossary.html


var Web3 = require('web3');
var request = require("request");
console.log(Web3.version);
var web3 = new Web3("https://mainnet.infura.io");
var abi = require("./rnt.json");
var address = "0xff603f43946a3a28df5e6a73172555d8c8b02386";
var contract = new web3.eth.Contract(abi,address); //合约实例
//查询合约名称
contract.methods.name().call().then(
        function(result){
            console.log(result);
        }
    );
//查询某一地址交易记录
contract.getPastEvents('Transfer', {
    filter: {_from: '0x6cc5f688a315f3dc28a7781717a9a798a59fda7b'},
    fromBlock: 230813,
    toBlock: 'latest'
}, (error, events) => { console.log(events); });

通过web3调用API返回的数据可以计算出来

读取网页可以获取