如何在 JavaScript 中构建查询和数据模型以显示来自各种来源的匹配数据?

Posted

技术标签:

【中文标题】如何在 JavaScript 中构建查询和数据模型以显示来自各种来源的匹配数据?【英文标题】:How to structure queries and a data model in JavaScript to show matching data from various sources? 【发布时间】:2022-01-22 11:09:03 【问题描述】:

我正在开发一个 POC,以从各种流动性池(配对代币,即来自各种交易所的 WEI/USDT)中提取数据。

在尝试创建类似于 here 所见的 DAI 图表:

我正在尝试在 javascript 中提出一个查询和数据模型来包含这些数据。

给定的将是“DAI”。首先使用 DAI 池(任何包含“DAI”的池对)获取 Uniswap 结果。然后从 SushiSwap 中获取匹配“WETH”的结果列表。由于这两个来源可能不会有所有匹配的池,因此在内存中使用这两个列表,创建一个包含所有匹配项的列表,即 USDT/WETH(在上图中以绿色匹配)。

我最初打算创建一个关联数组,其中包含要匹配的标记列表:

poolList["Uniswap"] =  collection of pool objects 
poolList["Sushiswap"] =  collection of pool objects 

收集数据的样子


  "data": 
    "pools": [
      
        "token0": 
          "id": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
          "name": "Wrapped Ether",
          "symbol": "WETH"
        ,
        "token1": 
          "id": "0xd1063ee5ec2891991a29fefb52bcc448cd386844",
          "name": "BanDogge Mastiff",
          "symbol": "DOGGE"
        
      ,
      
        "token0": 
          "id": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
          "name": "Wrapped Ether",
          "symbol": "WETH"
        ,

如何存储来自各种交易所的数据,以便存在常见对的过滤器列表,或者创建某种二维数组来反映上面图表的显示方式?

【问题讨论】:

问题是什么? 【参考方案1】:

我从底层开始研究这个问题:这是什么类型的数据问题?

在解决这个问题时,我能够通过对我的问题What can be used to identify the source collection for common elements from n-number of collections? 的建议答复进行工作,并提出了一个以可行格式呈现数据的解决方案:

但是,该表并未准确反映最初的问题, (index) 代表矿池名称或代币对,即 USDT/ETH。后续列表示包含这些代币对或流动性池的交易所及其属性。

为了维护原始问题的上下文并帮助其他人,可以找到完整的代码解决方案here。

【讨论】:

以上是关于如何在 JavaScript 中构建查询和数据模型以显示来自各种来源的匹配数据?的主要内容,如果未能解决你的问题,请参考以下文章

构建数据库、codeigniter 模型和 javascript 调用以优化速度和效率

如何在 Laravel Eloquent 中构建具有多级关系的查询

是否有必要在 laravel 中为数据库操作创建模型(用于查询构建器)?

Laravel 雄辩与查询构建器的优缺点

如何使用 Javascript 构建查询字符串

如何查询具有不同属性的模型