# Vara Network token list ## 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. ## 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.