@pontem/coins-registry
Version:
Liquidswap & Pontem Wallet coins & pools registry
149 lines (101 loc) • 5.63 kB
Markdown
<a name="readme-top"></a>
<!-- PROJECT SHIELDS -->
[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![MIT License][license-shield]][license-url]
# LiquidSwap & Pontem Wallet Coins & Pools Registry
We are developing our own Coin Registry file formats for [LiquidSwap](https://liquidswap.com) and [Pontem Wallet](https://pontemwallet.xyz/), which contains all the information about coins and pools in which coins can be exchanged.
Currently, we use these files for data:
- coins.json
- pools.json
- staking.json
And an [index.js](src/index.js) file for easier usage of coins-registry in other projects. Through the interface, it is easy to get tokens or pools lists for the selected chain type. It provides two methods: `getCoinsFor`, `getPoolsFor` and `getStakingPoolsFor`. Each of these methods requires the network type as an argument. Possible values for network types: `mainnet` and `testnet`.
<p align="right">(<a href="#readme-top">back to top</a>)</p>
## Coins Data Structure
There is a coins list in coins.json. One coin can be presented as follows:
```JSON
{
"source": "aptos",
"name": "Aptos Coin",
"chainId": 1,
"decimals": 8,
"symbol": "APT",
"symbol_with_bridge": "APT"
"type": "0x1::aptos_coin::AptosCoin",
"caution": false,
"order": 1,
"logo_url": "https://raw.githubusercontent.com/pontem-network/coins-registry/main/src/coins-logos/apt.svg"
}
```
### Fields Description
```source``` - enum data type with strict value check. If you’d like to add the new value into it, fill the form. Usually source is the name of a partner's company to add many coins into the list. We support now following sources:
* ```aptos``` - for the native Aptos Coin.
* ```partners``` - for other coins.
* ```celer``` - for coins provided by Celer.
* ```layerzero``` - for coins provided by Layer Zero.
* ```wormhole``` - for coins provided by Wormhole.
```name``` - coins' full name. We update this value by a request to the node. It is used on Picture 1 as a bottom string after the dot (on the picture it is Bitcoin).
```chainId``` - for mainnet value is 1. Currently, testnet coins stored in the ```testnet``` branch of this repo.
```decimals``` - how many decimals supports your coin. We update this value by a request to the node.
```symbol``` - it is used to construct a coin alias, which can be equal to symbol as on Picture 1 in the top string.
```symbol_with_bridge``` - if the token is not connected to any bridge, then the symbol is duplicated, otherwise prefixes are added to the symbol. For example: layerzero USDT - zUSDT, celer USDT - ceUSDT, wormhole USDT - USDT (without a prefix).
```type``` - full type of coin. String with following structure ADDRESS::MODULE::COIN, e.g. ```0x1000000fa32d122c18a6a31c009ce5e71674f22d06a581bb0a15575e6addadcc::usda::USDA```.
```caution``` - if we need to show warning icon near the coin - we will add the caution field.
```order``` - order of coin in coins list. Current logic:
```logo_url``` - absolute path to coin logo from githubusercontent and this repo
```
1 Apt
10 USDC
20 USDT
30 DAI
40 BTC
50 WETH
60 BUSD / BNB
1000 other coins
````
<p align="right">(<a href="#readme-top">back to top</a>)</p>
## Pools Data Structure
```JSON
{
"coinX": "0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDT",
"coinY": "0x1::aptos_coin::AptosCoin",
"curve": "unstable",
"networkId": 1
}
```
### Fields Description
```coinX``` - full type of coin. String with following structure ADDRESS::MODULE::COIN, e.g. ```0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDT```.
```coinY``` - full type of coin. String with following structure ADDRESS::MODULE::COIN, e.g. ```0x1::aptos_coin::AptosCoin```.
> ⚠️ Coins should be sorted.
```curve``` - to strictly point curve type use the following values:
* stable
* unstable
* selectable
<p align="right">(<a href="#readme-top">back to top</a>)</p>
## Contribution
You are welcome to fork the current repository and do a PR.
The current repository maintaining under MIT license.
<p align="right">(<a href="#readme-top">back to top</a>)</p>
## Tests
Check formatting with
```shell
yarn test
```
<p align="right">(<a href="#readme-top">back to top</a>)</p>
## License
Distributed under the MIT License. See [`LICENSE`](LICENSE) for more information.
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<!-- MARKDOWN LINKS & IMAGES -->
<!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->
[contributors-shield]: https://img.shields.io/github/contributors/pontem-network/coins-registry.svg?style=for-the-badge
[contributors-url]: https://github.com/pontem-network/coins-registry/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/pontem-network/coins-registry.svg?style=for-the-badge
[forks-url]: https://github.com/pontem-network/coins-registry/network/members
[stars-shield]: https://img.shields.io/github/stars/pontem-network/coins-registry.svg?style=for-the-badge
[stars-url]: https://github.com/pontem-network/coins-registry/stargazers
[issues-shield]: https://img.shields.io/github/issues/pontem-network/coins-registry.svg?style=for-the-badge
[issues-url]: https://github.com/pontem-network/coins-registry/issues
[license-shield]: https://img.shields.io/github/license/pontem-network/coins-registry.svg?style=for-the-badge
[license-url]: https://github.com/pontem-network/coins-registry/blob/main/LICENSE