144 lines
4.2 KiB
Markdown
144 lines
4.2 KiB
Markdown
# Vara Network token list
|
|
|
|
## Merge Request Requirements
|
|
|
|
### Overview
|
|
|
|
This document outlines the requirements for submitting a merge request related to the `Vara Network token list` project.
|
|
Ensure that all changes adhere to the specified guidelines to maintain consistency and integrity in the token data and
|
|
related assets.
|
|
|
|
### File Naming and Uniqueness
|
|
|
|
- **File Names**: All files must have unique names within their respective directories. File names are case-insensitive.
|
|
|
|
### JSON File Requirements (`data` Directory)
|
|
|
|
1. **File Naming**:
|
|
- The JSON file name must match the `contractAddress` property of the token and be in lowercase.
|
|
|
|
2. **File Extension**:
|
|
- The file extension must be `.json`.
|
|
|
|
3. **Schema Validation**:
|
|
- The JSON file must conform to the schema defined in `scripts/token-schema.json`. Below is the required schema:
|
|
|
|
```json
|
|
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"title": "Token Schema",
|
|
"description": "Schema for validating token information in a blockchain context.",
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The name of the token."
|
|
},
|
|
"ticker": {
|
|
"type": "string",
|
|
"description": "The short name of the token."
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"description": "The full name of the network or token."
|
|
},
|
|
"iconFileName": {
|
|
"type": "string",
|
|
"description": "The icon file name for the token."
|
|
},
|
|
"infoURL": {
|
|
"type": "string",
|
|
"format": "uri",
|
|
"description": "URL for additional information about the token."
|
|
},
|
|
"contractAddress": {
|
|
"type": "string",
|
|
"description": "The smart contract address of the token."
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"fungible",
|
|
"nft"
|
|
],
|
|
"description": "The type of token (fungible or NFT)."
|
|
},
|
|
"decimals": {
|
|
"type": "integer",
|
|
"description": "The number of decimal places."
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"description": "A description of the token.",
|
|
"default": ""
|
|
},
|
|
"website": {
|
|
"type": "string",
|
|
"format": "uri",
|
|
"description": "Link to the project's website.",
|
|
"default": ""
|
|
},
|
|
"whitepaper": {
|
|
"type": "string",
|
|
"format": "uri",
|
|
"description": "Link to the project's whitepaper.",
|
|
"default": ""
|
|
},
|
|
"initialSupply": {
|
|
"type": "number",
|
|
"description": "The initial supply of tokens.",
|
|
"default": 0
|
|
},
|
|
"totalSupply": {
|
|
"type": "number",
|
|
"description": "The total supply of tokens.",
|
|
"default": 0
|
|
},
|
|
"maxSupply": {
|
|
"type": "number",
|
|
"description": "The maximum supply of tokens.",
|
|
"default": 0
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"ticker",
|
|
"title",
|
|
"iconFileName",
|
|
"infoURL",
|
|
"contractAddress",
|
|
"type",
|
|
"decimals"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
```
|
|
|
|
### PNG File Requirements (`icons` Directory)
|
|
|
|
1. **File Naming**:
|
|
- The PNG file name must match the `contractAddress` property of the token and be in lowercase.
|
|
|
|
2. **File Extension**:
|
|
- The file extension must be `.png`.
|
|
|
|
3. **File Usage**:
|
|
- Each PNG file should be used in exactly one JSON file. However, it must be used in at least one JSON file.
|
|
|
|
4. **File Dimensions**:
|
|
- The PNG file must be square and have dimensions of at least 128x128 pixels (but no more than 1024x1024 pixels).
|
|
|
|
5. **File Format**:
|
|
- The file must be in PNG format.
|
|
|
|
### Creating a Merge Request
|
|
|
|
1. **Verify Functionality**:
|
|
- Before creating a merge request, ensure that everything works correctly by running the following command:
|
|
```sh
|
|
npm run check
|
|
```
|
|
- Make sure there are no errors and all functionalities are working as expected.
|
|
|
|
2. **Submit Merge Request**:
|
|
- Once you have verified that everything is working correctly, you can proceed to create a merge request. |