目标: 根据 openocean (保留对其他渠道商的接入能力)提供的API,设计一个 Swap 模块的核心功能以及对应API
流程图:
https://excalidraw.com/#json=K2IMPmwLwOFgK5MWUIiKu,MQ_STN1TtLQkDYmY9I_rWg
GET /api/v1/chains
: 只使用 openocean supported chain 支持的 EVM chain
Response:
{
data: [
{
name: 'Ethereum',
code: 'eth',
id: 1,
address: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE'
},
...others
]
}
可以作为 常量 写在code里作为返回值, 或者存在数据库中
GET /api/v1/{chain}/tokens
因为渠道商支持的token信息比较多,为了提高服务质量,我们需要:
具体方案:
db查询: 查询一个chain上支持的token
API 返回:
{
data: [
{
"logo": "xxxxx",
"address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"name": "USDC",
"symbol": "USDC",
"decimals": 6,
},
....
]
}
GET /api/v1/{chain}/swap