0

使用node-binance-api包和方法,balance我得到一张地图,其中键是一个符号并重视我当前的余额。接下来,我想从 CoinGecko 获取一些信息。因此,首先我通过调用此端点https://www.coingecko.com/api/documentations/v3#/coins/get_coins_list来获取硬币列表,它返回给我一个带有字段的对象数组idsymbolname。现在我尝试使用 filter by 查找 coingecko 硬币 id symbol。但是,有些硬币具有相同的符号(ada、acm 等...)

{
    "id" : "ac-milan-fan-token",
    "symbol" : "acm",
    "name" : "AC Milan Fan Token",
}

{
    "id" : "actinium",
    "symbol" : "acm",
    "name" : "Actinium",
}

有什么方法可以区分它们吗?我的主要目标是对我拥有的所有交易所(binance、gate、metamask ..etc)拥有 1 个视图并显示正确的信息

4

1 回答 1

1

由于symbol不是数据集中的唯一标识符,因此您需要为每种货币创建一个唯一 ID。然后,您需要(手动或自动)将数据分配给当前 ID。

在您构建了一个唯一 ID 表以及每个交易所 ID 与货币 ID 的关系之后,您可以观察变化:删除不再有效的关系,添加新的有效关系,当然还要分配新的将货币添加到正确的 ID。

示例 - 您最终可能会得到如下列表:

货币

ID 象征 姓名
1 比特币 比特币
2 ACM AC米兰球迷令牌
3 ACM

交流

ID 姓名
1 币安
2 科因克科

兑换货币

身份证货币 身份证交换 笔记
1 1 币安上的比特币
1 2 Coingecko 上的比特币
2 2 Coingecko 上的 AC 米兰球迷令牌
3 1 币安上的锕
3 2 Coingecko 上的锕

您基本上需要做与 CoinMarketCap API 背后的团队所做的非常相似的事情。

  • /v1/cryptocurrency/map文档

    每种货币都有一个 CMC 范围内的唯一 ID。所以它们可以有多个具有相同符号的货币,但它们是由一个 ID 来区分的。

  • /v1/cryptocurrency/market-pairs/latest文档

    它们以“市场对 ID”的形式在您要创建的货币对交换关系之间建立了一个步骤。示例:“BTC/USD”对在所有交易所中始终具有 CMC 范围的 ID 1。

  • /v1/exchange/market-pairs/latest文档

    最后,每个交易所都与市场对 ID 相关。因此,如果交易所 ID 123 和交易所 ID 456 都有“BTC/USD”对,它们都与 ID 1 有关系。


这不是一件容易的事,它需要一些资源:手动标记,以及验证、微调和维护您的算法(因为输入数据结构不断变化)以自动保存来自所有不同来源的尽可能多的数据,并且错误更少可能的。

正如您在 CMC 示例中所见,它是可以实现的。但它确实需要比 StackOverflow 答案更高的范围,所以我希望这至少能让您大致了解为达到预期结果需要做什么。

于 2021-07-02T18:38:37.977 回答